:orphan:
# MatCreateIS
Creates a "process" unassembled matrix, `MATIS`, assembled on each process but not across processes.
## Synopsis
```
#include "petscmat.h"
PetscErrorCode MatCreateIS(MPI_Comm comm, PetscInt bs, PetscInt m, PetscInt n, PetscInt M, PetscInt N, ISLocalToGlobalMapping rmap, ISLocalToGlobalMapping cmap, Mat *A)
```
## Input Parameters
- ***comm -*** MPI communicator that will share the matrix
- ***bs -*** block size of the matrix
- ***m,n,M,N -*** local and/or global sizes of the left and right vector used in matrix vector products
- ***rmap -*** local to global map for rows
- ***cmap -*** local to global map for cols
## Output Parameter
- ***A -*** the resulting matrix
## Notes
`m` and `n` are NOT related to the size of the map; they represent the size of the local parts of the distributed vectors
used in `MatMult()` operations. The sizes of rmap and cmap define the size of the local matrices.
If `rmap` (`cmap`) is `NULL`, then the local row (column) spaces matches the global space.
## See Also
[](ch_matrices), `Mat`, `MATIS`, `MatSetLocalToGlobalMapping()`
## Level
advanced
## Location
src/mat/impls/is/matis.c
## Examples
src/ksp/ksp/tutorials/ex59.c
src/mat/tutorials/ex3.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)