Mass matrices (for explicit time schemes)
Wave propagation systems are often written in the following first-order problem :
where u is called the scalar unknown and V the vectorial unknown. For example, it refers to the following sets of equations (for acoustics) :
Dh is the scalar mass matrix, RhV the scalar stiffness matrix and Sh the scalar damping matrix. Bh is the vectorial mass matrix, RhU the vectorial stiffness matrix and ShV the vectorial damping matrix.
Public attributes of ContinuousMassMatrix
free_mat | mass matrix stored in Montjoie format |
diagonal | diagonal of mass matrix (if diagonal) |
invDiagonal | inverse of the diagonal of mass matrix (if diagonal) |
block_diagonal | block-diagonal mass matrix |
invBlock_diagonal | inverse of the block-diagonal mass matrix |
precond_diag | diagonal preconditioning |
mat_sparse | mass matrix stored in CSR format |
type_matrix | type of mass matrix (diagonal, block-diagonal, sparse, etc) |
previous_iterate | initial guess used for iterative resolution |
stopping_criterion | stopping criterion used for the iterative solver |
Public methods of ContinuousMassMatrix
FindMatrixType | finds the type of the mass matrix for a given mesh |
GetM | returns the number of rows of the mass matrix |
MltMass | computes the matrix vector product Y = M X |
SolveMass | solves the linear system M X = Y |
Invert | inverts mass matrix |
GetSource | extracts components of the source for which a linear system has to be solved |
GetSolution | puts components of the solution on the global vector |
AddSolution | adds components of the solution on the global vector |
MltAdd | performs matrix-vector products with mass matrix |
Solve | performs preconditioning |
Public methods of DiscontinuousBlockMassMatrix
GetM | returns the number of rows of the matrix |
MltElement | matrix vector product by local mass matrix by using factorisation M = Ch D Ch* |
MltMass | matrix vector product by local mass matrix |
SolveMass | resolution by local mass matrix |
SolveCholesky | solution of L x = y or LT x = y where M = L LT |
Factorize | factorization of local mass matrix |
Solve | applies preconditioning (if mass matrix is solved iteratively) |
Public attributes of DiscontinuousMassMatrix
diagonal | diagonal of the mass matrix (if diagonal) |
block_diagonal | blocks of the mass matrix (if block-diagonal) |
mat_sparse | sparse mass matrix |
block_mass | block of the mass matrix, each block being related to an element |
type_matrix | type of the mass matrix (diagonal, block-diagonal, sparse, etc) |
Public methods of DiscontinuousMassMatrix
GetM | returns the number of rows of the matrix |
ComputeMass | computation and factorization of mass matrix |
MltMass | matrix vector product by mass matrix |
SolveMass | resolution by mass matrix |
SolveCholesky | solution of L x = y or LT x = y where M = L LT |
Solve | applies preconditioning (if mass matrix is solved iteratively) |
Public attributes of ContinuousUnsteadyMassMatrix/DiscontinuousUnsteadyMassMatrix
Dh | mass matrix for the scalar unknown u |
DhMinusdtSh | matrix Dh - Δ t/2 Sh |
DhPlusdtSh | matrix Dh + Δ t/2 Sh |
Sh | scalar damping matrix |
Bh | vectorial mass matrix |
BhMinusdtSh | matrix Bh - Δ t/2 ShV |
BhPlusdtSh | matrix Bh - Δ t/2 ShV |
ShVec | vectorial damping matrix |
invJacobian | inverse of jacobian Ji for all elements |
NonLumpedElement | elements for which no mass lumping is achieved |
NonLumpedDof | dofs for which no mass lumping is achieved |
InverseDof | Global to local array for mass-lumped dofs |
NonLumped | if false the dof i is mass lumped |
Public methods of ContinuousUnsteadyMassMatrix/DiscontinuousUnsteadyMassMatrix
Init | computation of the mass matrices Dh, Bh and damping matrices |
SolveMassMatrix | solves linear system Dh Y = X with the scalar mass matrix |
GetDiagonalDh | returns the diagonal of Dh (if this matrix is diagonal) |
GetDiagonalSh | returns the diagonal of Sh (if this matrix is diagonal) |
SetDiagonalDh | sets the diagonal of Dh (if this matrix is diagonal) |
SetDiagonalSh | sets the diagonal of Sh (if this matrix is diagonal) |
FindMatricesToCompute | finds which matrices (for the scalar unknown) to compute for the selected time scheme |
FindMatricesToComputeVec | finds which matrices (for the vectorial unknown) to compute for the selected time scheme |
ComputeScalarMassMatrix | computes scalar mass and damping matrix |
ComputeVectorialMassMatrix | computes vectorial mass and damping matrix |
FactorizeLinearSystem | performs factorization (or constructs preconditioning) of the linear system to solve if an implicit scheme has been selected |
ApplyOperatorSh | applies scalar damping matrix Sh to a vector |
ApplyOperatorShVectorial | applies vectorial damping matrix ShV to a vector |
ApplyOperatorDh | applies scalar mass matrix Dh |
ApplyOperatorDhMinusdtSh | applies matrix Dh - Δ t/2 Sh |
SolveOperatorDhPlusdtSh | resolution of the system (Dh + Δ t/2 Sh) X = Y |
SolveOperatorDh | solves scalar mass matrix Dh X = Y |
SolveCholeskyDh | solves linear system L X = Y or LT X = Y where Dh = L LT |
ApplyOperatorBhMinusdtSh | applies matrix Bh - Δ t/2 ShV |
SolveOperatorBhPlusdtSh | resolution of the system (Bh + Δ t/2 ShV) X = Y |
SolveOperatorBh | resolution of the system Bh X = Y |