1 #ifndef VERTEXCFD_CLOSURE_METRICTENSOR_HPP
2 #define VERTEXCFD_CLOSURE_METRICTENSOR_HPP
4 #include <Panzer_Dimension.hpp>
5 #include <Panzer_Evaluator_WithBaseImpl.hpp>
6 #include <Panzer_IntegrationRule.hpp>
8 #include <Phalanx_Evaluator_Derived.hpp>
9 #include <Phalanx_FieldManager.hpp>
10 #include <Phalanx_KokkosDeviceTypes.hpp>
11 #include <Phalanx_MDField.hpp>
13 #include <Kokkos_Core.hpp>
17 namespace ClosureModel
20 template<
class EvalType,
class Traits>
22 public PHX::EvaluatorDerived<EvalType, Traits>
25 using scalar_type =
typename EvalType::ScalarT;
27 PHX::MDField<double, panzer::Cell, panzer::Point, panzer::Dim, panzer::Dim>
32 void postRegistrationSetup(
typename Traits::SetupData sd,
33 PHX::FieldManager<Traits>& fm)
override;
35 void evaluateFields(
typename Traits::EvalData workset)
override;
37 template<
int NumSpaceDim>
38 KOKKOS_INLINE_FUNCTION
void
39 operator()(std::integral_constant<int, NumSpaceDim>,
41 const int point)
const;
45 const int _num_topo_dim;
48 PHX::MDField<const double, panzer::Cell, panzer::Point, panzer::Dim, panzer::Dim>
51 Kokkos::View<double**, PHX::mem_space> _element_map;
59 #endif // end VERTEXCFD_CLOSURE_METRICTENSOR_HPP