29 #ifndef Rythmos_STEPPER_BASE_DECL_H
30 #define Rythmos_STEPPER_BASE_DECL_H
33 #include "Rythmos_InterpolationBufferBase.hpp"
34 #include "Rythmos_StepperSupportTypes.hpp"
35 #include "Rythmos_Types.hpp"
36 #include "Teuchos_Describable.hpp"
37 #include "Thyra_ModelEvaluator.hpp"
43 const std::string RythmosStepControlSettings_name =
"Step Control Settings";
77 template<
class Scalar>
78 class StepperBase :
virtual public InterpolationBufferBase<Scalar>
167 const RCP<
const Thyra::ModelEvaluator<Scalar> >& model
182 const RCP<Thyra::ModelEvaluator<Scalar> >& model
203 virtual RCP<const Thyra::ModelEvaluator<Scalar> >
208 virtual RCP<Thyra::ModelEvaluator<Scalar> >
230 const Thyra::ModelEvaluatorBase::InArgs<Scalar> &initialCondition
239 virtual Thyra::ModelEvaluatorBase::InArgs<Scalar>
278 virtual Scalar
takeStep(Scalar dt, StepSizeType stepType) = 0;
309 bool isEmbeddedRK_ =
false;
318 template<
class Scalar>
319 bool isInitialized(
const StepperBase<Scalar>& stepper );
324 #endif //Rythmos_STEPPER_BASE_DECL_H
virtual Scalar takeStep(Scalar dt, StepSizeType stepType)=0
Take a step.
Base class for defining stepper functionality.
virtual const StepStatus< Scalar > getStepStatus() const =0
Get current stepper status after a step has been taken.
virtual void setInitialCondition(const Thyra::ModelEvaluatorBase::InArgs< Scalar > &initialCondition)=0
Specify initial condition and re-initialize.
virtual void setModel(const RCP< const Thyra::ModelEvaluator< Scalar > > &model)=0
Specify the model problem to integrate.
virtual bool acceptsModel() const
Return if this stepper accepts a model.
virtual void setNonconstModel(const RCP< Thyra::ModelEvaluator< Scalar > > &model)=0
Accept a nonconst model.
virtual void setStepControlData(const StepperBase &stepper)
Set step control data from another stepper.
virtual RCP< Thyra::ModelEvaluator< Scalar > > getNonconstModel()=0
Get the model nonconst.
virtual RCP< const Thyra::ModelEvaluator< Scalar > > getModel() const =0
Get the model.
virtual bool isImplicit() const
Return if this stepper is an implicit stepper.
virtual bool supportsCloning() const
Return if this stepper supports cloning or not.
virtual Thyra::ModelEvaluatorBase::InArgs< Scalar > getInitialCondition() const =0
Get the currently set initial condtion.
virtual bool modelIsConst() const
Return of the model is only const or can be returned as a non-const object.
virtual RCP< StepperBase< Scalar > > cloneStepperAlgorithm() const
Clone the stepper object if supported.