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 .  
virtual void  resetIntegrationObserver (const TimeRange< Scalar > &integrationTimeDomain)=0 
Reset the observer to prepair it to observe another integration.  
virtual void  observeStartTimeIntegration (const StepperBase< Scalar > &stepper) 
Observe the beginning of a time integration loop.  
virtual void  observeEndTimeIntegration (const StepperBase< Scalar > &stepper) 
Observe the end of a time integration loop.  
virtual void  observeStartTimeStep (const StepperBase< Scalar > &stepper, const StepControlInfo< Scalar > &stepCtrlInfo, const int timeStepIter) 
Observer the beginning of an integration step.  
virtual void  observeCompletedTimeStep (const StepperBase< Scalar > &stepper, const StepControlInfo< Scalar > &stepCtrlInfo, const int timeStepIter)=0 
Observe a successfully completed integration step.  
virtual void  observeFailedTimeStep (const StepperBase< Scalar > &stepper, const StepControlInfo< Scalar > &stepCtrlInfo, const int timeStepIter) 
Observer a failed integration step. 
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.
virtual RCP<IntegrationObserverBase<Scalar> > Rythmos::IntegrationObserverBase< Scalar >::cloneIntegrationObserver  (  )  const [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::CompositeIntegrationObserver< Scalar >, Rythmos::ForwardResponseSensitivityComputerObserver< Scalar >, and Rythmos::LoggingIntegrationObserver< Scalar >.
virtual void Rythmos::IntegrationObserverBase< Scalar >::resetIntegrationObserver  (  const TimeRange< Scalar > &  integrationTimeDomain  )  [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::CompositeIntegrationObserver< Scalar >, Rythmos::ForwardResponseSensitivityComputerObserver< Scalar >, and Rythmos::LoggingIntegrationObserver< Scalar >.
void Rythmos::IntegrationObserverBase< Scalar >::observeStartTimeIntegration  (  const StepperBase< Scalar > &  stepper  )  [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.
void Rythmos::IntegrationObserverBase< Scalar >::observeEndTimeIntegration  (  const StepperBase< Scalar > &  stepper  )  [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.
void Rythmos::IntegrationObserverBase< Scalar >::observeStartTimeStep  (  const StepperBase< Scalar > &  stepper, 
const StepControlInfo< Scalar > &  stepCtrlInfo,  
const int  timeStepIter  
)  [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.
virtual void Rythmos::IntegrationObserverBase< Scalar >::observeCompletedTimeStep  (  const StepperBase< Scalar > &  stepper, 
const StepControlInfo< Scalar > &  stepCtrlInfo,  
const int  timeStepIter  
)  [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 >.
void Rythmos::IntegrationObserverBase< Scalar >::observeFailedTimeStep  (  const StepperBase< Scalar > &  stepper, 
const StepControlInfo< Scalar > &  stepCtrlInfo,  
const int  timeStepIter  
)  [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.