Skip to main content
`Ctrl`+`K`

# MATNEST

“nest” - Matrix type consisting of nested submatrices, each stored separately.

## Notes

This matrix type permits scalable use of `PCFIELDSPLIT` and avoids the large memory costs of extracting submatrices. It allows the use of symmetric and block formats for parts of multi-physics simulations. It is usually used with `DMCOMPOSITE` and `DMCreateMatrix()`

Each of the submatrices lives on the same MPI communicator as the original nest matrix (though they can have zero rows/columns on some processes.) Thus this is not meant for cases where the submatrices live on far fewer processes than the nest matrix.

## See Also

Matrices, `Mat`, `MATNEST`, `MatCreate()`, `MatType`, `MatCreateNest()`, `MatNestSetSubMat()`, `MatNestGetSubMat()`, `VecCreateNest()`, `DMCreateMatrix()`, `DMCOMPOSITE`, `MatNestSetVecType()`, `MatNestGetLocalISs()`, `MatNestGetISs()`, `MatNestSetSubMats()`, `MatNestGetSubMats()`

## Level

intermediate

## Location

src/mat/impls/nest/matnest.c

## Examples

src/ksp/ksp/tutorials/ex81a.c
src/ksp/ksp/tutorials/ex19.c
src/ksp/ksp/tutorials/ex85.c
src/snes/tutorials/ex28.c

Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages