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: Time Integration and Sensitivity Analysis Package
4 //
5 // Copyright 2017 NTESS and the Tempus contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 //@HEADER
9 
10 #ifndef Tempus_IntegratorObserver_hpp
11 #define Tempus_IntegratorObserver_hpp
12 
13 #include "Tempus_config.hpp"
14 #include "Tempus_TimeStepControl.hpp"
15 
16 // Forward declarations
17 namespace Tempus {
18 template <typename Scalar>
19 class Integrator;
20 }
21 
22 namespace Tempus {
23 
43 template <class Scalar>
45  public:
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 
66  virtual void observeAfterCheckTimeStep(
67  const Integrator<Scalar>& integrator) = 0;
68 
70  virtual void observeEndTimeStep(const Integrator<Scalar>& integrator) = 0;
71 
73  virtual void observeEndIntegrator(const Integrator<Scalar>& integrator) = 0;
74 
76  virtual ~IntegratorObserver() = default;
78 };
79 } // namespace Tempus
80 #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
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