|
Rythmos - Transient Integration for Differential Equations Version of the Day
|
00001 00002 #ifndef RYTHMOS_INTEGRATION_CONTROL_STRATEGY_BASE_HPP 00003 #define RYTHMOS_INTEGRATION_CONTROL_STRATEGY_BASE_HPP 00004 00005 #include "Rythmos_Types.hpp" 00006 #include "Teuchos_Describable.hpp" 00007 #include "Teuchos_VerboseObject.hpp" 00008 #include "Teuchos_ParameterListAcceptor.hpp" 00009 00010 namespace Rythmos { 00011 00012 00013 // Forwards 00014 template<class Scalar> class StepControlInfo; 00015 template<class Scalar> class TimeRange; 00016 template<class Scalar> class StepperBase; 00017 00018 00024 template<class Scalar> 00025 class IntegrationControlStrategyBase 00026 : virtual public Teuchos::Describable, 00027 virtual public Teuchos::VerboseObject<IntegrationControlStrategyBase<Scalar> >, 00028 virtual public Teuchos::ParameterListAcceptor 00029 { 00030 public: 00031 00037 virtual RCP<IntegrationControlStrategyBase<Scalar> > 00038 cloneIntegrationControlStrategy() const = 0; 00039 00050 virtual void resetIntegrationControlStrategy( 00051 const TimeRange<Scalar> &integrationTimeDomain 00052 ) = 0; 00053 00083 virtual StepControlInfo<Scalar> 00084 getNextStepControlInfo( 00085 const StepperBase<Scalar> &stepper, 00086 const StepControlInfo<Scalar> &stepCtrlInfoLast, 00087 const int timeStepIter 00088 ) = 0; 00089 00090 }; 00091 00092 00093 } // namespace Rythmos 00094 00095 00096 #endif // RYTHMOS_INTEGRATION_CONTROL_STRATEGY_BASE_HPP
1.7.4