NOX
Development
|
Adaptive step size control strategy More...
#include <LOCA_StepSize_Adaptive.H>
Public Member Functions | |
Adaptive (const Teuchos::RCP< LOCA::GlobalData > &global_data, const Teuchos::RCP< LOCA::Parameter::SublistParser > &topParams, const Teuchos::RCP< Teuchos::ParameterList > &stepsizeParams) | |
Constructor. | |
virtual | ~Adaptive () |
Destructor. | |
virtual NOX::Abstract::Group::ReturnType | computeStepSize (LOCA::MultiContinuation::AbstractStrategy &curGroup, const LOCA::MultiContinuation::ExtendedVector &predictor, const NOX::Solver::Generic &solver, const LOCA::Abstract::Iterator::StepStatus &stepStatus, const LOCA::Abstract::Iterator &stepper, double &stepSize) |
Compute the step size as described above. More... | |
Public Member Functions inherited from LOCA::StepSize::Constant | |
Constant (const Teuchos::RCP< LOCA::GlobalData > &global_data, const Teuchos::RCP< LOCA::Parameter::SublistParser > &topParams, const Teuchos::RCP< Teuchos::ParameterList > &stepsizeParams) | |
Constructor. | |
virtual | ~Constant () |
Destructor. | |
virtual double | getPrevStepSize () const |
Returns previous step size. | |
virtual double | getStartStepSize () const |
Returns initial step size. | |
Public Member Functions inherited from LOCA::StepSize::AbstractStrategy | |
AbstractStrategy () | |
Constructor. | |
virtual | ~AbstractStrategy () |
Destructor. | |
Protected Attributes | |
double | agrValue |
Stores the aggressiveness factor . | |
double | maxNonlinearSteps |
Maximum number of nonlinear iterations. | |
Protected Attributes inherited from LOCA::StepSize::Constant | |
Teuchos::RCP< LOCA::GlobalData > | globalData |
Global data. | |
double | maxStepSize |
Maximum step size. | |
double | minStepSize |
Minimum step size. | |
double | startStepSize |
Initial step size. | |
double | failedFactor |
Factor by which step size is reduced after a failed step. | |
double | successFactor |
Factor by which step size is increased after a successful step. | |
double | prevStepSize |
Previous step size. | |
bool | isFirstStep |
Flag indicating if this is the first step. | |
Additional Inherited Members | |
Protected Member Functions inherited from LOCA::StepSize::Constant | |
virtual NOX::Abstract::Group::ReturnType | clipStepSize (double &stepSize) |
Clip the computed step size to the bounds given by the maximum and minimum step sizes. More... | |
Adaptive step size control strategy
This class implements an adaptive step size control strategy derived from the strategy implemented in the LOCA::StepSize::Constant class. If the previous step was unsucessful, the step size is cut in half as in the constant strategy, but if the step was sucessful this strategy increases the step size based on the number of nonlinear solver iterations required in the previous step. In particular, the new step size is given by
where is an aggressiveness factor, is the number of nonlinear solver iterations in the previous step, and is the maximum number of nonlinear solver iterations.
The parameters used by this class supplied in the constructor are the same as used by the Constant class in addition to:
|
virtual |
Compute the step size as described above.
curGroup | [in] Current continuation group |
predictor | [in] Current predictor direction |
solver | [in] Solver from previous step |
stepStatus | [in] Status of previous step |
stepper | [in] Stepper |
stepSize | [out] Computed step size |
Reimplemented from LOCA::StepSize::Constant.
References LOCA::StepSize::Constant::failedFactor, NOX::Solver::Generic::getNumIterations(), LOCA::Extended::Vector::getScalar(), LOCA::MultiContinuation::AbstractStrategy::getStepSizeScaleFactor(), LOCA::StepSize::Constant::isFirstStep, LOCA::StepSize::Constant::maxStepSize, LOCA::StepSize::Constant::minStepSize, LOCA::StepSize::Constant::startStepSize, and LOCA::Abstract::Iterator::Unsuccessful.