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