int SNESSetLineSearch(SNES snes,int (*func)(SNES,void*,Vec,Vec,Vec,Vec,Vec,double,double*,double*,int*),void *lsctx)
snes | - nonlinear context obtained from SNESCreate() |
lsctx | - optional user-defined context for use by line search |
func | - pointer to int function |
Collective on SNES
SNESCubicLineSearch() | - default line search |
SNESQuadraticLineSearch() | - quadratic line search |
SNESNoLineSearch() | - the full Newton step (actually not a line search) |
SNESNoLineSearchNoNorms() | - the full Newton step (calculating no norms; faster in parallel) |
-snes_eq_ls [cubic,quadratic,basic,basicnonorms] | - Selects line search |
-snes_eq_ls_alpha <alpha> | - Sets alpha |
-snes_eq_ls_maxstep <max> | - Sets maxstep |
-snes_eq_ls_steptol <steptol> | - Sets steptol |
func (SNES snes, void *lsctx, Vec x, Vec f, Vec g, Vec y, Vec w, double fnorm, double *ynorm, double *gnorm, *flag)
snes | - nonlinear context |
lsctx | - optional user-defined context for line search |
x | - current iterate |
f | - residual evaluated at x |
y | - search direction (contains new iterate on output) |
w | - work vector |
fnorm | - 2-norm of f |
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 | - set to 0 if the line search succeeds; a nonzero integer on failure. |
Level:advanced
Location:src/snes/impls/ls/ls.c
SNES Index
Table of Contents