petsc-3.3-p7 2013-05-11


Determines convergence of the iterative solvers (default code).


#include "petscksp.h" 
PetscErrorCode  KSPDefaultConverged(KSP ksp,PetscInt n,PetscReal rnorm,KSPConvergedReason *reason,void *ctx)
Collective on KSP

Input Parameters

ksp - iterative context
n - iteration number
rnorm - 2-norm residual value (may be estimated)
ctx - convergence context which must be created by KSPDefaultConvergedCreate()

reason is set to

positive - if the iteration has converged;
negative - if residual norm exceeds divergence threshold;
0 - otherwise.


KSPDefaultConverged() reaches convergence when
     rnorm < MAX (rtol * rnorm_0, abstol);
Divergence is detected if
     rnorm > dtol * rnorm_0,


Use KSPSetTolerances() to alter the defaults for rtol, abstol, dtol.

The precise values of reason are macros such as KSP_CONVERGED_RTOL, which are defined in petscksp.h.


KSP, default, convergence, residual

See Also

KSPSetConvergenceTest(), KSPSetTolerances(), KSPSkipConverged(), KSPConvergedReason, KSPGetConvergedReason(),
KSPDefaultConvergedSetUIRNorm(), KSPDefaultConvergedSetUMIRNorm(), KSPDefaultConvergedCreate(), KSPDefaultConvergedDestroy()

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

rtol = relative tolerance,- . abstol = absolute tolerance.
dtol = divergence tolerance,- - rnorm_0 is the two norm of the right hand side. When initial guess is non-zero you can call KSPDefaultConvergedSetUIRNorm() to use the norm of (b - A*(initial guess)) as the starting point for relative norm convergence testing.