:orphan:
# MatType
String with the name of a PETSc matrix type
## Synopsis
```
typedef const char *MatType;
#define MATSAME "same"
#define MATMAIJ "maij"
#define MATSEQMAIJ "seqmaij"
#define MATMPIMAIJ "mpimaij"
#define MATKAIJ "kaij"
#define MATSEQKAIJ "seqkaij"
#define MATMPIKAIJ "mpikaij"
#define MATIS "is"
#define MATAIJ "aij"
#define MATSEQAIJ "seqaij"
#define MATMPIAIJ "mpiaij"
#define MATAIJCRL "aijcrl"
#define MATSEQAIJCRL "seqaijcrl"
#define MATMPIAIJCRL "mpiaijcrl"
#define MATAIJCUSPARSE "aijcusparse"
#define MATSEQAIJCUSPARSE "seqaijcusparse"
#define MATMPIAIJCUSPARSE "mpiaijcusparse"
#define MATAIJHIPSPARSE "aijhipsparse"
#define MATSEQAIJHIPSPARSE "seqaijhipsparse"
#define MATMPIAIJHIPSPARSE "mpiaijhipsparse"
#define MATAIJKOKKOS "aijkokkos"
#define MATSEQAIJKOKKOS "seqaijkokkos"
#define MATMPIAIJKOKKOS "mpiaijkokkos"
#define MATAIJVIENNACL "aijviennacl"
#define MATSEQAIJVIENNACL "seqaijviennacl"
#define MATMPIAIJVIENNACL "mpiaijviennacl"
#define MATAIJPERM "aijperm"
#define MATSEQAIJPERM "seqaijperm"
#define MATMPIAIJPERM "mpiaijperm"
#define MATAIJSELL "aijsell"
#define MATSEQAIJSELL "seqaijsell"
#define MATMPIAIJSELL "mpiaijsell"
#define MATAIJMKL "aijmkl"
#define MATSEQAIJMKL "seqaijmkl"
#define MATMPIAIJMKL "mpiaijmkl"
#define MATBAIJMKL "baijmkl"
#define MATSEQBAIJMKL "seqbaijmkl"
#define MATMPIBAIJMKL "mpibaijmkl"
#define MATSHELL "shell"
#define MATCENTERING "centering"
#define MATDENSE "dense"
#define MATDENSECUDA "densecuda"
#define MATDENSEHIP "densehip"
#define MATSEQDENSE "seqdense"
#define MATSEQDENSECUDA "seqdensecuda"
#define MATSEQDENSEHIP "seqdensehip"
#define MATMPIDENSE "mpidense"
#define MATMPIDENSECUDA "mpidensecuda"
#define MATMPIDENSEHIP "mpidensehip"
#define MATELEMENTAL "elemental"
#define MATSCALAPACK "scalapack"
#define MATBAIJ "baij"
#define MATSEQBAIJ "seqbaij"
#define MATMPIBAIJ "mpibaij"
#define MATMPIADJ "mpiadj"
#define MATSBAIJ "sbaij"
#define MATSEQSBAIJ "seqsbaij"
#define MATMPISBAIJ "mpisbaij"
#define MATMFFD "mffd"
#define MATNORMAL "normal"
#define MATNORMALHERMITIAN "normalh"
#define MATLRC "lrc"
#define MATSCATTER "scatter"
#define MATBLOCKMAT "blockmat"
#define MATCOMPOSITE "composite"
#define MATFFT "fft"
#define MATFFTW "fftw"
#define MATSEQCUFFT "seqcufft"
#define MATSEQHIPFFT "seqhipfft"
#define MATTRANSPOSEMAT PETSC_DEPRECATED_MACRO("GCC warning \"MATTRANSPOSEMAT macro is deprecated use MATTRANSPOSEVIRTUAL (since version 3.18)\"") "transpose"
#define MATTRANSPOSEVIRTUAL "transpose"
#define MATHERMITIANTRANSPOSEVIRTUAL "hermitiantranspose"
#define MATSCHURCOMPLEMENT "schurcomplement"
#define MATPYTHON "python"
#define MATHYPRE "hypre"
#define MATHYPRESTRUCT "hyprestruct"
#define MATHYPRESSTRUCT "hypresstruct"
#define MATSUBMATRIX "submatrix"
#define MATLOCALREF "localref"
#define MATNEST "nest"
#define MATPREALLOCATOR "preallocator"
#define MATSELL "sell"
#define MATSEQSELL "seqsell"
#define MATMPISELL "mpisell"
#define MATDUMMY "dummy"
#define MATLMVM "lmvm"
#define MATLMVMDFP "lmvmdfp"
#define MATLMVMBFGS "lmvmbfgs"
#define MATLMVMSR1 "lmvmsr1"
#define MATLMVMBROYDEN "lmvmbroyden"
#define MATLMVMBADBROYDEN "lmvmbadbroyden"
#define MATLMVMSYMBROYDEN "lmvmsymbroyden"
#define MATLMVMSYMBADBROYDEN "lmvmsymbadbroyden"
#define MATLMVMDIAGBROYDEN "lmvmdiagbroyden"
#define MATCONSTANTDIAGONAL "constantdiagonal"
#define MATHTOOL "htool"
#define MATH2OPUS "h2opus"
```
## Note
[](doc_matrix) for a table of available matrix types
## See Also
[](doc_matrix), [](ch_matrices), `MatSetType()`, `Mat`, `MatSolverType`, `MatRegister()`
## Level
beginner
## Location
include/petscmat.h
## Examples
src/mat/tutorials/ex8.c
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/include/petscmat.h)
[Index of all Mat routines](index.md)
[Table of Contents for all manual pages](/manualpages/index.md)
[Index of all manual pages](/manualpages/singleindex.md)