# KSPFGMRESSetModifyPC

Sets the routine used by FGMRES to modify the preconditioner.

### Synopsis

    #include "petscksp.h"
    PetscErrorCode PETSCKSP_DLLEXPORT KSPFGMRESSetModifyPC(KSP ksp,PetscErrorCode (*fcn)(KSP,PetscInt,PetscInt,PetscReal,void*),void* ctx,PetscErrorCode (*d)(void*))

Collective on KSP

### Input Parameters

| ksp | - iterative context obtained from KSPCreate
| fcn | - modifypc function
| ctx | - optional contex
| d | - optional context destroy routine

### Calling Sequence of function

ierr = int fcn(KSP ksp,int total_its,int loc_its,PetscReal res_norm,void*ctx);

ksp - the ksp context being used. total_its - the total number of FGMRES iterations that have occurred. loc_its - the number of FGMRES iterations since last restart. res_norm - the current residual norm. ctx - optional context variable

### Options Database Keys

-ksp_fgmres_modifypcnochange -ksp_fgmres_modifypcksp

Contributed by Allison Baker

### Notes

Several modifypc routines are predefined, including KSPFGMRESModifyPCNoChange() KSPFGMRESModifyPCKSP()

### See Also

KSPFGMRESModifyPCNoChange(), KSPFGMRESModifyPCKSP()

Level:intermediate
Location:src/ksp/ksp/impls/gmres/fgmres/modpcf.c
Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages