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.