# KSPConvergedReason

reason a Krylov method was said to have converged or diverged

### Synopsis

    typedef enum {/* converged */
                  KSP_CONVERGED_RTOL               =  2,
                  KSP_CONVERGED_ATOL               =  3,
                  KSP_CONVERGED_ITS                =  4,
                  KSP_CONVERGED_CG_NEG_CURVE       =  5,
                  KSP_CONVERGED_CG_CONSTRAINED     =  6,
                  KSP_CONVERGED_STEP_LENGTH        =  7,
                  KSP_CONVERGED_HAPPY_BREAKDOWN    =  8,
                  /* diverged */
                  KSP_DIVERGED_NULL                = -2,
                  KSP_DIVERGED_ITS                 = -3,
                  KSP_DIVERGED_DTOL                = -4,
                  KSP_DIVERGED_BREAKDOWN           = -5,
                  KSP_DIVERGED_BREAKDOWN_BICG      = -6,
                  KSP_DIVERGED_NONSYMMETRIC        = -7,
                  KSP_DIVERGED_INDEFINITE_PC       = -8,
                  KSP_DIVERGED_NAN                 = -9,
                  KSP_DIVERGED_INDEFINITE_MAT      = -10,

                  KSP_CONVERGED_ITERATING          =  0} KSPConvergedReason;

Notes: this must match finclude/petscksp.h

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

### See Also

KSPSolve(), KSPGetConvergedReason(), KSPSetTolerances()

Level:beginner
Location:src/ksp/ksp/../../../include/petscksp.h
Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages

### Examples

src/ksp/ksp/examples/tutorials/ex10.c.html