# MatSchurComplementGetSubMatrices
Get the individual submatrices in the Schur complement 
## Synopsis
```
#include "petscksp.h" 
PetscErrorCode MatSchurComplementGetSubMatrices(Mat S, Mat *A00, Mat *Ap00, Mat *A01, Mat *A10, Mat *A11)
```
Collective on S


## Input Parameter

- ***S    -*** matrix obtained with `MatCreateSchurComplement()` (or equivalent) and implementing the action of A11 - A10 ksp(A00,Ap00) A01



## Output Parameters

- ***A00  -*** the upper-left block of the original matrix A = [A00 A01; A10 A11]
- ***Ap00 -*** preconditioning matrix for use in ksp(A00,Ap00) to approximate the action of A^{-1}
- ***A01  -*** the upper-right block of the original matrix A = [A00 A01; A10 A11]
- ***A10  -*** the lower-left block of the original matrix A = [A00 A01; A10 A11]
- ***A11  -*** (optional) the lower-right block of the original matrix A = [A00 A01; A10 A11]





## Note
A11 is optional, and thus can be NULL.  The reference counts of the submatrices are not increased before they are returned and the matrices should not be modified or destroyed.


## See Also
 [](chapter_ksp), `MatCreateNormal()`, `MatMult()`, `MatCreate()`, `MatSchurComplementGetKSP()`, `MatCreateSchurComplement()`, `MatSchurComplementUpdateSubMatrices()`

## Level
intermediate

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/ksp/utils/schurm/schurm.c.html#MatSchurComplementGetSubMatrices">src/ksp/ksp/utils/schurm/schurm.c</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ksp/ksp/utils/schurm/schurm.c)


[Index of all KSP routines](index.md)  
[Table of Contents for all manual pages](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
