SNESLINESEARCHSECANT#

Secant search in the L2 norm of the function or the objective function. Attempts to solve \( \min_{\lambda} f(x_k + \lambda Y_k) \) using the secant method with the initial bracketing of \( \lambda \) between [0,damping]. \(f(x_k + \lambda Y_k)\) is either the squared L2-norm of the function \(||F(x_k + \lambda Y_k)||_2^2\), or the objective function \(G(x_k + \lambda Y_k)\) if it is provided with SNESSetObjective() Differences of \(f()\) are used to approximate the first and second derivative of \(f()\) with respect to \(\lambda\), \(f'()\) and \(f''()\).

When an objective function is provided \(f(w)\) is the objective function otherwise \(f(w) = ||F(w)||^2\). \(x\) is the current step and \(y\) is the search direction.

Options Database Keys#

  • -snes_linesearch_max_it <1> - maximum number of iterations within the line search

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

  • -snes_linesearch_minlambda <1e-12> - minimum allowable lambda

  • -snes_linesearch_maxlambda <1.0> - maximum lambda (scaling of solution update) allowed

  • -snes_linesearch_atol <1e-15> - absolute tolerance for the secant method \( f'() < atol \)

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

See Also#

SNES: Nonlinear Solvers, SNESLINESEARCHBT, SNESLINESEARCHCP, SNESLineSearch, SNESLineSearchType, SNESLineSearchCreate(), SNESLineSearchSetType()

Level#

advanced

Location#

src/snes/linesearch/impls/secant/linesearchsecant.c


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