VertexCFD  0.0-dev
VertexCFD_TempusTimeStepControl_GlobalCFL.hpp
1 #ifndef VERTEXCFD_TEMPUSTIMESTEPCONTROL_GLOBALCFL_HPP
2 #define VERTEXCFD_TEMPUSTIMESTEPCONTROL_GLOBALCFL_HPP
3 
4 #include "observers/VertexCFD_TempusTimeStepControl_Strategy.hpp"
5 
6 #include "drivers/VertexCFD_PhysicsManager.hpp"
7 #include "responses/VertexCFD_ResponseManager.hpp"
8 
9 #include <Tempus_SolutionHistory.hpp>
10 #include <Tempus_SolutionState.hpp>
11 #include <Tempus_StepperState.hpp>
12 #include <Tempus_TimeStepControl.hpp>
13 #include <Tempus_TimeStepControlStrategy.hpp>
14 
15 #include <Thyra_VectorBase.hpp>
16 
17 #include <Teuchos_ParameterList.hpp>
18 #include <Teuchos_RCP.hpp>
19 
20 namespace VertexCFD
21 {
22 namespace TempusTimeStepControl
23 {
24 //---------------------------------------------------------------------------//
25 template<class Scalar>
26 class GlobalCFL : virtual public Strategy<Scalar>
27 {
28  public:
29  GlobalCFL(const Teuchos::ParameterList& user_params,
30  Teuchos::RCP<PhysicsManager> physics_manager);
31 
32  // Determine the time step size.
33  void setNextTimeStep(
34  const Tempus::TimeStepControl<Scalar>& tsc,
35  Teuchos::RCP<Tempus::SolutionHistory<Scalar>> solution_history,
36  Tempus::Status& integrator_status) override;
37 
38  private:
39  enum CflTransitionType
40  {
41  steps,
42  time
43  };
44 
45  double _cfl;
46  double _cfl_init;
47  double _cfl_transition_init;
48  double _cfl_transition;
49  CflTransitionType _cfl_type;
50  Response::ResponseManager _response_manager;
51 };
52 
53 //---------------------------------------------------------------------------//
54 
55 } // end namespace TempusTimeStepControl
56 } // end namespace VertexCFD
57 
58 #include "VertexCFD_TempusTimeStepControl_GlobalCFL_impl.hpp"
59 
60 #endif // end VERTEXCFD_TEMPUSTIMESTEPCONTROL_GLOBALCFL_HPP
VertexCFD
Definition: tstMethodManufacturedSolutionBC.cpp:23
VertexCFD::TempusTimeStepControl::GlobalCFL
Definition: VertexCFD_TempusTimeStepControl_GlobalCFL.hpp:27
VertexCFD::TempusTimeStepControl::Strategy
Definition: VertexCFD_TempusTimeStepControl_Strategy.hpp:16
VertexCFD::Response::ResponseManager
Definition: VertexCFD_ResponseManager.hpp:22