VertexCFD  0.0-dev
VertexCFD_BCStrategy_IncompressibleBoundaryFlux.hpp
1 #ifndef VERTEXCFD_BOUNDARYCONDITION_INCOMPRESSIBLEBOUNDARYFLUX_HPP
2 #define VERTEXCFD_BOUNDARYCONDITION_INCOMPRESSIBLEBOUNDARYFLUX_HPP
3 
4 #include "VertexCFD_BCStrategy_BoundaryFluxBase.hpp"
5 #include "VertexCFD_BCStrategy_BoundaryFluxBase_impl.hpp"
6 
7 #include <Panzer_BCStrategy.hpp>
8 #include <Panzer_Evaluator_WithBaseImpl.hpp>
9 #include <Panzer_GlobalDataAcceptor_DefaultImpl.hpp>
10 #include <Panzer_PhysicsBlock.hpp>
11 #include <Panzer_Traits.hpp>
12 
13 #include <Phalanx_Evaluator_WithBaseImpl.hpp>
14 #include <Phalanx_FieldManager.hpp>
15 #include <Phalanx_MDField.hpp>
16 
17 #include <Teuchos_RCP.hpp>
18 
19 #include <unordered_map>
20 
21 namespace VertexCFD
22 {
23 namespace BoundaryCondition
24 {
25 //---------------------------------------------------------------------------//
26 template<class EvalType, int NumSpaceDim>
28  : public BoundaryFluxBase<EvalType, NumSpaceDim>
29 {
30  public:
32  const panzer::BC& bc,
33  const Teuchos::RCP<panzer::GlobalData>& global_data);
34 
35  static constexpr int num_space_dim = NumSpaceDim;
36 
37  void setup(const panzer::PhysicsBlock& side_pb,
38  const Teuchos::ParameterList& user_data) override;
39 
40  void buildAndRegisterEvaluators(
41  PHX::FieldManager<panzer::Traits>& fm,
42  const panzer::PhysicsBlock& side_pb,
43  const panzer::ClosureModelFactory_TemplateManager<panzer::Traits>& factory,
44  const Teuchos::ParameterList& models,
45  const Teuchos::ParameterList& user_data) const override;
46 
47  void buildAndRegisterScatterEvaluators(
48  PHX::FieldManager<panzer::Traits>& fm,
49  const panzer::PhysicsBlock& side_pb,
50  const panzer::LinearObjFactory<panzer::Traits>& lof,
51  const Teuchos::ParameterList& user_data) const override;
52 
53  void buildAndRegisterGatherAndOrientationEvaluators(
54  PHX::FieldManager<panzer::Traits>& fm,
55  const panzer::PhysicsBlock& side_pb,
56  const panzer::LinearObjFactory<panzer::Traits>& lof,
57  const Teuchos::ParameterList& user_data) const override;
58 
59  void postRegistrationSetup(typename panzer::Traits::SetupData d,
60  PHX::FieldManager<panzer::Traits>& vm) override;
61 
62  void evaluateFields(typename panzer::Traits::EvalData d) override;
63 
64  private:
65  std::unordered_map<std::string, std::string> _equ_dof_ns_pair;
66  std::unordered_map<std::string, std::string> _equ_dof_ep_pair;
67  std::unordered_map<std::string, std::string> _equ_dof_tm_pair;
68 
69  enum class ConModel
70  {
71  AC,
72  EDAC,
73  EDACTempNC
74  };
75  ConModel _continuity_model;
76 
77  bool _build_viscous_flux;
78  bool _build_temp_equ;
79  bool _internal_interface;
80  bool _build_ind_less_equ;
81  bool _turbulence_model;
82  std::string _turbulence_model_name;
83  std::string _continuity_model_name;
84 };
85 
86 //---------------------------------------------------------------------------//
87 
88 } // end namespace BoundaryCondition
89 } // end namespace VertexCFD
90 
91 #endif // end VERTEXCFD_BOUNDARYCONDITION_INCOMPRESSIBLEBOUNDARYFLUX_HPP
VertexCFD::BoundaryCondition::BoundaryFluxBase
Definition: VertexCFD_BCStrategy_BoundaryFluxBase.hpp:25
VertexCFD
Definition: tstMethodManufacturedSolutionBC.cpp:23
VertexCFD::BoundaryCondition::IncompressibleBoundaryFlux::setup
void setup(const panzer::PhysicsBlock &side_pb, const Teuchos::ParameterList &user_data) override
Definition: VertexCFD_BCStrategy_IncompressibleBoundaryFlux_impl.hpp:62
VertexCFD::BoundaryCondition::IncompressibleBoundaryFlux
Definition: VertexCFD_BCStrategy_IncompressibleBoundaryFlux.hpp:29