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"
47 const StepperBase<Scalar>& stepper,
48 const Thyra::ModelEvaluator<Scalar>& model
59bool setDefaultInitialConditionFromNominalValues(
60 const Thyra::ModelEvaluator<Scalar>& model,
61 const Ptr<StepperBase<Scalar> >& stepper
72void restart( StepperBase<Scalar> *stepper );
75void 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
90void 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
103template<
class Scalar>
104void 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
120template<
class Scalar>
121 void setStepperModel(
122 const Ptr<StepperBase<Scalar> >& stepper,
123 const RCP<
const Thyra::ModelEvaluator<Scalar> >& model
126template<
class Scalar>
127 void setStepperModel(
128 const Ptr<StepperBase<Scalar> >& stepper,
129 const RCP<Thyra::ModelEvaluator<Scalar> >& model
132template<
class Scalar>
133 void setStepperModel(
134 const Ptr<StepperBase<Scalar> >& stepper,
135 Teuchos::ConstNonconstObjectContainer<Thyra::ModelEvaluator<Scalar> >&