00001 00002 #ifndef RYTHMOS_INTEGRATION_CONTROL_STRATEGY_BASE_HPP 00003 #define RYTHMOS_INTEGRATION_CONTROL_STRATEGY_BASE_HPP 00004 00005 #include "Rythmos_StepControlInfo.hpp" 00006 #include "Teuchos_Describable.hpp" 00007 #include "Teuchos_VerboseObject.hpp" 00008 00009 namespace Rythmos { 00010 00011 00012 // Forwards 00013 template<class Scalar> class TimeRange; 00014 template<class Scalar> class StepperBase; 00015 00016 00022 template<class Scalar> 00023 class IntegrationControlStrategyBase 00024 : virtual public Teuchos::Describable, 00025 virtual public Teuchos::VerboseObject<IntegrationControlStrategyBase<Scalar> > 00026 { 00027 public: 00028 00034 virtual RCP<IntegrationControlStrategyBase<Scalar> > 00035 cloneIntegrationControlStrategy() const = 0; 00036 00047 virtual void resetIntegrationControlStrategy( 00048 const TimeRange<Scalar> &integrationTimeDomain 00049 ) = 0; 00050 00080 virtual StepControlInfo<Scalar> 00081 getNextStepControlInfo( 00082 const StepperBase<Scalar> &stepper, 00083 const StepControlInfo<Scalar> &stepCtrlInfoLast, 00084 const int timeStepIter 00085 ) = 0; 00086 00087 }; 00088 00089 00090 } // namespace Rythmos 00091 00092 00093 #endif // RYTHMOS_INTEGRATION_CONTROL_STRATEGY_BASE_HPP
1.6.1