KSPConvergedReason#
reason a Krylov method was determined to have converged or diverged
Synopsis#
typedef enum { /* converged */
KSP_CONVERGED_RTOL_NORMAL = 1,
KSP_CONVERGED_ATOL_NORMAL = 9,
KSP_CONVERGED_RTOL = 2,
KSP_CONVERGED_ATOL = 3,
KSP_CONVERGED_ITS = 4,
KSP_CONVERGED_NEG_CURVE = 5,
KSP_CONVERGED_CG_NEG_CURVE_DEPRECATED = 5,
KSP_CONVERGED_CG_CONSTRAINED_DEPRECATED = 6,
KSP_CONVERGED_STEP_LENGTH = 6,
KSP_CONVERGED_HAPPY_BREAKDOWN = 7,
/* 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_NANORINF = -9,
KSP_DIVERGED_INDEFINITE_MAT = -10,
KSP_DIVERGED_PC_FAILED = -11,
KSP_DIVERGED_PCSETUP_FAILED_DEPRECATED = -11,
KSP_CONVERGED_ITERATING = 0
} KSPConvergedReason;
Values#
KSP_CONVERGED_RTOL_NORMAL
- requested decrease in the residual for the normal equationsKSP_CONVERGED_ATOL_NORMAL
- requested absolute value in the residual for the normal equationsKSP_CONVERGED_RTOL
- requested decrease in the residualKSP_CONVERGED_ATOL
- requested absolute value in the residualKSP_CONVERGED_ITS
- requested number of iterationsKSP_CONVERGED_NEG_CURVE
- see note belowKSP_CONVERGED_STEP_LENGTH
- see note belowKSP_CONVERGED_HAPPY_BREAKDOWN
- happy breakdown (meaning early convergence of theKSPType
occurred.KSP_DIVERGED_NULL
- breakdown when solving the Hessenberg system within GMRESKSP_DIVERGED_ITS
- requested number of iterationsKSP_DIVERGED_DTOL
- large increase in the residual normKSP_DIVERGED_BREAKDOWN
- breakdown in the Krylov methodKSP_DIVERGED_BREAKDOWN_BICG
- breakdown in theKSPBGCS
Krylov methodKSP_DIVERGED_NONSYMMETRIC
- the operator or preonditioner was not symmetric for aKSPType
that requires symmetryKSP_DIVERGED_INDEFINITE_PC
- the preconditioner was indefinite for aKSPType
that requires it be definiteKSP_DIVERGED_NANORINF
- a not a number of infinity was detected in a vector during the computationKSP_DIVERGED_INDEFINITE_MAT
- the operator was indefinite for aKSPType
that requires it be definiteKSP_DIVERGED_PC_FAILED
- the action of the preconditioner failed for some reason
Note#
The values KSP_CONVERGED_NEG_CURVE
, and KSP_CONVERGED_STEP_LENGTH
are returned only by the special KSPNASH
,
KSPSTCG
, and KSPGLTR
solvers which are used by the SNESNEWTONTR
(trust region) solver.
Developer Notes#
This must match the values in petsc/finclude/petscksp.h
The string versions of these are KSPConvergedReasons
; if you change
any of the values here also change them that array of names.
See Also#
KSP: Linear System Solvers, KSP
, KSPSolve()
, KSPGetConvergedReason()
, KSPSetTolerances()
, KSPConvergedReasonView()
Level#
beginner
Location#
Examples#
src/ksp/ksp/tutorials/ex72.c
src/ksp/ksp/tutorials/ex77.c
Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages