53#ifndef __INTREPID2_CELLDATA_HPP__
54#define __INTREPID2_CELLDATA_HPP__
56#include "Intrepid2_ConfigDefs.hpp"
58#include "Shards_CellTopology.hpp"
110template<
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;
205template<
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];
287template<
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];
Definition file for the classes: Intrepid2::RefSubcellParametrization, Intrepid2::RefCellNodes,...
Header file for small functions used in Intrepid2.
Contains definitions of custom data types in Intrepid2.
Header function for Intrepid2::Util class and other utility functions.
This class defines the coordinates of the barycenter of the supported reference cells....
~RefCellCenter()=default
Destructor.
Kokkos::DynRankView< double, DeviceType > ViewType
static views containing the center coordinates allocated on DeviceType::memory_space
static const ReferenceCenterDataStatic refCenterDataStatic_
static struct containing the nodes coordinates on host
static void set()
Set center coordinates of reference cell for supported topologies.
RefCellCenter()=default
Default constructor.
static ConstViewType get(const unsigned cellTopoKey)
Retrieves the Cartesian coordinates of a reference cell barycenter.
static bool isReferenceCellCenterDataSet_
whether the center coordinates have been already set using the method set()
This class defines the coordinates of the nodes of reference cells according for supported cell topol...
~RefCellNodes()=default
Destructor.
static ConstViewType get(const unsigned cellTopoKey)
Retrieves the Cartesian coordinates of reference cell nodes.
static void set()
Set reference nodes coordinates for supported topologies.
static bool isReferenceNodeDataSet_
whether the nodes coordinates have been already set using the method set()
static const ReferenceNodeDataStatic refNodeDataStatic_
static struct containing the nodes coordinates on host
RefCellNodes()=default
Default constructor.
Kokkos::DynRankView< double, DeviceType > ViewType
static views containing the node coordinates allocated on DeviceType::memory_space
This class defines the parametrizations of edges and faces of supported reference cells....
static void set()
Computes and stores static views containing the parametrizations maps of edges and faces of all refer...
static bool isSubcellParametrizationSet_
whether the parametrizations have been already computed using the method set()
~RefSubcellParametrization()=default
Destructor.
Kokkos::DynRankView< double, DeviceType > ViewType
static views containing the parametrization maps, allocated on DeviceType::memory_space
static bool isSupported(const unsigned cellTopoKey)
Checks if a cell topology has a reference parametrization.
RefSubcellParametrization()=default
Default constructor.
static ConstViewType get(const ordinal_type subcellDim, const unsigned parentCellKey)
Returns a Kokkos view with the coefficients of the parametrization maps for the edges or faces of a r...
Reference node containers for each supported topology.