:orphan: # PCShellSetApply Sets routine to use as preconditioner. ## Synopsis ``` #include "petscpc.h" PetscErrorCode PCShellSetApply(PC pc, PetscErrorCode (*apply)(PC, Vec, Vec)) ``` Logically Collective ## Input Parameters - ***pc -*** the preconditioner context - ***apply -*** the application-provided preconditioning routine ## Calling sequence of `apply` ```none PetscErrorCode apply(PC pc, Vec xin, Vec xout) ``` - ***pc -*** the preconditioner, get the application context with `PCShellGetContext()` - ***xin -*** input vector - ***xout -*** output vector ## See Also `PCSHELL`, `PCShellSetApplyRichardson()`, `PCShellSetSetUp()`, `PCShellSetApplyTranspose()`, `PCShellSetContext()`, `PCShellSetApplyBA()`, `PCShellSetApplySymmetricRight()`, `PCShellSetApplySymmetricLeft()` ## Level intermediate ## Location src/ksp/pc/impls/shell/shellpc.c ## Examples src/ksp/ksp/tutorials/ex15.c
src/ksp/ksp/tutorials/ex15f.F90
src/ksp/ksp/tutorials/ex60.c
src/snes/tutorials/ex3.c
src/tao/pde_constrained/tutorials/hyperbolic.c
src/tao/pde_constrained/tutorials/parabolic.c
## Implementations PCShellSetApply_Shell(PC pc, PetscErrorCode (*apply) in src/ksp/pc/impls/shell/shellpc.c
--- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ksp/pc/impls/shell/shellpc.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)