#include "petsc/private/snesimpl.h" PetscErrorCode SNESConvergedDefault(SNES snes,PetscInt it,PetscReal xnorm,PetscReal snorm,PetscReal fnorm,SNESConvergedReason *reason,void *dummy)Collective on SNES
| snes | - the SNES context | |
| it | - the iteration (0 indicates before any Newton steps) | |
| xnorm | - 2-norm of current iterate | |
| snorm | - 2-norm of current step | |
| fnorm | - 2-norm of function at current iterate | |
| dummy | - unused context |
| reason | - one of |
SNES_CONVERGED_FNORM_ABS - (fnorm < abstol),
SNES_CONVERGED_SNORM_RELATIVE - (snorm < stol*xnorm),
SNES_CONVERGED_FNORM_RELATIVE - (fnorm < rtol*fnorm0),
SNES_DIVERGED_FUNCTION_COUNT - (nfct > maxf),
SNES_DIVERGED_FNORM_NAN - (fnorm == NaN),
SNES_CONVERGED_ITERATING - (otherwise),
SNES_DIVERGED_DTOL - (fnorm > divtol*snes->fnorm0)
where
| maxf | - maximum number of function evaluations, set with SNESSetTolerances() | |
| nfct | - number of function evaluations, | |
| abstol | - absolute function norm tolerance, set with SNESSetTolerances() | |
| rtol | - relative function norm tolerance, set with SNESSetTolerances() | |
| divtol | - divergence tolerance, set with SNESSetDivergenceTolerance() | |
| fnorm0 | - 2-norm of the function at the initial solution (initial guess; zeroth iteration) |
| -snes_stol | - convergence tolerance in terms of the norm of the change in the solution between steps | |
| -snes_atol <abstol> | - absolute tolerance of residual norm | |
| -snes_rtol <rtol> | - relative decrease in tolerance norm from the initial 2-norm of the solution | |
| -snes_divergence_tolerance <divtol> | - if the residual goes above divtol*rnorm0, exit with divergence | |
| -snes_max_funcs <max_funcs> | - maximum number of function evaluations | |
| -snes_max_fail <max_fail> | - maximum number of line search failures allowed before stopping, default is none | |
| -snes_max_linear_solve_fail | - number of linear solver failures before SNESSolve() stops |