|
NOX
Development
|
Base class line search interface. More...
#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. More... | |
Base class line search interface.
Every line search should respect the following Parameter:
|
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. |
On output:
| step | The distance the direction was scaled, . |
| grp | The grp is updated with a new solution, , resulting from the linesearch. Normally, for a single direction line search, this is computed as: |
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::Polynomial, NOX::LineSearch::MoreThuente, NOX::LineSearch::NonlinearCG, NOX::LineSearch::Backtrack, NOX::LineSearch::SafeguardedStep, NOX::LineSearch::SafeguardedDirection, and NOX::LineSearch::FullStep.
1.8.5