VertexCFD  0.0-dev
VertexCFD_BCStrategy_IncompressibleLSVOFBoundaryFlux.hpp
1 #ifndef VERTEXCFD_BOUNDARYCONDITION_INCOMPRESSIBLELSVOFBOUNDARYFLUX_HPP
2 #define VERTEXCFD_BOUNDARYCONDITION_INCOMPRESSIBLELSVOFBOUNDARYFLUX_HPP
3 
4 #include "VertexCFD_BCStrategy_BoundaryFluxBase.hpp"
5 
6 #include <Panzer_BCStrategy.hpp>
7 #include <Panzer_Evaluator_WithBaseImpl.hpp>
8 #include <Panzer_GlobalDataAcceptor_DefaultImpl.hpp>
9 #include <Panzer_PhysicsBlock.hpp>
10 #include <Panzer_Traits.hpp>
11 
12 #include <Phalanx_Evaluator_WithBaseImpl.hpp>
13 #include <Phalanx_FieldManager.hpp>
14 #include <Phalanx_MDField.hpp>
15 
16 #include <Teuchos_RCP.hpp>
17 
18 #include <unordered_map>
19 
20 namespace VertexCFD
21 {
22 namespace BoundaryCondition
23 {
24 //---------------------------------------------------------------------------//
25 template<class EvalType, int NumSpaceDim>
27  : public BoundaryFluxBase<EvalType, NumSpaceDim>
28 {
29  public:
31  const panzer::BC& bc,
32  const Teuchos::RCP<panzer::GlobalData>& global_data);
33 
34  static constexpr int num_space_dim = NumSpaceDim;
35 
36  void setup(const panzer::PhysicsBlock& side_pb,
37  const Teuchos::ParameterList& user_data) override;
38 
39  void buildAndRegisterEvaluators(
40  PHX::FieldManager<panzer::Traits>& fm,
41  const panzer::PhysicsBlock& side_pb,
42  const panzer::ClosureModelFactory_TemplateManager<panzer::Traits>& factory,
43  const Teuchos::ParameterList& models,
44  const Teuchos::ParameterList& user_data) const override;
45 
46  void buildAndRegisterScatterEvaluators(
47  PHX::FieldManager<panzer::Traits>& fm,
48  const panzer::PhysicsBlock& side_pb,
49  const panzer::LinearObjFactory<panzer::Traits>& lof,
50  const Teuchos::ParameterList& user_data) const override;
51 
52  void buildAndRegisterGatherAndOrientationEvaluators(
53  PHX::FieldManager<panzer::Traits>& fm,
54  const panzer::PhysicsBlock& side_pb,
55  const panzer::LinearObjFactory<panzer::Traits>& lof,
56  const Teuchos::ParameterList& user_data) const override;
57 
58  void postRegistrationSetup(typename panzer::Traits::SetupData d,
59  PHX::FieldManager<panzer::Traits>& vm) override;
60 
61  void evaluateFields(typename panzer::Traits::EvalData d) override;
62 
63  private:
64  std::string _model_id;
65  Teuchos::ParameterList _side_pb_list;
66  Teuchos::ParameterList _bc_params;
67  std::unordered_map<std::string, std::string> _equ_dof_ns_pair;
68  std::unordered_map<std::string, std::string> _equ_dof_lsvof_pair;
69  Teuchos::ParameterList _lsvof_params;
70  bool _build_mom_eqn;
71  std::vector<std::string> _dof_phase_names;
72  std::vector<std::string> _all_phase_names;
73 };
74 
75 //---------------------------------------------------------------------------//
76 
77 } // end namespace BoundaryCondition
78 } // end namespace VertexCFD
79 
80 #endif // end VERTEXCFD_BOUNDARYCONDITION_INCOMPRESSIBLELSVOFBOUNDARYFLUX_HPP
VertexCFD::BoundaryCondition::BoundaryFluxBase
Definition: VertexCFD_BCStrategy_BoundaryFluxBase.hpp:25
VertexCFD
Definition: tstMethodManufacturedSolutionBC.cpp:23
VertexCFD::BoundaryCondition::IncompressibleLSVOFBoundaryFlux::setup
void setup(const panzer::PhysicsBlock &side_pb, const Teuchos::ParameterList &user_data) override
Definition: VertexCFD_BCStrategy_IncompressibleLSVOFBoundaryFlux_impl.hpp:47
VertexCFD::BoundaryCondition::IncompressibleLSVOFBoundaryFlux
Definition: VertexCFD_BCStrategy_IncompressibleLSVOFBoundaryFlux.hpp:28