SNESLineSearchReason#
indication if the line search has succeeded or failed and why
Synopsis#
typedef enum {
SNES_LINESEARCH_SUCCEEDED,
SNES_LINESEARCH_FAILED_NANORINF,
SNES_LINESEARCH_FAILED_FUNCTION_DOMAIN,
SNES_LINESEARCH_FAILED_OBJECTIVE_DOMAIN,
SNES_LINESEARCH_FAILED_JACOBIAN_DOMAIN,
SNES_LINESEARCH_FAILED_REDUCT, /* INSUFFICIENT REDUCTION */
SNES_LINESEARCH_FAILED_USER,
SNES_LINESEARCH_FAILED_FUNCTION
} SNESLineSearchReason;
Values#
SNES_LINESEARCH_SUCCEEDED- the line search succeededSNES_LINESEARCH_FAILED_NANORINF- a not a number of infinity appeared in the computionsSNES_LINESEARCH_FAILED_FUNCTION_DOMAIN- the function was evaluated outside of its domain, seeSNESSetFunctionDomainError()SNES_LINESEARCH_FAILED_OBJECTIVE_DOMAIN- the objective function was evaluated outside of its domain, seeSNESSetObjectiveDomainError()SNES_LINESEARCH_FAILED_JACOBIAN_DOMAIN- the Jacobian was evaluated outside of its domain, seeSNESSetJacobianDomainError()SNES_LINESEARCH_FAILED_REDUCT- the linear search failed to get the requested decrease in its norm or objectiveSNES_LINESEARCH_FAILED_USER- used bySNESLINESEARCHNLEQERRto indicate the user changed the search direction inappropriatelySNES_LINESEARCH_FAILED_FUNCTION- indicates the maximum number of function evaluations allowed has been surpassed,SNESConvergedReasonis also set toSNES_DIVERGED_FUNCTION_COUNT
Developer Note#
Some of these reasons overlap with values of SNESConvergedReason. It is possibly a better design to have SNESConvergedReaon alone used also for indicating line
search failures.
See Also#
SNES: Nonlinear Solvers, SNES, SNESSolve(), SNESGetConvergedReason(), KSPConvergedReason, SNESSetConvergenceTest(),
SNESSetFunctionDomainError() and SNESSetJacobianDomainError()
Level#
intermediate
Location#
Index of all SNES routines
Table of Contents for all manual pages
Index of all manual pages