Sets routine to use as preconditioner in Richardson iteration.


#include "petscpc.h" 
PetscErrorCode PCShellSetApplyRichardson(PC pc, PetscErrorCode (*apply)(PC pc, Vec b, Vec x, Vec r, PetscReal rtol, PetscReal abstol, PetscReal dtol, PetscInt maxits, PetscBool zeroinitialguess, PetscInt *its, PCRichardsonConvergedReason *reason))

Logically Collective

Input Parameters#

  • pc - the preconditioner context

  • apply - the application-provided preconditioning routine

Calling sequence of apply#

  • pc - the preconditioner

  • b - right-hand side

  • x - current iterate

  • r - work space

  • rtol - relative tolerance of residual norm to stop at

  • abstol - absolute tolerance of residual norm to stop at

  • dtol - if residual norm increases by this factor than return

  • maxits - number of iterations to run

  • zeroinitialguess - PETSC_TRUE if x is known to be initially zero

  • its - returns the number of iterations used

  • reason - returns the reason the iteration has converged


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

See Also#

KSP: Linear System Solvers, PCSHELL, PCShellSetApply(), PCShellSetContext(), PCRichardsonConvergedReason(), PCShellGetContext()






PCShellSetApplyRichardson_Shell(PC pc, PetscErrorCode (*applyrich)() 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