:orphan: # PCPreSolve Optional pre-solve phase, intended for any preconditioner-specific actions that must be performed before the iterative solve itself. ## Synopsis ``` #include "petscksp.h" PetscErrorCode PCPreSolve(PC pc, KSP ksp) ``` Collective ## Input Parameters - ***pc -*** the preconditioner context - ***ksp -*** the Krylov subspace context ## Sample of Usage ```none PCPreSolve(pc,ksp); KSPSolve(ksp,b,x); PCPostSolve(pc,ksp); ``` ## Notes The pre-solve phase is distinct from the `PCSetUp()` phase. `KSPSolve()` calls this directly, so is rarely called by the user. ## See Also `PC`, `PCPostSolve()` ## Level developer ## Location src/ksp/pc/interface/precon.c ## Implementations PCPreSolve_BDDC in src/ksp/pc/impls/bddc/bddc.c
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_Shell in src/ksp/pc/impls/shell/shellpc.c
PCPreSolve_PDIPM in src/tao/constrained/impls/ipm/pdipm.c
--- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ksp/pc/interface/precon.c) [Index of all PC routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)