|
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...
#include <Rythmos_IntegrationControlStrategyBase.hpp>

Public Member Functions | |
| virtual bool | handlesFailedTimeSteps () const |
| Return if this object can handle and repond to failed time steps. | |
| virtual RCP < IntegrationControlStrategyBase < 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. | |
| virtual bool | resetForFailedTimeStep (const StepperBase< Scalar > &stepper, const StepControlInfo< Scalar > &stepCtrlInfoLast, const int timeStepIter, const StepControlInfo< Scalar > &stepCtrlInfo) |
| Inform of a failed time step. | |
Base class for strategy objects that control integration by selecting step sizes for a stepper.
ToDo: Finish Implementation!
Definition at line 25 of file Rythmos_IntegrationControlStrategyBase.hpp.
| virtual bool Rythmos::IntegrationControlStrategyBase< Scalar >::handlesFailedTimeSteps | ( | ) | const [inline, virtual] |
Return if this object can handle and repond to failed time steps.
Default implementation returns false.
Reimplemented in Rythmos::RampingIntegrationControlStrategy< Scalar >.
Definition at line 36 of file Rythmos_IntegrationControlStrategyBase.hpp.
| virtual RCP<IntegrationControlStrategyBase<Scalar> > Rythmos::IntegrationControlStrategyBase< Scalar >::cloneIntegrationControlStrategy | ( | ) | const [pure virtual] |
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.
Implemented in Rythmos::RampingIntegrationControlStrategy< Scalar >, and Rythmos::SimpleIntegrationControlStrategy< Scalar >.
| virtual void Rythmos::IntegrationControlStrategyBase< Scalar >::resetIntegrationControlStrategy | ( | const TimeRange< Scalar > & | integrationTimeDomain | ) | [pure virtual] |
Reset the control algorithm to the beginning to start a new integration.
| integrationTimeDomain | [in] The time domain over which the integration will be defined. |
Preconditions:
integrationTimeDomain.length() > 0.0 Implemented in Rythmos::RampingIntegrationControlStrategy< Scalar >, and Rythmos::SimpleIntegrationControlStrategy< Scalar >.
| virtual StepControlInfo<Scalar> Rythmos::IntegrationControlStrategyBase< Scalar >::getNextStepControlInfo | ( | const StepperBase< Scalar > & | stepper, |
| const StepControlInfo< Scalar > & | stepCtrlInfoLast, | ||
| const int | timeStepIter | ||
| ) | [pure virtual] |
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 timeStepIter==0 and it should be incremented on each call only once. While the concrete implementation if *this could keep track of the this counter, putting it in the argument list helps to simplify logic and helps to validate correct usage. |
returnVal.stepSize is 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.0 will 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.
Implemented in Rythmos::RampingIntegrationControlStrategy< Scalar >, and Rythmos::SimpleIntegrationControlStrategy< Scalar >.
| virtual bool Rythmos::IntegrationControlStrategyBase< Scalar >::resetForFailedTimeStep | ( | const StepperBase< Scalar > & | stepper, |
| const StepControlInfo< Scalar > & | stepCtrlInfoLast, | ||
| const int | timeStepIter, | ||
| const StepControlInfo< Scalar > & | stepCtrlInfo | ||
| ) | [inline, virtual] |
Inform of a failed time step.
| stepper | [in] The stepper object after the failed time step. |
| stepCtrlInfoLast | [in] Same as passed into last call to getNextStepControlInfo(). |
| timeStepIter | [in] Same as passed into last call to getNextStepControlInfo(). |
| stepControlInfo | [in] Value returned from last call to getNextStepControlInfo(). |
this->handlesFailedTimeSteps()==true
Default implementation is to ignore this.
Reimplemented in Rythmos::RampingIntegrationControlStrategy< Scalar >.
Definition at line 115 of file Rythmos_IntegrationControlStrategyBase.hpp.
1.7.6.1