NOX::LineSearch::Manager Class Reference

Manager for all different line searches More...

#include <NOX_LineSearch_Manager.H>

Inheritance diagram for NOX::LineSearch::Manager:

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

Public Member Functions

 Manager (const NOX::Utils &u, NOX::Parameter::List &params)
 Constructor.
 ~Manager ()
 Destructor.
bool reset (NOX::Parameter::List &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

Manager for all different line searches

Parameters

"LineSearch":

Using a User-Defined Line Search

The user has the option of passing in a user-defined line search as follows.

  1. Create a line search that derives from NOX::LineSearch::Generic. For example, the direction Foo might be defined as shown below.

    class Foo : public NOX::LineSearch::Generic {
    // Insert class definition here
    }
    

  2. Define a class that derives from NOX::Parameter::LineSearchConstructor. The easiest way to do this is to use the templated version of this class, called NOX::Parameter::LineSearchConstructorT.

  3. Create the appropriate entries in the parameter list, as follows.

    params.sublist("Line Search").setParameter("Method", "User Defined");
    params.sublist("Line Search").setParameter("User Defined Constructor", foo);
    


Member Function Documentation

bool NOX::LineSearch::Manager::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:40:51 2008 for NOX by doxygen 1.3.9.1