SNESLINESEARCHCP#

Critical point line search. This line search assumes that there exists some artificial \(G(x)\) for which the SNESFunctionFn \(F(x) = grad G(x)\). Therefore, this line search seeks to find roots of the directional derivative via a secant method, that is \(F(x_k - \lambda Y_k) \cdot Y_k / ||Y_k|| = 0\).

Options Database Keys#

  • -snes_linesearch_minlambda 1e-12 - the minimum acceptable lambda (scaling of solution update)

  • -snes_linesearch_maxlambda 1.0 - the algorithm ensures that lambda is never larger than this value

  • -snes_linesearch_damping 1.0 - initial lambda on entry to the line search

  • -snes_linesearch_order 1 - order of the approximation in the secant method, must be 1, 2, or 3

  • -snes_linesearch_max_it 1 - the maximum number of secant iterations performed

  • -snes_linesearch_rtol 1e-8 - relative tolerance for the directional derivative

  • -snes_linesearch_atol 1e-15 - absolute tolerance for the directional derivative

  • -snes_linesearch_ltol 1e-8 - minimum absolute change in lambda allowed

Notes#

This method does NOT use the objective function if it is provided with SNESSetObjective().

This method is the preferred line search for SNESQN and SNESNCG.

See Also#

SNES: Nonlinear Solvers, SNESLineSearch, SNESLineSearchType, SNESLineSearchCreate(), SNESLineSearchSetType(), SNESLINESEARCHBISECTION

Level#

advanced

Location#

src/snes/linesearch/impls/cp/linesearchcp.c


Index of all SNES routines
Table of Contents for all manual pages
Index of all manual pages