Tempus  Version of the Day
Time Integration
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Tempus_IntegratorObserver.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_IntegratorObserver_hpp
10 #define Tempus_IntegratorObserver_hpp
11 
12 #include "Tempus_config.hpp"
13 #include "Tempus_TimeStepControl.hpp"
14 
15 // Forward declarations
16 namespace Tempus {
17  template<typename Scalar> class Integrator;
18 }
19 
20 namespace Tempus {
21 
41 template<class Scalar>
43 {
44 public:
45 
47 
48  virtual void observeStartIntegrator(const Integrator<Scalar>& integrator) = 0;
50 
52  virtual void observeStartTimeStep(const Integrator<Scalar>& integrator) = 0;
53 
56  virtual void observeNextTimeStep(const Integrator<Scalar>& integrator) = 0;
57 
59  virtual void observeBeforeTakeStep(const Integrator<Scalar>& integrator) = 0;
60 
62  virtual void observeAfterTakeStep(const Integrator<Scalar>& integrator) = 0;
63 
65  virtual void observeAfterCheckTimeStep(const Integrator<Scalar>& integrator) = 0;
66 
68  virtual void observeEndTimeStep(const Integrator<Scalar>& integrator) = 0;
69 
71  virtual void observeEndIntegrator(const Integrator<Scalar>& integrator) = 0;
72 
74  virtual ~IntegratorObserver() = default;
76 
77 };
78 } // namespace Tempus
79 #endif // Tempus_IntegratorObserver_hpp
virtual void observeEndIntegrator(const Integrator< Scalar > &integrator)=0
Observe the end of the time integrator.
virtual void observeNextTimeStep(const Integrator< Scalar > &integrator)=0
virtual void observeStartIntegrator(const Integrator< Scalar > &integrator)=0
Observe the beginning of the time integrator.
IntegratorObserver class for time integrators.
virtual void observeBeforeTakeStep(const Integrator< Scalar > &integrator)=0
Observe before Stepper takes step.
virtual void observeAfterCheckTimeStep(const Integrator< Scalar > &integrator)=0
Observe after checking time step. Observer can still fail the time step here.
virtual void observeAfterTakeStep(const Integrator< Scalar > &integrator)=0
Observe after Stepper takes step.
virtual void observeStartTimeStep(const Integrator< Scalar > &integrator)=0
Observe the beginning of the time step loop.
Thyra Base interface for time integrators. Time integrators are designed to advance the solution from...
virtual void observeEndTimeStep(const Integrator< Scalar > &integrator)=0
Observe the end of the time step loop.
virtual ~IntegratorObserver()=default
default destructor