SNESLineSearchCubic

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

Synopsis

PetscErrorCode PETSCSNES_DLLEXPORT SNESLineSearchCubic(SNES snes,void *lsctx,Vec x,Vec f,Vec g,Vec y,Vec w,PetscReal fnorm,PetscReal *ynorm,PetscReal *gnorm,PetscTruth *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
w - work vector
fnorm - 2-norm of f

Output Parameters

g - residual evaluated at new iterate y
w - new iterate
gnorm - 2-norm of g
ynorm - 2-norm of search length
flag - PETSC_TRUE if line search succeeds; PETSC_FALSE on failure.

Options Database Key

 -snes_ls cubic - Activates SNESLineSearchCubic()

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

SNESLineSearchQuadratic(), SNESLineSearchNo(), SNESLineSearchSet(), SNESLineSearchNoNorms()

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