1 static double NF_N_T_P4_2D_Xi[30] =
3 0.046910077030668003601186560850,
4 0.230765344947158454481842789650,
6 0.769234655052841545518157210350,
7 0.953089922969331996398813439150,
8 0.953089922969331996398813439150,
9 0.769234655052841545518157210350,
11 0.230765344947158454481842789650,
12 0.046910077030668003601186560850,
25 0.5612735500931855E-1,
26 0.3474680882747129E-1,
27 0.6473290497749777E-1,
31 static double NF_N_T_P4_2D_Eta[30] =
34 0.046910077030668003601186560850,
35 0.230765344947158454481842789650,
37 0.769234655052841545518157210350,
38 0.953089922969331996398813439150,
39 0.953089922969331996398813439150,
40 0.769234655052841545518157210350,
42 0.230765344947158454481842789650,
43 0.046910077030668003601186560850,
50 0.5612735500931855E-1,
51 0.3474680882747129E-1,
52 0.6473290497749777E-1,
53 -0.2968960232737531E1,
57 0.6510199345893917E-1,
61 static double NF_N_T_P4_2D_T[5] = { -0.906179845938663992797626878299,
62 -0.538469310105683091036314420699,
64 0.538469310105683091036314420699,
65 0.906179845938663992797626878299 };
67 static double NF_N_T_P4_2D_EdgeWeight0[5] = {
68 0.1184634425280945437571320205,
69 0.2393143352496832340206457575,
70 0.2844444444444444444444444444,
71 0.2393143352496832340206457575,
72 0.1184634425280945437571320205 };
74 static double NF_N_T_P4_2D_EdgeWeight1[5] = {
75 -0.3220475522984174693134711033,
76 -0.3865902750008912622604589675,
78 0.3865902750008912622604589675,
79 0.3220475522984174693134711033 };
81 static double NF_N_T_P4_2D_EdgeWeight2[5] = {
82 0.4334238969965230841044414528,
83 -0.0778683414409675285488858967,
84 -0.7111111111111111111111111111,
85 -0.0778683414409675285488858967,
86 0.4334238969965230841044414528 };
88 static double NF_N_T_P4_2D_EdgeWeight3[5] = {
89 -0.4154771413508325868510801940,
90 0.6991986448892333762714923941,
92 -0.6991986448892333762714923941,
93 0.4154771413508325868510801940 };
96 static double NF_N_T_P4_2D_CellWeight0[15] = {
97 0.03396003583624729958603721,
98 0.001659928772460918247370114,
99 0.0004242940743545037796319238,
100 0.001334070902641637542676619,
101 0.1698598594336262696527415e-7,
102 0.2116868384521265935109703,
103 0.05170419916926577994680451,
104 0.1492907562798600740896240,
105 0.001349327252954068718657978,
106 0.2304156165773590450668980e-9,
107 0.06344714185011418859601229,
108 0.2095452185809266179080118,
109 0.03453432245238165684485284,
110 0.2410638238638489590105253,
111 0.2529641609960604545839634e-7 };
113 static double NF_N_T_P4_2D_CellWeight1[15] = {
114 0.2116868384521265935109703,
115 0.05170419916926576344113832,
116 0.1492907562798600695085742,
117 0.001349327252954070376766655,
118 0.2304156165773590450668980e-9,
119 0.06344714185011418859601229,
120 0.2095452185809265846796426,
121 0.03453432245238165464155087,
122 0.2410638238638489811731078,
123 0.2529641609960604545839634e-7,
124 0.03396003583624729958603721,
125 0.001659928772460915289937375,
126 0.0004242940743545035354114681,
127 0.001334070902641639191384834,
128 0.1698598594336262696527415e-7 };
130 static double NF_N_T_P4_2D_CellWeight2[15] = {
131 0.06344714185011418859601229,
132 0.2095452185809265846796426,
133 0.03453432245238165464155087,
134 0.2410638238638489811731078,
135 0.2529641609960604545839634e-7,
136 0.03396003583624729958603721,
137 0.001659928772460915289937375,
138 0.0004242940743545035354114681,
139 0.001334070902641639191384834,
140 0.1698598594336262696527415e-7,
141 0.2116868384521265935109703,
142 0.05170419916926576344113832,
143 0.1492907562798600695085742,
144 0.001349327252954070376766655,
145 0.2304156165773590450668980e-9 };
147 static double NF_N_T_P4_2D_CellWeight3[15] = {
148 0.1695746752306618684689641,
149 0.01852838771810587384581863,
150 0.01591768616922033054907036,
151 0.002683354785567795807609552,
152 -0.3956683674146445297237118e-8,
153 0.2317837342616973425616102,
154 0.2081765377411735185945207,
155 0.1436057814508679070699259,
156 0.03607070763047549758772657,
157 0.4828535725367747122020117e-8,
158 0.09283678604814674727640592,
159 0.03730040951271670414894234,
160 0.007655771255306214695467177,
161 0.03586620878187657586340455,
162 -0.4145766844796558689352039e-7 };
164 static double NF_N_T_P4_2D_CellWeight4[15] = {
165 0.2317837342616973425616102,
166 0.2081765377411734853661515,
167 0.1436057814508679048666239,
168 0.03607070763047551975030914,
169 0.4828535725367747122020117e-8,
170 0.09283678604814674727640592,
171 0.03730040951271670119150960,
172 0.007655771255306214451246721,
173 0.03586620878187657751211276,
174 -0.4145766844796558689352039e-7,
175 0.1695746752306618684689641,
176 0.01852838771810585734015244,
177 0.01591768616922032596802056,
178 0.002683354785567797465718229,
179 -0.3956683674146445297237118e-8 };
181 static double NF_N_T_P4_2D_CellWeight5[15] = {
182 0.09283678604814674727640592,
183 0.03730040951271673441987882,
184 0.007655771255306216654548697,
185 0.03586620878187655534953020,
186 -0.4145766844796558689352039e-7,
187 0.1695746752306618684689641,
188 0.01852838771810586029758518,
189 0.01591768616922032621224102,
190 0.002683354785567795817010014,
191 -0.3956683674146445297237118e-8,
192 0.2317837342616973425616102,
193 0.2081765377411735018718177,
194 0.1436057814508679094476737,
195 0.03607070763047551809220046,
196 0.4828535725367747122020117e-8 };
201 int OwnNum, NeighNum;
204 Functionals[0] =( NF_N_T_P4_2D_EdgeWeight0[0]*PointValues[ 0]
205 +NF_N_T_P4_2D_EdgeWeight0[1]*PointValues[ 1]
206 +NF_N_T_P4_2D_EdgeWeight0[2]*PointValues[ 2]
207 +NF_N_T_P4_2D_EdgeWeight0[3]*PointValues[ 3]
208 +NF_N_T_P4_2D_EdgeWeight0[4]*PointValues[ 4]);
209 Functionals[1] =( NF_N_T_P4_2D_EdgeWeight0[0]*PointValues[ 5]
210 +NF_N_T_P4_2D_EdgeWeight0[1]*PointValues[ 6]
211 +NF_N_T_P4_2D_EdgeWeight0[2]*PointValues[ 7]
212 +NF_N_T_P4_2D_EdgeWeight0[3]*PointValues[ 8]
213 +NF_N_T_P4_2D_EdgeWeight0[4]*PointValues[ 9]);
214 Functionals[2] =( NF_N_T_P4_2D_EdgeWeight0[0]*PointValues[10]
215 +NF_N_T_P4_2D_EdgeWeight0[1]*PointValues[11]
216 +NF_N_T_P4_2D_EdgeWeight0[2]*PointValues[12]
217 +NF_N_T_P4_2D_EdgeWeight0[3]*PointValues[13]
218 +NF_N_T_P4_2D_EdgeWeight0[4]*PointValues[14]);
220 Functionals[3] =( NF_N_T_P4_2D_EdgeWeight1[0]*PointValues[ 0]
221 +NF_N_T_P4_2D_EdgeWeight1[1]*PointValues[ 1]
222 +NF_N_T_P4_2D_EdgeWeight1[2]*PointValues[ 2]
223 +NF_N_T_P4_2D_EdgeWeight1[3]*PointValues[ 3]
224 +NF_N_T_P4_2D_EdgeWeight1[4]*PointValues[ 4]);
225 Functionals[4] =( NF_N_T_P4_2D_EdgeWeight1[0]*PointValues[ 5]
226 +NF_N_T_P4_2D_EdgeWeight1[1]*PointValues[ 6]
227 +NF_N_T_P4_2D_EdgeWeight1[2]*PointValues[ 7]
228 +NF_N_T_P4_2D_EdgeWeight1[3]*PointValues[ 8]
229 +NF_N_T_P4_2D_EdgeWeight1[4]*PointValues[ 9]);
230 Functionals[5] =( NF_N_T_P4_2D_EdgeWeight1[0]*PointValues[10]
231 +NF_N_T_P4_2D_EdgeWeight1[1]*PointValues[11]
232 +NF_N_T_P4_2D_EdgeWeight1[2]*PointValues[12]
233 +NF_N_T_P4_2D_EdgeWeight1[3]*PointValues[13]
234 +NF_N_T_P4_2D_EdgeWeight1[4]*PointValues[14]);
236 Functionals[6] =( NF_N_T_P4_2D_EdgeWeight2[0]*PointValues[ 0]
237 +NF_N_T_P4_2D_EdgeWeight2[1]*PointValues[ 1]
238 +NF_N_T_P4_2D_EdgeWeight2[2]*PointValues[ 2]
239 +NF_N_T_P4_2D_EdgeWeight2[3]*PointValues[ 3]
240 +NF_N_T_P4_2D_EdgeWeight2[4]*PointValues[ 4]);
241 Functionals[7] =( NF_N_T_P4_2D_EdgeWeight2[0]*PointValues[ 5]
242 +NF_N_T_P4_2D_EdgeWeight2[1]*PointValues[ 6]
243 +NF_N_T_P4_2D_EdgeWeight2[2]*PointValues[ 7]
244 +NF_N_T_P4_2D_EdgeWeight2[3]*PointValues[ 8]
245 +NF_N_T_P4_2D_EdgeWeight2[4]*PointValues[ 9]);
246 Functionals[8] =( NF_N_T_P4_2D_EdgeWeight2[0]*PointValues[10]
247 +NF_N_T_P4_2D_EdgeWeight2[1]*PointValues[11]
248 +NF_N_T_P4_2D_EdgeWeight2[2]*PointValues[12]
249 +NF_N_T_P4_2D_EdgeWeight2[3]*PointValues[13]
250 +NF_N_T_P4_2D_EdgeWeight2[4]*PointValues[14]);
252 Functionals[9] =( NF_N_T_P4_2D_EdgeWeight3[0]*PointValues[ 0]
253 +NF_N_T_P4_2D_EdgeWeight3[1]*PointValues[ 1]
254 +NF_N_T_P4_2D_EdgeWeight3[2]*PointValues[ 2]
255 +NF_N_T_P4_2D_EdgeWeight3[3]*PointValues[ 3]
256 +NF_N_T_P4_2D_EdgeWeight3[4]*PointValues[ 4]);
257 Functionals[10]=( NF_N_T_P4_2D_EdgeWeight3[0]*PointValues[ 5]
258 +NF_N_T_P4_2D_EdgeWeight3[1]*PointValues[ 6]
259 +NF_N_T_P4_2D_EdgeWeight3[2]*PointValues[ 7]
260 +NF_N_T_P4_2D_EdgeWeight3[3]*PointValues[ 8]
261 +NF_N_T_P4_2D_EdgeWeight3[4]*PointValues[ 9]);
262 Functionals[11]=( NF_N_T_P4_2D_EdgeWeight3[0]*PointValues[10]
263 +NF_N_T_P4_2D_EdgeWeight3[1]*PointValues[11]
264 +NF_N_T_P4_2D_EdgeWeight3[2]*PointValues[12]
265 +NF_N_T_P4_2D_EdgeWeight3[3]*PointValues[13]
266 +NF_N_T_P4_2D_EdgeWeight3[4]*PointValues[14]);
268 Functionals[12]=( NF_N_T_P4_2D_CellWeight0[ 0]*PointValues[15]
269 +NF_N_T_P4_2D_CellWeight0[ 1]*PointValues[16]
270 +NF_N_T_P4_2D_CellWeight0[ 2]*PointValues[17]
271 +NF_N_T_P4_2D_CellWeight0[ 3]*PointValues[18]
272 +NF_N_T_P4_2D_CellWeight0[ 4]*PointValues[19]
273 +NF_N_T_P4_2D_CellWeight0[ 5]*PointValues[20]
274 +NF_N_T_P4_2D_CellWeight0[ 6]*PointValues[21]
275 +NF_N_T_P4_2D_CellWeight0[ 7]*PointValues[22]
276 +NF_N_T_P4_2D_CellWeight0[ 8]*PointValues[23]
277 +NF_N_T_P4_2D_CellWeight0[ 9]*PointValues[24]
278 +NF_N_T_P4_2D_CellWeight0[10]*PointValues[25]
279 +NF_N_T_P4_2D_CellWeight0[11]*PointValues[26]
280 +NF_N_T_P4_2D_CellWeight0[12]*PointValues[27]
281 +NF_N_T_P4_2D_CellWeight0[13]*PointValues[28]
282 +NF_N_T_P4_2D_CellWeight0[14]*PointValues[29] );
283 Functionals[13]=( NF_N_T_P4_2D_CellWeight1[ 0]*PointValues[15]
284 +NF_N_T_P4_2D_CellWeight1[ 1]*PointValues[16]
285 +NF_N_T_P4_2D_CellWeight1[ 2]*PointValues[17]
286 +NF_N_T_P4_2D_CellWeight1[ 3]*PointValues[18]
287 +NF_N_T_P4_2D_CellWeight1[ 4]*PointValues[19]
288 +NF_N_T_P4_2D_CellWeight1[ 5]*PointValues[20]
289 +NF_N_T_P4_2D_CellWeight1[ 6]*PointValues[21]
290 +NF_N_T_P4_2D_CellWeight1[ 7]*PointValues[22]
291 +NF_N_T_P4_2D_CellWeight1[ 8]*PointValues[23]
292 +NF_N_T_P4_2D_CellWeight1[ 9]*PointValues[24]
293 +NF_N_T_P4_2D_CellWeight1[10]*PointValues[25]
294 +NF_N_T_P4_2D_CellWeight1[11]*PointValues[26]
295 +NF_N_T_P4_2D_CellWeight1[12]*PointValues[27]
296 +NF_N_T_P4_2D_CellWeight1[13]*PointValues[28]
297 +NF_N_T_P4_2D_CellWeight1[14]*PointValues[29] );
298 Functionals[14]=( NF_N_T_P4_2D_CellWeight2[ 0]*PointValues[15]
299 +NF_N_T_P4_2D_CellWeight2[ 1]*PointValues[16]
300 +NF_N_T_P4_2D_CellWeight2[ 2]*PointValues[17]
301 +NF_N_T_P4_2D_CellWeight2[ 3]*PointValues[18]
302 +NF_N_T_P4_2D_CellWeight2[ 4]*PointValues[19]
303 +NF_N_T_P4_2D_CellWeight2[ 5]*PointValues[20]
304 +NF_N_T_P4_2D_CellWeight2[ 6]*PointValues[21]
305 +NF_N_T_P4_2D_CellWeight2[ 7]*PointValues[22]
306 +NF_N_T_P4_2D_CellWeight2[ 8]*PointValues[23]
307 +NF_N_T_P4_2D_CellWeight2[ 9]*PointValues[24]
308 +NF_N_T_P4_2D_CellWeight2[10]*PointValues[25]
309 +NF_N_T_P4_2D_CellWeight2[11]*PointValues[26]
310 +NF_N_T_P4_2D_CellWeight2[12]*PointValues[27]
311 +NF_N_T_P4_2D_CellWeight2[13]*PointValues[28]
312 +NF_N_T_P4_2D_CellWeight2[14]*PointValues[29] );
313 Functionals[15]=( NF_N_T_P4_2D_CellWeight3[ 0]*PointValues[15]
314 +NF_N_T_P4_2D_CellWeight3[ 1]*PointValues[16]
315 +NF_N_T_P4_2D_CellWeight3[ 2]*PointValues[17]
316 +NF_N_T_P4_2D_CellWeight3[ 3]*PointValues[18]
317 +NF_N_T_P4_2D_CellWeight3[ 4]*PointValues[19]
318 +NF_N_T_P4_2D_CellWeight3[ 5]*PointValues[20]
319 +NF_N_T_P4_2D_CellWeight3[ 6]*PointValues[21]
320 +NF_N_T_P4_2D_CellWeight3[ 7]*PointValues[22]
321 +NF_N_T_P4_2D_CellWeight3[ 8]*PointValues[23]
322 +NF_N_T_P4_2D_CellWeight3[ 9]*PointValues[24]
323 +NF_N_T_P4_2D_CellWeight3[10]*PointValues[25]
324 +NF_N_T_P4_2D_CellWeight3[11]*PointValues[26]
325 +NF_N_T_P4_2D_CellWeight3[12]*PointValues[27]
326 +NF_N_T_P4_2D_CellWeight3[13]*PointValues[28]
327 +NF_N_T_P4_2D_CellWeight3[14]*PointValues[29] );
328 Functionals[16]=( NF_N_T_P4_2D_CellWeight4[ 0]*PointValues[15]
329 +NF_N_T_P4_2D_CellWeight4[ 1]*PointValues[16]
330 +NF_N_T_P4_2D_CellWeight4[ 2]*PointValues[17]
331 +NF_N_T_P4_2D_CellWeight4[ 3]*PointValues[18]
332 +NF_N_T_P4_2D_CellWeight4[ 4]*PointValues[19]
333 +NF_N_T_P4_2D_CellWeight4[ 5]*PointValues[20]
334 +NF_N_T_P4_2D_CellWeight4[ 6]*PointValues[21]
335 +NF_N_T_P4_2D_CellWeight4[ 7]*PointValues[22]
336 +NF_N_T_P4_2D_CellWeight4[ 8]*PointValues[23]
337 +NF_N_T_P4_2D_CellWeight4[ 9]*PointValues[24]
338 +NF_N_T_P4_2D_CellWeight4[10]*PointValues[25]
339 +NF_N_T_P4_2D_CellWeight4[11]*PointValues[26]
340 +NF_N_T_P4_2D_CellWeight4[12]*PointValues[27]
341 +NF_N_T_P4_2D_CellWeight4[13]*PointValues[28]
342 +NF_N_T_P4_2D_CellWeight4[14]*PointValues[29] );
343 Functionals[17]=( NF_N_T_P4_2D_CellWeight5[ 0]*PointValues[15]
344 +NF_N_T_P4_2D_CellWeight5[ 1]*PointValues[16]
345 +NF_N_T_P4_2D_CellWeight5[ 2]*PointValues[17]
346 +NF_N_T_P4_2D_CellWeight5[ 3]*PointValues[18]
347 +NF_N_T_P4_2D_CellWeight5[ 4]*PointValues[19]
348 +NF_N_T_P4_2D_CellWeight5[ 5]*PointValues[20]
349 +NF_N_T_P4_2D_CellWeight5[ 6]*PointValues[21]
350 +NF_N_T_P4_2D_CellWeight5[ 7]*PointValues[22]
351 +NF_N_T_P4_2D_CellWeight5[ 8]*PointValues[23]
352 +NF_N_T_P4_2D_CellWeight5[ 9]*PointValues[24]
353 +NF_N_T_P4_2D_CellWeight5[10]*PointValues[25]
354 +NF_N_T_P4_2D_CellWeight5[11]*PointValues[26]
355 +NF_N_T_P4_2D_CellWeight5[12]*PointValues[27]
356 +NF_N_T_P4_2D_CellWeight5[13]*PointValues[28]
357 +NF_N_T_P4_2D_CellWeight5[14]*PointValues[29] );
388 if(NeighNum < OwnNum)
390 Functionals[3] = -Functionals[3];
391 Functionals[9] = -Functionals[9];
399 if(NeighNum < OwnNum)
401 Functionals[ 4] = -Functionals[ 4];
402 Functionals[10] = -Functionals[10];
410 if(NeighNum < OwnNum)
412 Functionals[ 5] = -Functionals[ 5];
413 Functionals[11] = -Functionals[11];
420 double *PointValues,
double *Functionals)
422 int OwnNum, NeighNum;
425 Functionals[0] =( NF_N_T_P4_2D_EdgeWeight0[0]*PointValues[ 0]
426 +NF_N_T_P4_2D_EdgeWeight0[1]*PointValues[ 1]
427 +NF_N_T_P4_2D_EdgeWeight0[2]*PointValues[ 2]
428 +NF_N_T_P4_2D_EdgeWeight0[3]*PointValues[ 3]
429 +NF_N_T_P4_2D_EdgeWeight0[4]*PointValues[ 4]);
431 Functionals[1] =( NF_N_T_P4_2D_EdgeWeight1[0]*PointValues[ 0]
432 +NF_N_T_P4_2D_EdgeWeight1[1]*PointValues[ 1]
433 +NF_N_T_P4_2D_EdgeWeight1[2]*PointValues[ 2]
434 +NF_N_T_P4_2D_EdgeWeight1[3]*PointValues[ 3]
435 +NF_N_T_P4_2D_EdgeWeight1[4]*PointValues[ 4]);
437 Functionals[2] =( NF_N_T_P4_2D_EdgeWeight2[0]*PointValues[ 0]
438 +NF_N_T_P4_2D_EdgeWeight2[1]*PointValues[ 1]
439 +NF_N_T_P4_2D_EdgeWeight2[2]*PointValues[ 2]
440 +NF_N_T_P4_2D_EdgeWeight2[3]*PointValues[ 3]
441 +NF_N_T_P4_2D_EdgeWeight2[4]*PointValues[ 4]);
443 Functionals[3] =( NF_N_T_P4_2D_EdgeWeight3[0]*PointValues[ 0]
444 +NF_N_T_P4_2D_EdgeWeight3[1]*PointValues[ 1]
445 +NF_N_T_P4_2D_EdgeWeight3[2]*PointValues[ 2]
446 +NF_N_T_P4_2D_EdgeWeight3[3]*PointValues[ 3]
447 +NF_N_T_P4_2D_EdgeWeight3[4]*PointValues[ 4]);
461 if(NeighNum < OwnNum)
463 Functionals[1] = -Functionals[1];
464 Functionals[3] = -Functionals[3];
481 (NF_N_T_P4_2D, 18, 4, 30, 5, NF_N_T_P4_2D_Xi, NF_N_T_P4_2D_Eta,
482 NF_N_T_P4_2D_T, NF_N_T_P4_2D_EvalAll, NF_N_T_P4_2D_EvalEdge);
store cells in an array, used by cell iterators
Definition: Collection.h:18
Definition: NodalFunctional2D.h:20
int GetIndex(TBaseCell *cell)
return Index of cell in Cells-array
Definition: Collection.C:115
TJoint * GetJoint(int J_i)
return the pointer to face with number i
Definition: BaseCell.h:175
TBaseCell * GetNeighbour(TBaseCell *Me) const
Definition: Joint.C:57
information for finite element data structure
Definition: BaseCell.h:25