A monitor that changes the inner tolerance of nested preconditioners in every outer iteration in an adaptive way.


#include "petscksp.h" 
PetscErrorCode KSPMonitorDynamicTolerance(KSP ksp, PetscInt its, PetscReal fnorm, void *ctx)


Input Parameters#

  • ksp - iterative context

  • its - iteration number (not used)

  • fnorm - the current residual norm

  • ctx - context used by monitor

Options Database Key#

  • -sub_ksp_dynamic_tolerance - coefficient of dynamic tolerance for inner solver, default is 1.0


Applies for PCKSP, PCBJACOBI, and PCDEFLATION preconditioners

This may be useful for a flexible preconditioned Krylov method, such as KSPFGMRES, Flexible Krylov Methods to control the accuracy of the inner solves needed to guarantee convergence of the outer iterations.

This is not called directly by users, rather one calls KSPMonitorSet(), with this function as an argument, to cause the monitor to be used during the KSP solve.

Use KSPMonitorDynamicToleranceCreate() and KSPMonitorDynamicToleranceSetCoefficient() to create the context needed by this monitor function.

Pass the context and KSPMonitorDynamicToleranceDestroy() to KSPMonitorSet()

See Also#

Flexible Krylov Methods, KSP, KSPMonitorDynamicToleranceCreate(), KSPMonitorDynamicToleranceDestroy(), KSPMonitorDynamicToleranceSetCoefficient()





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