5 static double RT3T_tp = 0.16666666666666666667;
8 static double NF_N_T_RT3_3D_Xi[] = {
9 RT3T_tp,2*RT3T_tp,0.5,4*RT3T_tp,RT3T_tp,2*RT3T_tp,0.5,RT3T_tp,2*RT3T_tp,RT3T_tp,
10 RT3T_tp,RT3T_tp,RT3T_tp,RT3T_tp,2*RT3T_tp,2*RT3T_tp,2*RT3T_tp,0.5,0.5,4*RT3T_tp,
11 RT3T_tp,2*RT3T_tp,0.5,4*RT3T_tp,RT3T_tp,2*RT3T_tp,0.5,RT3T_tp,2*RT3T_tp,RT3T_tp,
12 0,0,0,0,0,0,0,0,0,0,
15 0.206829931610673204083980900024961,
16 0.206829931610673204083980900024961,
17 0.379510205167980387748057299925117,
18 0.206829931610673204083980900024961,
19 0.821035883105467230906058078714215e-1,
20 0.821035883105467230906058078714215e-1,
21 0.753689235068359830728182576385735,
22 0.821035883105467230906058078714215e-1,
23 0.578195050519799725317663886414270e-2,
24 0.578195050519799725317663886414270e-2,
25 0.982654148484406008240470083407572,
26 0.578195050519799725317663886414270e-2,
27 0.50532740018894224425624528557907e-1,
28 0.449467259981105775574375471442092,
29 0.50532740018894224425624528557907e-1,
30 0.449467259981105775574375471442092,
31 0.50532740018894224425624528557907e-1,
32 0.449467259981105775574375471442092,
33 0.229066536116811139600408854554753,
34 0.356395827885340437169173969506114e-1,
35 0.229066536116811139600408854554753,
36 0.356395827885340437169173969506114e-1,
37 0.229066536116811139600408854554753,
38 0.229066536116811139600408854554753,
39 0.506227344977843677082264893939883,
40 0.506227344977843677082264893939883,
41 0.506227344977843677082264893939883,
42 0.229066536116811139600408854554753,
43 0.229066536116811139600408854554753,
44 0.356395827885340437169173969506114e-1,
45 0.366077495531974236787738546327104e-1,
46 0.190486041934633455699433285315099,
47 0.366077495531974236787738546327104e-1,
48 0.366077495531974236787738546327104e-1,
49 0.366077495531974236787738546327104e-1,
50 0.190486041934633455699433285315099,
51 0.736298458958971696943019005419480,
52 0.736298458958971696943019005419480,
53 0.736298458958971696943019005419480,
54 0.366077495531974236787738546327104e-1,
55 0.366077495531974236787738546327104e-1,
56 0.190486041934633455699433285315099
58 static double NF_N_T_RT3_3D_Eta[] = {
59 RT3T_tp,RT3T_tp,RT3T_tp,RT3T_tp,2*RT3T_tp,2*RT3T_tp,2*RT3T_tp,0.5,0.5,4*RT3T_tp,
60 0,0,0,0,0,0,0,0,0,0,
61 4*RT3T_tp,0.5,2*RT3T_tp,RT3T_tp,0.5,2*RT3T_tp,RT3T_tp,2*RT3T_tp,RT3T_tp,RT3T_tp,
62 RT3T_tp,2*RT3T_tp,0.5,4*RT3T_tp,RT3T_tp,2*RT3T_tp,0.5,RT3T_tp,2*RT3T_tp,RT3T_tp,
65 0.206829931610673204083980900024961,
66 0.379510205167980387748057299925117,
67 0.206829931610673204083980900024961,
68 0.206829931610673204083980900024961,
69 0.821035883105467230906058078714215e-1,
70 0.753689235068359830728182576385735,
71 0.821035883105467230906058078714215e-1,
72 0.821035883105467230906058078714215e-1,
73 0.578195050519799725317663886414270e-2,
74 0.982654148484406008240470083407572,
75 0.578195050519799725317663886414270e-2,
76 0.578195050519799725317663886414270e-2,
77 0.449467259981105775574375471442092,
78 0.50532740018894224425624528557907e-1,
79 0.50532740018894224425624528557907e-1,
80 0.449467259981105775574375471442092,
81 0.449467259981105775574375471442092,
82 0.50532740018894224425624528557907e-1,
83 0.356395827885340437169173969506114e-1,
84 0.229066536116811139600408854554753,
85 0.229066536116811139600408854554753,
86 0.506227344977843677082264893939883,
87 0.506227344977843677082264893939883,
88 0.506227344977843677082264893939883,
89 0.229066536116811139600408854554753,
90 0.356395827885340437169173969506114e-1,
91 0.229066536116811139600408854554753,
92 0.229066536116811139600408854554753,
93 0.356395827885340437169173969506114e-1,
94 0.229066536116811139600408854554753,
95 0.190486041934633455699433285315099,
96 0.366077495531974236787738546327104e-1,
97 0.366077495531974236787738546327104e-1,
98 0.736298458958971696943019005419480,
99 0.736298458958971696943019005419480,
100 0.736298458958971696943019005419480,
101 0.366077495531974236787738546327104e-1,
102 0.190486041934633455699433285315099,
103 0.366077495531974236787738546327104e-1,
104 0.190486041934633455699433285315099,
105 0.366077495531974236787738546327104e-1,
106 0.366077495531974236787738546327104e-1
108 static double NF_N_T_RT3_3D_Zeta[]= {
109 0,0,0,0,0,0,0,0,0,0,
110 RT3T_tp,2*RT3T_tp,0.5,4*RT3T_tp,RT3T_tp,2*RT3T_tp,0.5,RT3T_tp,2*RT3T_tp,RT3T_tp,
111 RT3T_tp,RT3T_tp,RT3T_tp,RT3T_tp,2*RT3T_tp,2*RT3T_tp,2*RT3T_tp,0.5,0.5,4*RT3T_tp,
112 RT3T_tp,RT3T_tp,RT3T_tp,RT3T_tp,2*RT3T_tp,2*RT3T_tp,2*RT3T_tp,0.5,0.5,4*RT3T_tp,
115 0.379510205167980387748057299925117,
116 0.206829931610673204083980900024961,
117 0.206829931610673204083980900024961,
118 0.206829931610673204083980900024961,
119 0.753689235068359830728182576385737,
120 0.82103588310546723090605807871423e-1,
121 0.821035883105467230906058078714225e-1,
122 0.821035883105467230906058078714225e-1,
123 0.982654148484406008240470083407571,
124 0.5781950505197997253176638864142e-2,
125 0.578195050519799725317663886414230e-2,
126 0.578195050519799725317663886414260e-2,
127 0.449467259981105775574375471442094,
128 0.449467259981105775574375471442094,
129 0.449467259981105775574375471442094,
130 0.50532740018894224425624528557909e-1,
131 0.50532740018894224425624528557909e-1,
132 0.50532740018894224425624528557909e-1,
133 0.506227344977843677082264893939883,
134 0.506227344977843677082264893939883,
135 0.506227344977843677082264893939883,
136 0.229066536116811139600408854554753,
137 0.229066536116811139600408854554753,
138 0.35639582788534043716917396950611e-1,
139 0.35639582788534043716917396950611e-1,
140 0.229066536116811139600408854554753,
141 0.229066536116811139600408854554753,
142 0.35639582788534043716917396950611e-1,
143 0.229066536116811139600408854554753,
144 0.229066536116811139600408854554753,
145 0.736298458958971696943019005419481,
146 0.736298458958971696943019005419481,
147 0.736298458958971696943019005419481,
148 0.190486041934633455699433285315100,
149 0.36607749553197423678773854632711e-1,
150 0.36607749553197423678773854632711e-1,
151 0.190486041934633455699433285315100,
152 0.36607749553197423678773854632711e-1,
153 0.366077495531974236787738546327106e-1,
154 0.36607749553197423678773854632711e-1,
155 0.190486041934633455699433285315100,
156 0.366077495531974236787738546327106e-1
159 static double NF_N_T_RT3_3D_Weights[]= {
160 -0.205001886586399158405865177642941e-1,
161 0.142503058228669012484397415358704e-1,
162 0.142503058228669012484397415358704e-1,
163 0.142503058228669012484397415358704e-1,
164 0.142503058228669012484397415358704e-1,
165 0.196703331313390098756280342445466e-2,
166 0.196703331313390098756280342445466e-2,
167 0.196703331313390098756280342445466e-2,
168 0.196703331313390098756280342445466e-2,
169 0.169834109092887379837744566704016e-3,
170 0.169834109092887379837744566704016e-3,
171 0.169834109092887379837744566704016e-3,
172 0.169834109092887379837744566704016e-3,
173 0.457968382446728180074351446297276e-2,
174 0.457968382446728180074351446297276e-2,
175 0.457968382446728180074351446297276e-2,
176 0.457968382446728180074351446297276e-2,
177 0.457968382446728180074351446297276e-2,
178 0.457968382446728180074351446297276e-2,
179 0.570448580868191850680255862783040e-2,
180 0.570448580868191850680255862783040e-2,
181 0.570448580868191850680255862783040e-2,
182 0.570448580868191850680255862783040e-2,
183 0.570448580868191850680255862783040e-2,
184 0.570448580868191850680255862783040e-2,
185 0.570448580868191850680255862783040e-2,
186 0.570448580868191850680255862783040e-2,
187 0.570448580868191850680255862783040e-2,
188 0.570448580868191850680255862783040e-2,
189 0.570448580868191850680255862783040e-2,
190 0.570448580868191850680255862783040e-2,
191 0.214051914116209259648335300092023e-2,
192 0.214051914116209259648335300092023e-2,
193 0.214051914116209259648335300092023e-2,
194 0.214051914116209259648335300092023e-2,
195 0.214051914116209259648335300092023e-2,
196 0.214051914116209259648335300092023e-2,
197 0.214051914116209259648335300092023e-2,
198 0.214051914116209259648335300092023e-2,
199 0.214051914116209259648335300092023e-2,
200 0.214051914116209259648335300092023e-2,
201 0.214051914116209259648335300092023e-2,
202 0.214051914116209259648335300092023e-2
206 static double NF_N_T_RT3_3D_F0_Xi[] = {RT3T_tp,2*RT3T_tp,0.5,4*RT3T_tp,RT3T_tp,2*RT3T_tp,0.5,RT3T_tp,2*RT3T_tp,RT3T_tp};
207 static double NF_N_T_RT3_3D_F0_Eta[] = {RT3T_tp,RT3T_tp,RT3T_tp,RT3T_tp,2*RT3T_tp,2*RT3T_tp,2*RT3T_tp,0.5,0.5,4*RT3T_tp};
208 static double NF_N_T_RT3_3D_F0_Zeta[] = {0,0,0,0,0,0,0,0,0,0};
211 static double NF_N_T_RT3_3D_F1_Xi[] = {RT3T_tp,RT3T_tp,RT3T_tp,RT3T_tp,2*RT3T_tp,2*RT3T_tp,2*RT3T_tp,0.5,0.5,4*RT3T_tp};
212 static double NF_N_T_RT3_3D_F1_Eta[] = {0,0,0,0,0,0,0,0,0,0};
213 static double NF_N_T_RT3_3D_F1_Zeta[] = {RT3T_tp,2*RT3T_tp,0.5,4*RT3T_tp,RT3T_tp,2*RT3T_tp,0.5,RT3T_tp,2*RT3T_tp,RT3T_tp};
216 static double NF_N_T_RT3_3D_F2_Xi[] = {RT3T_tp,2*RT3T_tp,0.5,4*RT3T_tp,RT3T_tp,2*RT3T_tp,0.5,RT3T_tp,2*RT3T_tp,RT3T_tp};
217 static double NF_N_T_RT3_3D_F2_Eta[] = {4*RT3T_tp,0.5,2*RT3T_tp,RT3T_tp,0.5,2*RT3T_tp,RT3T_tp,2*RT3T_tp,RT3T_tp,RT3T_tp};
218 static double NF_N_T_RT3_3D_F2_Zeta[] = {RT3T_tp,RT3T_tp,RT3T_tp,RT3T_tp,2*RT3T_tp,2*RT3T_tp,2*RT3T_tp,0.5,0.5,4*RT3T_tp};
221 static double NF_N_T_RT3_3D_F3_Xi[] = {0,0,0,0,0,0,0,0,0,0};
222 static double NF_N_T_RT3_3D_F3_Eta[] = {RT3T_tp,2*RT3T_tp,0.5,4*RT3T_tp,RT3T_tp,2*RT3T_tp,0.5,RT3T_tp,2*RT3T_tp,RT3T_tp};
223 static double NF_N_T_RT3_3D_F3_Zeta[] = {RT3T_tp,RT3T_tp,RT3T_tp,RT3T_tp,2*RT3T_tp,2*RT3T_tp,2*RT3T_tp,0.5,0.5,4*RT3T_tp};
225 static double *NF_N_T_RT3_3D_XiArray[4] = {
229 NF_N_T_RT3_3D_F3_Xi };
231 static double *NF_N_T_RT3_3D_EtaArray[4] = {
232 NF_N_T_RT3_3D_F0_Eta,
233 NF_N_T_RT3_3D_F1_Eta,
234 NF_N_T_RT3_3D_F2_Eta,
235 NF_N_T_RT3_3D_F3_Eta };
237 static double *NF_N_T_RT3_3D_ZetaArray[4] = {
238 NF_N_T_RT3_3D_F0_Zeta,
239 NF_N_T_RT3_3D_F1_Zeta,
240 NF_N_T_RT3_3D_F2_Zeta,
241 NF_N_T_RT3_3D_F3_Zeta };
243 static double NF_N_T_RT3_3D_T[1] = {};
244 static double NF_N_T_RT3_3D_S[1] = {};
247 double *PointValues,
double *Functionals)
252 Functionals[0] = -PointValues[166];
253 Functionals[1] = -PointValues[167];
254 Functionals[2] = -PointValues[168];
255 Functionals[3] = -PointValues[169];
256 Functionals[4] = -PointValues[170];
257 Functionals[5] = -PointValues[171];
258 Functionals[6] = -PointValues[172];
259 Functionals[7] = -PointValues[173];
260 Functionals[8] = -PointValues[174];
261 Functionals[9] = -PointValues[175];
263 Functionals[10] = -PointValues[93];
264 Functionals[11] = -PointValues[94];
265 Functionals[12] = -PointValues[95];
266 Functionals[13] = -PointValues[96];
267 Functionals[14] = -PointValues[97];
268 Functionals[15] = -PointValues[98];
269 Functionals[16] = -PointValues[99];
270 Functionals[17] = -PointValues[100];
271 Functionals[18] = -PointValues[101];
272 Functionals[19] = -PointValues[102];
274 Functionals[20] = PointValues[20]+PointValues[103]+PointValues[186];
275 Functionals[21] = PointValues[21]+PointValues[104]+PointValues[187];
276 Functionals[22] = PointValues[22]+PointValues[105]+PointValues[188];
277 Functionals[23] = PointValues[23]+PointValues[106]+PointValues[189];
278 Functionals[24] = PointValues[24]+PointValues[107]+PointValues[190];
279 Functionals[25] = PointValues[25]+PointValues[108]+PointValues[191];
280 Functionals[26] = PointValues[26]+PointValues[109]+PointValues[192];
281 Functionals[27] = PointValues[27]+PointValues[110]+PointValues[193];
282 Functionals[28] = PointValues[28]+PointValues[111]+PointValues[194];
283 Functionals[29] = PointValues[29]+PointValues[112]+PointValues[195];
285 Functionals[30] = -PointValues[30];
286 Functionals[31] = -PointValues[31];
287 Functionals[32] = -PointValues[32];
288 Functionals[33] = -PointValues[33];
289 Functionals[34] = -PointValues[34];
290 Functionals[35] = -PointValues[35];
291 Functionals[36] = -PointValues[36];
292 Functionals[37] = -PointValues[37];
293 Functionals[38] = -PointValues[38];
294 Functionals[39] = -PointValues[39];
303 s += PointValues[i+40] * NF_N_T_RT3_3D_Weights[i];
307 s += PointValues[i+40] * NF_N_T_RT3_3D_Xi[i+40] * NF_N_T_RT3_3D_Weights[i];
311 s += PointValues[i+40] * NF_N_T_RT3_3D_Eta[i+40] * NF_N_T_RT3_3D_Weights[i];
315 s += PointValues[i+40] * NF_N_T_RT3_3D_Zeta[i+40] * NF_N_T_RT3_3D_Weights[i];
319 s += PointValues[i+40] * NF_N_T_RT3_3D_Xi[i+40]*NF_N_T_RT3_3D_Xi[i+40] * NF_N_T_RT3_3D_Weights[i];
323 s += PointValues[i+40] * NF_N_T_RT3_3D_Xi[i+40]*NF_N_T_RT3_3D_Eta[i+40] * NF_N_T_RT3_3D_Weights[i];
327 s += PointValues[i+40] * NF_N_T_RT3_3D_Xi[i+40]*NF_N_T_RT3_3D_Zeta[i+40] * NF_N_T_RT3_3D_Weights[i];
331 s += PointValues[i+40] * NF_N_T_RT3_3D_Eta[i+40]*NF_N_T_RT3_3D_Eta[i+40] * NF_N_T_RT3_3D_Weights[i];
335 s += PointValues[i+40] * NF_N_T_RT3_3D_Eta[i+40]*NF_N_T_RT3_3D_Zeta[i+40] * NF_N_T_RT3_3D_Weights[i];
339 s += PointValues[i+40] * NF_N_T_RT3_3D_Zeta[i+40]*NF_N_T_RT3_3D_Zeta[i+40] * NF_N_T_RT3_3D_Weights[i];
345 s += PointValues[i+123] * NF_N_T_RT3_3D_Weights[i];
349 s += PointValues[i+123] * NF_N_T_RT3_3D_Xi[i+40] * NF_N_T_RT3_3D_Weights[i];
353 s += PointValues[i+123] * NF_N_T_RT3_3D_Eta[i+40] * NF_N_T_RT3_3D_Weights[i];
357 s += PointValues[i+123] * NF_N_T_RT3_3D_Zeta[i+40] * NF_N_T_RT3_3D_Weights[i];
361 s += PointValues[i+123] * NF_N_T_RT3_3D_Xi[i+40]*NF_N_T_RT3_3D_Xi[i+40] * NF_N_T_RT3_3D_Weights[i];
365 s += PointValues[i+123] * NF_N_T_RT3_3D_Xi[i+40]*NF_N_T_RT3_3D_Eta[i+40] * NF_N_T_RT3_3D_Weights[i];
369 s += PointValues[i+123] * NF_N_T_RT3_3D_Xi[i+40]*NF_N_T_RT3_3D_Zeta[i+40] * NF_N_T_RT3_3D_Weights[i];
373 s += PointValues[i+123] * NF_N_T_RT3_3D_Eta[i+40]*NF_N_T_RT3_3D_Eta[i+40] * NF_N_T_RT3_3D_Weights[i];
377 s += PointValues[i+123] * NF_N_T_RT3_3D_Eta[i+40]*NF_N_T_RT3_3D_Zeta[i+40] * NF_N_T_RT3_3D_Weights[i];
381 s += PointValues[i+123] * NF_N_T_RT3_3D_Zeta[i+40]*NF_N_T_RT3_3D_Zeta[i+40] * NF_N_T_RT3_3D_Weights[i];
387 s += PointValues[i+206] * NF_N_T_RT3_3D_Weights[i];
391 s += PointValues[i+206] * NF_N_T_RT3_3D_Xi[i+40] * NF_N_T_RT3_3D_Weights[i];
395 s += PointValues[i+206] * NF_N_T_RT3_3D_Eta[i+40] * NF_N_T_RT3_3D_Weights[i];
399 s += PointValues[i+206] * NF_N_T_RT3_3D_Zeta[i+40] * NF_N_T_RT3_3D_Weights[i];
403 s += PointValues[i+206] * NF_N_T_RT3_3D_Xi[i+40]*NF_N_T_RT3_3D_Xi[i+40] * NF_N_T_RT3_3D_Weights[i];
407 s += PointValues[i+206] * NF_N_T_RT3_3D_Xi[i+40]*NF_N_T_RT3_3D_Eta[i+40] * NF_N_T_RT3_3D_Weights[i];
411 s += PointValues[i+206] * NF_N_T_RT3_3D_Xi[i+40]*NF_N_T_RT3_3D_Zeta[i+40] * NF_N_T_RT3_3D_Weights[i];
415 s += PointValues[i+206] * NF_N_T_RT3_3D_Eta[i+40]*NF_N_T_RT3_3D_Eta[i+40] * NF_N_T_RT3_3D_Weights[i];
419 s += PointValues[i+206] * NF_N_T_RT3_3D_Eta[i+40]*NF_N_T_RT3_3D_Zeta[i+40] * NF_N_T_RT3_3D_Weights[i];
423 s += PointValues[i+206] * NF_N_T_RT3_3D_Zeta[i+40]*NF_N_T_RT3_3D_Zeta[i+40] * NF_N_T_RT3_3D_Weights[i];
428 double *PointValues,
double *Functionals)
431 double x0,x1,x2,y0,y1,y2,z0,z1,z2;
434 const int *faceVertex, *length;
443 s = sqrt( POW((y1-y0)*(z2-z0) - (z1-z0)*(y2-y0),2)
444 + POW((z1-z0)*(x2-x0) - (x1-x0)*(z2-z0),2)
445 + POW((x1-x0)*(y2-y0) - (x2-x0)*(y1-y0),2) );
446 for(
int i=0; i<10; i++)
447 Functionals[i] = PointValues[i]*s;
450 static int NF_N_T_RT3_3D_N_AllFunctionals = 70;
451 static int NF_N_T_RT3_3D_N_PointsAll = 83;
452 static int NF_N_T_RT3_3D_N_FaceFunctionals[] = {10,10,10,10};
453 static int NF_N_T_RT3_3D_N_PointsFace[] = {10,10,10,10};
456 (NF_N_T_RT3_3D, NF_N_T_RT3_3D_N_AllFunctionals,
457 NF_N_T_RT3_3D_N_FaceFunctionals, NF_N_T_RT3_3D_N_PointsAll,
458 NF_N_T_RT3_3D_N_PointsFace,
459 NF_N_T_RT3_3D_Xi, NF_N_T_RT3_3D_Eta, NF_N_T_RT3_3D_Zeta,
460 NF_N_T_RT3_3D_XiArray, NF_N_T_RT3_3D_EtaArray,
461 NF_N_T_RT3_3D_ZetaArray,
462 NF_N_T_RT3_3D_T, NF_N_T_RT3_3D_S,
463 NF_N_T_RT3_3D_EvalAll, NF_N_T_RT3_3D_EvalFace);
int GetFaceVertex(const int *&TmpFV, const int *&TmpLen, int &MaxLen)
Definition: ShapeDesc.h:124
TShapeDesc * GetShapeDesc() const
return shape descriptor of refinement descriptor
Definition: BaseCell.h:134
Definition: NodalFunctional3D.h:21
store cells in an array, used by cell iterators
Definition: Collection.h:18
virtual TVertex * GetVertex(int Vert_i)=0
return the pointer to vertex with number i
void GetCoords(double &x, double &y, double &z) const
Definition: Vertex.h:106
information for finite element data structure
Definition: BaseCell.h:25