petsc-3.12.1 2019-10-22
Report Typos and Errors

# 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