53 #ifndef __INTREPID2_CELLDATA_HPP__
54 #define __INTREPID2_CELLDATA_HPP__
56 #include "Intrepid2_ConfigDefs.hpp"
58 #include "Shards_CellTopology.hpp"
110 template<
typename DeviceType>
113 using ConstViewType = Kokkos::DynRankView<const double,DeviceType>;
149 get(
const ordinal_type subcellDim,
150 const unsigned parentCellKey );
168 template <
typename HostViewType>
170 set( HostViewType subcellParam,
171 const ordinal_type subcellDim,
172 const shards::CellTopology parentCell );
175 using ViewType = Kokkos::DynRankView<double,DeviceType>;
177 static ViewType triEdgesParam, quadEdgesParam;
178 static ViewType shellTriEdgesParam, shellQuadEdgesParam;
179 static ViewType tetEdgesParam, hexEdgesParam, pyrEdgesParam, wedgeEdgesParam;
180 static ViewType shellTriFacesParam, shellQuadFacesParam;
181 static ViewType tetFacesParam, hexFacesParam, pyrFacesParam, wedgeFacesParam;
205 template<
typename DeviceType>
208 using ConstViewType = Kokkos::DynRankView<const double,DeviceType>;
234 get(
const unsigned cellTopoKey);
242 using ViewType = Kokkos::DynRankView<double,DeviceType>;
243 static ViewType lineNodes, line3Nodes;
244 static ViewType triangleNodes, triangle4Nodes, triangle6Nodes;
245 static ViewType quadrilateralNodes, quadrilateral8Nodes, quadrilateral9Nodes;
246 static ViewType tetrahedronNodes, tetrahedron8Nodes, tetrahedron10Nodes, tetrahedron11Nodes;
247 static ViewType hexahedronNodes, hexahedron20Nodes, hexahedron27Nodes;
248 static ViewType pyramidNodes, pyramid13Nodes, pyramid14Nodes;
249 static ViewType wedgeNodes, wedge15Nodes, wedge18Nodes;
256 double line[2][3], line_3[3][3];
257 double triangle[3][3], triangle_4[4][3], triangle_6[6][3];
258 double quadrilateral[4][3], quadrilateral_8[8][3], quadrilateral_9[9][3];
259 double tetrahedron[4][3], tetrahedron_8[8][3], tetrahedron_10[10][3], tetrahedron_11[10][3];
260 double hexahedron[8][3], hexahedron_20[20][3], hexahedron_27[27][3];
261 double pyramid[5][3], pyramid_13[13][3], pyramid_14[14][3];
262 double wedge[6][3], wedge_15[15][3], wedge_18[18][3];
287 template<
typename DeviceType>
290 using ConstViewType = Kokkos::DynRankView<const double,DeviceType>;
316 get(
const unsigned cellTopoKey);
324 using ViewType = Kokkos::DynRankView<double,DeviceType>;
327 static ViewType quadrilateralCenter;
339 double quadrilateral[3];
340 double tetrahedron[3];
341 double hexahedron[3];
This class defines the coordinates of the barycenter of the supported reference cells. The barycenter coordinates are stored in static views. The class is templated on the Kokkos::Device Type which is used to determine layout and memory space of the views.
RefSubcellParametrization()=default
Default constructor.
static bool isReferenceNodeDataSet_
whether the nodes coordinates have been already set using the method set()
Kokkos::DynRankView< double, DeviceType > ViewType
static views containing the center coordinates allocated on DeviceType::memory_space ...
static const ReferenceNodeDataStatic refNodeDataStatic_
static struct containing the nodes coordinates on host
Kokkos::DynRankView< double, DeviceType > ViewType
static views containing the parametrization maps, allocated on DeviceType::memory_space ...
~RefSubcellParametrization()=default
Destructor.
Definition file for the classes: Intrepid2::RefSubcellParametrization, Intrepid2::RefCellNodes, Intrepid2::RefCellCenter.
Header function for Intrepid2::Util class and other utility functions.
~RefCellNodes()=default
Destructor.
RefCellNodes()=default
Default constructor.
This class defines the coordinates of the nodes of reference cells according for supported cell topol...
static bool isReferenceCellCenterDataSet_
whether the center coordinates have been already set using the method set()
static void set()
Set reference nodes coordinates for supported topologies.
static bool isSupported(const unsigned cellTopoKey)
Checks if a cell topology has a reference parametrization.
static void set()
Computes and stores static views containing the parametrizations maps of edges and faces of all refer...
Contains definitions of custom data types in Intrepid2.
static bool isSubcellParametrizationSet_
whether the parametrizations have been already computed using the method set()
RefCellCenter()=default
Default constructor.
Kokkos::DynRankView< double, DeviceType > ViewType
static views containing the node coordinates allocated on DeviceType::memory_space ...
Reference node containers for each supported topology.
This class defines the parametrizations of edges and faces of supported reference cells...
Header file for small functions used in Intrepid2.
static void set()
Set center coordinates of reference cell for supported topologies.
static const ReferenceCenterDataStatic refCenterDataStatic_
static struct containing the nodes coordinates on host
~RefCellCenter()=default
Destructor.