NOX::LineSearch::Backtrack Class Reference

Generic backtracking line search. More...

#include <NOX_LineSearch_Backtrack.H>

Inheritance diagram for NOX::LineSearch::Backtrack:

Inheritance graph
[legend]
Collaboration diagram for NOX::LineSearch::Backtrack:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 Backtrack (const Teuchos::RCP< NOX::GlobalData > &gd, Teuchos::ParameterList &params)
 Constructor.
 ~Backtrack ()
 Destructor.
bool reset (const Teuchos::RCP< NOX::GlobalData > &gd, Teuchos::ParameterList &params)
bool compute (NOX::Abstract::Group &newgrp, double &step, const NOX::Abstract::Vector &dir, const NOX::Solver::Generic &s)
 Perform a line search.

Private Attributes

Teuchos::RCP< NOX::Utilsutils
 Printing Utilities.
Teuchos::RCP
< NOX::MeritFunction::Generic
meritFunctionPtr
 Merit function.
double minStep
 Minimum step length (i.e., when we give up).
double defaultStep
 Default step.
double recoveryStep
 Default step for linesearch failure.
double reductionFactor
int maxIters
 Maximum number of iterations.


Detailed Description

Generic backtracking line search.

This line search starts with the step length defined by "Default Step". It checks to see if the norm of the right hand side (RHS) has been reduced. If so, it exits successfully. Otherwise, it reduces the step length by the reduction factor (defaults to one-half). It continues to repeat this procedure until it either finds a reduction in the norm of the RHS or the step is less than that specified by "Minimum Step". In the later case, the line search has failed, and we take the step defined by "Recovery Step".

This line search can be called via NOX::LineSearch::Manager.

The following parameters can be specified for this line search in the "Backtrack" sublist of the "Line Search" sublist.

Definition at line 85 of file NOX_LineSearch_Backtrack.H.


Constructor & Destructor Documentation

NOX::LineSearch::Backtrack::Backtrack ( const Teuchos::RCP< NOX::GlobalData > &  gd,
Teuchos::ParameterList &  params 
)

Constructor.

Definition at line 55 of file NOX_LineSearch_Backtrack.C.

NOX::LineSearch::Backtrack::~Backtrack (  ) 

Destructor.

Definition at line 61 of file NOX_LineSearch_Backtrack.C.


Member Function Documentation

bool NOX::LineSearch::Backtrack::compute ( NOX::Abstract::Group grp,
double &  step,
const NOX::Abstract::Vector dir,
const NOX::Solver::Generic s 
) [virtual]

Perform a line search.

On input:

Parameters:
grp The initial solution vector, $x_{\rm old}$.
dir A vector of directions to be used in the line search, $d$.
s The nonlinear solver.
On output:
Parameters:
step The distance the direction was scaled, $ \lambda $.
grp The grp is updated with a new solution, $ x_{\rm new} $, resulting from the linesearch. Normally, for a single direction line search, this is computed as:

\[ x_{\rm new} = x_{\rm old} + \lambda d. \]

Ideally, $ \|F(x_{\rm new})\| < \|F(x_{\rm old})\| $ (e.g the final direction is a descent direction).

Note that the dir object is a std::vector. For typical line searches as described in the above equation, this vector is of size one. We have used a std::vector to allow for special cases of multi-directional line searches such as the Bader/Schnabel curvillinear line search.

Return value is true for a successful line search computation.

Implements NOX::LineSearch::Generic.

Definition at line 93 of file NOX_LineSearch_Backtrack.C.

References NOX::Abstract::Group::computeF(), NOX::Abstract::Group::computeX(), defaultStep, NOX::Utils::fill(), NOX::StatusTest::FiniteValue::finiteNumberTest(), NOX::Solver::Generic::getPreviousSolutionGroup(), NOX::Utils::InnerIteration, maxIters, meritFunctionPtr, minStep, NOX::Abstract::Group::Ok, recoveryStep, and utils.


Member Data Documentation

Printing Utilities.

Definition at line 108 of file NOX_LineSearch_Backtrack.H.

Referenced by compute().

Merit function.

Definition at line 111 of file NOX_LineSearch_Backtrack.H.

Referenced by compute().

Minimum step length (i.e., when we give up).

Definition at line 114 of file NOX_LineSearch_Backtrack.H.

Referenced by compute().

Default step.

Definition at line 117 of file NOX_LineSearch_Backtrack.H.

Referenced by compute().

Default step for linesearch failure.

Definition at line 120 of file NOX_LineSearch_Backtrack.H.

Referenced by compute().

Maximum number of iterations.

Definition at line 125 of file NOX_LineSearch_Backtrack.H.

Referenced by compute().


The documentation for this class was generated from the following files:

Generated on Wed Oct 21 14:28:47 2009 for Nonlinear Solver Project by  doxygen 1.5.9