sfepy.terms.terms_mass module¶
- class sfepy.terms.terms_mass.MassTerm(*args, **kwargs)[source]¶
Mass term with lumping and RMM support [1].
The lumping parameter can be ‘row_sum’, ‘hrz’ or ‘none’ (default). It applies for \beta > 0:
\beta = 0 correponds to the consistent mass matrix M^C;
0 < \beta < 1 corresponds to the averaged mass matrix M^A.
\beta = 1 corresponds to the lumped mass matrix M^L;
term_mode can be None (default), ‘DPM’ (diagonal projection matrix A), or ‘RMM’ (reciprocal mass matrix C).
[1]González, J.A., Kolman, R., Cho, S.S., Felippa, C.A., Park, K.C., 2018. Inverse mass matrix via the method of localized Lagrange multipliers. International Journal for Numerical Methods in Engineering 113, 277–295. https://doi.org/10.1002/nme.5613
- Definition:
M^C = \int_{\cal{D}} \rho \ul{v} \cdot \ul{u} \\ M^L = \mathrm{lumping}(M^C) \\ M^A = (1 - \beta) M^C + \beta M^L \\ A = \sum_e A_e \\ C = \sum_e A_e^T (M_e^A)^{-1} A_e
- Call signature:
de_mass
(material_rho, material_lumping, material_beta, virtual, state)
- Arguments:
material: \rho
material: lumping
material: \beta
virtual/parameter_1: \ul{v}
state/parameter_2: \ul{u}
- arg_shapes = {'material_beta': '.: 1', 'material_lumping': '.: str', 'material_rho': '1, 1', 'state': 'D', 'virtual': ('D', 'state')}¶
- arg_types = ('material_rho', 'material_lumping', 'material_beta', 'virtual', 'state')¶
- get_function(rho, lumping, beta, virtual, state, mode=None, term_mode=None, diff_var=None, **kwargs)[source]¶
- modes = ('weak', 'eval')¶
- name = 'de_mass'¶