Skip to main content
`Ctrl`+`K`

# MatSchurComplementComputeExplicitOperator

Compute the Schur complement matrix explicitly

## Synopsis

    #include "petscksp.h"
    PetscErrorCode MatSchurComplementComputeExplicitOperator(Mat A, Mat *S)

Collective

## Input Parameter

- A - the matrix obtained with `MatCreateSchurComplement()`

## Output Parameter

- S - the Schur complement matrix

## Notes

This can be expensive when `S` is large, so it is mainly for testing

Use `MatSchurComplementGetPmat()` to get a sparse approximation for the Schur complement suitable for use in building a preconditioner

`S` will automatically have the same prefix as `A` appended by `explicit_operator_`, there are three options available: `-fieldsplit_1_explicit_operator_mat_type`, `-fieldsplit_1_explicit_operator_mat_symmetric`, and `-fieldsplit_1_explicit_operator_mat_hermitian`

## Developer Note

The three aforementioned should not be parsed and used in this routine, but rather in `MatSetFromOptions()`

## See Also

KSP: Linear System Solvers, `MatCreateSchurComplement()`, `MatSchurComplementUpdateSubMatrices()`, `MatSchurComplementGetPmat()`

## Level

advanced

## Location

src/ksp/ksp/utils/schurm/schurm.c

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