petsc-3.11.4 2019-09-28
Report Typos and Errors


Gets the KSP contexts used inside the Schur complement based PCFIELDSPLIT


#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


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







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