## 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