VertexCFD  0.0-dev
VertexCFD_BCStrategy_SolidElectricBoundaryFlux.hpp
1 #ifndef VERTEXCFD_BOUNDARYCONDITION_SOLIDELECTRICBOUNDARYFLUX_HPP
2 #define VERTEXCFD_BOUNDARYCONDITION_SOLIDELECTRICBOUNDARYFLUX_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 //---------------------------------------------------------------------------//
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::unordered_map<std::string, std::string> _equ_dof_cond_pair;
65 };
66 
67 //---------------------------------------------------------------------------//
68 
69 } // end namespace BoundaryCondition
70 } // end namespace VertexCFD
71 
72 #endif // end VERTEXCFD_BOUNDARYCONDITION_SOLIDELECTRICBOUNDARYFLUX_HPP
VertexCFD::BoundaryCondition::BoundaryFluxBase
Definition: VertexCFD_BCStrategy_BoundaryFluxBase.hpp:25
VertexCFD
Definition: tstMethodManufacturedSolutionBC.cpp:23
VertexCFD::BoundaryCondition::SolidElectricBoundaryFlux
Definition: VertexCFD_BCStrategy_SolidElectricBoundaryFlux.hpp:28
VertexCFD::BoundaryCondition::SolidElectricBoundaryFlux::setup
void setup(const panzer::PhysicsBlock &side_pb, const Teuchos::ParameterList &user_data) override
Definition: VertexCFD_BCStrategy_SolidElectricBoundaryFlux_impl.hpp:40