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