29 #ifndef Rythmos_ExplicitRK_STEPPER_DECL_H 30 #define Rythmos_ExplicitRK_STEPPER_DECL_H 32 #include "Rythmos_RKButcherTableauAcceptingStepperBase.hpp" 33 #include "Rythmos_RKButcherTableauBase.hpp" 34 #include "Rythmos_Types.hpp" 35 #include "Thyra_ModelEvaluator.hpp" 40 template<
class Scalar>
44 typedef Teuchos::ScalarTraits<Scalar> ST;
45 typedef typename Teuchos::ScalarTraits<Scalar>::magnitudeType ScalarMag;
73 Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
get_x_space()
const;
76 void setModel(
const Teuchos::RCP<
const Thyra::ModelEvaluator<Scalar> >& model);
79 void setNonconstModel(
const Teuchos::RCP<Thyra::ModelEvaluator<Scalar> >& model);
82 Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> >
getModel()
const;
92 const Thyra::ModelEvaluatorBase::InArgs<Scalar> &initialCondition
99 Scalar
takeStep(Scalar dt, StepSizeType flag);
106 Teuchos::FancyOStream &out,
107 const Teuchos::EVerbosityLevel verbLevel
113 const Array<Scalar>& time_vec
114 ,
const Array<Teuchos::RCP<
const Thyra::VectorBase<Scalar> > >& x_vec
115 ,
const Array<Teuchos::RCP<
const Thyra::VectorBase<Scalar> > >& xdot_vec
120 const Array<Scalar>& time_vec
121 ,Array<RCP<
const VectorBase<Scalar> > >* x_vec
122 ,Array<RCP<
const VectorBase<Scalar> > >* xdot_vec
123 ,Array<ScalarMag>* accuracy_vec)
const;
129 void getNodes(Array<Scalar>* time_vec)
const;
139 void setParameterList(Teuchos::RCP<Teuchos::ParameterList>
const& paramList);
152 Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> > model_;
153 Teuchos::RCP<Thyra::VectorBase<Scalar> > solution_vector_;
154 Teuchos::RCP<Thyra::VectorBase<Scalar> > solution_vector_old_;
155 Array<Teuchos::RCP<Thyra::VectorBase<Scalar> > > k_vector_;
156 Teuchos::RCP<Thyra::VectorBase<Scalar> > ktemp_vector_;
158 Thyra::ModelEvaluatorBase::InArgs<Scalar> basePoint_;
160 RCP<const RKButcherTableauBase<Scalar> > erkButcherTableau_;
167 Teuchos::RCP<Teuchos::ParameterList> parameterList_;
171 bool haveInitialCondition_;
174 void defaultInitializeAll_();
180 template<
class Scalar>
181 RCP<ExplicitRKStepper<Scalar> > explicitRKStepper();
183 template<
class Scalar>
184 RCP<ExplicitRKStepper<Scalar> > explicitRKStepper(
185 const Teuchos::RCP<Thyra::ModelEvaluator<Scalar> >& model
188 template<
class Scalar>
189 RCP<ExplicitRKStepper<Scalar> > explicitRKStepper(
190 const Teuchos::RCP<Thyra::ModelEvaluator<Scalar> >& model,
191 const RCP<
const RKButcherTableauBase<Scalar> >& rkbt
196 #endif //Rythmos_ExplicitRK_STEPPER_DECL_H Teuchos::RCP< Teuchos::ParameterList > unsetParameterList()
Scalar takeStep(Scalar dt, StepSizeType flag)
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_x_space() const
Teuchos::RCP< Teuchos::ParameterList > getNonconstParameterList()
RCP< const Teuchos::ParameterList > getValidParameters() const
void getNodes(Array< Scalar > *time_vec) const
Get interpolation nodes.
void setParameterList(Teuchos::RCP< Teuchos::ParameterList > const ¶mList)
Redefined from Teuchos::ParameterListAcceptor.
const StepStatus< Scalar > getStepStatus() const
void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
int getOrder() const
Get order of interpolation.
void setRKButcherTableau(const RCP< const RKButcherTableauBase< Scalar > > &rkbt)
Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > getModel() const
void setModel(const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model)
void getPoints(const Array< Scalar > &time_vec, Array< RCP< const VectorBase< Scalar > > > *x_vec, Array< RCP< const VectorBase< Scalar > > > *xdot_vec, Array< ScalarMag > *accuracy_vec) const
Get values from buffer.
void removeNodes(Array< Scalar > &time_vec)
Remove interpolation nodes.
Thyra::ModelEvaluatorBase::InArgs< Scalar > getInitialCondition() const
Mix-in interface stepper objects that accept an RK Butcher Tableau.
RCP< StepperBase< Scalar > > cloneStepperAlgorithm() const
RCP< const RKButcherTableauBase< Scalar > > getRKButcherTableau() const
RCP< Thyra::ModelEvaluator< Scalar > > getNonconstModel()
bool supportsCloning() const
void setNonconstModel(const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &model)
TimeRange< Scalar > getTimeRange() const
void addPoints(const Array< Scalar > &time_vec, const Array< Teuchos::RCP< const Thyra::VectorBase< Scalar > > > &x_vec, const Array< Teuchos::RCP< const Thyra::VectorBase< Scalar > > > &xdot_vec)
void setInitialCondition(const Thyra::ModelEvaluatorBase::InArgs< Scalar > &initialCondition)