Class | Module | Solver kind | Matrix kind | Features related to performance |
Dependencies,License | Notes |
SimplicialLLT | \link SparseCholesky_Module SparseCholesky \endlink | Direct LLt factorization | SPD | Fill-in reducing |
built-in, LGPL |
SimplicialLDLT is often preferable |
SimplicialLDLT | \link SparseCholesky_Module SparseCholesky \endlink | Direct LDLt factorization | SPD | Fill-in reducing |
built-in, LGPL |
Recommended for very sparse and not too large problems (e.g., 2D Poisson eq.) |
ConjugateGradient | \link IterativeLinearSolvers_Module IterativeLinearSolvers \endlink | Classic iterative CG | SPD | Preconditionning |
built-in, LGPL |
Recommended for large symmetric problems (e.g., 3D Poisson eq.) |
BiCGSTAB | \link IterativeLinearSolvers_Module IterativeLinearSolvers \endlink | Iterative stabilized bi-conjugate gradient | Square | Preconditionning |
built-in, LGPL |
Might not always converge |
PastixLLT \n PastixLDLT \n PastixLU | \link PaStiXSupport_Module PaStiXSupport \endlink | Direct LLt, LDLt, LU factorizations | SPD \n SPD \n Square | Fill-in reducing, Leverage fast dense algebra, Multithreading |
Requires the PaStiX package, \b CeCILL-C |
optimized for tough problems and symmetric patterns |
CholmodSupernodalLLT | \link CholmodSupport_Module CholmodSupport \endlink | Direct LLt factorization | SPD | Fill-in reducing, Leverage fast dense algebra |
Requires the SuiteSparse package, \b GPL |
|
UmfPackLU | \link UmfPackSupport_Module UmfPackSupport \endlink | Direct LU factorization | Square | Fill-in reducing, Leverage fast dense algebra |
Requires the SuiteSparse package, \b GPL |
|
SuperLU | \link SuperLUSupport_Module SuperLUSupport \endlink | Direct LU factorization | Square | Fill-in reducing, Leverage fast dense algebra |
Requires the SuperLU library, (BSD-like) |
|
Here \c SPD means symmetric positive definite.
All these solvers follow the same general concept.
Here is a typical and general example:
\code
#include