Notation and sign conventions#
Static analyses#
\(\boldsymbol{c}\) is the vector of the degrees of freedom of the model, the solution
vectors of an.cs, and \(\lambda\) the load factor, the values of
an.increments. The residual force vector of the non-linear analyses is
with \(\boldsymbol{F}_{ext}\) = calc_fext(inc=1.) and \(\boldsymbol{F}_{int}\) =
calc_fint(c), and the tangent stiffness matrix is
with \(\boldsymbol{K}_C\) = calc_kC(c, NLgeom=True) and \(\boldsymbol{K}_G\) = calc_kG(c,
NLgeom=True), such that the Newton-Raphson corrections solve
\(\boldsymbol{K}_T \delta \boldsymbol{c} = -\boldsymbol{R}\), and \(\partial \boldsymbol{R}/\partial
\lambda = -\boldsymbol{F}_{ext}\). A configuration-dependent load \(\boldsymbol{F}(\boldsymbol{c})\) has the load
stiffness matrix \(-\partial \boldsymbol{F}/\partial \boldsymbol{c}\), which enters \(\boldsymbol{K}_T\), see
callbacks. The linear static analysis solves \(\boldsymbol{K}_{C0} \boldsymbol{c} =
\boldsymbol{F}_{ext}\), with \(\boldsymbol{K}_{C0}\) = calc_kC().
Eigenvalue analyses#
Analysis |
Eigenvalue problem |
Returned eigenvalues |
|---|---|---|
\((\boldsymbol{K} + \lambda \boldsymbol{K}_G) \boldsymbol{u} = \boldsymbol{0}\) |
load multipliers \(\lambda\), the positive ones first, in increasing order |
|
\((\boldsymbol{K} + \lambda^2 \boldsymbol{M}) \boldsymbol{u} = \boldsymbol{0}\) |
|
For lb(), \(\boldsymbol{K}_G\) is the geometric stiffness matrix of the
reference load, the critical load being \(\lambda_1\) times the reference
load, and a negative load multiplier corresponds to the reversed reference
load, see Linear buckling with a prestress. For freq(), \(\omega_n\) is in rad/s, see
Frequency analysis; complex lambda2 appear beyond a flutter load, and
a positive real lambda2 indicates divergence, see
Follower loads and unsymmetric matrices. The eigenvectors are the columns of eigvecs,
with the size of the model, see Boundary conditions and vector sizes.
Units#
structsolve has no units: the matrices and vectors of a model must use
a consistent system of units, the eigenvalues of freq() are in
rad2/s2 when the stiffness and the mass matrices are in
consistent units of force, length and time, and the arc length of the
arc-length methods is dimensionless, see
arc_length._solver_arc_length(). absTOL is in the units of the
forces of the model, relTOL is relative and, with the default
Crisfield criterion, independent of the units of each degree of freedom,
see Convergence and troubleshooting of non-linear analyses.
Log messages and silent#
The solvers print their progress to the standard output with the functions
of logger, indented by level, the warnings starting with
WARNING:. Every solver accepts silent, which suppresses the
printing, e.g. an.static(NLgeom=True, silent=True) or lb(K, KG,
silent=True). The callables of Analysis must accept the keyword
argument silent too; the non-linear solvers call them with
silent=True inside the iterations. The
warnings of the eigenvalue solvers that require an action, such as the
DenseFallbackWarning, are also issued with the warnings
module, which silent does not suppress.