PCMultiLevelCubicLineSearch

This function performs a cubic line search, but the function evaluations are P^T f so that the residual is computed on the constrained manifold.

Synopsis

int PCMultiLevelCubicLineSearch(SNES snes, void *ctx, Vec x, Vec f, Vec g, Vec y, Vec w, PetscReal fnorm, PetscReal *ynorm, PetscReal *gnorm, int *flag)

Input Parameters

snes - The SNES
ctx - The optional user context
x - The current iterate
f - The residual evaluated at x (contains projected residual on output)
y - The search direction (contains new iterate on output)
w - A work vector
fnorm - The 2-norm of f

Output Parameters

f - The projected residual P^T g evaluated at new iterate y
g - The residual evaluated at new iterate y
y - The new iterate (contains search direction on input)
gnorm - The 2-norm of P^T g
ynorm - The 2-norm of y, the search length
flag - 0 if line search succeeds; -1 on failure.

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

SNESNoLineSearch(), SNESNoLineSearch(), SNESSetLineSearch()

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