Tempus  Version of the Day
Time Integration
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Tempus::StepperForwardEulerObserverBase< Scalar > Class Template Referenceabstract

Base observer for StepperForwardEuler. More...

#include <Tempus_StepperForwardEulerObserverBase.hpp>

Inheritance diagram for Tempus::StepperForwardEulerObserverBase< Scalar >:
Tempus::StepperForwardEulerAppAction< Scalar > Tempus::StepperForwardEulerObserverDefault< Scalar >

Public Member Functions

virtual void observe (Teuchos::RCP< const SolutionHistory< Scalar > >, Teuchos::RCP< const StepperForwardEuler< Scalar > >, const typename StepperForwardEulerAppAction< Scalar >::ACTION_LOCATION actLoc)=0
 Observe ForwardEuler Stepper. More...
 
- Public Member Functions inherited from Tempus::StepperForwardEulerAppAction< Scalar >
 StepperForwardEulerAppAction ()
 Constructor. More...
 
virtual ~StepperForwardEulerAppAction ()
 Destructor. More...
 

Private Member Functions

void execute (Teuchos::RCP< SolutionHistory< Scalar > > sh, Teuchos::RCP< StepperForwardEuler< Scalar > > stepper, const typename StepperForwardEulerAppAction< Scalar >::ACTION_LOCATION actLoc)
 Execute application action for ForwardEuler Stepper. More...
 

Additional Inherited Members

- Public Types inherited from Tempus::StepperForwardEulerAppAction< Scalar >
enum  ACTION_LOCATION { BEGIN_STEP, BEFORE_EXPLICIT_EVAL, END_STEP }
 Indicates the location of application action (see algorithm). More...
 

Detailed Description

template<class Scalar>
class Tempus::StepperForwardEulerObserverBase< Scalar >

Base observer for StepperForwardEuler.

This class provides a means to observe values (e.g., solution variables through SolutionHistory, and stepper member data through the Stepper), and cannot modify them.

Users deriving from this class can observer a lot of data, and it is expected that users will NOT modify any of that data. If the user wishes to modify the solution and/or stepper data during the Stepper::takeStep, they should use the Modifier class (with care!).

Below is the ForwardEuler algorithm with the locations of the observe calls italicized.

\begin{algorithm} \renewcommand{\thealgorithm}{} \caption{Forward Euler with the locations of the application actions indicated.} \begin{algorithmic}[1] \State Start with $x_n$, $\Delta t_n$ \State {\it appAction.execute(solutionHistory, stepper, BEGIN\_STEP)} \State Form $f(x_{n},t_{n})$ \State {\it appAction.execute(solutionHistory, stepper, BEFORE\_EXPLICIT\_EVAL)} \State Form $x_n \leftarrow x_{n} + \Delta t_n f(x_{n},t_n)$ \State {\it appAction.execute(solutionHistory, stepper, END\_STEP)} \end{algorithmic} \end{algorithm}

Definition at line 47 of file Tempus_StepperForwardEulerObserverBase.hpp.

Member Function Documentation

template<class Scalar>
void Tempus::StepperForwardEulerObserverBase< Scalar >::execute ( Teuchos::RCP< SolutionHistory< Scalar > >  sh,
Teuchos::RCP< StepperForwardEuler< Scalar > >  stepper,
const typename StepperForwardEulerAppAction< Scalar >::ACTION_LOCATION  actLoc 
)
inlineprivatevirtual

Execute application action for ForwardEuler Stepper.

Implements Tempus::StepperForwardEulerAppAction< Scalar >.

Definition at line 62 of file Tempus_StepperForwardEulerObserverBase.hpp.

template<class Scalar>
virtual void Tempus::StepperForwardEulerObserverBase< Scalar >::observe ( Teuchos::RCP< const SolutionHistory< Scalar > >  ,
Teuchos::RCP< const StepperForwardEuler< Scalar > >  ,
const typename StepperForwardEulerAppAction< Scalar >::ACTION_LOCATION  actLoc 
)
pure virtual

The documentation for this class was generated from the following file: