29 #ifndef Rythmos_IMPLICITBDF_STEPPER_RAMPING_STEP_CONTROL_DECL_H 
   30 #define Rythmos_IMPLICITBDF_STEPPER_RAMPING_STEP_CONTROL_DECL_H 
   32 #include "Rythmos_ErrWtVecCalcAcceptingStepControlStrategyBase.hpp" 
   33 #include "Rythmos_ImplicitBDFStepperStepControl.hpp"  
   68   template<
class Scalar>
 
   74     typedef typename Teuchos::ScalarTraits<Scalar>::magnitudeType ScalarMag;
 
   82                               const Scalar& stepSize, 
const StepSizeType& stepSizeType);
 
   86                       StepSizeType* stepSizeType, 
int* order);
 
   91         ,
const RCP<
const Thyra::VectorBase<Scalar> >& soln
 
   92         ,
const RCP<
const Thyra::VectorBase<Scalar> >& ee
 
  129     void setErrWtVecCalc(
const RCP<ErrWtVecCalcBase<Scalar> >& errWtVecCalc);
 
  140       Teuchos::FancyOStream &out,
 
  141       const Teuchos::EVerbosityLevel verbLevel
 
  167     int numberOfSteps() 
const;
 
  169     int numberOfFailedSteps() 
const;
 
  171     Scalar currentStepSize() 
const;
 
  173     int currentOrder() 
const;
 
  180         const Thyra::VectorBase<Scalar>& weight,
 
  181         const Thyra::VectorBase<Scalar>& vector
 
  184     void setStepControlState_(StepControlStrategyState state);
 
  186     void updateCoeffs_();
 
  189     bool doOutput_(Teuchos::EVerbosityLevel verbLevel);
 
  193     StepControlStrategyState stepControlState_;
 
  194     RCP<ErrWtVecCalcBase<Scalar> > errWtVecCalc_;
 
  195     RCP<Teuchos::ParameterList> parameterList_;
 
  197     StepSizeType stepSizeType_;
 
  198     Scalar requestedStepSize_;
 
  199     Scalar currentStepSize_;
 
  201     Scalar nextStepSize_;
 
  205     int totalNumberOfFailedSteps_;
 
  206     int countOfConstantStepsAfterFailure_;
 
  207     int newtonConvergenceStatus_;
 
  212     RCP<const Thyra::VectorBase<Scalar> > ee_; 
 
  213     RCP<Thyra::VectorBase<Scalar> > errWtVec_; 
 
  214     RCP<Thyra::VectorBase<Scalar> > delta_;
 
  215     ScalarMag relErrTol_; 
 
  216     ScalarMag absErrTol_; 
 
  219     int numConstantSteps_;
 
  220     Scalar initialStepSize_;
 
  223     Scalar stepSizeIncreaseFactor_;
 
  224     Scalar stepSizeDecreaseFactor_;
 
  227     bool useLETToDetermineConvergence_;
 
  228     bool restrictStepSizeByNumberOfNonlinearIterations_;
 
  229     int numberOfNonlinearIterationsForStepSizeRestriction_;
 
  230     std::vector<Scalar> breakPoints_; 
 
  231     std::list<Scalar> currentBreakPoints_; 
 
  235     Array<Scalar> alpha_;    
 
  237     Array<Scalar> sigma_;    
 
  238     Array<Scalar> gamma_;    
 
  253 #endif // Rythmos_IMPLICITBDF_STEPPER_STEP_CONTROL_DECL_H 
void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const 
 
Base class for defining stepper functionality. 
 
void setParameterList(RCP< Teuchos::ParameterList > const ¶mList)
 
RCP< Teuchos::ParameterList > unsetParameterList()
 
RCP< Teuchos::ParameterList > getNonconstParameterList()
 
bool supportsCloning() const 
 
RCP< const ErrWtVecCalcBase< Scalar > > getErrWtVecCalc() const 
 
void setStepControlData(const StepperBase< Scalar > &stepper)
 
StepControlStrategyState getCurrentState()
 
bool acceptStep(const StepperBase< Scalar > &stepper, Scalar *LETValue)
 
void setRequestedStepSize(const StepperBase< Scalar > &stepper, const Scalar &stepSize, const StepSizeType &stepSizeType)
 
Mix-in interface for step control strategy objects that accept an external error weight calculation a...
 
void setErrWtVecCalc(const RCP< ErrWtVecCalcBase< Scalar > > &errWtVecCalc)
 
void initialize(const StepperBase< Scalar > &stepper)
 
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< StepControlStrategyBase< Scalar > > cloneStepControlStrategyAlgorithm() const 
 
void nextStepSize(const StepperBase< Scalar > &stepper, Scalar *stepSize, StepSizeType *stepSizeType, int *order)
 
void completeStep(const StepperBase< Scalar > &stepper)
 
AttemptedStepStatusFlag rejectStep(const StepperBase< Scalar > &stepper)