Rythmos::IntegrationControlStrategyBase< Scalar > Class Template Reference

Base class for strategy objects that control integration by selecting step sizes for a stepper. More...

#include <Rythmos_IntegrationControlStrategyBase.hpp>

Inheritance diagram for Rythmos::IntegrationControlStrategyBase< Scalar >:

[legend]
List of all members.

Public Member Functions

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.

Detailed Description

template<class Scalar>
class Rythmos::IntegrationControlStrategyBase< Scalar >

Base class for strategy objects that control integration by selecting step sizes for a stepper.

ToDo: Finish Implementation!

Definition at line 23 of file Rythmos_IntegrationControlStrategyBase.hpp.


Member Function Documentation

template<class Scalar>
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::SimpleIntegrationControlStrategy< Scalar >.

template<class 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.

Parameters:
integrationTimeDomain [in] The time domain over which the integration will be defined.
Preconditions:

Implemented in Rythmos::SimpleIntegrationControlStrategy< Scalar >.

template<class 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.

Parameters:
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.
Returns:
Returns the control information about the next step, including if 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::SimpleIntegrationControlStrategy< Scalar >.


The documentation for this class was generated from the following file:
Generated on Tue Oct 20 12:46:09 2009 for Rythmos - Transient Integration for Differential Equations by doxygen 1.4.7