SNESCubicLineSearch

Performs a cubic line search (default line search method).

Synopsis

int SNESCubicLineSearch(SNES snes,void *lsctx,Vec x,Vec f,Vec g,Vec y,Vec w,PetscReal fnorm,PetscReal *ynorm,PetscReal *gnorm,int *flag)
Collective on SNES

Input Parameters

snes - nonlinear context
lsctx - optional context for line search (not used here)
x - current iterate
f - residual evaluated at x
y - search direction (contains new iterate on output)
w - work vector
fnorm - 2-norm of f

Output Parameters

g - residual evaluated at new iterate y
y - new iterate (contains search direction on input)
gnorm - 2-norm of g
ynorm - 2-norm of search length
flag - 0 if line search succeeds; -1 on failure.

Options Database Key

 -snes_ls cubic - Activates SNESCubicLineSearch()

Notes

This line search is taken from "Numerical Methods for Unconstrained Optimization and Nonlinear Equations" by Dennis and Schnabel, page 325.

Keywords

SNES, nonlinear, line search, cubic

See Also

SNESQuadraticLineSearch(), SNESNoLineSearch(), SNESSetLineSearch(), SNESNoLineSearchNoNorms()

Level:advanced
Location:
src/snes/impls/ls/ls.c
Index of all SNES routines
Table of Contents for all manual pages
Index of all manual pages