15 template <ElemType>
struct ShapeFuncImpl;
21 template <
class TPo
int,
class TArray>
27 const t_real _t0 = et + xi + zt - 1;
30 const t_real _t3 = 2*xi - 1;
34 v(0, 0) = _t0*(_t1 + _t2 + _t3);
36 v(0, 2) = et*(_t1 - 1);
37 v(0, 3) = zt*(_t2 - 1);
46 template <
class TPo
int,
class TArray>
55 const t_real _t3 = _t1 + _t2;
56 const t_real _t4 = _t0 + _t3 - 3;
60 const t_real _t8 = _t0 - 4;
63 v(0, 4) = -_t3 - 8*xi + 4;
72 v(1, 6) = -_t2 - _t8 - 8*et;
79 v(2, 7) = -_t1 - _t8 - 8*zt;
84 template <
class TPo
int,
class TArray>
113 template <
class TPo
int,
class TArray>
142 static constexpr int dim = 3;
144 static constexpr int numVertices = 4;
145 static constexpr int numNodes = 10;
146 static constexpr int numFaces = 4;
148 static constexpr t_real paramSpaceVol = 1.0 / 6.0;
160 static constexpr std::array<t_real, 3 * 10> standardCoords = {
187 static constexpr std::array<std::array<t_index, 10>, 4> faceNodes = {{
191 {2, 0, 3, 6, 7, 9}}};
201 static constexpr int numElevNodes = 0;
208 static constexpr int numBisect = 8;
216 static constexpr int numBisectVariants = 3;
230 static constexpr std::array<tBisectSub, 24> bisectElements = {{
264 static constexpr int vtkCellType = 24;
273 static constexpr std::array<int, 10> vtkNodeOrder = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
Core type aliases, constants, and metaprogramming utilities for the DNDS framework.
#define DNDS_DEVICE_CALLABLE
static constexpr ElemType GetBisectElemType(t_index)
Get the element type of a sub-element after bisection.
static constexpr ElemType GetFaceType(t_index)
Get the element type of a face.
static DNDS_DEVICE_CALLABLE void Diff2(const TPoint &p, TArray &&v)
static DNDS_DEVICE_CALLABLE void Diff3(const TPoint &p, TArray &&v)
static DNDS_DEVICE_CALLABLE void Diff1(const TPoint &p, TArray &&v)
static DNDS_DEVICE_CALLABLE void Diff0(const TPoint &p, TArray &&v)
Eigen::Matrix< real, 5, 1 > v