:orphan: # MatCreateNest Creates a new `MATNEST` matrix containing several nested submatrices, each stored separately ## Synopsis ``` #include "petscmat.h" PetscErrorCode MatCreateNest(MPI_Comm comm, PetscInt nr, const IS is_row[], PetscInt nc, const IS is_col[], const Mat a[], Mat *B) ``` Collective ## Input Parameters - ***comm -*** Communicator for the new `MATNEST` - ***nr -*** number of nested row blocks - ***is_row -*** index sets for each nested row block, or `NULL` to make contiguous - ***nc -*** number of nested column blocks - ***is_col -*** index sets for each nested column block, or `NULL` to make contiguous - ***a -*** row-aligned array of nr*nc submatrices, empty submatrices can be passed using `NULL` ## Output Parameter - ***B -*** new matrix ## See Also [](ch_matrices), `Mat`, `MATNEST`, `MatCreate()`, `VecCreateNest()`, `DMCreateMatrix()`, `MatNestSetSubMat()`, `MatNestGetSubMat()`, `MatNestGetLocalISs()`, `MatNestGetSize()`, `MatNestGetISs()`, `MatNestSetSubMats()`, `MatNestGetSubMats()` ## Level advanced ## Location src/mat/impls/nest/matnest.c ## Examples src/ksp/ksp/tutorials/ex27.c
src/ksp/ksp/tutorials/ex81.c
src/snes/tutorials/ex70.c
src/snes/tutorials/ex73f90t.F90
--- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/mat/impls/nest/matnest.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)