48 #ifndef __INTREPID2_ORIENTATION_HPP__
49 #define __INTREPID2_ORIENTATION_HPP__
51 #include "Intrepid2_ConfigDefs.hpp"
55 #include "Shards_CellTopology.hpp"
67 template<
typename elemNodeViewType>
68 static void getElementNodeMap(
typename elemNodeViewType::non_const_value_type *subCellVerts,
69 ordinal_type &numVerts,
70 const shards::CellTopology cellTopo,
71 const elemNodeViewType elemNodes,
72 const ordinal_type subCellDim,
73 const ordinal_type subCellOrd);
76 template<
typename subCellVertType>
77 static ordinal_type getOrientation(
const subCellVertType subCellVerts[],
78 const ordinal_type numVerts);
82 template<
typename elemNodeViewType>
83 static Orientation getOrientation(
const shards::CellTopology cellTopo,
84 const elemNodeViewType elemNodes);
86 static ordinal_type getEdgeOrdinalOfFace(
const ordinal_type subsubcellOrd,
87 const ordinal_type subcellOrd,
88 const shards::CellTopology cellTopo);
90 template<
typename refTanViewType>
91 static void getReferenceEdgeTangent(
const refTanViewType &tanE,
92 const ordinal_type subcellOrd,
93 const shards::CellTopology cellTopo,
94 const ordinal_type ort,
95 const bool is_normalize =
true);
97 template<
typename refTanViewType>
98 static void getReferenceFaceTangents(
const refTanViewType &tanU,
99 const refTanViewType &tanV,
100 const ordinal_type subcellOrd,
101 const shards::CellTopology cellTopo,
102 const ordinal_type ort,
103 const bool is_normalize =
true);
105 template<
typename refNormalViewType>
106 static void getReferenceFaceNormal(
const refNormalViewType &normalV,
107 const ordinal_type subcellOrd,
108 const shards::CellTopology cellTopo,
109 const ordinal_type ort,
110 const bool is_normalize =
true);
114 ordinal_type _edgeOrt, _faceOrt;
117 KOKKOS_INLINE_FUNCTION
120 KOKKOS_DEFAULTED_FUNCTION
121 Orientation(
const Orientation &b) =
default;
123 KOKKOS_INLINE_FUNCTION
124 bool isAlignedToReference()
const;
126 KOKKOS_INLINE_FUNCTION
127 void setEdgeOrientation(
const ordinal_type numEdge,
const ordinal_type edgeOrt[]);
129 KOKKOS_INLINE_FUNCTION
130 void getEdgeOrientation(ordinal_type *edgeOrt,
const ordinal_type numEdge)
const;
132 KOKKOS_INLINE_FUNCTION
133 void setFaceOrientation(
const ordinal_type numFace,
const ordinal_type faceOrt[]);
135 KOKKOS_INLINE_FUNCTION
136 void getFaceOrientation(ordinal_type *faceOrt,
const ordinal_type numFace)
const;
Definition file for the Intrepid2::Orientation class.
Header function for Intrepid2::Util class and other utility functions.
Orientation encoding and decoding.
Contains definitions of custom data types in Intrepid2.