Skip to main content
`Ctrl`+`K`

# PCFieldSplitSchurFactType

determines which off-diagonal parts of the approximate block factorization to use with the `PCType` of `PCFIELDSPLIT`

## Synopsis

    typedef enum {
      PC_FIELDSPLIT_SCHUR_FACT_DIAG,
      PC_FIELDSPLIT_SCHUR_FACT_LOWER,
      PC_FIELDSPLIT_SCHUR_FACT_UPPER,
      PC_FIELDSPLIT_SCHUR_FACT_FULL
    } PCFieldSplitSchurFactType;

## Values

- `PC_FIELDSPLIT_SCHUR_FACT_DIAG` - the preconditioner is solving `D`

- `PC_FIELDSPLIT_SCHUR_FACT_LOWER` - the preconditioner is solving `L D`

- `PC_FIELDSPLIT_SCHUR_FACT_UPPER` - the preconditioner is solving `D U`

- `PC_FIELDSPLIT_SCHUR_FACT_FULL` - the preconditioner is solving `L(D U)`

where the matrix is factorized as

       (A   B)  = (1       0) (A   0) (1  Ainv*B)  = L D U
       (C   E)    (C*Ainv  1) (0   S) (0       1)

## See Also

Preconditioners, `PCFIELDSPLIT`, `PCFieldSplitSetSchurFactType()`, `PC`

## Level

intermediate

## Location

include/petscpctypes.h

## Examples

src/dm/impls/stag/tutorials/ex4.c

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