VertexCFD  0.0-dev
VertexCFD_BoundaryState_AdiabaticWall.hpp
1 #ifndef VERTEXCFD_BOUNDARYSTATE_ADIABATICWALL_HPP
2 #define VERTEXCFD_BOUNDARYSTATE_ADIABATICWALL_HPP
3 
4 #include <Panzer_Dimension.hpp>
5 #include <Panzer_Evaluator_WithBaseImpl.hpp>
6 #include <Panzer_IntegrationRule.hpp>
7 
8 #include <Phalanx_Evaluator_Derived.hpp>
9 #include <Phalanx_KokkosDeviceTypes.hpp>
10 #include <Phalanx_MDField.hpp>
11 
12 #include <Teuchos_ParameterList.hpp>
13 
14 #include <Kokkos_Core.hpp>
15 
16 namespace VertexCFD
17 {
18 namespace BoundaryCondition
19 {
20 //---------------------------------------------------------------------------//
33 template<class EvalType, class Traits>
34 class AdiabaticWall : public panzer::EvaluatorWithBaseImpl<Traits>,
35  public PHX::EvaluatorDerived<EvalType, Traits>
36 {
37  public:
39  using scalar_type = typename EvalType::ScalarT;
40 
48  AdiabaticWall(const panzer::IntegrationRule& ir);
49 
57  void evaluateFields(typename Traits::EvalData workset) override;
58 
65  KOKKOS_INLINE_FUNCTION
66  void operator()(
67  const Kokkos::TeamPolicy<PHX::exec_space>::member_type& team) const;
68 
69  public:
74  PHX::MDField<scalar_type, panzer::Cell, panzer::Point> _boundary_temperature;
75 
80  PHX::MDField<scalar_type, panzer::Cell, panzer::Point, panzer::Dim>
82 
83  private:
88  PHX::MDField<const scalar_type, panzer::Cell, panzer::Point> _temperature;
89 
94  PHX::MDField<const scalar_type, panzer::Cell, panzer::Point, panzer::Dim>
95  _grad_temperature;
96 
101  PHX::MDField<const scalar_type, panzer::Cell, panzer::Point, panzer::Dim>
102  _normals;
103 };
104 
105 //---------------------------------------------------------------------------//
106 
107 } // end namespace BoundaryCondition
108 } // end namespace VertexCFD
109 
110 #endif // VERTEXCFD_BOUNDARYSTATE_ADIABATICWALL_HPP
VertexCFD
Definition: tstMethodManufacturedSolutionBC.cpp:23
VertexCFD::BoundaryCondition::AdiabaticWall::_boundary_temperature
PHX::MDField< scalar_type, panzer::Cell, panzer::Point > _boundary_temperature
Evaluated field: temperature prescribed on the boundary.
Definition: VertexCFD_BoundaryState_AdiabaticWall.hpp:74
VertexCFD::BoundaryCondition::AdiabaticWall::evaluateFields
void evaluateFields(typename Traits::EvalData workset) override
Evaluate the fields for a given workset.
Definition: VertexCFD_BoundaryState_AdiabaticWall_impl.hpp:36
VertexCFD::BoundaryCondition::AdiabaticWall::AdiabaticWall
AdiabaticWall(const panzer::IntegrationRule &ir)
Constructor.
Definition: VertexCFD_BoundaryState_AdiabaticWall_impl.hpp:14
VertexCFD::BoundaryCondition::AdiabaticWall
Boundary condition evaluator for an adiabatic wall.
Definition: VertexCFD_BoundaryState_AdiabaticWall.hpp:36
VertexCFD::BoundaryCondition::AdiabaticWall::_boundary_grad_temperature
PHX::MDField< scalar_type, panzer::Cell, panzer::Point, panzer::Dim > _boundary_grad_temperature
Evaluated field: gradient of the boundary temperature.
Definition: VertexCFD_BoundaryState_AdiabaticWall.hpp:81
VertexCFD::BoundaryCondition::AdiabaticWall::operator()
KOKKOS_INLINE_FUNCTION void operator()(const Kokkos::TeamPolicy< PHX::exec_space >::member_type &team) const
Kokkos functor invoked for each team in a parallel region.
Definition: VertexCFD_BoundaryState_AdiabaticWall_impl.hpp:46
VertexCFD::BoundaryCondition::AdiabaticWall::scalar_type
typename EvalType::ScalarT scalar_type
Alias for the scalar type used by the evaluation.
Definition: VertexCFD_BoundaryState_AdiabaticWall.hpp:39