SNESLineSearchSet

Sets the line search routine to be used by the method SNESLS.

Synopsis

PetscErrorCode PETSCSNES_DLLEXPORT SNESLineSearchSet(SNES snes,PetscErrorCode (*func)(SNES,void*,Vec,Vec,Vec,Vec,Vec,PetscReal,PetscReal,PetscReal*,PetscReal*,PetscTruth*),void *lsctx)

Input Parameters

snes - nonlinear context obtained from SNESCreate()
lsctx - optional user-defined context for use by line search
func - pointer to int function

Collective on SNES

Available Routines

SNESLineSearchCubic() - default line search
SNESLineSearchQuadratic() - quadratic line search
SNESLineSearchNo() - the full Newton step (actually not a line search)
SNESLineSearchNoNorms() - the full Newton step (calculating no norms; faster in parallel)

Options Database Keys

-snes_ls [cubic,quadratic,basic,basicnonorms] - Selects line search
-snes_ls_alpha <alpha> - Sets alpha
-snes_ls_maxstep <max> - Sets maxstep
-snes_xtol <steptol> - Sets steptol, this is the minimum step size that the line search code. This is the same as the minimum step length the default convergence test will use and is based on 2-norm(p) < stol*2-norm(x)

Calling sequence of func

   func (SNES snes,void *lsctx,Vec x,Vec f,Vec g,Vec y,Vec w,PetscReal fnorm,PetscReal xnorm,PetscReal *ynorm,PetscReal *gnorm,PetscTruth *flag)

Input parameters for func

snes - nonlinear context
lsctx - optional user-defined context for line search
x - current iterate
f - residual evaluated at x
y - search direction
w - work vector
fnorm - 2-norm of f

Output parameters for func

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

Keywords

SNES, nonlinear, set, line search, routine

See Also

SNESLineSearchCubic(), SNESLineSearchQuadratic(), SNESLineSearchNo(), SNESLineSearchNoNorms(),
SNESLineSearchSetPostCheck(), SNESLineSearchSetParams(), SNESLineSearchGetParams(), SNESLineSearchSetPreCheck()

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

Examples

src/snes/examples/tutorials/ex38.c.html
src/snes/examples/tutorials/ex1f.F.html
src/snes/examples/tutorials/ex39f90.F.html