VertexCFD  0.0-dev
VertexCFD_BCStrategy_ConductionBoundaryFlux.hpp
1 #ifndef VERTEXCFD_BOUNDARYCONDITION_CONDUCTIONBOUNDARYFLUX_HPP
2 #define VERTEXCFD_BOUNDARYCONDITION_CONDUCTIONBOUNDARYFLUX_HPP
3 
4 #include "boundary_conditions/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 //--------------------------------------------------------------------------//
35 template<class EvalType, int NumSpaceDim>
36 class ConductionBoundaryFlux : public BoundaryFluxBase<EvalType, NumSpaceDim>
37 {
38  public:
48  ConductionBoundaryFlux(const panzer::BC& bc,
49  const Teuchos::RCP<panzer::GlobalData>& global_data);
50 
52  static constexpr int num_space_dim = NumSpaceDim;
53 
63  void setup(const panzer::PhysicsBlock& side_pb,
64  const Teuchos::ParameterList& user_data) override;
65 
81  PHX::FieldManager<panzer::Traits>& fm,
82  const panzer::PhysicsBlock& side_pb,
83  const panzer::ClosureModelFactory_TemplateManager<panzer::Traits>& factory,
84  const Teuchos::ParameterList& models,
85  const Teuchos::ParameterList& user_data) const override;
86 
101  PHX::FieldManager<panzer::Traits>& fm,
102  const panzer::PhysicsBlock& side_pb,
103  const panzer::LinearObjFactory<panzer::Traits>& lof,
104  const Teuchos::ParameterList& user_data) const override;
105 
119  PHX::FieldManager<panzer::Traits>& fm,
120  const panzer::PhysicsBlock& side_pb,
121  const panzer::LinearObjFactory<panzer::Traits>& lof,
122  const Teuchos::ParameterList& user_data) const override;
123 
133  void postRegistrationSetup(typename panzer::Traits::SetupData d,
134  PHX::FieldManager<panzer::Traits>& vm) override;
135 
144  void evaluateFields(typename panzer::Traits::EvalData d) override;
145 
146  private:
148  std::unordered_map<std::string, std::string> _equ_dof_cond_pair;
149 };
150 
151 //--------------------------------------------------------------------------//
152 
153 } // end namespace BoundaryCondition
154 } // end namespace VertexCFD
155 
156 #endif // end VERTEXCFD_BOUNDARYCONDITION_CONDUCTIONBOUNDARYFLUX_HPP
VertexCFD::BoundaryCondition::ConductionBoundaryFlux::buildAndRegisterEvaluators
void buildAndRegisterEvaluators(PHX::FieldManager< panzer::Traits > &fm, const panzer::PhysicsBlock &side_pb, const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > &factory, const Teuchos::ParameterList &models, const Teuchos::ParameterList &user_data) const override
Build and register field evaluators for the conduction flux.
Definition: VertexCFD_BCStrategy_ConductionBoundaryFlux_impl.hpp:55
VertexCFD::BoundaryCondition::BoundaryFluxBase
Definition: VertexCFD_BCStrategy_BoundaryFluxBase.hpp:25
VertexCFD::BoundaryCondition::ConductionBoundaryFlux::buildAndRegisterGatherAndOrientationEvaluators
void buildAndRegisterGatherAndOrientationEvaluators(PHX::FieldManager< panzer::Traits > &fm, const panzer::PhysicsBlock &side_pb, const panzer::LinearObjFactory< panzer::Traits > &lof, const Teuchos::ParameterList &user_data) const override
Build and register gather and orientation evaluators.
Definition: VertexCFD_BCStrategy_ConductionBoundaryFlux_impl.hpp:153
VertexCFD
Definition: tstMethodManufacturedSolutionBC.cpp:23
VertexCFD::BoundaryCondition::ConductionBoundaryFlux::evaluateFields
void evaluateFields(typename panzer::Traits::EvalData d) override
Evaluate the conduction flux on the side set.
Definition: VertexCFD_BCStrategy_ConductionBoundaryFlux_impl.hpp:171
VertexCFD::BoundaryCondition::ConductionBoundaryFlux::postRegistrationSetup
void postRegistrationSetup(typename panzer::Traits::SetupData d, PHX::FieldManager< panzer::Traits > &vm) override
Perform post‑registration setup.
Definition: VertexCFD_BCStrategy_ConductionBoundaryFlux_impl.hpp:164
VertexCFD::BoundaryCondition::ConductionBoundaryFlux::buildAndRegisterScatterEvaluators
void buildAndRegisterScatterEvaluators(PHX::FieldManager< panzer::Traits > &fm, const panzer::PhysicsBlock &side_pb, const panzer::LinearObjFactory< panzer::Traits > &lof, const Teuchos::ParameterList &user_data) const override
Build and register scatter evaluators for the boundary flux.
Definition: VertexCFD_BCStrategy_ConductionBoundaryFlux_impl.hpp:138
VertexCFD::BoundaryCondition::ConductionBoundaryFlux
Implements a Neumann (flux) boundary condition for thermal conduction.
Definition: VertexCFD_BCStrategy_ConductionBoundaryFlux.hpp:37
VertexCFD::BoundaryCondition::ConductionBoundaryFlux::setup
void setup(const panzer::PhysicsBlock &side_pb, const Teuchos::ParameterList &user_data) override
Set up the evaluator using side physics block information.
Definition: VertexCFD_BCStrategy_ConductionBoundaryFlux_impl.hpp:41
VertexCFD::BoundaryCondition::ConductionBoundaryFlux::ConductionBoundaryFlux
ConductionBoundaryFlux(const panzer::BC &bc, const Teuchos::RCP< panzer::GlobalData > &global_data)
Constructor.
Definition: VertexCFD_BCStrategy_ConductionBoundaryFlux_impl.hpp:33
VertexCFD::BoundaryCondition::ConductionBoundaryFlux::num_space_dim
static constexpr int num_space_dim
Number of spatial dimensions (compile‑time constant).
Definition: VertexCFD_BCStrategy_ConductionBoundaryFlux.hpp:52