7.2.1. Line Search Techniques

Up: Contents Next: Trust Region Methods Previous: The Nonlinear Solvers

The method SNES_EQ_NLS ( -snes_type ls) provides a line search Newton method for solving systems of nonlinear equations. By default, this technique employs cubic backtracking [4]. An alternative line search routine can be set with the command

   ierr = SNESSetLineSearch(SNES snes, 
          int (*ls)(SNES,Vec,Vec,Vec,Vec,double,double*,double*),void *lsctx); 
Other line search methods provided by PETSc are SNESQuadraticLineSearch(), SNESNoLineSearch(), and SNESNoLineSearchNoNorms(), which can be set with the option -snes_eq_ls [cubic, quadratic, basic, basicnonorms]. The line search routines involve several parameters, which are set to defaults that are reasonable for many applications. The user can override the defaults by using the options -snes_eq_ls_alpha <alpha>, -snes_eq_ls_maxstep <max>, and -snes_eq_ls_steptol <tol>.

The method SNES_UM_NLS ( -snes_type umls) provides a line search Newton method for solving unconstrained minimization problems. The default line search algorithm is taken from More and Thuente [15]. Again, the user can set a variety of parameters to control the line search; one should run a SNES program with the option -help for details. Users may write their own customized line search codes by modeling them after one of the defaults provided.


Up: Contents Next: Trust Region Methods Previous: The Nonlinear Solvers