## Summary of Sparse Linear Solvers Available from PETSc

### Requests and contributions welcome

Click on the package name in the "External Package" column for manual pages for that package (e.g. Euclid/hypre).

|  | Algorithm | Matrix types | External Package* | Parallel | Complex
Preconditioners |  | Jacobi | aij,baij,sbaij,bdiag,dense | --- | X | X
|  | point block Jacobi | baij, bs = 2,3,4,5 |  | X | X
|  | SOR | seqdense,seqaij,seqsbaij, seqbdiag, mpiaij** | --- |  | X
|  | point block SOR*** | seqbaij, bs = 2,3,4,5 |  |  | X
|  | block Jacobi | aij,baij,sbaij,bdiag | --- | X | X
|  | additive Schwarz | aij,baij,sbaij | --- | X | X
| Incomplete factorizations | ILU(k) | seqaij,seqbaij | --- |  | X
|  | ICC(k) | seqaij,seqbaij | --- |  | X
|  | ILU dt | seqaij | Sparsekit |  |
|  | ILU(k) | aij | Euclid/hpypre (LLNL) | X |
|  | ILU dt | aij | Euclid/pilut (LLNL) | X |
|  | ILU(0)/ICC(0) | aij | BlockSolve95 | X |
| Matrix-free | infrastructure |  |  | X | X
| Multigrid | infrastructure |  |  | X | X
|  | geometric structured grid |  |  | X | X
|  | algebraic | aij | BoomerAMG/hypre (LLNL) | X |
|  |  | aij | ML/Trilinos (SNL) | X |
|  |  | baij | Prometheus (LBNL) | X |
| Approximate inverses |  | aij | Parasails/hypre (LLNL) | X |
|  |  | aij | SPAI | X |
| Substructuring | balancing Neumann-Neumann | is | --- | X | X
Direct solvers | LU | LU | seqaij,seqbaij | --- |  | X
|  | LU | matlab | MATLAB |  | X
|  |  | aijspooles | SpoolesSequential/Parallel | X | X
|  |  | superlu superlu_dist | SuperLU (BNL) Sequential/Parallel | X | X
|  |  | aijmumps | MUMPS | X | X
|  |  | essl | ESSL (IBM) |  |
|  |  | umfpack | UMFPACK (U. Florida) |  |
|  |  | lusol | LUSOL |  |
|  |  | plapack | PLAPACK | X | X
| Cholesky | Cholesky | seqaij,seqsbaij | --- |  | X
|  |  | sbaijspooles | SpoolesSequential/Parallel | X | X
|  |  | sbaijmumps | MUMPS | X | X
|  |  | dscpack | DSCPACK (Penn State) | X |
|  |  | plapack | PLAPACK | X | X
| QR |  | matlab | Matlab |  |
|  |  | aijspooles | SpoolesSequential/Parallel |  | X
| XXt and XYt |  | aij | --- | X |
Krylov methods |  | Richardson |  | --- | X | X
|  | Chebychev |  | --- | 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 |  | --- | X | X
|  | SYMMLQ |  | --- | X | X
|  | LGMRES |  | --- | X | X
|  | Conjugate gradient on the normal equations |  | --- | X | X

*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 MatRelax()
***Use PCType of PCSOR

This page was inspired by Jack Dongarra's freely available software for linear algebra list