pyyeti.cla.apply_uf¶
- pyyeti.cla.apply_uf(sol, uf_reds, m, b, k, nrb, rfmodes, save=None)[source]¶
Applies the uncertainty factors to the modal ODE solution
- Parameters:
sol (SimpleNamespace) –
Solution, input only; expected to have:
.a = modal acceleration time-history matrix .v = modal velocity time-history matrix .d = modal displacement time-history matrix .pg = g-set forces; optional
uf_reds (4-element tuple) – This is the uncertainty factors in “reds” order: [rigid, elastic, dynamic, static].
m (1d or 2d ndarray or None) – Modal mass; can be vector or matrix or None (for identity)
b (1d or 2d ndarray) – Modal damping; vector or matrix
k (1d or 2d ndarray) – Modal stiffness; vector or matrix
nrb (scalar) – Number of rigid-body modes
rfmodes (1d array or None) – Index or bool partition vector specifying where the residual-flexibility modes are; if None, there are no res-flex vectors.
save (None or dict; optional) – For efficiency. When calling this routine multiple times to apply different uncertainty factors (that is, only uf_reds is changing), set save to an empty dict; this routine will put items in save for subsequent calls.
- Returns:
solout (SimpleNamespace) – The scaled version of sol. Additionally, the displacement member is separated into static and dynamic parts:
.a .v .d .d_static .d_dynamic .pg (optional)
where:
solout.d = solout.d_static + solout.d_dynamic
Notes
Uncertainty factors are applied as follows (rb=rigid-body, el=elastic, rf=residual-flexibility):
ruf = rb uncertainty factor euf = el uncertainty factor duf = dynamic uncertainty factor suf = static uncertainty factor .a_rb and .v_rb - scaled by ruf*suf .a_el and .v_el - scaled by euf*duf .a_rf and .v_rf - zeroed out .d_rb - zeroed out .d_el - static part: scaled by euf*suf - dynamic part: scaled by euf*duf .d_rf - scaled by euf*suf .pg - scaled by suf
Note that d_el is written out as:
d_el = euf*inv(k_el)*(suf*F_el - duf*(a_el+b_el*v_el))
where:
F = m*a + b*v + k*d