NOX  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Types | Public Member Functions | List of all members
NOX::Direction::SteepestDescent Class Reference

Calculates the steepest descent direction. More...

#include <NOX_Direction_SteepestDescent.H>

Inheritance diagram for NOX::Direction::SteepestDescent:
Inheritance graph
[legend]
Collaboration diagram for NOX::Direction::SteepestDescent:
Collaboration graph
[legend]

Public Types

enum  ScalingType { TwoNorm, QuadMin, FunctionTwoNorm, None }
 Scaling types. More...
 

Public Member Functions

 SteepestDescent (const Teuchos::RCP< NOX::GlobalData > &gd, Teuchos::ParameterList &params)
 Constructor.
 
 ~SteepestDescent ()
 Destructor.
 
bool reset (const Teuchos::RCP< NOX::GlobalData > &gd, Teuchos::ParameterList &params)
 Reset direction based on possibly new parameters.
 
bool compute (NOX::Abstract::Vector &dir, NOX::Abstract::Group &grp, const NOX::Solver::Generic &solver)
 Compute the direction vector, dir, for a specific method given the current group, grp. More...
 
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&) More...
 
- Public Member Functions inherited from NOX::Direction::Generic
 Generic ()
 Constructor. More...
 
virtual ~Generic ()
 Destructor.
 

Detailed Description

Calculates the steepest descent direction.

Calculates the direction

\[ d = - \gamma \nabla f(x) = -\gamma J(x)^T F(x) \]

This is the (scaled) gradient of the function $f(x) = \frac{1}{2} \|F(x)\|^2$. The valued of $\gamma$ depends on the choice of "Scaling Type" below.

Parameters

"Direction":

"Direction"/"Steepest Descent":

Member Enumeration Documentation

Scaling types.

Enumerator
TwoNorm 

Scale by the 2-norm of the gradient.

QuadMin 

Scale by the step that minimizes the 1-D quadratic.

FunctionTwoNorm 

Scale by the 2-norm of F.

None 

No scaling at all.

Member Function Documentation

bool NOX::Direction::SteepestDescent::compute ( NOX::Abstract::Vector dir,
NOX::Abstract::Group grp,
const NOX::Solver::Generic solver 
)
virtual

Compute the direction vector, dir, for a specific method given the current group, grp.

The grp is not const so that we can compute the F vector, the Jacobian matrix, the Newton vector, and so on.

Const access to the solver is used for getting additional information such as the past solution, the iteration number, and so on.

Implements NOX::Direction::Generic.

References NOX::Abstract::Group::computeF(), NOX::Abstract::Group::computeJacobian(), FunctionTwoNorm, NOX::Abstract::Group::getNormF(), None, NOX::Abstract::Vector::norm(), NOX::Abstract::Group::Ok, QuadMin, NOX::Abstract::Vector::scale(), and TwoNorm.

bool NOX::Direction::SteepestDescent::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.

References NOX::Direction::Generic::compute().


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