Tempus  Version of the Day
Time Integration
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 
13 #include "Tempus_TimeStepControl.hpp"
14 #include <vector>
15 
16 namespace Tempus {
17 
18 /** \brief This observer
19  */
20 template<class Scalar>
22  : virtual public Tempus::IntegratorObserver<Scalar>
23 {
24 public:
25 
26  /// Default constructor
28 
29  /// Destructor
31 
32  /// \name Override IntegratorObserver basic methods
33  //@{
34  /// Observe the beginning of the time integrator.
35  virtual void observeStartIntegrator(const Integrator<Scalar>& integrator) override;
36 
37  /// Observe the beginning of the time step loop.
38  virtual void observeStartTimeStep(const Integrator<Scalar>& integrator) override;
39 
40  /// Observe after the next time step size is selected.
41  virtual void observeNextTimeStep(const Integrator<Scalar>& integrator) override;
42 
43  /// Observe before Stepper takes step.
44  virtual void observeBeforeTakeStep(const Integrator<Scalar>& integrator) override;
45 
46  /// Observe after Stepper takes step.
47  virtual void observeAfterTakeStep(const Integrator<Scalar>& integrator) override;
48 
49  /// Observe after accepting time step.
50  virtual void observeAcceptedTimeStep(const Integrator<Scalar>& integrator) override;
51 
52  /// Observe the end of the time integrator.
53  virtual void observeEndIntegrator(const Integrator<Scalar>& integrator) override;
54 
55  // add observer to the composite observer list
56  void addObserver(const Teuchos::RCP<IntegratorObserver<Scalar> > &observer);
57 
58  // clear all observer from the composite observer list
59  void clearObservers();
60  //@}
61 
62 private:
63 
64  std::vector<Teuchos::RCP<IntegratorObserver<Scalar > > > observers_;
65 
66 };
67 
68 } // namespace Tempus
69 #endif // Tempus_IntegratorObserverComposite_decl_hpp
Tempus::IntegratorObserverComposite
This observer.
Definition: Tempus_IntegratorObserverComposite_decl.hpp:21
Tempus::IntegratorObserverComposite::observeAcceptedTimeStep
virtual void observeAcceptedTimeStep(const Integrator< Scalar > &integrator) override
Observe after accepting time step.
Definition: Tempus_IntegratorObserverComposite_impl.hpp:65
Tempus
Definition: Tempus_AdjointAuxSensitivityModelEvaluator_decl.hpp:20
Tempus::Integrator
Thyra Base interface for time integrators. Time integrators are designed to advance the solution from...
Definition: Tempus_Integrator.hpp:62
Tempus::IntegratorObserverComposite::IntegratorObserverComposite
IntegratorObserverComposite()
Default constructor.
Definition: Tempus_IntegratorObserverComposite_impl.hpp:18
Tempus::IntegratorObserverComposite::addObserver
void addObserver(const Teuchos::RCP< IntegratorObserver< Scalar > > &observer)
Definition: Tempus_IntegratorObserverComposite_impl.hpp:81
Tempus::IntegratorObserverComposite::~IntegratorObserverComposite
virtual ~IntegratorObserverComposite()
Destructor.
Definition: Tempus_IntegratorObserverComposite_impl.hpp:21
Tempus::IntegratorObserverComposite::observeBeforeTakeStep
virtual void observeBeforeTakeStep(const Integrator< Scalar > &integrator) override
Observe before Stepper takes step.
Definition: Tempus_IntegratorObserverComposite_impl.hpp:49
Tempus::IntegratorObserverComposite::observeNextTimeStep
virtual void observeNextTimeStep(const Integrator< Scalar > &integrator) override
Observe after the next time step size is selected.
Definition: Tempus_IntegratorObserverComposite_impl.hpp:41
Tempus::IntegratorObserver
IntegratorObserver class for time integrators.
Definition: Tempus_IntegratorObserver.hpp:41
Tempus_IntegratorObserver.hpp
Tempus::IntegratorObserverComposite::observeEndIntegrator
virtual void observeEndIntegrator(const Integrator< Scalar > &integrator) override
Observe the end of the time integrator.
Definition: Tempus_IntegratorObserverComposite_impl.hpp:73
Tempus::IntegratorObserverComposite::observers_
std::vector< Teuchos::RCP< IntegratorObserver< Scalar > > > observers_
Definition: Tempus_IntegratorObserverComposite_decl.hpp:64
Tempus::IntegratorObserverComposite::clearObservers
void clearObservers()
Definition: Tempus_IntegratorObserverComposite_impl.hpp:88
Tempus::IntegratorObserverComposite::observeStartIntegrator
virtual void observeStartIntegrator(const Integrator< Scalar > &integrator) override
Observe the beginning of the time integrator.
Definition: Tempus_IntegratorObserverComposite_impl.hpp:25
Tempus::IntegratorObserverComposite::observeAfterTakeStep
virtual void observeAfterTakeStep(const Integrator< Scalar > &integrator) override
Observe after Stepper takes step.
Definition: Tempus_IntegratorObserverComposite_impl.hpp:57
Tempus::IntegratorObserverComposite::observeStartTimeStep
virtual void observeStartTimeStep(const Integrator< Scalar > &integrator) override
Observe the beginning of the time step loop.
Definition: Tempus_IntegratorObserverComposite_impl.hpp:33