VTK  9.5.20251127
PyrF2Gradient.h
Go to the documentation of this file.
1const RealT HALF = 0.5;
2const RealT ONE = 1.;
3const RealT ZERO = 0.;
4const RealT TWO = 2.;
5const RealT THREE = 3.;
6const RealT FOUR = 4.;
7const RealT SIXTEENTHIRDS = 16. / 3.;
8const RealT EIGHT = 8.;
9const RealT TWENTYSEVEN = 27.;
10const RealT FOURTH = 0.25;
11const RealT NINTH = 1. / 9.;
12const RealT THREESIXTYFOURTHS = 3. / 64.;
13const RealT EIGHTH = 1. / 8.;
14const RealT FOURNINTHS = 4. / 9.;
15const RealT THREESIXTEENTHS = 3. / 16.;
16const RealT NINESIXTEENTHS = 9. / 16.;
17
18const RealT K1 = -0.25;
19const RealT K5 = ONE;
20const RealT K6 = -HALF;
21const RealT K10 = -ONE;
22const RealT K14 = ONE;
23const RealT K15A = TWENTYSEVEN / EIGHT;
24const RealT K15B = -TWENTYSEVEN / EIGHT;
25const RealT K19 = -SIXTEENTHIRDS;
26
27RealT r2 = rr * rr;
28RealT s2 = ss * ss;
29RealT t2 = tt * tt;
30RealT rs = rr * ss;
31RealT rt = rr * tt;
32RealT st = ss * tt;
33RealT r2s = r2 * ss;
34RealT rs2 = rr * s2;
35RealT r2s2 = r2 * s2;
36
37RealT tm = tt - ONE;
38RealT tm2 = tm * tm;
39RealT tm3 = tm2 * tm;
40RealT tm4 = tm3 * tm;
41
42// Be sure that the basis functions are defined when tt is very close to 1.
43RealT mt = abs(tm) > eps ? ONE / tm : ZERO;
44RealT m2t = abs(tm2) > eps ? ONE / tm2 : ZERO;
45RealT m3t = abs(tm3) > eps ? ONE / tm3 : ZERO;
46RealT m4t = abs(tm4) > eps ? ONE / tm4 : ZERO;
47
48basisGradient[0] = K1 * (rs * mt - rr - ss + tt + (ss * mt - ONE) * (rr + ss - ONE) - ONE);
49basisGradient[1] = K1 * (rs * mt - rr - ss + tt + (rr * mt - ONE) * (rr + ss - ONE) - ONE);
50basisGradient[2] = K1 * (-rs * m2t + ONE) * (rr + ss - ONE);
51
52basisGradient[3] = K1 * (rs * mt - rr + ss - tt + (-ss * mt + ONE) * (-rr + ss - ONE) + ONE);
53basisGradient[4] = K1 * (-rs * mt + rr - ss + tt + (-rr * mt - ONE) * (-rr + ss - ONE) - ONE);
54basisGradient[5] = K1 * (rs * m2t + ONE) * (-rr + ss - ONE);
55
56basisGradient[6] = K1 * (-rs * mt - rr - ss - tt + (ss * mt + ONE) * (-rr - ss - ONE) + ONE);
57basisGradient[7] = K1 * (-rs * mt - rr - ss - tt + (rr * mt + ONE) * (-rr - ss - ONE) + ONE);
58basisGradient[8] = K1 * (-rs * m2t + ONE) * (-rr - ss - ONE);
59
60basisGradient[9] = K1 * (-rs * mt - rr + ss + tt + (-ss * mt - ONE) * (rr - ss - ONE) - ONE);
61basisGradient[10] = K1 * (rs * mt + rr - ss - tt + (-rr * mt + ONE) * (rr - ss - ONE) + ONE);
62basisGradient[11] = K1 * (rs * m2t + ONE) * (rr - ss - ONE);
63
66basisGradient[14] = K5 * (FOUR * tt - ONE);
67
68basisGradient[15] = K6 * (-TWO * rs * mt + TWO * rr);
69basisGradient[16] = K6 * (-r2 * mt + tt - ONE);
70basisGradient[17] = K6 * (r2s * m2t + ss - TWO * tt + TWO);
71
72basisGradient[18] = K6 * (s2 * mt - tt + ONE);
73basisGradient[19] = K6 * (TWO * rs * mt + TWO * ss);
74basisGradient[20] = K6 * (-rs2 * m2t - rr - TWO * tt + TWO);
75
76basisGradient[21] = K6 * (TWO * rs * mt + TWO * rr);
77basisGradient[22] = K6 * (r2 * mt - tt + ONE);
78basisGradient[23] = K6 * (-r2s * m2t - ss - TWO * tt + TWO);
79
80basisGradient[24] = K6 * (-s2 * mt + tt - ONE);
81basisGradient[25] = K6 * (-TWO * rs * mt + TWO * ss);
82basisGradient[26] = K6 * (rs2 * m2t + rr - TWO * tt + TWO);
83
84basisGradient[27] = K10 * (ss + ss * mt - tt);
85basisGradient[28] = K10 * (rr + rr * mt - tt);
86basisGradient[29] = K10 * (-rs * m2t - rr - ss + TWO * tt - ONE);
87
88basisGradient[30] = K10 * (-ss - ss * mt + tt);
89basisGradient[31] = K10 * (-rr - rr * mt - tt);
90basisGradient[32] = K10 * (rs * m2t + rr - ss + TWO * tt - ONE);
91
92basisGradient[33] = K10 * (ss + ss * mt + tt);
93basisGradient[34] = K10 * (rr + rr * mt + tt);
94basisGradient[35] = K10 * (-rs * m2t + rr + ss + TWO * tt - ONE);
95
96basisGradient[36] = K10 * (-ss - ss * mt - tt);
97basisGradient[37] = K10 * (-rr - rr * mt + tt);
98basisGradient[38] = K10 * (rs * m2t - rr + ss + TWO * tt - ONE);
99
100basisGradient[39] = K14 * (TWO * rs2 * m2t - TWO * rr);
101basisGradient[40] = K14 * (TWO * r2s * m2t - TWO * ss);
102basisGradient[41] = K14 * (-TWO * r2s2 * m3t + TWO * tt - TWO);
103
104basisGradient[42] = K15A * (TWO * rs + TWO * rs * mt - TWO * rs2 * mt - TWO * rs2 * m2t);
105basisGradient[43] = K15A * (-TWO * r2s * mt - TWO * r2s * m2t + r2 + r2 * mt + TWO * st + tt - t2);
106basisGradient[44] =
107 K15A * (-r2s * m2t - r2s2 * (-TWO * tt + TWO) * m4t + r2s2 * m2t - TWO * st + ss + s2);
108
109basisGradient[45] = K15B * (TWO * rs2 * mt + TWO * rs2 * m2t - TWO * rt + s2 + s2 * mt + tt - t2);
110basisGradient[46] = K15B * (TWO * rs + TWO * rs * mt + TWO * r2s * mt + TWO * r2s * m2t);
111basisGradient[47] =
112 K15B * (-rs2 * m2t - TWO * rt + rr + r2s2 * (-TWO * tt + TWO) * m4t - r2s2 * m2t - r2);
113
114basisGradient[48] = K15B * (TWO * rs + TWO * rs * mt + TWO * rs2 * mt + TWO * rs2 * m2t);
115basisGradient[49] = K15B * (TWO * r2s * mt + TWO * r2s * m2t + r2 + r2 * mt - TWO * st + tt - t2);
116basisGradient[50] =
117 K15B * (-r2s * m2t + r2s2 * (-TWO * tt + TWO) * m4t - r2s2 * m2t - TWO * st + ss - s2);
118
119basisGradient[51] = K15A * (-TWO * rs2 * mt - TWO * rs2 * m2t + TWO * rt + s2 + s2 * mt + tt - t2);
120basisGradient[52] = K15A * (TWO * rs + TWO * rs * mt - TWO * r2s * mt - TWO * r2s * m2t);
121basisGradient[53] =
122 K15A * (-rs2 * m2t - TWO * rt + rr - r2s2 * (-TWO * tt + TWO) * m4t + r2s2 * m2t + r2);
123
124basisGradient[54] = K19 * (TWO * rs2 * m2t + TWO * rs2 * m3t - TWO * rr - TWO * rr * mt);
125basisGradient[55] = K19 * (TWO * r2s * m2t + TWO * r2s * m3t - TWO * ss - TWO * ss * mt);
126basisGradient[56] =
127 K19 * (-TWO * r2s2 * m3t - THREE * r2s2 * m4t + r2 * m2t + s2 * m2t + TWO * tt - ONE);
128
129// MODIFICATIONS TO d/dr(basis)
130
154
155// MODIFICATIONS TO d/ds(basis)
156
180
181// MODIFICATIONS TO d/dt(basis)
182
basisGradient[0]
const RealT K1
Definition PyrC2Basis.h:11
RealT r2
Definition PyrC2Basis.h:20
const RealT K14
Definition PyrC2Basis.h:15
RealT m2t
Definition PyrC2Basis.h:40
RealT st
Definition PyrC2Basis.h:25
const RealT K5
Definition PyrC2Basis.h:12
RealT r2s2
Definition PyrC2Basis.h:32
const RealT NINTH
Definition PyrC2Basis.h:4
const RealT EIGHT
Definition PyrC2Basis.h:8
const RealT K15A
Definition PyrC2Basis.h:16
const RealT FOURTH
Definition PyrC2Basis.h:3
RealT t2
Definition PyrC2Basis.h:22
RealT tm
Definition PyrC2Basis.h:35
RealT rs2
Definition PyrC2Basis.h:28
RealT tm2
Definition PyrC2Basis.h:36
const RealT TWENTYSEVEN
Definition PyrC2Basis.h:9
const RealT TWO
Definition PyrC2Basis.h:7
RealT r2s
Definition PyrC2Basis.h:26
const RealT ONE
Definition PyrC2Basis.h:6
const RealT K15B
Definition PyrC2Basis.h:17
RealT s2
Definition PyrC2Basis.h:21
const RealT ZERO
Definition PyrC2Basis.h:1
RealT mt
Definition PyrC2Basis.h:39
const RealT K6
Definition PyrC2Basis.h:13
const RealT HALF
Definition PyrC2Basis.h:2
const RealT FOURNINTHS
Definition PyrC2Basis.h:5
RealT rt
Definition PyrC2Basis.h:24
const RealT K10
Definition PyrC2Basis.h:14
RealT rs
Definition PyrC2Basis.h:23
RealT tm4
const RealT FOUR
RealT m3t
RealT m4t
RealT tm3
const RealT SIXTEENTHIRDS
Definition PyrF2Basis.h:5
const RealT K19
Definition PyrF2Basis.h:23
const RealT THREESIXTYFOURTHS
Definition PyrF2Basis.h:10
const RealT THREESIXTEENTHS
Definition PyrF2Basis.h:13
const RealT EIGHTH
Definition PyrF2Basis.h:11
const RealT NINESIXTEENTHS
Definition PyrF2Basis.h:14
const RealT THREE