# SNESConvergedReason

reason a SNES method was said to have converged or diverged

### Synopsis

    typedef enum {/* converged */
                  SNES_CONVERGED_FNORM_ABS         =  2, /* F < F_minabs */
                  SNES_CONVERGED_FNORM_RELATIVE    =  3, /* F < F_mintol*F_initial */
                  SNES_CONVERGED_PNORM_RELATIVE    =  4, /* step size small */
                  SNES_CONVERGED_ITS               =  5, /* maximum iterations reached */
                  SNES_CONVERGED_TR_DELTA          =  7,
                  /* diverged */
                  SNES_DIVERGED_FUNCTION_DOMAIN    = -1,
                  SNES_DIVERGED_FUNCTION_COUNT     = -2,
                  SNES_DIVERGED_LINEAR_SOLVE       = -3,
                  SNES_DIVERGED_FNORM_NAN          = -4,
                  SNES_DIVERGED_MAX_IT             = -5,
                  SNES_DIVERGED_LS_FAILURE         = -6,
                  SNES_DIVERGED_LOCAL_MIN          = -8,  /* || J^T b || is small, implies converged to local minimum of F() */
                  SNES_CONVERGED_ITERATING         =  0} SNESConvergedReason;

Notes: this must match finclude/petscsnes.h

Developer note: The string versions of these are in src/snes/interface/snes.c called convergedreasons. If these enums are changed you much change those.

### See Also

SNESSolve(), SNESGetConvergedReason(), KSPConvergedReason, SNESSetConvergenceTest()

Level:beginner
Location:src/snes/../../include/petscsnes.h
Index of all SNES routines
Table of Contents for all manual pages
Index of all manual pages