NonLinearDynamicMultibody¶
- class sharpy.solvers.nonlineardynamicmultibody.NonLinearDynamicMultibody[source]¶
Nonlinear dynamic multibody
Nonlinear dynamic step solver for multibody structures.
The settings that this solver accepts are given by a dictionary, with the following key-value pairs:
Name
Type
Description
Default
print_infoboolPrint output to screen
Truemax_iterationsintSets maximum number of iterations
100num_load_stepsint1delta_curvedfloat0.01min_deltafloatStructural solver tolerance
1e-05newmark_dampfloatSets the Newmark damping coefficient
0.0001gravity_onboolFlag to include gravitational forces
FalsegravityfloatGravitational acceleration
9.81gravity_dirlist(float)Direction in G where gravity applies
[0.0, 0.0, 1.0]relaxation_factorfloat0.3dtfloatTime step increment
0.01num_stepsint500time_integratorstrMethod to perform time integration
NewmarkBetatime_integrator_settingsdictSettings for the time integrator
{}write_lmboolWrite lagrange multipliers
Falserelax_factor_lmfloatRelaxation factor for Lagrange Multipliers. 0 no relaxation. 1 full relaxation
0.0- assembly_MB_eq_system(MB_beam, MB_tstep, ts, dt, Lambda, Lambda_dot, MBdict)[source]¶
This function generates the matrix and vector associated to the linear system to solve a structural iteration It usses a Newmark-beta scheme for time integration. Being M, C and K the mass, damping and stiffness matrices of the system:
\[MB_Asys = MB_K + MB_C\]rac{gamma}{eta dt} + rac{1}{eta dt^2} MB_M
- Args:
MB_beam (list(
Beam)): each entry represents a body MB_tstep (list(StructTimeStepInfo)): each entry represents a body ts (int): Time step number dt(int): time step Lambda (np.ndarray): Lagrange Multipliers array Lambda_dot (np.ndarray): Time derivarive ofLambdaMBdict (dict): Dictionary including the multibody information- Returns:
MB_Asys (np.ndarray): Matrix of the systems of equations MB_Q (np.ndarray): Vector of the systems of equations
- compute_forces_constraints(MB_beam, MB_tstep, ts, dt, Lambda, Lambda_dot)[source]¶
This function computes the forces generated at Lagrange Constraints
- Parameters
MB_beam (list(
Beam)) – each entry represents a bodyMB_tstep (list(
StructTimeStepInfo)) – each entry represents a bodyts (int) – Time step number
dt (float) – Time step increment
Lambda (np.ndarray) – Lagrange Multipliers array
Lambda_dot (np.ndarray) – Time derivarive of
Lambda
Warning
This function is underdevelopment and not fully functional
- define_sys_size()[source]¶
This function defines the number of degrees of freedom in a multibody systems
Each body contributes with
num_dofdegrees of freedom and 10 more if the associated local FoR can move or has Lagrange Constraints associated
- integrate_position(MB_beam, MB_tstep, dt)[source]¶
This function integrates the position of each local A FoR after the structural iteration has been solved.
It uses a Newmark-beta approximation.
- Parameters
MB_beam (list(
Beam)) – each entry represents a bodyMB_tstep (list(
StructTimeStepInfo)) – each entry represents a bodydt (int) – time step