Skip to main content
`Ctrl`+`K`

# PCShellSetApply

Sets routine to use as preconditioner.

## Synopsis

    #include "petscpc.h"
    PetscErrorCode PCShellSetApply(PC pc, PetscErrorCode (*apply)(PC pc, Vec xin, Vec xout))

Logically Collective

## Input Parameters

- pc - the preconditioner context

- apply - the application-provided preconditioning routine

## Calling sequence of `apply`

- pc - the preconditioner, get the application context with `PCShellGetContext()`

- xin - input vector

- xout - output vector

## Note

You can get the `PCSHELL` context set with `PCShellSetContext()` using `PCShellGetContext()` if needed by `apply`.

## See Also

KSP: Linear System Solvers, `PCSHELL`, `PCShellSetApplyRichardson()`, `PCShellSetSetUp()`, `PCShellSetApplyTranspose()`, `PCShellSetContext()`, `PCShellSetApplyBA()`, `PCShellSetApplySymmetricRight()`, `PCShellSetApplySymmetricLeft()`, `PCShellGetContext()`

## Level

intermediate

## Location

src/ksp/pc/impls/shell/shellpc.c

## Examples

src/tao/pde_constrained/tutorials/hyperbolic.c
src/ksp/pc/tutorials/ex4.c
src/ksp/ksp/tutorials/ex60.c
src/tao/pde_constrained/tutorials/parabolic.c
src/snes/tutorials/ex3.c
src/ksp/ksp/tutorials/ex15f.F90
src/ksp/ksp/tutorials/ex15.c

## Implementations

PCShellSetApply_Shell(PC pc, PetscErrorCode (*apply)() in src/ksp/pc/impls/shell/shellpc.c

Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages