9 #ifndef Tempus_IntegratorObserverLogging_impl_hpp
10 #define Tempus_IntegratorObserverLogging_impl_hpp
13 #include "Tempus_TimeStepControl.hpp"
17 template <
class Scalar>
19 : nameObserveStartIntegrator_(
"observeStartIntegrator"),
20 nameObserveStartTimeStep_(
"observeStartTimeStep"),
21 nameObserveNextTimeStep_(
"observeNextTimeStep"),
22 nameObserveBeforeTakeStep_(
"observeBeforeTakeStep"),
23 nameObserveAfterTakeStep_(
"observeAfterTakeStep"),
24 nameObserveAfterCheckTimeStep_(
"observeAfterCheckTimeStep"),
25 nameObserveEndTimeStep_(
"observeEndTimeStep"),
26 nameObserveEndIntegrator_(
"observeEndIntegrator")
33 template <
class Scalar>
38 template <
class Scalar>
42 logCall(nameObserveStartIntegrator_);
45 template <
class Scalar>
49 logCall(nameObserveStartTimeStep_);
52 template <
class Scalar>
56 logCall(nameObserveNextTimeStep_);
59 template <
class Scalar>
63 logCall(nameObserveBeforeTakeStep_);
66 template <
class Scalar>
70 logCall(nameObserveAfterTakeStep_);
73 template <
class Scalar>
77 logCall(nameObserveAfterCheckTimeStep_);
80 template <
class Scalar>
84 logCall(nameObserveEndTimeStep_);
87 template <
class Scalar>
91 logCall(nameObserveEndIntegrator_);
94 template <
class Scalar>
97 (*counters_)[nameObserveStartIntegrator_] = 0;
98 (*counters_)[nameObserveStartTimeStep_] = 0;
99 (*counters_)[nameObserveNextTimeStep_] = 0;
100 (*counters_)[nameObserveBeforeTakeStep_] = 0;
101 (*counters_)[nameObserveAfterTakeStep_] = 0;
102 (*counters_)[nameObserveAfterCheckTimeStep_] = 0;
103 (*counters_)[nameObserveEndTimeStep_] = 0;
104 (*counters_)[nameObserveEndIntegrator_] = 0;
108 template <
class Scalar>
115 template <
class Scalar>
122 template <
class Scalar>
125 (*counters_)[call] += 1;
126 order_->push_back(call);
130 #endif // Tempus_IntegratorObserverLogging_impl_hpp
Teuchos::RCP< const std::list< std::string > > getOrder()
virtual void observeNextTimeStep(const Integrator< Scalar > &integrator) override
Observe after the next time step size is selected.
IntegratorObserverLogging()
Constructor.
Teuchos::RCP< std::list< std::string > > order_
virtual void observeBeforeTakeStep(const Integrator< Scalar > &integrator) override
Observe before Stepper takes step.
Teuchos::RCP< std::map< std::string, int > > counters_
void logCall(const std::string call) const
Asserts next call on the stack is correct and removes from stack.
virtual void observeAfterCheckTimeStep(const Integrator< Scalar > &integrator) override
Observe after checking time step.
virtual void observeEndTimeStep(const Integrator< Scalar > &integrator) override
Observe the end of the time step loop.
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
virtual ~IntegratorObserverLogging()
Destructor.
Thyra Base interface for time integrators. Time integrators are designed to advance the solution from...
virtual void observeAfterTakeStep(const Integrator< Scalar > &integrator) override
Observe after Stepper takes step.
virtual void observeEndIntegrator(const Integrator< Scalar > &integrator) override
Observe the end of the time integrator.
Teuchos::RCP< const std::map< std::string, int > > getCounters()
virtual void observeStartIntegrator(const Integrator< Scalar > &integrator) override
Observe the beginning of the time integrator.
virtual void observeStartTimeStep(const Integrator< Scalar > &integrator) override
Observe the beginning of the time step loop.