Summary of Sparse Linear Solvers Available from PETSc
Requests and contributions welcome
Algorithm | Matrix types | External Package* | Parallel | Complex | ||
---|---|---|---|---|---|---|
* External Package If this column is filled in you must install the external package indicated to use this feature. See instructions ** A "block Jacobi" style SOR with lits local smoothing followed by update of ghost points from other processors, see MatSOR() *** Use PCType of PCSOR |
||||||
Preconditioners | Jacobi | aij, baij, sbaij, dense | --- | X | X | |
point block Jacobi | aij, baij, baij, kaij, mpisell, is | --- | X | X | ||
SOR | seqdense, seqaij, seqsbaij, mpiaij ** | --- | X | |||
point block SOR*** | seqbaij, bs = 2,3,4,5 | --- | X | |||
block Jacobi | aij, baij, sbaij | --- | X | X | ||
additive Schwarz | aij, baij, sbaij | --- | X | X | ||
deflation | --- | X | X | |||
Incomplete factorizations | ILU(k) | seqaij, seqbaij | --- | X | ||
ICC(k) | seqaij, seqbaij, seqsbaij | --- | X | |||
ILU dt | aij | pilut/hypre (LLNL) Deprecated. Use euclid/hypre instead | X | |||
Matrix-free | infrastructure | X | X | |||
Multigrid | infrastructure | X | X | |||
geometric (DMDA for structured grid) | X | X | ||||
smoothed aggregation | aij | --- | X | X | ||
structured geometric | hyprestruct | PFMG from hypre | X | |||
classical algebraic | aij | BoomerAMG/hypre (LLNL) | X | |||
aij | ML/Trilinos (SNL) | X | ||||
domain decomposition-based | aij, baij, sbaij, is | HPDDM (CNRS) | X | X | ||
Physics-based splitting | relaxation and Schur-complement | aij, baij, nest | --- | X | X | |
least squares commutator | schurcomplement | --- | X | X | ||
Approximate inverses | aij | Parasails/hypre (LLNL) | X | |||
aij | SPAI | X | ||||
Substructuring | balancing Neumann-Neumann | is | --- | X | X | |
BDDC | is | --- | X | X | ||
Direct solvers | LU | LU | seqaij, seqbaij | --- | X | |
seqaij | MATLAB | X | ||||
aij | PaStiX (Inria) | X | X | |||
aij | SuperLU (BNL) SuperLU Sequential LU solver / SuperLU_DIST Parallel LU solver | X | X | |||
aij, baij | MUMPS (CERFACS, CNRS, ENS Lyon, INP Toulouse, Inria, Mumps Technologies, University of Bordeaux) | X | X | |||
seqaij | ESSL (IBM) | |||||
seqaij | UMFPACK Part of SuiteSparse | X | ||||
seqaij | KLU Part of SuiteSparse | X | ||||
seqaij | LUSOL | |||||
seqaij, seqbaij | MKL Pardiso (Intel) | X | ||||
mpiaij, mpibaij | MKL CPardiso (Intel) | X | X | |||
dense | --- | X | X | |||
Cholesky | Cholesky | seqaij, seqsbaij | --- | X | ||
sbaij | PaStiX (Inria) | X | X | |||
sbaij | MUMPS (CERFACS, CNRS, ENS Lyon, INP Toulouse, Inria, Mumps Technologies, University of Bordeaux) | X | X | |||
seqaij, seqsbaij | CHOLMOD Part of SuiteSparse | X | ||||
dense | --- | X | X | |||
seqsbaij | MKL Pardiso (Intel) | |||||
mpisbaij | MKL CPardiso (Intel) | X | ||||
QR | matlab | MATLAB | ||||
XXt and XYt | aij | --- | X | |||
Krylov methods | Richardson | --- | X | X | ||
Chebyshev | --- | X | X | |||
conjugate gradients | --- | X | X | |||
GMRES | --- | X | X | |||
bi-CG-stab | --- | X | X | |||
transpose free QMR | --- | X | X | |||
conjugate residuals | --- | X | X | |||
conjugate gradient squared | --- | X | X | |||
bi-conjugate gradient | --- | X | X | |||
MINRES | --- | X | X | |||
flexible GMRES | --- | X | X | |||
LSQR (supports rectangular matrices) | --- | X | X | |||
CG for least squares (supports rectangular matrices) | --- | X | X | |||
SYMMLQ | --- | X | X | |||
LGMRES | --- | X | X | |||
GCR | --- | X | X | |||
conjugate gradient on the normal equations | --- | X | X | |||
GCR with inner orthogonalization and deflated restarting | HPDDM (CNRS) | X | X |
This page was inspired by Jack Dongarra's freely available software for linear algebra list