#include <NOX_Direction_Generic.H>
Public Member Functions | |
Generic () | |
Constructor. | |
virtual | ~Generic () |
Destructor. | |
virtual bool | reset (const Teuchos::RCP< NOX::GlobalData > &gd, Teuchos::ParameterList ¶ms)=0 |
Reset direction based on possibly new parameters. | |
virtual bool | compute (NOX::Abstract::Vector &dir, NOX::Abstract::Group &grp, const NOX::Solver::Generic &solver)=0 |
Compute the direction vector, dir , for a specific method given the current group, grp . | |
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&). |
Generic interface for calculating a search direction, , to be used in updating the iterate.
Definition at line 78 of file NOX_Direction_Generic.H.
NOX::Direction::Generic::Generic | ( | ) | [inline] |
Constructor.
Constructors of derived objects should look like reset().
Definition at line 86 of file NOX_Direction_Generic.H.
virtual NOX::Direction::Generic::~Generic | ( | ) | [inline, virtual] |
virtual bool NOX::Direction::Generic::reset | ( | const Teuchos::RCP< NOX::GlobalData > & | gd, | |
Teuchos::ParameterList & | params | |||
) | [pure virtual] |
Reset direction based on possibly new parameters.
Implemented in NOX::Direction::Broyden, NOX::Direction::Newton, NOX::Direction::NonlinearCG, and NOX::Direction::SteepestDescent.
virtual bool NOX::Direction::Generic::compute | ( | NOX::Abstract::Vector & | dir, | |
NOX::Abstract::Group & | grp, | |||
const NOX::Solver::Generic & | solver | |||
) | [pure 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.
Implemented in NOX::Direction::Broyden, NOX::Direction::Newton, NOX::Direction::NonlinearCG, and NOX::Direction::SteepestDescent.
Referenced by compute().
bool NOX::Direction::Generic::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 in NOX::Direction::Broyden, NOX::Direction::Newton, NOX::Direction::NonlinearCG, and NOX::Direction::SteepestDescent.
Definition at line 46 of file NOX_Direction_Generic.C.
References compute().