VertexCFD  0.0-dev
VertexCFD_BCStrategy_FullInductionMHDBoundaryFlux.hpp
1 #ifndef VERTEXCFD_BOUNDARYCONDITION_FULLINDUCTIONMHDBOUNDARYFLUX_HPP
2 #define VERTEXCFD_BOUNDARYCONDITION_FULLINDUCTIONMHDBOUNDARYFLUX_HPP
3 
4 #include "boundary_conditions/VertexCFD_BCStrategy_BoundaryFluxBase.hpp"
5 #include "boundary_conditions/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_fim_pair;
67 
68  bool _build_viscous_flux;
69  bool _internal_interface;
70  bool _build_full_induction_model;
71  std::string _incompressible_model_id;
72  std::string _induction_model_id;
73 };
74 
75 //---------------------------------------------------------------------------//
76 
77 } // end namespace BoundaryCondition
78 } // end namespace VertexCFD
79 
80 #endif // end VERTEXCFD_BOUNDARYCONDITION_FULLINDUCTIONMHDBOUNDARYFLUX_HPP
VertexCFD::BoundaryCondition::BoundaryFluxBase
Definition: VertexCFD_BCStrategy_BoundaryFluxBase.hpp:25
VertexCFD
Definition: tstMethodManufacturedSolutionBC.cpp:23
VertexCFD::BoundaryCondition::FullInductionMHDBoundaryFlux
Definition: VertexCFD_BCStrategy_FullInductionMHDBoundaryFlux.hpp:29