# Data-driven solver for truss structures¶

class `ddtruss.``Truss`(points, lines)

Simple static equilibrium solver for truss structures

Parameters: points (ndarray, shape (n_points, dim)) – Point coordinates with spatial dimension `dim` lines (ndarray, shape (n_lines, 2)) – Connectivity of bars
`integrate`(fun)

Integrate a function defined on bars

Parameters: fun (ndarray, shape (n_lines, ..)) – Function to be integrated
`solve`(A=1, E=1, U_dict={}, F_dict={}, sig0=None, construct_K=False)

Solve the static equilibrium problem for the truss structure

Parameters: A (float or ndarray, shape (n_lines, )) – Cross section area E (float) – Young’s modulus U_dict (dict) – Prescribed displacement `{point_id: (Ux, Uy), ...}`, use `None` for `Ux` or `Uy` when this component is not concerned F_dict (dict) – Prescribed nodal force `{point_id: (Fx, Fy), ...}` sig0 (ndarray, shape (n_lines, )) – Initial stress construct_K (bool) – Whether force reconstructing and performing LU factorization of the stiffness matrix u (ndarray, shape (n_ddl, )) – Displacement solution eps (ndarray, shape (n_lines, )) – Strain sig (ndarray, shape (n_lines, )) – Stress
class `ddtruss.``DataDrivenSolver`(truss)

Data-driven solver for truss structures

Parameters: truss – Object defining the truss structure
`load_material_data`(material_data)

Parameters: material_data (ndarray, shape (n_data, 2)) – Experimentally measured `(strain, stress)` pairs
`solve`(A=1, U_dict={}, F_dict={}, n_iterations=100, E_num=None, n_neighbors=1, idx=None, save_history=False)
Parameters: A (float or ndarray, shape (n_lines, )) – Cross section area U_dict (dict) – Prescribed displacement `{point_id: (Ux, Uy), ...}` F_dict (dict) – Prescribed nodal force `{point_id: (Fx, Fy), ...}` n_iterations (int) – Maximimum iteration for the data-driven solver E_num (float) – Numerical value n_neighbors (int) – Number of nearest local states to look for in the material data idx (ndarray, shape (n_lines, )) – Initial local states save_history (bool) – Whether also save more iteration history u (ndarray, shape (n_ddl, )) – Displacement solution eps (ndarray, shape (n_lines, )) – Strain sig (ndarray, shape (n_lines, )) – Stress iter_history (ndarray) – Iteration history for objective function and if asked strain/stress