SNESNoLineSearchNoNorms

This routine is not a line search at all; it simply uses the full Newton step. This version does not even compute the norm of the function or search direction; this is intended only when you know the full step is fine and are not checking for convergence of the nonlinear iteration (for example, you are running always for a fixed number of Newton steps).

Synopsis

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

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
gnorm - not changed
ynorm - not changed
flag - set to 0, indicating a successful line search

Options Database Key

-snes_eq_ls basicnonorms -Activates SNESNoLineSearchNoNorms()

Notes

SNESNoLineSearchNoNorms() must be used in conjunction with either the options
    -snes_no_convergence_test -snes_max_it <its>
or alternatively a user-defined custom test set via SNESSetConvergenceTest(); otherwise, the SNES solver will generate an error.

The residual norms printed by monitoring routines such as SNESDefaultMonitor() (as activated via -snes_monitor) will not be correct, since they are not computed.

Keywords

SNES, nonlinear, line search, cubic

See Also

SNESCubicLineSearch(), SNESQuadraticLineSearch(),
SNESSetLineSearch(), SNESNoLineSearch()

Level:advanced
Location:src/snes/impls/ls/ls.c
SNES Index
Table of Contents