petsc-3.14.5 2021-03-03
Report Typos and Errors

# TaoConvergedReason

reason a TAO method was said to have converged or diverged

### Synopsis

    typedef enum {/* converged */
      TAO_CONVERGED_GATOL         =  3, /* ||g(X)|| < gatol */
      TAO_CONVERGED_GRTOL         =  4, /* ||g(X)|| / f(X)  < grtol */
      TAO_CONVERGED_GTTOL         =  5, /* ||g(X)|| / ||g(X0)|| < gttol */
      TAO_CONVERGED_STEPTOL       =  6, /* step size small */
      TAO_CONVERGED_MINF          =  7, /* F < F_min */
      TAO_CONVERGED_USER          =  8, /* User defined */
      /* diverged */
      TAO_DIVERGED_MAXITS         = -2,
      TAO_DIVERGED_NAN            = -4,
      TAO_DIVERGED_MAXFCN         = -5,
      TAO_DIVERGED_LS_FAILURE     = -6,
      TAO_DIVERGED_TR_REDUCTION   = -7,
      TAO_DIVERGED_USER           = -8, /* User defined */
      /* keep going */
      TAO_CONTINUE_ITERATING      =  0} TaoConvergedReason;

The two most common reasons for divergence are

      1) an incorrectly coded or computed gradient or Hessian

      2) failure or lack of convergence in the linear system (in this case we recommend

         testing with -pc_type lu to eliminate the linear solver as the cause of the problem).

### Developer Notes

this must match petsc/finclude/petsctao.h

The string versions of these are in TAOConvergedReasons, if you change any value here you must also adjust that array.

### See Also

TAOSolve(), TaoGetConvergedReason(), KSPConvergedReason, SNESConvergedReason, TSConvergedReason

### Level

beginner

### Location

src/tao/../../include/petsctao.h

### Examples

src/tao/unconstrained/tutorials/eptorsion2f.F.html
src/tao/bound/tutorials/jbearing2.c.html
Index of all Tao routines
Table of Contents for all manual pages
Index of all manual pages