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::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. 
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:
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.
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.