Sets the routine used by KSPGCR to modify the preconditioner for each iteration


#include "petscksp.h" 
PetscErrorCode KSPGCRSetModifyPC(KSP ksp, PetscErrorCode (*function)(KSP ksp, PetscInt n, PetscReal rnorm, void *ctx), void *ctx, PetscErrorCode (*destroy)(void *ctx))

Logically Collective

Input Parameters#

  • ksp - iterative context obtained from KSPCreate()

  • function - user defined function to modify the preconditioner

  • ctx - user provided context for the modify preconditioner function

  • destroy - the function to use to destroy the user provided application context.

Calling sequence of function#

  • ksp - iterative context

  • n - the total number of PCGCR iterations that have occurred

  • rnorm - 2-norm residual value

  • ctx - the user provided application context

Calling sequence of destroy#

  • ctx - the user provided application context


The default modifypc routine is KSPGCRModifyPCNoChange()

Developer Note#

The API should make uniform for all flexible types, Flexible Krylov Methods, and not have separate function calls for each type.

See Also#

KSP: Linear System Solvers, KSP, KSPGCR, KSPGCRModifyPCNoChange(), Flexible Krylov Methods






KSPGCRSetModifyPC_GCR() in src/ksp/ksp/impls/gcr/gcr.c

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