Tempus  Version of the Day
Time Integration
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Tempus_StepperOperatorSplitAppAction.hpp
Go to the documentation of this file.
1 // @HEADER
2 // ****************************************************************************
3 // Tempus: Copyright (2017) Sandia Corporation
4 //
5 // Distributed under BSD 3-clause license (See accompanying file Copyright.txt)
6 // ****************************************************************************
7 // @HEADER
8 
9 #ifndef Tempus_StepperOperatorSplitAppAction_hpp
10 #define Tempus_StepperOperatorSplitAppAction_hpp
11 
12 #include "Tempus_config.hpp"
13 #include "Tempus_SolutionHistory.hpp"
14 
15 
16 namespace Tempus {
17 
18 // Forward Declaration for recursive includes (this Observer <--> Stepper)
19 template<class Scalar> class StepperOperatorSplit;
20 
21 /** \brief StepperOperatorSplitAppAction class for StepperOperatorSplit.
22  *
23  * This is a means for application developers to perform tasks
24  * during the time steps, e.g.,
25  * - Compute specific quantities
26  * - Output information
27  * - "Massage" the working solution state
28  * - ...
29  *
30  * <b>Design Considerations</b>
31  * - StepperOperatorSplitAppAction is not stateless! Developers may touch the
32  * solution state! Developers need to be careful not to break the
33  * restart (checkpoint) capability.
34  */
35 template<class Scalar>
37 {
38 public:
39 
41  BEGIN_STEP, ///< At the beginning of the step.
42  BEFORE_STEPPER, ///< Before a stepper evaluation.
43  AFTER_STEPPER, ///< After a stepper evaluation.
44  END_STEP ///< At the end of the step.
45  };
46 
47  /// Constructor
49 
50  /// Destructor
52 
53  /// Execute application action for OperatorSplit Stepper.
54  virtual void execute(
55  Teuchos::RCP<SolutionHistory<Scalar> > sh,
56  Teuchos::RCP<StepperOperatorSplit<Scalar> > stepper,
58 };
59 } // namespace Tempus
60 #endif // Tempus_StepperOperatorSplitAppAction_hpp
61 
62 
63 
64 
virtual void execute(Teuchos::RCP< SolutionHistory< Scalar > > sh, Teuchos::RCP< StepperOperatorSplit< Scalar > > stepper, const typename StepperOperatorSplitAppAction< Scalar >::ACTION_LOCATION actLoc)=0
Execute application action for OperatorSplit Stepper.
OperatorSplit stepper loops through the Stepper list.
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
StepperOperatorSplitAppAction class for StepperOperatorSplit.