.. _doc_linsolve: =================================================== Summary of Sparse Linear Solvers Available In PETSc =================================================== Preconditioners =============== .. list-table:: :widths: auto :align: center :header-rows: 1 * - - Algorithm - Associated Type - Matrix Types - External Packages - Parallel - Complex * - Generic - Jacobi - ``PCJACOBI`` - ``MATAIJ``, ``MATBAIJ``, ``MATSBAIJ``, ``MATDENSE`` - --- - X - X * - - Point Block Jacobi - ``PCPBJACOBI`` - ``MATAIJ``, ``MATBAIJ``, ``MATSBAIJ``, ``MATKAIJ``, ``MATMPISELL``, ``MATIS`` - --- - X - X * - - Block Jacobi - ``PCBJACOBI`` - ``MATAIJ``, ``MATBAIJ``, ``MATSBAIJ`` - --- - X - X * - - SOR - ``PCSOR`` - ``MATAIJ``, ``MATSEQDENSE``, ``MATSEQSBAIJ`` - --- - - X * - - Point Block SOR - - ``MATSEQBAIJ`` (only for ``bs`` = 2,3,4,5) - --- - - X * - - Additive Schwarz - ``PCASM`` - ``MATAIJ``, ``MATBAIJ``, ``MATSBAIJ`` - --- - X - X * - - Deflation - ``PCDEFLATION`` - All - --- - X - X * - Incomplete - ILU - ``PCILU`` - ``MATSEQAIJ``, ``MATSEQBAIJ`` - --- - - X * - - ILU with drop tolerance - ``PCILU`` - ``MATSEQAIJ`` - `SuperLU Sequential ILU solver <../../docs/manualpages/Mat/MATSOLVERSUPERLU.html>`__ - - X * - - - ``PCILU`` - ``MATAIJ`` - Euclid/hypre (``PCHYPRE``) - X - * - - ICholesky - ``PCICC`` - ``MATSEQAIJ``, ``MATSEQBAIJ``, ``MATSEQSBAIJ`` - --- - - X * - Matrix Free - Infrastructure - ``PCSHELL`` - All - --- - X - X * - Multigrid - Infrastructure - ``PCMG`` - All - --- - X - X * - - Geometric - - All - --- - X - X * - - Smoothed Aggregation - ``PCGAMG`` - ``MATAIJ`` - --- - X - X * - - Structured Geometric - ``PCPFMG`` - ``MATHYPRESTRUCT`` - `hypre `__ - X - * - - Classical Algebraic - ``PCHYPRE``, ``PCML`` - ``MATAIJ`` - `BoomerAMG/hypre `__, `ML/Trilinos `__ - X - * - - Domain Decomposition - ``PCHPDDM`` - ``MATAIJ``, ``MATBAIJ``, ``MATSBAIJ``, ``MATIS`` - `HPDDM `__ - X - X * - Physics-based Splitting - Relaxation & Schur Complement - ``PCFIELDSPLIT`` - ``MATAIJ``, ``MATBAIJ``, ``MATNEST`` - --- - X - X * - - Least Squares Commutator - ``PCLSC`` - ``MATSCHURCOMPLEMENT`` - --- - X - X * - Approximate Inverse - AIV - ``PCHYPRE``, ``PCSPAI`` - ``MATAIJ`` - `Parasails/hypre `__, `SPAI `__ - X - * - Substructuring - Balancing Neumann-Neumann - ``PCNN`` - ``MATIS`` - --- - X - X * - - Balancing Domain Decomposition - ``PCBDDC`` - ``MATIS`` - --- - X - X ------------------------------- Direct Solvers ============== .. list-table:: :widths: auto :align: center :header-rows: 1 * - - Algorithm - Associated Type - Matrix Types - External Packages - Parallel - Complex * - Direct LU - LU - ``PCLU`` - ``MATSEQAIJ``, ``MATSEQBAIJ`` - --- - - X * - - - - ``MATSEQAIJ`` - `MATLAB `__ - - X * - - - - ``MATAIJ`` - `PaStiX `__ - X - X * - - - - ``MATAIJ`` - `SuperLU `__ - X - X * - - - - ``MATAIJ``, ``MATBAIJ`` - `MUMPS `__ - X - X * - - - - ``MATSEQAIJ`` - `ESSL `__ - - * - - - - ``MATSEQAIJ`` - `UMPFPACK (SuiteSparse) `__ - - X * - - - - ``MATSEQAIJ`` - `KLU (SuiteSparse) `__ - - X * - - - - ``MATSEQAIJ`` - `LUSOL `__ - - * - - - - ``MATSEQAIJ``, ``MATSEQBAIJ`` - `MKL Pardiso `__ - - X * - - - - ``MATMPIAIJ``, ``MATMPIBAIJ`` - `MKL CPardiso `__ - X - X * - - - - ``MATDENSE`` - `Elemental `__ - X - X * - Direct Cholesky - Cholesky - ``PCCHOLESKY`` - ``MATSEQAIJ``, ``MATSEQSBAIJ`` - --- - - X * - - - - ``MATSBAIJ`` - `PaStiX `__ - X - X * - - - - ``MATSBAIJ`` - `MUMPS `__ - X - X * - - - - ``MATSEQAIJ``, ``MATSEQSBAIJ`` - `CHOLMOD (SuiteSparse) `__ - - X * - - - - ``MATDENSE`` - `Elemental `__ - X - X * - - - - ``MATSEQSBAIJ`` - `MKL Pardiso `__ - - * - - - - ``MATMPIAIJ``, ``MATMPIBAIJ`` - `MKL CPardiso `__ - X - * - Direct QR - QR - - MATLAB - `MATLAB `__ - - * - - XXt and XYt - - ``MATAIJ`` - --- - X - ------------------------------- Krylov Methods ============== .. list-table:: :widths: auto :align: center :header-rows: 1 * - Algorithm - Associated Type - External Packages - Parallel - Complex * - Richardson - ``KSPRICHARDSON`` - --- - X - X * - Chebyshev - ``KSPCHEBYSHEV`` - --- - X - X * - GMRES - ``KSPGMRES`` - --- - X - X * - Flexible GMRES - ``KSPFGMRES`` - --- - X - X * - LGMRES - ``KSPLGMRES`` - --- - X - X * - Conjugate Gradient - ``KSPCG`` - --- - X - X * - Conjugate Gradient Squared - ``KSPCGS`` - --- - X - X * - Conjugate Gradient for Least Squares - ``KSPCGLS`` - --- - X - X * - Conjugate Gradient on Normal Equations - ``KSPCGNE`` - --- - X - X * - Bi-Conjugate Gradient - ``KSPBICG`` - --- - X - X * - Stabilized Bi-Conjugate Gradient - ``KSPBCGS`` - --- - X - X * - Transpose-free QMR - ``KSPTFQMR`` - --- - X - X * - Conjugate Residual - ``KSPCR`` - --- - X - X * - Generalized Conjugate Residual - ``KSPGCR`` - --- - X - X * - Generalized Conjugate Residual (with inner normalization and deflated restarts) - ``KSPHPDDM`` - `HPDDM `__ - X - X * - Minimum Residual - ``KSPMINRES`` - --- - X - X * - LSQR - ``KSPLSQR`` - --- - X - X * - SYMMLQ - ``KSPSYMMLQ`` - --- - X - X