:orphan:
# MATIS
MATIS = "is" - A matrix type to be used for using the non-overlapping domain decomposition methods (e.g. `PCBDDC` or `KSPFETIDP`). This stores the matrices in globally unassembled form. Each processor assembles only its local Neumann problem and the parallel matrix vector product is handled "implicitly".
## Options Database Keys
- ***-mat_type is -*** sets the matrix type to `MATIS`.
- ***-matis_fixempty -*** Fixes local matrices in case of empty local rows/columns.
- ***-matis_storel2l -*** stores the local-to-local operators generated by the Galerkin process of `MatPtAP()`.
## Notes
Options prefix for the inner matrix are given by `-is_mat_xxx`
You must call `MatSetLocalToGlobalMapping()` before using this matrix type.
You can do matrix preallocation on the local matrix after you obtain it with
`MatISGetLocalMat()`; otherwise, you could use `MatISSetPreallocation()`
## See Also
[](ch_matrices), `Mat`, `MATIS`, `Mat`, `MatISGetLocalMat()`, `MatSetLocalToGlobalMapping()`, `MatISSetPreallocation()`, `MatCreateIS()`, `PCBDDC`, `KSPFETIDP`
## Level
advanced
## Location
src/mat/impls/is/matis.c
## Examples
src/ksp/ksp/tutorials/ex29.c
src/ksp/ksp/tutorials/ex34.c
src/ksp/ksp/tutorials/ex71.c
src/ksp/ksp/tutorials/ex72.c
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/mat/impls/is/matis.c)
[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)