#include <NOX_Direction_Broyden.H>
Inheritance diagram for NOX::Direction::Broyden:
Public Member Functions | |
Broyden (const Teuchos::RCP< NOX::GlobalData > &gd, Teuchos::ParameterList ¶ms) | |
Constructor. | |
virtual | ~Broyden () |
Destructor. | |
virtual bool | reset (const Teuchos::RCP< NOX::GlobalData > &gd, Teuchos::ParameterList ¶ms) |
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&). | |
Classes | |
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... |
We will calculate a limited-memory Broyden direction of the form
Here is a limited-memory Broyden approximation to the Jacobian of at , and . It is based on apply Broyden updates to the Jacobian from some previous step.
Parameters
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":
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.