9.2 Configuring Linear Solvers
FEBio offers several direct and iterative linear solvers that can be used to solve the linear system of equations of the FE model. Users can configure these linear solvers in the configuration file with the default_linear_solver tag. The particular linear solver is selected via the type attribute. The following table lists the possible values, the solver type, and the supported matrix format.
solver | description | type | matrix format |
pardiso | A sparse direct solver, from the MKL library. (default) | D | S/U |
skyline | A sparse direct solver, but not as efficient as pardiso. | D | S |
fgmres | An implementation of the GMRES algorithm, from MKL . | It | U |
cg | An implementation of the CG algorithm, from MKL . | It | S |
boomeramg | An algebraic multigrid solver, from the HYPRE library. | It | S/U |
schur | A block based iterative solver. | It | B |
D=direct solver, It=iterative solver, S = symmetric format, U = unsymmetric format, B = block format.
Iterative solvers can be configured with preconditioners, which attempt to reduce the condition number of the matrix. Preconditioning is highly recommended and often necessary for reducing the number of iterations needed by the iterative solver to converge the solution. Any of the linear solvers listed above can be used as a preconditioner. In addition, the following specialized preconditioners are also available.
preconditioner | description | matrix format |
ilu0 | Incomplete LU decomposition with no fill-in | unsymmetric |
ilut | Incomplete LU decomposition with custom fill-in | unsymmetric |
ichol | Incompletly Cholesky decomposition with no fill-in | symmetric |
diagonal | Diagonal preconditioner made from the diagonal of the matrix | any |
The following sections describe each of these solvers and preconditioners in more detail.
Table of contents
- Subsection 9.2.1 Pardiso
- Subsection 9.2.2 Skyline
- Subsection 9.2.3 FGMRES
- Subsection 9.2.4 CG
- Subsection 9.2.5 BoomerAMG
- Subsection 9.2.6 Schur
- Subsection 9.2.7 Examples