29 #ifndef RYTHMOS_STEPPER_HELPERS_DECL_HPP
30 #define RYTHMOS_STEPPER_HELPERS_DECL_HPP
33 #include "Rythmos_Types.hpp"
34 #include "Rythmos_StepperBase.hpp"
35 #include "Thyra_ModelEvaluator.hpp"
36 #include "Rythmos_InterpolatorBase.hpp"
37 #include "Teuchos_ConstNonconstObjectContainer.hpp"
45 template<
class Scalar>
46 void assertValidModel(
47 const StepperBase<Scalar>& stepper,
48 const Thyra::ModelEvaluator<Scalar>& model
58 template<
class Scalar>
59 bool setDefaultInitialConditionFromNominalValues(
60 const Thyra::ModelEvaluator<Scalar>& model,
61 const Ptr<StepperBase<Scalar> >& stepper
71 template<
class Scalar>
72 void restart( StepperBase<Scalar> *stepper );
74 template<
class Scalar>
75 void eval_model_explicit(
76 const Thyra::ModelEvaluator<Scalar> &model,
77 Thyra::ModelEvaluatorBase::InArgs<Scalar> &basePoint,
78 const VectorBase<Scalar>& x_in,
79 const typename Thyra::ModelEvaluatorBase::InArgs<Scalar>::ScalarMag &t_in,
80 const Ptr<VectorBase<Scalar> >& f_out,
81 const Scalar scaled_dt = 0,
82 const Scalar stage_point = 0
86 #ifdef HAVE_THYRA_ME_POLYNOMIAL
89 template<
class Scalar>
90 void eval_model_explicit_poly(
91 const Thyra::ModelEvaluator<Scalar> &model,
92 Thyra::ModelEvaluatorBase::InArgs<Scalar> &basePoint,
93 const Teuchos::Polynomial< VectorBase<Scalar> > &x_poly,
94 const typename Thyra::ModelEvaluatorBase::InArgs<Scalar>::ScalarMag &t,
95 const Ptr<Teuchos::Polynomial<VectorBase<Scalar> > >& f_poly
99 #endif // HAVE_THYRA_ME_POLYNOMIAL
103 template<
class Scalar>
104 void defaultGetPoints(
106 const Ptr<
const VectorBase<Scalar> >& x_old,
107 const Ptr<
const VectorBase<Scalar> >& xdot_old,
109 const Ptr<
const VectorBase<Scalar> >& x,
110 const Ptr<
const VectorBase<Scalar> >& xdot,
111 const Array<Scalar>& time_vec,
112 const Ptr<Array<Teuchos::RCP<
const Thyra::VectorBase<Scalar> > > >& x_vec,
113 const Ptr<Array<Teuchos::RCP<
const Thyra::VectorBase<Scalar> > > >& xdot_vec,
114 const Ptr<Array<
typename Teuchos::ScalarTraits<Scalar>::magnitudeType> >& accuracy_vec,
115 const Ptr<InterpolatorBase<Scalar> > interpolator
120 template<
class Scalar>
121 void setStepperModel(
122 const Ptr<StepperBase<Scalar> >& stepper,
123 const RCP<
const Thyra::ModelEvaluator<Scalar> >& model
126 template<
class Scalar>
127 void setStepperModel(
128 const Ptr<StepperBase<Scalar> >& stepper,
129 const RCP<Thyra::ModelEvaluator<Scalar> >& model
132 template<
class Scalar>
133 void setStepperModel(
134 const Ptr<StepperBase<Scalar> >& stepper,
135 Teuchos::ConstNonconstObjectContainer<Thyra::ModelEvaluator<Scalar> >&
143 #endif // RYTHMOS_STEPPER_HELPERS_DECL_HPP