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


PetscErrorCode PETSCSNES_DLLEXPORT SNESLineSearchSet(SNES snes,PetscErrorCode (*func)(SNES,void*,Vec,Vec,Vec,Vec,Vec,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_ls_steptol <steptol> - Sets steptol, this is the minimum step size that the line search code will accept; min p[i]/x[i] < steptol. The -snes_stol <stol> is 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 *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.


SNES, nonlinear, set, line search, routine

See Also

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

Index of all SNES routines
Table of Contents for all manual pages
Index of all manual pages