10#ifndef Tempus_IntegratorObserverComposite_impl_hpp
11#define Tempus_IntegratorObserverComposite_impl_hpp
14#include "Tempus_TimeStepControl.hpp"
18template <
class Scalar>
23template <
class Scalar>
28template <
class Scalar>
32 for (
auto& o : observers_) o->observeStartIntegrator(integrator);
35template <
class Scalar>
39 for (
auto& o : observers_) o->observeStartTimeStep(integrator);
42template <
class Scalar>
46 for (
auto& o : observers_) o->observeNextTimeStep(integrator);
49template <
class Scalar>
53 for (
auto& o : observers_) o->observeBeforeTakeStep(integrator);
56template <
class Scalar>
60 for (
auto& o : observers_) o->observeAfterTakeStep(integrator);
63template <
class Scalar>
67 for (
auto& o : observers_) o->observeAfterCheckTimeStep(integrator);
70template <
class Scalar>
74 for (
auto& o : observers_) o->observeEndTimeStep(integrator);
77template <
class Scalar>
81 for (
auto& o : observers_) o->observeEndIntegrator(integrator);
84template <
class Scalar>
88 observers_.push_back(observer);
91template <
class Scalar>
virtual void observeEndIntegrator(const Integrator< Scalar > &integrator) override
Observe the end of the time integrator.
IntegratorObserverComposite()
Default constructor.
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 ~IntegratorObserverComposite()
Destructor.
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.
Thyra Base interface for time integrators. Time integrators are designed to advance the solution from...