|
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 > &, const StepControlInfo< Scalar > &, const int, const StepControlInfo< Scalar > &) |
| 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.
|
inlinevirtual |
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.
|
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 >.
|
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:
Implemented in Rythmos::RampingIntegrationControlStrategy< Scalar >, and Rythmos::SimpleIntegrationControlStrategy< Scalar >.
|
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. |
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 >.
|
inlinevirtual |
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(). |
\precondition this->handlesFailedTimeSteps()==true
Default implementation is to ignore this.
Reimplemented in Rythmos::RampingIntegrationControlStrategy< Scalar >.
Definition at line 115 of file Rythmos_IntegrationControlStrategyBase.hpp.