SNESLINESEARCHBISECTION#
Bisection line search. Similar to the critical point line search, SNESLINESEARCHCP
, the bisection line search assumes that there exists some \(G(x)\) for which the SNESFunctionFn
\(F(x) = grad G(x)\). This line search seeks to find the root of the directional derivative, that is \(F(x_k - \lambda Y_k) \cdot Y_k / ||Y_k|| = 0\), along the search direction \(Y_k\) through bisection.
Options Database Keys#
-snes_linesearch_max_it <50> - maximum number of bisection iterations for the line search
-snes_linesearch_damping <1.0> - initial
lambda
on entry to the line search-snes_linesearch_rtol <1e-8> - relative tolerance for the directional derivative
-snes_linesearch_atol <1e-6> - absolute tolerance for the directional derivative
-snes_linesearch_ltol <1e-6> - minimum absolute change in
lambda
allowed
Notes#
lambda
is the scaling of the search direction (vector) that is computed by this algorithm.
If there is no change of sign in the directional derivative from \(\lambda=0\) to the initial lambda
(the damping), then the initial lambda
will be used.
Hence, this line search will always give a lambda
in the interval \([0, damping]\).
This method does NOT use the objective function if it is provided with SNESSetObjective()
.
See Also#
SNES: Nonlinear Solvers, SNESLineSearch
, SNESLineSearchType
, SNESLineSearchCreate()
, SNESLineSearchSetType()
, SNESLINESEARCHCP
Level#
intermediate
Location#
src/snes/linesearch/impls/bisection/linesearchbisection.c
Index of all SNES routines
Table of Contents for all manual pages
Index of all manual pages