Rythmos - Transient Integration for Differential Equations
Version of the Day
|
Base class for strategy objects that observe and time integration by observing the stepper object. More...
#include <Rythmos_IntegrationObserverBase.hpp>
Public Member Functions | |
virtual RCP < IntegrationObserverBase < Scalar > > | cloneIntegrationObserver () const =0 |
Clone this integration observer if supported . More... | |
virtual void | resetIntegrationObserver (const TimeRange< Scalar > &integrationTimeDomain)=0 |
Reset the observer to prepair it to observe another integration. More... | |
virtual void | observeStartTimeIntegration (const StepperBase< Scalar > &stepper) |
Observe the beginning of a time integration loop. More... | |
virtual void | observeEndTimeIntegration (const StepperBase< Scalar > &stepper) |
Observe the end of a time integration loop. More... | |
virtual void | observeStartTimeStep (const StepperBase< Scalar > &stepper, const StepControlInfo< Scalar > &stepCtrlInfo, const int timeStepIter) |
Observer the beginning of an integration step. More... | |
virtual void | observeCompletedTimeStep (const StepperBase< Scalar > &stepper, const StepControlInfo< Scalar > &stepCtrlInfo, const int timeStepIter)=0 |
Observe a successfully completed integration step. More... | |
virtual void | observeFailedTimeStep (const StepperBase< Scalar > &stepper, const StepControlInfo< Scalar > &stepCtrlInfo, const int timeStepIter) |
Observer a failed integration step. More... | |
Base class for strategy objects that observe and time integration by observing the stepper object.
ToDo: Finish Implementation!
Definition at line 24 of file Rythmos_IntegrationObserverBase.hpp.
|
pure virtual |
Clone this integration observer if supported .
Here, the cloned object just has to have the ouptut strategy copied, not the complete state of the object mid way through an integration.
Implemented in Rythmos::ForwardResponseSensitivityComputerObserver< Scalar >, Rythmos::CompositeIntegrationObserver< Scalar >, and Rythmos::LoggingIntegrationObserver< Scalar >.
|
pure virtual |
Reset the observer to prepair it to observe another integration.
integrationTimeDomain | [in] The time domain over which the integration will be defined. |
Preconditions:
integrationTimeDomain.length() > 0.0
Implemented in Rythmos::ForwardResponseSensitivityComputerObserver< Scalar >, Rythmos::CompositeIntegrationObserver< Scalar >, and Rythmos::LoggingIntegrationObserver< Scalar >.
|
virtual |
Observe the beginning of a time integration loop.
stepper | [in] The stepper object. |
Warning! This function is NOT stateless. It should be called once and only once at the beginning of getFwdPoints().
NOTE: The function resetIntegrationControlStrategy()
must be called prior to even the first call to function.
NOTE: This method should be pure virtual but has been given a default implementation for backwards compatibility. We will make this pure virtual in the future.
Reimplemented in Rythmos::CompositeIntegrationObserver< Scalar >, and Rythmos::LoggingIntegrationObserver< Scalar >.
Definition at line 244 of file Rythmos_IntegrationObserverBase.hpp.
|
virtual |
Observe the end of a time integration loop.
stepper | [in] The stepper object. |
Warning! This function is NOT stateless. It should be called once and only once at the end of getFwdPoints().
NOTE: The function resetIntegrationControlStrategy()
must be called prior to even the first call to function.
NOTE: This method should be pure virtual but has been given a default implementation for backwards compatibility. We will make this pure virtual in the future.
Reimplemented in Rythmos::CompositeIntegrationObserver< Scalar >, and Rythmos::LoggingIntegrationObserver< Scalar >.
Definition at line 251 of file Rythmos_IntegrationObserverBase.hpp.
|
virtual |
Observer the beginning of an integration step.
stepper | [in] The stepper object. |
stepCtrlInfo | [in] The info for the time step about to be taken. |
timeStepIter | [in] The time step iteration counter. In the first call to this function, this should be timeStepIter==0 and it should be incremented on each call only once. While the concrete implementation of *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 at the beginning of each time step.
NOTE: The function resetIntegrationControlStrategy()
must be called prior to even the first call to function.
NOTE: This method should be pure virtual but has been given a default implementation for backwards compatibility. We will make this pure virtual in the future.
Reimplemented in Rythmos::CompositeIntegrationObserver< Scalar >, and Rythmos::LoggingIntegrationObserver< Scalar >.
Definition at line 258 of file Rythmos_IntegrationObserverBase.hpp.
|
pure virtual |
Observe a successfully completed integration step.
stepper | [in] The stepper object that was just stepped forward once to integrate the transient ODE/DAE equations. On the very first call and every other call, this stepper should have a finite time range for a successfull step. |
stepCtrlInfo | [in] The info for the actual time step that was just completed. |
timeStepIter | [in] The time step iteration counter. In the first call to this function, this should be timeStepIter==0 and it should be incremented on each call only once. While the concrete implementation of *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.
NOTE: If isInitialTimeStep(stepper->getTimeRange(), fullTimeRange) == true
then this is the first time step (where fullTimeRange
was passed into resetIntegrationObserver()
.
NOTE: If isFinalTimeStep(stepper->getTimeRange(), fullTimeRange) == true
then this is the last time step (where fullTimeRange
was passed into resetIntegrationObserver()
.
Implemented in Rythmos::CompositeIntegrationObserver< Scalar >, Rythmos::ForwardResponseSensitivityComputerObserver< Scalar >, and Rythmos::LoggingIntegrationObserver< Scalar >.
|
virtual |
Observer a failed integration step.
stepper | [in] The stepper object that was just stepped forward once to integrate the transient ODE/DAE equations. On the very first call and every other call, this stepper should have a finite time range for a successfull step. |
stepCtrlInfo | [in] The info for the actual time step that was just attempted. |
timeStepIter | [in] The time step iteration counter. In the first call to this function, this should be timeStepIter==0 and it should be incremented on each call only once. While the concrete implementation of *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 failed time step iteration.
NOTE: The function resetIntegrationControlStrategy()
must be called prior to even the first call to function.
NOTE: If isInitialTimeStep(stepper->getTimeRange(), fullTimeRange) == true
then this is the first time step (where fullTimeRange
was passed into resetIntegrationObserver()
.
NOTE: If isFinalTimeStep(stepper->getTimeRange(), fullTimeRange) == true
then this is the last time step (where fullTimeRange
was passed into resetIntegrationObserver()
.
NOTE: This method should be pure virtual but has been given a default implementation for backwards compatibility. We will make this pure virtual in the future.
Reimplemented in Rythmos::CompositeIntegrationObserver< Scalar >, and Rythmos::LoggingIntegrationObserver< Scalar >.
Definition at line 269 of file Rythmos_IntegrationObserverBase.hpp.