Tempus Version of the Day
Time Integration
Loading...
Searching...
No Matches
Tempus_IntegratorObserverComposite_decl.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_IntegratorObserverComposite_decl_hpp
10#define Tempus_IntegratorObserverComposite_decl_hpp
11
12#include "Tempus_config.hpp"
14#include "Tempus_TimeStepControl.hpp"
15#include <vector>
16
17namespace Tempus {
18
24template<class Scalar>
26 : virtual public Tempus::IntegratorObserver<Scalar>
27{
28public:
29
32
35
37
38
39 virtual void observeStartIntegrator(const Integrator<Scalar>& integrator) override;
40
42 virtual void observeStartTimeStep(const Integrator<Scalar>& integrator) override;
43
45 virtual void observeNextTimeStep(const Integrator<Scalar>& integrator) override;
46
48 virtual void observeBeforeTakeStep(const Integrator<Scalar>& integrator) override;
49
51 virtual void observeAfterTakeStep(const Integrator<Scalar>& integrator) override;
52
54 virtual void observeAfterCheckTimeStep(const Integrator<Scalar>& integrator) override;
55
57 virtual void observeEndTimeStep(const Integrator<Scalar>& integrator) override;
58
60 virtual void observeEndIntegrator(const Integrator<Scalar>& integrator) override;
61
62 // add observer to the composite observer list
63 void addObserver(const Teuchos::RCP<IntegratorObserver<Scalar> > &observer);
64
65 // clear all observer from the composite observer list
66 void clearObservers();
68
69private:
70
71 std::vector<Teuchos::RCP<IntegratorObserver<Scalar > > > observers_;
72
73};
74
75} // namespace Tempus
76#endif // Tempus_IntegratorObserverComposite_decl_hpp
virtual void observeEndIntegrator(const Integrator< Scalar > &integrator) override
Observe the end of the time integrator.
std::vector< Teuchos::RCP< IntegratorObserver< Scalar > > > observers_
virtual void observeStartIntegrator(const Integrator< Scalar > &integrator) override
Observe the beginning of the time integrator.
virtual void observeAfterTakeStep(const Integrator< Scalar > &integrator) override
Observe after Stepper takes step.
virtual void observeEndTimeStep(const Integrator< Scalar > &integrator) override
Observe the end of the time step loop.
virtual void observeNextTimeStep(const Integrator< Scalar > &integrator) override
Observe after the next time step size is selected.
virtual void observeBeforeTakeStep(const Integrator< Scalar > &integrator) override
Observe before Stepper takes step.
virtual void observeStartTimeStep(const Integrator< Scalar > &integrator) override
Observe the beginning of the time step loop.
void addObserver(const Teuchos::RCP< IntegratorObserver< Scalar > > &observer)
virtual void observeAfterCheckTimeStep(const Integrator< Scalar > &integrator) override
Observe after checking time step.
IntegratorObserver class for time integrators.