#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::Stepper &stepper, double &stepSize) |
Compute the step size as described above. | |
Protected Attributes | |
double | agrValue |
Stores the aggressiveness factor ![]() | |
double | maxNonlinearSteps |
Maximum number of nonlinear iterations. |
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:
Definition at line 73 of file LOCA_StepSize_Adaptive.H.
LOCA::StepSize::Adaptive::Adaptive | ( | const Teuchos::RCP< LOCA::GlobalData > & | global_data, | |
const Teuchos::RCP< LOCA::Parameter::SublistParser > & | topParams, | |||
const Teuchos::RCP< Teuchos::ParameterList > & | stepsizeParams | |||
) |
Constructor.
Definition at line 49 of file LOCA_StepSize_Adaptive.C.
References agrValue, and maxNonlinearSteps.
LOCA::StepSize::Adaptive::~Adaptive | ( | ) | [virtual] |
NOX::Abstract::Group::ReturnType LOCA::StepSize::Adaptive::computeStepSize | ( | LOCA::MultiContinuation::AbstractStrategy & | curGroup, | |
const LOCA::MultiContinuation::ExtendedVector & | predictor, | |||
const NOX::Solver::Generic & | solver, | |||
const LOCA::Abstract::Iterator::StepStatus & | stepStatus, | |||
const LOCA::Stepper & | stepper, | |||
double & | stepSize | |||
) | [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.
Definition at line 71 of file LOCA_StepSize_Adaptive.C.
References agrValue, LOCA::StepSize::Constant::clipStepSize(), LOCA::StepSize::Constant::failedFactor, NOX::Solver::Generic::getNumIterations(), LOCA::Extended::Vector::getScalar(), LOCA::MultiContinuation::AbstractStrategy::getStepSizeScaleFactor(), LOCA::StepSize::Constant::isFirstStep, maxNonlinearSteps, LOCA::StepSize::Constant::maxStepSize, LOCA::StepSize::Constant::minStepSize, LOCA::StepSize::Constant::prevStepSize, LOCA::StepSize::Constant::startStepSize, and LOCA::Abstract::Iterator::Unsuccessful.
double LOCA::StepSize::Adaptive::agrValue [protected] |
Stores the aggressiveness factor .
Definition at line 109 of file LOCA_StepSize_Adaptive.H.
Referenced by Adaptive(), and computeStepSize().
double LOCA::StepSize::Adaptive::maxNonlinearSteps [protected] |
Maximum number of nonlinear iterations.
Definition at line 112 of file LOCA_StepSize_Adaptive.H.
Referenced by Adaptive(), and computeStepSize().