NOX::LineSearch::Backtrack Class Reference

Generic backtracking line search. More...

#include <NOX_LineSearch_Backtrack.H>

Inheritance diagram for NOX::LineSearch::Backtrack:

[legend]
Collaboration diagram for NOX::LineSearch::Backtrack:
[legend]
List of all members.

Public Member Functions

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

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.


Member Function Documentation

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

Perform a line search.

Let

  • $x_{\rm new}$ denotes the new solution to be calculated (corresponding to grp)
  • $\lambda$ denotes the step to be calculated (step),
  • $d$ denotes the search direction (dir).
  • $x_{\rm old}$ denotes the previous solution (i.e., the result of s.getPreviousSolutionGroup().getX())

In the end, we should have computed $ \lambda $ and updated grp so that

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

Ideally, $ \|F(x_{\rm new})\| < \|F(x_{\rm old})\| $.

Implements NOX::LineSearch::Generic.


The documentation for this class was generated from the following files:
Generated on Thu Sep 18 12:38:39 2008 for NOX by doxygen 1.3.9.1