VertexCFD  0.0-dev
VertexCFD_TempusObserver_IterationOutput.hpp
1 #ifndef VERTEXCFD_TEMPUSOBSERVER_ITERATIONOUTPUT_HPP
2 #define VERTEXCFD_TEMPUSOBSERVER_ITERATIONOUTPUT_HPP
3 
4 #include "observers/VertexCFD_TempusTimeStepControl_Strategy.hpp"
5 
6 #include <Tempus_IntegratorObserver.hpp>
7 
8 #include <Panzer_GlobalIndexer.hpp>
9 #include <Panzer_ResponseLibrary.hpp>
10 #include <Panzer_STK_Interface.hpp>
11 #include <Panzer_STK_ResponseEvaluatorFactory_SolutionWriter.hpp>
12 #include <Panzer_STK_Utilities.hpp>
13 
14 #include <Teuchos_FancyOStream.hpp>
15 #include <Teuchos_RCP.hpp>
16 
17 namespace VertexCFD
18 {
19 namespace TempusObserver
20 {
21 //---------------------------------------------------------------------------//
22 template<class Scalar>
23 class IterationOutput : virtual public Tempus::IntegratorObserver<Scalar>
24 {
25  public:
27  Teuchos::RCP<TempusTimeStepControl::Strategy<Scalar>> dt_strategy);
28 
31  const Tempus::Integrator<Scalar>& integrator) override;
32 
34  void
35  observeStartTimeStep(const Tempus::Integrator<Scalar>& integrator) override;
36 
39  void
40  observeNextTimeStep(const Tempus::Integrator<Scalar>& integrator) override;
41 
43  void
44  observeBeforeTakeStep(const Tempus::Integrator<Scalar>& integrator) override;
45 
47  void
48  observeAfterTakeStep(const Tempus::Integrator<Scalar>& integrator) override;
49 
53  const Tempus::Integrator<Scalar>& integrator) override;
54 
56  void
57  observeEndTimeStep(const Tempus::Integrator<Scalar>& integrator) override;
58 
60  void
61  observeEndIntegrator(const Tempus::Integrator<Scalar>& integrator) override;
62 
63  private:
64  Teuchos::FancyOStream _ostream;
65  Teuchos::RCP<TempusTimeStepControl::Strategy<Scalar>> _dt_strategy;
66  int _time_precision = 3;
67 };
68 
69 //---------------------------------------------------------------------------//
70 
71 } // end namespace TempusObserver
72 } // end namespace VertexCFD
73 
74 #include "VertexCFD_TempusObserver_IterationOutput_impl.hpp"
75 
76 #endif // end VERTEXCFD_TEMPUSOBSERVER_ITERATIONOUTPUT_HPP
VertexCFD
Definition: tstMethodManufacturedSolutionBC.cpp:23
VertexCFD::TempusObserver::IterationOutput::observeBeforeTakeStep
void observeBeforeTakeStep(const Tempus::Integrator< Scalar > &integrator) override
Observe before Stepper takes step.
Definition: VertexCFD_TempusObserver_IterationOutput_impl.hpp:72
VertexCFD::TempusObserver::IterationOutput::observeAfterTakeStep
void observeAfterTakeStep(const Tempus::Integrator< Scalar > &integrator) override
Observe after Stepper takes step.
Definition: VertexCFD_TempusObserver_IterationOutput_impl.hpp:89
VertexCFD::TempusObserver::IterationOutput::observeStartIntegrator
void observeStartIntegrator(const Tempus::Integrator< Scalar > &integrator) override
Observe the beginning of the time integrator.
Definition: VertexCFD_TempusObserver_IterationOutput_impl.hpp:25
VertexCFD::TempusObserver::IterationOutput::observeEndTimeStep
void observeEndTimeStep(const Tempus::Integrator< Scalar > &integrator) override
Observe the end of the time step loop.
Definition: VertexCFD_TempusObserver_IterationOutput_impl.hpp:103
VertexCFD::TempusTimeStepControl::Strategy
Definition: VertexCFD_TempusTimeStepControl_Strategy.hpp:16
VertexCFD::TempusObserver::IterationOutput::observeEndIntegrator
void observeEndIntegrator(const Tempus::Integrator< Scalar > &integrator) override
Observe the end of the time integrator.
Definition: VertexCFD_TempusObserver_IterationOutput_impl.hpp:115
VertexCFD::TempusObserver::IterationOutput::observeStartTimeStep
void observeStartTimeStep(const Tempus::Integrator< Scalar > &integrator) override
Observe the beginning of the time step loop.
Definition: VertexCFD_TempusObserver_IterationOutput_impl.hpp:58
VertexCFD::TempusObserver::IterationOutput::observeNextTimeStep
void observeNextTimeStep(const Tempus::Integrator< Scalar > &integrator) override
Definition: VertexCFD_TempusObserver_IterationOutput_impl.hpp:65
VertexCFD::TempusObserver::IterationOutput
Definition: VertexCFD_TempusObserver_IterationOutput.hpp:24
VertexCFD::TempusObserver::IterationOutput::observeAfterCheckTimeStep
void observeAfterCheckTimeStep(const Tempus::Integrator< Scalar > &integrator) override
Definition: VertexCFD_TempusObserver_IterationOutput_impl.hpp:96