PCPreSolve#
Optional pre-solve phase, intended for any preconditioner-specific actions that must be performed before the iterative solve itself. Used in conjunction with PCPostSolve()
Synopsis#
#include "petscksp.h"
PetscErrorCode PCPreSolve(PC pc, KSP ksp)
Collective
Input Parameters#
pc - the
PC
preconditioner contextksp - the Krylov subspace context
Notes#
KSPSolve()
calls this directly, so is rarely called by the user.
Certain preconditioners, such as the PCType
of PCEISENSTAT
, change the formulation of the linear system to be solved iteratively.
This function performs that transformation. PCPostSolve()
then transforms the system back to its original form after the solve.
PCPostSolve()
also transforms the resulting solution of the transformed system to the solution of the original problem.
KSPSetPresolve()
and KSPSetPostSolve()
provide an alternative way to provide such transformations.
See Also#
KSP: Linear System Solvers, PC
, PCPostSolve()
, KSP
, PCSetPreSolve()
, KSPSetPreSolve()
, KSPSetPostSolve()
Level#
developer
Location#
Implementations#
PCPreSolve_BDDC() in src/ksp/pc/impls/bddc/bddc.c
PCPreSolve_BJKOKKOS() in src/ksp/pc/impls/bjacobi/bjkokkos/bjkokkos.kokkos.cxx
PCPreSolve_Deflation() in src/ksp/pc/impls/deflation/deflation.c
PCPreSolve_Eisenstat() in src/ksp/pc/impls/eisens/eisen.c
PCPreSolve_HPDDM() in src/ksp/pc/impls/hpddm/pchpddm.cxx
PCPreSolve_LMVM() in src/ksp/pc/impls/lmvm/lmvmpc.c
PCPreSolve_Shell() in src/ksp/pc/impls/shell/shellpc.c
PCPreSolve_PDIPM() in src/tao/constrained/impls/ipm/pdipm.c
Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages