pyyeti.ode.SolveUnc.get_su_eig¶
- SolveUnc.get_su_eig(delcc)[source]¶
Does pre-calcs for the SolveUnc solver via the complex eigenvalue approach.
- Parameters:
delcc (bool) – If True, delete one of each complex-conjugate pair and put the appropriate factor of 2.0 in the kept mode (see
ode.eigss()). It will be automatically added back in if needed later (for example, ifSolveUnc.fsolve()is called).Class is expected to be populated with
m (1d or 2d ndarray or None) – Mass; vector (of diagonal), or full; if None, mass is assumed identity. Has only rigid-body and elastic modes.
b (1d or 2d ndarray) – Damping; vector (of diagonal), or full. Has only rigid-body and elastic modes.
k (1d or 2d ndarray) – Stiffness; vector (of diagonal), or full. Has only rigid-body and elastic modes.
h (scalar or None) – Time step; can be None if just solving static case.
rb (1d array or None) – Index vector for the rigid-body modes; None for no rigid-body modes.
el (1d array or None) – Index vector for the elastic modes; None for no elastic modes.
- Returns:
A record (SimpleNamespace) containing
G, A, Ap, Fe, Ae, Be (1d ndarrays) – The integration coefficients.
G, A, Apare for the rigid-body equations andFe, Ae, Beare for the elastic equations. These will only be present if h is not None.lam (1d ndarray) – The complex eigenvalues.
ur (2d ndarray) – The complex right-eigenvectors
ur_d, ur_v (2d ndarrays) – Partitions of ur
ur_inv_v, ur_inv_d (2d ndarrays) – Partitions of
inv(ur)rur_d, iur_d (2d ndarrays) – Real and imaginary parts of ur_d
rur_v, iur_v (2d ndarrays) – Real and imaginary parts of ur_v
invm (2d ndarray or None) – Decomposition of the elastic part of the mass matrix; None if self.m is None (identity mass)
imrb (2d ndarray or None) – LU decomposition of rigid-body part of mass; or None if m is None.
wn (1d ndarray) – Real natural frequencies in same order as lam. See
ode.get_freq_damping()zeta (1d ndarray) – Critical damping ratios. See
ode.get_freq_damping()eig_success (bool) – True if routine is successful. False if the eigenvectors form a singular matrix or they do not diagonalize A; in that case, ODE solution (if computed) is most likely wrong.
Notes
The members m, b, and k are partitioned down to the elastic part only.
See also