petsc-3.8.4 2018-03-24
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
Index of all Tao routines
Table of Contents for all manual pages
Index of all manual pages

Examples

src/tao/unconstrained/examples/tutorials/eptorsion2f.F.html
src/tao/bound/examples/tutorials/jbearing2.c.html