The MumpsSolver keyword creates a MUltifrontal Massively Parallel Sparse direct Solver class that solves the system of equations provided with \(\textbf{K}_{\textrm{eff}}\). This solver is meant to be employed to either symmetric and positive-definite, symmetric, or unsymmetric structure of \(\textbf{K}_{\textrm{eff}}\) matrix.
REFERENCE:
The python Pre-Analysis in the 01-Pre_Process/Method/Attach.py file provides with an interface to create a Linear. We use the addSolver() as follows:
addSolver(tag, attributes):
Example
A MUMPS solver can be defined using the python interface as follows:
SVL.addSolver(tag=3, attributes={'name': 'MUMPS', 'option': 'SYM', 'update': 'OFF'})
Application Please refer to C02-DY_Lin_2DCoarseMeshPML_PETSC_ElasticPStrain_Quad file located at 03-Validations/02-Performance/ to see an example on how to define a MUMPS solver using the addSolver function.
On the contrary, the 01-Pre_Process/Method/Remove.py file provides with an interface to depopulate the Entities dictionary. For example, to remove an already define Solver, use:
The C++ Run-Analysis in the 02-Run_Process/11-Solvers/01-Direct/EigenSolver.cpp file provides the class implementation. A MumpsSolver is created using the built-in json parse-structure provided in the Driver.hpp and is defined inside the "Simulations" json field indicating its "Tag" as follows,
{
"Simulations": {
"Tag": {
"attributes": {
"algorithm": {
"name": "MUMPS",
"update": int,
"option": int,
}
}
}
}
}
| Variable | Description |
|---|---|
option | Specifies the structure of the \(\textbf{K}_{\textrm{eff}}\) matrix.
|
update | Specifies if the analysis is linear mode=1 or nonlinear mode=0. In the linear case, the Cholesky decomposition will be stored an computed just once, for the nonlinear case will be computed at each iteration. |
option=0 is the fastest alternative. mode=1 should be employed.