#include <NOX_LineSearch_Generic.H>
Public Member Functions | |
Generic () | |
Default constructor. | |
virtual | ~Generic () |
Destructor. | |
virtual bool | compute (NOX::Abstract::Group &grp, double &step, const NOX::Abstract::Vector &dir, const NOX::Solver::Generic &s)=0 |
Perform a line search. |
Every line search should respect the following Parameter:
Definition at line 73 of file NOX_LineSearch_Generic.H.
NOX::LineSearch::Generic::Generic | ( | ) | [inline] |
virtual NOX::LineSearch::Generic::~Generic | ( | ) | [inline, virtual] |
virtual bool NOX::LineSearch::Generic::compute | ( | NOX::Abstract::Group & | grp, | |
double & | step, | |||
const NOX::Abstract::Vector & | dir, | |||
const NOX::Solver::Generic & | s | |||
) | [pure virtual] |
Perform a line search.
On input:
grp | The initial solution vector, ![]() | |
dir | A vector of directions to be used in the line search, ![]() | |
s | The nonlinear solver. |
step | The distance the direction was scaled, ![]() | |
grp | The grp is updated with a new solution, ![]() |
Ideally, (e.g the final direction is a descent direction).
Note that the dir
object is a std::vector. For typical line searches as described in the above equation, this vector is of size one. We have used a std::vector to allow for special cases of multi-directional line searches such as the Bader/Schnabel curvillinear line search.
Return value is true for a successful line search computation.
Implemented in NOX::LineSearch::Backtrack, NOX::LineSearch::FullStep, NOX::LineSearch::MoreThuente, NOX::LineSearch::NonlinearCG, and NOX::LineSearch::Polynomial.