|
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 00036 virtual bool handlesFailedTimeSteps() const { return false; } 00037 00043 virtual RCP<IntegrationControlStrategyBase<Scalar> > 00044 cloneIntegrationControlStrategy() const = 0; 00045 00056 virtual void resetIntegrationControlStrategy( 00057 const TimeRange<Scalar> &integrationTimeDomain 00058 ) = 0; 00059 00089 virtual StepControlInfo<Scalar> 00090 getNextStepControlInfo( 00091 const StepperBase<Scalar> &stepper, 00092 const StepControlInfo<Scalar> &stepCtrlInfoLast, 00093 const int timeStepIter 00094 ) = 0; 00095 00115 virtual bool resetForFailedTimeStep( 00116 const StepperBase<Scalar> &stepper, 00117 const StepControlInfo<Scalar> &stepCtrlInfoLast, 00118 const int timeStepIter, 00119 const StepControlInfo<Scalar> &stepCtrlInfo 00120 ) 00121 { return false; } 00122 00123 00124 }; 00125 00126 00127 } // namespace Rythmos 00128 00129 00130 #endif // RYTHMOS_INTEGRATION_CONTROL_STRATEGY_BASE_HPP
1.7.6.1