# MatFactorCreateSchurComplement
Create a Schur complement matrix object using Schur data computed during the factorization step 
## Synopsis
```
#include "petscmat.h" 
PetscErrorCode MatFactorCreateSchurComplement(Mat F, Mat *S, MatFactorSchurStatus *status)
```
Logically Collective


## Input Parameters

- ***F -*** the factored matrix obtained by calling `MatGetFactor()`
- ***S -*** location where to return the Schur complement, can be `NULL`
- ***status -*** the status of the Schur complement matrix, can be `NULL`





## Notes
You must call `MatFactorSetSchurIS()` before calling this routine.

This functionality is only supported for `MATSOLVERMUMPS` and `MATSOLVERMKL_PARDISO`

The routine provides a copy of the Schur matrix stored within the solver data structures.
The caller must destroy the object when it is no longer needed.
If `MatFactorInvertSchurComplement()` has been called, the routine gets back the inverse.

Use `MatFactorGetSchurComplement()` to get access to the Schur complement matrix inside the factored matrix instead of making a copy of it (which this function does)

See `MatCreateSchurComplement()` or `MatGetSchurComplement()` for ways to create virtual or approximate Schur complements.


## Developer Note
The reason this routine exists is because the representation of the Schur complement within the factor matrix may be different than a standard PETSc
matrix representation and we normally do not want to use the time or memory to make a copy as a regular PETSc matrix.


## See Also
 `Mat`, `MatGetFactor()`, `MatFactorSetSchurIS()`, `MatFactorGetSchurComplement()`, `MatFactorSchurStatus`, `MATSOLVERMUMPS`, `MATSOLVERMKL_PARDISO`

## Level
advanced

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/mat/interface/matrix.c.html#MatFactorCreateSchurComplement">src/mat/interface/matrix.c</A>

## Implementations

<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/mat/impls/aij/mpi/mumps/mumps.c.html#MatFactorCreateSchurComplement_MUMPS">MatFactorCreateSchurComplement_MUMPS in src/mat/impls/aij/mpi/mumps/mumps.c</A><BR>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/mat/interface/matrix.c)


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