29 #ifndef Rythmos_FIRSTORDERERROR_STEP_CONTROL_STRATEGY_DECL_H
30 #define Rythmos_FIRSTORDERERROR_STEP_CONTROL_STRATEGY_DECL_H
32 #include "Rythmos_StepControlStrategyBase.hpp"
33 #include "Thyra_VectorBase.hpp"
34 #include "Teuchos_VerboseObject.hpp"
100 template<
class Scalar>
106 typedef typename Teuchos::ScalarTraits<Scalar>::magnitudeType ScalarMag;
112 const Scalar& stepSize,
const StepSizeType& stepSizeType);
116 StepSizeType* stepSizeType,
int* order);
121 ,
const RCP<
const Thyra::VectorBase<Scalar> >& soln
122 ,
const RCP<
const Thyra::VectorBase<Scalar> >& ee
158 Teuchos::FancyOStream &out,
159 const Teuchos::EVerbosityLevel verbLevel
186 void defaultInitializeAllData_();
188 StepControlStrategyState stepControlState_;
190 RCP<Teuchos::ParameterList> parameterList_;
192 Scalar initialStepSize_;
193 Scalar requestedStepSize_;
194 Scalar currentStepSize_;
195 Scalar nextStepSize_;
196 Scalar stepSizeFactor_;
197 StepSizeType stepSizeType_;
201 Scalar maxStepSizeIncreaseFactor_;
202 Scalar minStepSizeDecreaseFactor_;
203 int numStepFailures_;
204 int maxStepFailures_;
206 Scalar errorRelativeTolerance_;
207 Scalar errorAbsoluteTolerance_;
210 RCP<const Thyra::VectorBase<Scalar> > x_;
211 RCP<const Thyra::VectorBase<Scalar> > dx_;
212 RCP<Thyra::VectorBase<Scalar> > errWtVec_;
215 static const std::string initialStepSizeName_;
216 static const double initialStepSizeDefault_;
218 static const std::string minStepSizeName_;
219 static const double minStepSizeDefault_;
221 static const std::string maxStepSizeName_;
222 static const double maxStepSizeDefault_;
224 static const std::string maxStepSizeIncreaseFactorName_;
225 static const double maxStepSizeIncreaseFactorDefault_;
227 static const std::string minStepSizeDecreaseFactorName_;
228 static const double minStepSizeDecreaseFactorDefault_;
230 static const std::string maxStepFailuresName_;
231 static const int maxStepFailuresDefault_;
233 static const std::string errorRelativeToleranceName_;
234 static const double errorRelativeToleranceDefault_;
236 static const std::string errorAbsoluteToleranceName_;
237 static const double errorAbsoluteToleranceDefault_;
242 void setStepControlState_(StepControlStrategyState state);
248 #endif // Rythmos_FIRSTORDERERROR_STEP_CONTROL_STRATEGY_DECL_H
Base class for defining stepper functionality.
void setParameterList(RCP< Teuchos::ParameterList > const ¶mList)
void nextStepSize(const StepperBase< Scalar > &stepper, Scalar *stepSize, StepSizeType *stepSizeType, int *order)
RCP< Teuchos::ParameterList > getNonconstParameterList()
bool supportsCloning() const
The member functions in the StepControlStrategyBase move you between these states in the following fa...
void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
void setCorrection(const StepperBase< Scalar > &stepper, const RCP< const Thyra::VectorBase< Scalar > > &soln, const RCP< const Thyra::VectorBase< Scalar > > &ee, int solveStatus)
RCP< const Teuchos::ParameterList > getValidParameters() const
RCP< Teuchos::ParameterList > unsetParameterList()
void setStepControlData(const StepperBase< Scalar > &stepper)
Step Control Strategy for first-order time integration.
AttemptedStepStatusFlag rejectStep(const StepperBase< Scalar > &stepper)
StepControlStrategyState getCurrentState()
void initialize(const StepperBase< Scalar > &stepper)
bool acceptStep(const StepperBase< Scalar > &stepper, Scalar *LETValue)
RCP< StepControlStrategyBase< Scalar > > cloneStepControlStrategyAlgorithm() const
void completeStep(const StepperBase< Scalar > &stepper)
void setRequestedStepSize(const StepperBase< Scalar > &stepper, const Scalar &stepSize, const StepSizeType &stepSizeType)