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#
Tao
, TaoSolve()
, TaoGetConvergedReason()
, KSPConvergedReason
, SNESConvergedReason
, TSConvergedReason
Level#
beginner
Location#
Examples#
src/tao/unconstrained/tutorials/eptorsion2f.F90.html
src/tao/unconstrained/tutorials/rosenbrock2.c.html
src/tao/unconstrained/tutorials/rosenbrock3.c.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