Skip to main content
`Ctrl`+`K`

# PCShellSetPostSolve

Sets routine to apply to the operators/vectors after a `KSPSolve()` is applied. This usually does something like scale the linear system in some application specific way.

## Synopsis

    #include "petscpc.h"
    PetscErrorCode PCShellSetPostSolve(PC pc, PetscErrorCode (*postsolve)(PC pc, KSP ksp, Vec xin, Vec xout))

Logically Collective

## Input Parameters

- pc - the preconditioner context

- postsolve - the application-provided presolve routine

## Calling sequence of `postsolve`

- pc - the preconditioner

- ksp - the `KSP` that contains `pc`

- xin - input vector

- xout - output vector

## Note

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

## See Also

KSP: Linear System Solvers, `PCSHELL`, `PCShellSetApplyRichardson()`, `PCShellSetSetUp()`, `PCShellSetApplyTranspose()`, `PCShellSetPreSolve()`, `PCShellSetContext()`, `PCShellGetContext()`

## Level

advanced

## Location

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

## Implementations

PCShellSetPostSolve_Shell(PC pc, PetscErrorCode (*postsolve)() 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