Tempus Version of the Day
Time Integration
Loading...
Searching...
No Matches
Tempus_IntegratorObserverLogging_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_IntegratorObserverLogging_decl_hpp
10#define Tempus_IntegratorObserverLogging_decl_hpp
11
12#include "Tempus_config.hpp"
14#include <list>
15
16namespace Tempus {
17
23template<class Scalar>
25 : virtual public Tempus::IntegratorObserver<Scalar>
26{
27public:
28
31
34
36
37
38 virtual void observeStartIntegrator(const Integrator<Scalar>& integrator) override;
39
41 virtual void observeStartTimeStep(const Integrator<Scalar>& integrator) override;
42
44 virtual void observeNextTimeStep(const Integrator<Scalar>& integrator) override;
45
47 virtual void observeBeforeTakeStep(const Integrator<Scalar>& integrator) override;
48
50 virtual void observeAfterTakeStep(const Integrator<Scalar>& integrator) override;
51
53 virtual void observeAfterCheckTimeStep(const Integrator<Scalar>& integrator) override;
54
56 virtual void observeEndTimeStep(const Integrator<Scalar>& integrator) override;
57
59 virtual void observeEndIntegrator(const Integrator<Scalar>& integrator) override;
61
62 void resetLogCounters();
63
64 Teuchos::RCP<const std::map<std::string,int> > getCounters();
65
66 Teuchos::RCP<const std::list<std::string> > getOrder();
67
72 const std::string nameObserveStartIntegrator_;
73 const std::string nameObserveStartTimeStep_;
74 const std::string nameObserveNextTimeStep_;
75 const std::string nameObserveBeforeTakeStep_;
76 const std::string nameObserveAfterTakeStep_;
78 const std::string nameObserveEndTimeStep_;
79 const std::string nameObserveEndIntegrator_;
81
82private:
83
89 void logCall(const std::string call) const;
90
91 Teuchos::RCP< std::map<std::string,int> > counters_;
92 Teuchos::RCP< std::list<std::string> > order_;
93
94};
95
96} // namespace Tempus
97#endif // Tempus_IntegratorObserverLogging_decl_hpp
This observer logs calls to observer functions. This observer simply logs and counts the calls to eac...
Teuchos::RCP< const std::list< std::string > > getOrder()
virtual void observeAfterTakeStep(const Integrator< Scalar > &integrator) override
Observe after Stepper takes step.
Teuchos::RCP< std::list< std::string > > order_
Teuchos::RCP< std::map< std::string, int > > counters_
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.
virtual void observeStartIntegrator(const Integrator< Scalar > &integrator) override
Observe the beginning of the time integrator.
Teuchos::RCP< const std::map< std::string, int > > getCounters()
void logCall(const std::string call) const
Asserts next call on the stack is correct and removes from stack.
virtual void observeEndIntegrator(const Integrator< Scalar > &integrator) override
Observe the end of the time integrator.
virtual void observeEndTimeStep(const Integrator< Scalar > &integrator) override
Observe the end of the time step loop.
virtual void observeAfterCheckTimeStep(const Integrator< Scalar > &integrator) override
Observe after checking time step.
IntegratorObserver class for time integrators.
Thyra Base interface for time integrators. Time integrators are designed to advance the solution from...