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 |
CholmodDecomposition | \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, custom (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