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

Base modifier for StepperBackwardEuler. More...

#include <Tempus_StepperBackwardEulerModifierBase.hpp>

Inheritance diagram for Tempus::StepperBackwardEulerModifierBase< Scalar >:
Tempus::StepperBackwardEulerAppAction< Scalar > Tempus::StepperBackwardEulerModifierDefault< Scalar >

Public Member Functions

virtual void modify (Teuchos::RCP< SolutionHistory< Scalar > >, Teuchos::RCP< StepperBackwardEuler< Scalar > >, const typename StepperBackwardEulerAppAction< Scalar >::ACTION_LOCATION actLoc)=0
 Modify BackwardEuler Stepper. More...
 
- Public Member Functions inherited from Tempus::StepperBackwardEulerAppAction< Scalar >
 StepperBackwardEulerAppAction ()
 Constructor. More...
 
virtual ~StepperBackwardEulerAppAction ()
 Destructor. More...
 

Private Member Functions

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

Additional Inherited Members

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

Detailed Description

template<class Scalar>
class Tempus::StepperBackwardEulerModifierBase< Scalar >

Base modifier for StepperBackwardEuler.

This class provides a means to modify values (e.g., solution variables through SolutionHistory, and stepper member data through the Stepper), and can be very powerful and easy to make changes to the stepper and the solution.

Users deriving from this class can access a lot of data, and it is expected that those users know what changes are allowable without affecting the Stepper correctness, performance, accuracy and stability. Thus the user should be careful when accessing data through classes derived from the default modifier (i.e., USER BEWARE!!).

Below is the BackwardEuler algorithm with the locations of the modify calls italicized.

\begin{algorithm} \renewcommand{\thealgorithm}{} \caption{Backward Euler with modify calls indicated.} \begin{algorithmic}[1] \State \quad {\it modifier.modify(solutionHistory, stepper, BEGIN\_STEP)} \State Compute the predictor (e.g., apply stepper to $x_n$). \State \quad {\it modifier.modify(solutionHistory, stepper, BEFORE\_SOLVE)} \State Solve $\mathcal{F}_n(\dot{x}=(x_n-x_{n-1})/\Delta t_n, x_n, t_n)=0$ for $x_n$ \State \quad {\it modifier.modify(solutionHistory, stepper, AFTER\_SOLVE)} \State $\dot{x}_n \leftarrow (x_n-x_{n-1})/\Delta t_n$ \State \quad {\it modifier.modify(solutionHistory, stepper, END\_STEP)} \end{algorithmic} \end{algorithm}

Definition at line 50 of file Tempus_StepperBackwardEulerModifierBase.hpp.

Member Function Documentation

template<class Scalar>
void Tempus::StepperBackwardEulerModifierBase< Scalar >::execute ( Teuchos::RCP< SolutionHistory< Scalar > >  sh,
Teuchos::RCP< StepperBackwardEuler< Scalar > >  stepper,
const typename StepperBackwardEulerAppAction< Scalar >::ACTION_LOCATION  actLoc 
)
inlineprivatevirtual

Execute application action for BackwardEuler Stepper.

Implements Tempus::StepperBackwardEulerAppAction< Scalar >.

Definition at line 64 of file Tempus_StepperBackwardEulerModifierBase.hpp.

template<class Scalar>
virtual void Tempus::StepperBackwardEulerModifierBase< Scalar >::modify ( Teuchos::RCP< SolutionHistory< Scalar > >  ,
Teuchos::RCP< StepperBackwardEuler< Scalar > >  ,
const typename StepperBackwardEulerAppAction< Scalar >::ACTION_LOCATION  actLoc 
)
pure virtual

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