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);
124 ordinal_type _edgeOrt, _faceOrt;
127 KOKKOS_INLINE_FUNCTION
130 KOKKOS_DEFAULTED_FUNCTION
133 KOKKOS_INLINE_FUNCTION
134 bool isAlignedToReference()
const;
136 KOKKOS_INLINE_FUNCTION
137 void setEdgeOrientation(
const ordinal_type numEdge,
const ordinal_type edgeOrt[]);
139 KOKKOS_INLINE_FUNCTION
140 void getEdgeOrientation(ordinal_type *edgeOrt,
const ordinal_type numEdge)
const;
142 KOKKOS_INLINE_FUNCTION
143 void setFaceOrientation(
const ordinal_type numFace,
const ordinal_type faceOrt[]);
145 KOKKOS_INLINE_FUNCTION
146 void getFaceOrientation(ordinal_type *faceOrt,
const ordinal_type numFace)
const;
148 inline std::string to_string()
const;
152 inline std::ostream& operator<<(std::ostream& os, const ::Intrepid2::Orientation& orientation)
154 os << orientation.to_string();
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.