petsc-3.12.4 2020-02-04
Report Typos and Errors

# PCFieldSplitSchurGetSubKSP

Gets the KSP contexts used inside the Schur complement based PCFIELDSPLIT

### Synopsis

    #include "petscpc.h"
    PetscErrorCode  PCFieldSplitSchurGetSubKSP(PC pc,PetscInt *n,KSP *subksp[])

Collective on KSP

### Input Parameter

pc -the preconditioner context

### Output Parameters

| n | - the number of splits
| subksp | - the array of KSP contexts

### Note

After PCFieldSplitSchurGetSubKSP() the array of KSPs is to be freed by the user with PetscFree() (not the KSP just the array that contains them).

You must call PCSetUp() before calling PCFieldSplitSchurGetSubKSP().

If the fieldsplit type is of type PC_COMPOSITE_SCHUR, it returns (in order) - the KSP used for the (1,1) block - the KSP used for the Schur complement (not the one used for the interior Schur solver) - the KSP used for the (1,1) block in the upper triangular factor (if different from that of the (1,1) block).

It returns a null array if the fieldsplit is not of type PC_COMPOSITE_SCHUR; in this case, you should use PCFieldSplitGetSubKSP().

Fortran Usage: You must pass in a KSP array that is large enough to contain all the local KSPs. You can call PCFieldSplitSchurGetSubKSP(pc,n,PETSC_NULL_KSP,ierr) to determine how large the KSP array must be.

### See Also

PCFIELDSPLIT

### Level

advanced

### Location

src/ksp/pc/impls/fieldsplit/fieldsplit.c

### Implementations

PCFieldSplitSchurGetSubKSP_FieldSplit in src/ksp/pc/impls/fieldsplit/fieldsplit.c
Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages