NOX::Direction::Broyden Class Reference

Broyden direction More...

#include <NOX_Direction_Broyden.H>

Inheritance diagram for NOX::Direction::Broyden:

Inheritance graph
Collaboration diagram for NOX::Direction::Broyden:

Collaboration graph
List of all members.

Public Member Functions

 Broyden (const Teuchos::RCP< NOX::GlobalData > &gd, Teuchos::ParameterList &params)
virtual ~Broyden ()
virtual bool reset (const Teuchos::RCP< NOX::GlobalData > &gd, Teuchos::ParameterList &params)
 Reset direction based on possibly new parameters.
virtual bool compute (NOX::Abstract::Vector &dir, NOX::Abstract::Group &grp, const NOX::Solver::Generic &solver)
 Not supported for this direction - only works for line search based solver.
virtual bool compute (NOX::Abstract::Vector &dir, NOX::Abstract::Group &grp, const NOX::Solver::LineSearchBased &solver)
 Same as compute(NOX::Abstract::Vector&, NOX::Abstract::Group&, const NOX::Solver::Generic&).


class  BroydenMemory
 Utility class for NOX::Direction::Broyden method to manage the information stored in "limited" memory. More...
class  BroydenMemoryUnit
 Utility class for NOX::Direction::Broyden::BroydenMemory. More...

Detailed Description

Broyden direction

We will calculate a limited-memory Broyden direction of the form

   $d_k = -B_k^{-1} F_k.$

Here $B_k$ is a limited-memory Broyden approximation to the Jacobian of $F$ at $x_k$, and $F_k = F(x_k)$. It is based on apply Broyden updates to the Jacobian from some previous step.

The Broyden direction can only be used with NOX::Solver::LineSearchBased. It cannot be used with any other solver, include NOX::Solver::TrustRegionBased.


To use this direction, specify that the "Method" is "Broyden" in the "Direction" sublist of the parameters that are passed to the solver (see NOX::Direction::Manager for more information on choosing the search direction).

In "Direction"/"Broyden":

Member Function Documentation

bool NOX::Direction::Broyden::compute ( NOX::Abstract::Vector dir,
NOX::Abstract::Group grp,
const NOX::Solver::LineSearchBased solver 
) [virtual]

Same as compute(NOX::Abstract::Vector&, NOX::Abstract::Group&, const NOX::Solver::Generic&).

Enables direct support for line search based solvers for the purpose of efficiency since the LineSearchBased object has a getStep() function that some directions require.

If it is not redefined in the derived class, it will just call the compute with the NOX::Solver::Generic argument.

Reimplemented from NOX::Direction::Generic.

The documentation for this class was generated from the following files:
Generated on Wed May 12 21:41:59 2010 for NOX by  doxygen 1.4.7