29 #ifndef RYTHMOS_DEFAULT_INTEGRATOR_DECL_HPP
30 #define RYTHMOS_DEFAULT_INTEGRATOR_DECL_HPP
33 #include "Rythmos_IntegrationControlStrategyAcceptingIntegratorBase.hpp"
34 #include "Rythmos_InterpolationBufferAppenderAcceptingIntegratorBase.hpp"
35 #include "Rythmos_TrailingInterpolationBufferAcceptingIntegratorBase.hpp"
36 #include "Rythmos_IntegrationObserverBase.hpp"
37 #include "Rythmos_StepControlInfo.hpp"
38 #include "Teuchos_ParameterListAcceptorDefaultBase.hpp"
49 template<
class Scalar>
54 virtual public Teuchos::ParameterListAcceptorDefaultBase
59 typedef typename ScalarTraits<Scalar>::magnitudeType
ScalarMag;
81 RCP<const InterpolationBufferAppenderBase<Scalar> >
85 RCP<InterpolationBufferAppenderBase<Scalar> >
89 RCP<InterpolationBufferAppenderBase<Scalar> >
103 RCP<IntegrationControlStrategyBase<Scalar> >
107 RCP<const IntegrationControlStrategyBase<Scalar> >
132 const Scalar &finalTime,
133 const bool landOnFinalTime =
true
140 RCP<const StepperBase<Scalar> >
getStepper()
const;
154 RCP<InterpolationBufferBase<Scalar> >
158 RCP<const InterpolationBufferBase<Scalar> >
162 RCP<InterpolationBufferBase<Scalar> >
169 const Array<Scalar>& time_vec,
170 Array<RCP<
const Thyra::VectorBase<Scalar> > >* x_vec,
171 Array<RCP<
const Thyra::VectorBase<Scalar> > >* xdot_vec,
172 Array<ScalarMag>* accuracy_vec
184 RCP<const Thyra::VectorSpaceBase<Scalar> >
get_x_space()
const;
188 const Array<Scalar>& time_vec,
189 const Array<RCP<
const Thyra::VectorBase<Scalar> > >& x_vec,
190 const Array<RCP<
const Thyra::VectorBase<Scalar> > >& xdot_vec
195 const Array<Scalar>& time_vec,
196 Array<RCP<
const Thyra::VectorBase<Scalar> > >* x_vec,
197 Array<RCP<
const Thyra::VectorBase<Scalar> > >* xdot_vec,
198 Array<ScalarMag>* accuracy_vec
205 void getNodes(Array<Scalar>* time_vec)
const;
220 RCP<IntegrationControlStrategyBase<Scalar> > integrationControlStrategy_;
221 RCP<IntegrationObserverBase<Scalar> > integrationObserver_;
223 RCP<InterpolationBufferBase<Scalar> > trailingInterpBuffer_;
224 RCP<InterpolationBufferAppenderBase<Scalar> > interpBufferAppender_;
226 RCP<StepperBase<Scalar> > stepper_;
228 bool landOnFinalTime_;
230 int maxNumTimeSteps_;
232 int currTimeStepIndex_;
235 static const std::string maxNumTimeSteps_name_;
236 static const int maxNumTimeSteps_default_;
241 void finalizeSetup();
243 bool advanceStepperToTime(
const Scalar& t );
252 template<
class Scalar>
253 RCP<DefaultIntegrator<Scalar> >
261 template<
class Scalar>
262 RCP<DefaultIntegrator<Scalar> >
273 template<
class Scalar>
274 RCP<DefaultIntegrator<Scalar> >
275 controlledDefaultIntegrator(
284 template<
class Scalar>
285 RCP<DefaultIntegrator<Scalar> >
286 observedDefaultIntegrator(
299 #endif //RYTHMOS_DEFAULT_INTEGRATOR_DECL_HPP