Rythmos - Transient Integration for Differential Equations Version of the Day
Base class for strategy objects that control integration by selecting step sizes for a stepper. More...
< Scalar > >
|cloneIntegrationControlStrategy () const =0|
|Clone this integration control object if supported . |
|virtual void||resetIntegrationControlStrategy (const TimeRange< Scalar > &integrationTimeDomain)=0|
|Reset the control algorithm to the beginning to start a new integration. |
|virtual StepControlInfo< Scalar >||getNextStepControlInfo (const StepperBase< Scalar > &stepper, const StepControlInfo< Scalar > &stepCtrlInfoLast, const int timeStepIter)=0|
|Select the next time step control info. |
Base class for strategy objects that control integration by selecting step sizes for a stepper.
ToDo: Finish Implementation!
|virtual RCP<IntegrationControlStrategyBase<Scalar> > Rythmos::IntegrationControlStrategyBase< Scalar >::cloneIntegrationControlStrategy||(||)|| const
Clone this integration control object if supported .
Here, the cloned object just has to have the control information copied, not the complete state of the object mid way through an integration.
|virtual void Rythmos::IntegrationControlStrategyBase< Scalar >::resetIntegrationControlStrategy||(||const TimeRange< Scalar > &||integrationTimeDomain||)||
Reset the control algorithm to the beginning to start a new integration.
|integrationTimeDomain||[in] The time domain over which the integration will be defined.|
integrationTimeDomain.length() > 0.0
|virtual StepControlInfo<Scalar> Rythmos::IntegrationControlStrategyBase< Scalar >::getNextStepControlInfo||(||const StepperBase< Scalar > &||stepper,|
|const StepControlInfo< Scalar > &||stepCtrlInfoLast,|
Select the next time step control info.
|stepper||[in] The stepper object that is being stepped forward in time to integrate the transient ODE/DAE equations. On the very first call, this stepper should just have the initial condition.|
|stepCtrlInfoLast||[in] The actual time step that was taken on the last time step.|
|timeStepIter||[in] The (zero-based) time step iteration counter. In the first call to this function, this should be passed as |
returnVal.stepSizeis limited by a breakpoint and if that breakpoint requires a restart of the stepper. If no more steps are to be taken then a step size of
returnVal.stepSize < 0.0will be returned and the time integrator client should halt the integration immediately!
Warning! This function is *NOT* stateless. It should be called once and only once per time step iteration.
NOTE: The function
resetIntegrationControlStrategy() must be called prior to even the first call to function.