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
Input Parameter#
pc - the preconditioner context
Output Parameters#
n - the number of splits
subksp - the array of
KSPcontexts
Notes#
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)
1 - the
KSPused for the (1,1) block2 - the
KSPused for the Schur complement (not the one used for the interior Schur solver)3 - the
KSPused 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 Note#
Call PCFieldSplitSchurRestoreSubKSP() when the array of KSP is no longer needed
Developer Notes#
There should be a PCFieldSplitRestoreSubKSP() instead of requiring the user to call PetscFree()
Should the functionality of PCFieldSplitSchurGetSubKSP() and PCFieldSplitGetSubKSP() be merged?
See Also#
Solving Block Matrices with PCFIELDSPLIT, PC, PCFIELDSPLIT, PCFieldSplitSetFields(), PCFieldSplitSetIS(), PCFieldSplitGetSubKSP()
Level#
advanced
Location#
Examples#
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