#include <NOX_LineSearch_Backtrack.H>
Public Member Functions | |
Backtrack (const Teuchos::RCP< NOX::GlobalData > &gd, Teuchos::ParameterList ¶ms) | |
Constructor. | |
~Backtrack () | |
Destructor. | |
bool | reset (const Teuchos::RCP< NOX::GlobalData > &gd, Teuchos::ParameterList ¶ms) |
bool | compute (NOX::Abstract::Group &newgrp, double &step, const NOX::Abstract::Vector &dir, const NOX::Solver::Generic &s) |
Perform a line search. | |
Private Attributes | |
Teuchos::RCP< NOX::Utils > | utils |
Printing Utilities. | |
Teuchos::RCP < NOX::MeritFunction::Generic > | meritFunctionPtr |
Merit function. | |
double | minStep |
Minimum step length (i.e., when we give up). | |
double | defaultStep |
Default step. | |
double | recoveryStep |
Default step for linesearch failure. | |
double | reductionFactor |
int | maxIters |
Maximum number of iterations. |
This line search starts with the step length defined by "Default Step". It checks to see if the norm of the right hand side (RHS) has been reduced. If so, it exits successfully. Otherwise, it reduces the step length by the reduction factor (defaults to one-half). It continues to repeat this procedure until it either finds a reduction in the norm of the RHS or the step is less than that specified by "Minimum Step". In the later case, the line search has failed, and we take the step defined by "Recovery Step".
This line search can be called via NOX::LineSearch::Manager.
The following parameters can be specified for this line search in the "Backtrack" sublist of the "Line Search" sublist.
Definition at line 85 of file NOX_LineSearch_Backtrack.H.
NOX::LineSearch::Backtrack::Backtrack | ( | const Teuchos::RCP< NOX::GlobalData > & | gd, | |
Teuchos::ParameterList & | params | |||
) |
NOX::LineSearch::Backtrack::~Backtrack | ( | ) |
bool NOX::LineSearch::Backtrack::compute | ( | NOX::Abstract::Group & | grp, | |
double & | step, | |||
const NOX::Abstract::Vector & | dir, | |||
const NOX::Solver::Generic & | s | |||
) | [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.
Implements NOX::LineSearch::Generic.
Definition at line 93 of file NOX_LineSearch_Backtrack.C.
References NOX::Abstract::Group::computeF(), NOX::Abstract::Group::computeX(), defaultStep, NOX::Utils::fill(), NOX::StatusTest::FiniteValue::finiteNumberTest(), NOX::Solver::Generic::getPreviousSolutionGroup(), NOX::Utils::InnerIteration, maxIters, meritFunctionPtr, minStep, NOX::Abstract::Group::Ok, recoveryStep, and utils.
Teuchos::RCP<NOX::Utils> NOX::LineSearch::Backtrack::utils [private] |
Printing Utilities.
Definition at line 108 of file NOX_LineSearch_Backtrack.H.
Referenced by compute().
Teuchos::RCP<NOX::MeritFunction::Generic> NOX::LineSearch::Backtrack::meritFunctionPtr [private] |
double NOX::LineSearch::Backtrack::minStep [private] |
Minimum step length (i.e., when we give up).
Definition at line 114 of file NOX_LineSearch_Backtrack.H.
Referenced by compute().
double NOX::LineSearch::Backtrack::defaultStep [private] |
double NOX::LineSearch::Backtrack::recoveryStep [private] |
Default step for linesearch failure.
Definition at line 120 of file NOX_LineSearch_Backtrack.H.
Referenced by compute().
int NOX::LineSearch::Backtrack::maxIters [private] |
Maximum number of iterations.
Definition at line 125 of file NOX_LineSearch_Backtrack.H.
Referenced by compute().