: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)