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 
RCP< const ParameterList > getValidParameters() const 
 
RCP< const Thyra::VectorSpaceBase< Scalar > > get_x_space() const 
 
void getPoints(const Array< Scalar > &time_vec, Array< RCP< const Thyra::VectorBase< Scalar > > > *x_vec, Array< RCP< const Thyra::VectorBase< Scalar > > > *xdot_vec, Array< ScalarMag > *accuracy_vec) const 
 
RCP< StepperBase< Scalar > > unSetStepper()
 
RCP< const InterpolationBufferAppenderBase< Scalar > > getInterpolationBufferAppender()
 
RCP< InterpolationBufferBase< Scalar > > unSetTrailingInterpolationBuffer()
 
Base class for defining stepper functionality. 
 
RCP< IntegratorBase< Scalar > > cloneIntegrator() const 
 
RCP< const StepperBase< Scalar > > getStepper() const 
 
RCP< IntegrationControlStrategyBase< Scalar > > getNonconstIntegrationControlStrategy()
 
Simple struct to aggregate integration/stepper control information. 
 
void getNodes(Array< Scalar > *time_vec) const 
 
Base class for strategy objects that control integration by selecting step sizes for a stepper...
 
RCP< const IntegrationControlStrategyBase< Scalar > > getIntegrationControlStrategy() const 
 
Mix-in interface for integrator objects that accept an interpolationBufferAppender object to be used ...
 
TimeRange< Scalar > getFwdTimeRange() const 
 
Mix-in interface for integrator objects that accept an integration control strategy object to be used...
 
Base class for strategy objects that observe and time integration by observing the stepper object...
 
RCP< InterpolationBufferAppenderBase< Scalar > > unSetInterpolationBufferAppender()
 
void setIntegrationControlStrategy(const RCP< IntegrationControlStrategyBase< Scalar > > &integrationControlStrategy)
 
A concrete subclass for IntegratorBase that allows a good deal of customization. 
 
void addPoints(const Array< Scalar > &time_vec, const Array< RCP< const Thyra::VectorBase< Scalar > > > &x_vec, const Array< RCP< const Thyra::VectorBase< Scalar > > > &xdot_vec)
 
void setTrailingInterpolationBuffer(const RCP< InterpolationBufferBase< Scalar > > &trailingInterpBuffer)
 
RCP< StepperBase< Scalar > > getNonconstStepper() const 
 
Base class for an interpolation buffer. 
 
RCP< const InterpolationBufferBase< Scalar > > getTrailingInterpolationBuffer() const 
 
void getFwdPoints(const Array< Scalar > &time_vec, Array< RCP< const Thyra::VectorBase< Scalar > > > *x_vec, Array< RCP< const Thyra::VectorBase< Scalar > > > *xdot_vec, Array< ScalarMag > *accuracy_vec)
 
Base class for strategy objects that append data from one InterplationBufferBase object to another...
 
void removeNodes(Array< Scalar > &time_vec)
 
void setInterpolationBufferAppender(const RCP< InterpolationBufferAppenderBase< Scalar > > &interpBufferAppender)
 
RCP< InterpolationBufferBase< Scalar > > getNonconstTrailingInterpolationBuffer()
 
TimeRange< Scalar > getTimeRange() const 
 
ScalarTraits< Scalar >::magnitudeType ScalarMag
 
RCP< InterpolationBufferAppenderBase< Scalar > > getNonconstInterpolationBufferAppender()
 
void setIntegrationObserver(const RCP< IntegrationObserverBase< Scalar > > &integrationObserver)
 
void setParameterList(RCP< ParameterList > const ¶mList)
 
void setStepper(const RCP< StepperBase< Scalar > > &stepper, const Scalar &finalTime, const bool landOnFinalTime=true)
 
Mix-in interface for integrator objects that accept a trailing interpolation buffer object to be used...