Skip to main content
`Ctrl`+`K`

# MatSolverType

String with the name of a PETSc factorization-based matrix solver type.

## Synopsis

    typedef const char *MatSolverType;
    #define MATSOLVERSUPERLU      "superlu"
    #define MATSOLVERSUPERLU_DIST "superlu_dist"
    #define MATSOLVERSTRUMPACK    "strumpack"
    #define MATSOLVERUMFPACK      "umfpack"
    #define MATSOLVERCHOLMOD      "cholmod"
    #define MATSOLVERKLU          "klu"
    #define MATSOLVERELEMENTAL    "elemental"
    #define MATSOLVERSCALAPACK    "scalapack"
    #define MATSOLVERESSL         "essl"
    #define MATSOLVERLUSOL        "lusol"
    #define MATSOLVERMUMPS        "mumps"
    #define MATSOLVERMKL_PARDISO  "mkl_pardiso"
    #define MATSOLVERMKL_CPARDISO "mkl_cpardiso"
    #define MATSOLVERPASTIX       "pastix"
    #define MATSOLVERMATLAB       "matlab"
    #define MATSOLVERPETSC        "petsc"
    #define MATSOLVERBAS          "bas"
    #define MATSOLVERCUSPARSE     "cusparse"
    #define MATSOLVERCUDA         "cuda"
    #define MATSOLVERHIPSPARSE    "hipsparse"
    #define MATSOLVERHIP          "hip"
    #define MATSOLVERKOKKOS       "kokkos"
    #define MATSOLVERSPQR         "spqr"
    #define MATSOLVERHTOOL        "htool"

For example: “petsc” indicates what PETSc provides, “superlu_dist” the parallel SuperLU_DIST package etc

## Note

`MATSOLVERUMFPACK`, `MATSOLVERCHOLMOD`, `MATSOLVERKLU`, `MATSOLVERSPQR` form the SuiteSparse package; you can use `--download-suitesparse` as a ./configure option to install them

## See Also

Matrix Factorization, Matrices, `MatGetFactor()`, `PCFactorSetMatSolverType()`, `PCFactorGetMatSolverType()`

## Level

beginner

## Location

include/petscmat.h

Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages