NOX Development
Public Member Functions | Protected Member Functions | Protected Attributes
LOCA::StepSize::Constant Class Reference

Constant step size control strategy More...

#include <LOCA_StepSize_Constant.H>

Inheritance diagram for LOCA::StepSize::Constant:
Inheritance graph
[legend]
Collaboration diagram for LOCA::StepSize::Constant:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 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
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.
virtual double getPrevStepSize () const
 Returns previous step size.
virtual double getStartStepSize () const
 Returns initial step size.

Protected Member Functions

virtual
NOX::Abstract::Group::ReturnType 
clipStepSize (double &stepSize)
 Clip the computed step size to the bounds given by the maximum and minimum step sizes.

Protected Attributes

Teuchos::RCP< LOCA::GlobalDataglobalData
 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.

Detailed Description

Constant step size control strategy

This class implements a roughly constant step size control strategy. If the previous step was sucessful, the new step size is set equal to the old, otherwise the step size is cut by a supplied factor. Once a sucessful step is made, the step size is increased by a supplied factor until the initial step size is reached.

This class also incorporates rescaling of the continuation parameter when calculating a step size (common in arc-length continuation). For the first continuation step, the step size is chosen so that step size times the parameter component of the predictor is equal to the initial step size. From then on, the step size is multiplied by the step size scale factor (see ( LOCA::MultiContinuation::ArcLengthGroup) which incorporates rescaling of the continuation parameter.

The parameters used by this class supplied in the constructor are:


Member Function Documentation

NOX::Abstract::Group::ReturnType LOCA::StepSize::Constant::clipStepSize ( double &  stepSize) [protected, virtual]

Clip the computed step size to the bounds given by the maximum and minimum step sizes.

Returns NOX::Abstract::Group::Failed if the computed step size is smaller than the minimum step size

References NOX::Utils::Error, NOX::Abstract::Group::Failed, and NOX::Abstract::Group::Ok.

NOX::Abstract::Group::ReturnType LOCA::StepSize::Constant::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.

Parameters:
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
Returns:
ReturnType code indicating success or failure Returns NOX::Abstract::Group::Failed if the computed step size is smaller than the minimum step size

Implements LOCA::StepSize::AbstractStrategy.

Reimplemented in LOCA::StepSize::Adaptive.

References LOCA::Extended::Vector::getScalar(), LOCA::MultiContinuation::AbstractStrategy::getStepSizeScaleFactor(), and LOCA::Abstract::Iterator::Unsuccessful.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends