15 template <ElemType>
struct ShapeFuncImpl;
21 template <
class TPo
int,
class TArray>
26 const t_real _t0 = xi*(xi - 1);
27 const t_real _t1 = et*(et - 1);
28 const t_real _t2 = ((0.25))*_t1;
29 const t_real _t3 = xi*(xi + 1);
30 const t_real _t4 = et*(et + 1);
31 const t_real _t5 = ((0.25))*_t4;
32 const t_real _t6 = ((xi) * (xi)) - 1;
33 const t_real _t7 = ((0.5))*_t6;
34 const t_real _t8 = ((et) * (et)) - 1;
35 const t_real _t9 = ((0.5))*_t8;
47 template <
class TPo
int,
class TArray>
53 const t_real _t1 = _t0 - 1;
55 const t_real _t3 = ((0.25))*et;
56 const t_real _t4 = _t2*_t3;
57 const t_real _t5 = _t0 + 1;
59 const t_real _t7 = _t3*_t6;
61 const t_real _t9 = ((et) * (et)) - 1;
62 const t_real _t10 = ((0.5))*_t9;
63 const t_real _t11 = xi - 1;
65 const t_real _t13 = _t12 - 1;
66 const t_real _t14 = ((0.25))*xi;
67 const t_real _t15 = _t13*_t14;
68 const t_real _t16 = xi + 1;
69 const t_real _t17 = _t12 + 1;
70 const t_real _t18 = _t14*_t17;
71 const t_real _t19 = ((xi) * (xi)) - 1;
72 const t_real _t20 = ((0.5))*_t19;
93 template <
class TPo
int,
class TArray>
99 const t_real _t1 = ((0.5))*et;
100 const t_real _t2 = _t0*_t1;
101 const t_real _t3 = et*(et + 1);
102 const t_real _t4 = ((0.5))*_t3;
103 const t_real _t5 = ((et) * (et));
104 const t_real _t6 = 1 - _t5;
106 const t_real _t8 = ((0.5))*xi;
108 const t_real _t10 = -_t8 + _t9;
109 const t_real _t11 = _t8 + _t9;
112 const t_real _t14 = xi - 1;
113 const t_real _t15 = _t14*_t8;
114 const t_real _t16 = xi + 1;
115 const t_real _t17 = _t16*_t8;
116 const t_real _t18 = ((xi) * (xi));
117 const t_real _t19 = 1 - _t18;
127 v(1, 0) = _t10 + _t7 + (0.25);
128 v(1, 1) = _t1 + _t10 + (-0.25);
129 v(1, 2) = _t1 + _t11 + (0.25);
130 v(1, 3) = _t11 + _t7 + (-0.25);
131 v(1, 4) = xi*(1 - _t12);
132 v(1, 5) = et*(-_t13 - 1);
133 v(1, 6) = xi*(-_t12 - 1);
134 v(1, 7) = et*(1 - _t13);
144 v(2, 8) = 2*_t18 - 2;
147 template <
class TPo
int,
class TArray>
152 const t_real _t0 = et + (-0.5);
153 const t_real _t1 = et + (0.5);
156 const t_real _t4 = xi + (-0.5);
157 const t_real _t5 = xi + (0.5);
201 static constexpr int dim = 2;
203 static constexpr int numVertices = 4;
204 static constexpr int numNodes = 9;
205 static constexpr int numFaces = 4;
207 static constexpr t_real paramSpaceVol = 4.0;
221 static constexpr std::array<t_real, 3 * 9> standardCoords = {
251 static constexpr std::array<std::array<t_index, 10>, 4> faceNodes = {{
265 static constexpr int numElevNodes = 0;
272 static constexpr int numBisect = 4;
275 static constexpr int numBisectVariants = 1;
292 static constexpr std::array<tBisectSub, 4> bisectElements = {{
303 static constexpr int vtkCellType = 23;
312 static constexpr std::array<int, 8> vtkNodeOrder = {0, 1, 2, 3, 4, 5, 6, 7};
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 (edge)
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)
static DNDS_DEVICE_CALLABLE void Diff2(const TPoint &p, TArray &&v)
Eigen::Matrix< real, 5, 1 > v