ParMooN
 All Classes Functions Variables Friends Pages
NF_N_Q_Q4_2D.h
1 
2 static double NF_N_Q_Q4_2D_Xi[45] =
3  {
4  -0.906179845938663992797626878,
5  -0.538469310105683091036314421,
6  0,
7  0.538469310105683091036314421,
8  0.906179845938663992797626878,
9  1, 1, 1, 1, 1,
10  0.906179845938663992797626878,
11  0.538469310105683091036314421,
12  0,
13  -0.538469310105683091036314421,
14  -0.906179845938663992797626878,
15  -1, -1, -1, -1, -1,
16 
17  -0.906179845938663992797626878,
18  -0.538469310105683091036314421,
19  0,
20  0.538469310105683091036314421,
21  0.906179845938663992797626878,
22 
23  -0.906179845938663992797626878,
24  -0.538469310105683091036314421,
25  0,
26  0.538469310105683091036314421,
27  0.906179845938663992797626878,
28 
29  -0.906179845938663992797626878,
30  -0.538469310105683091036314421,
31  0,
32  0.538469310105683091036314421,
33  0.906179845938663992797626878,
34 
35  -0.906179845938663992797626878,
36  -0.538469310105683091036314421,
37  0,
38  0.538469310105683091036314421,
39  0.906179845938663992797626878,
40 
41  -0.906179845938663992797626878,
42  -0.538469310105683091036314421,
43  0,
44  0.538469310105683091036314421,
45  0.906179845938663992797626878
46  };
47 
48 static double NF_N_Q_Q4_2D_Eta[45] =
49  { -1, -1, -1, -1, -1,
50  -0.906179845938663992797626878,
51  -0.538469310105683091036314421,
52  0,
53  0.538469310105683091036314421,
54  0.906179845938663992797626878,
55  1, 1, 1, 1, 1,
56  0.906179845938663992797626878,
57  0.538469310105683091036314421,
58  0,
59  -0.538469310105683091036314421,
60  -0.906179845938663992797626878,
61 
62  -0.906179845938663992797626878,
63  -0.906179845938663992797626878,
64  -0.906179845938663992797626878,
65  -0.906179845938663992797626878,
66  -0.906179845938663992797626878,
67 
68  -0.538469310105683091036314421,
69  -0.538469310105683091036314421,
70  -0.538469310105683091036314421,
71  -0.538469310105683091036314421,
72  -0.538469310105683091036314421,
73 
74  0, 0, 0, 0, 0,
75 
76  0.538469310105683091036314421,
77  0.538469310105683091036314421,
78  0.538469310105683091036314421,
79  0.538469310105683091036314421,
80  0.538469310105683091036314421,
81 
82  0.906179845938663992797626878,
83  0.906179845938663992797626878,
84  0.906179845938663992797626878,
85  0.906179845938663992797626878,
86  0.906179845938663992797626878
87  };
88 
89 static double NF_N_Q_Q4_2D_T[5] =
90  {
91  -0.906179845938663992797626878,
92  -0.538469310105683091036314421,
93  0,
94  0.538469310105683091036314421,
95  0.906179845938663992797626878
96  };
97 
98 static double NF_N_Q_Q4_2D_EdgeWeight0[5] = {
99  0.1184634425280945437571320205,
100  0.2393143352496832340206457575,
101  0.2844444444444444444444444444,
102  0.2393143352496832340206457575,
103  0.1184634425280945437571320205 };
104 
105 static double NF_N_Q_Q4_2D_EdgeWeight1[5] = {
106  -0.3220475522984174693134711033,
107  -0.3865902750008912622604589675,
108  0.0,
109  0.3865902750008912622604589675,
110  0.3220475522984174693134711033 };
111 
112 static double NF_N_Q_Q4_2D_EdgeWeight2[5] = {
113  0.4334238969965230841044414528,
114  -0.0778683414409675285488858967,
115  -0.7111111111111111111111111111,
116  -0.0778683414409675285488858967,
117  0.4334238969965230841044414528 };
118 
119 static double NF_N_Q_Q4_2D_EdgeWeight3[5] = {
120  -0.4154771413508325868510801940,
121  0.6991986448892333762714923941,
122  0.0,
123  -0.6991986448892333762714923941,
124  0.4154771413508325868510801940 };
125 
126 static double NF_N_Q_Q4_2D_CellWeight0[25] = {
127  .0140335872156071589886627895397, .02835,
128  .0336962680968802257798064413932, .02835,
129  .0140335872156071589886627895397, .02835,
130  .0572713510559977792829421488044, .0680716331376876754547614599244,
131  .0572713510559977792829421488044, .02835,
132  .0336962680968802257798064413932, .0680716331376876754547614599244,
133  .0809086419753086419753086420069, .0680716331376876754547614599244,
134  .0336962680968802257798064413932, .02835,
135  .0572713510559977792829421488044, .0680716331376876754547614599244,
136  .0572713510559977792829421488044, .02835,
137  .0140335872156071589886627895397, .02835,
138  .0336962680968802257798064413932, .02835,
139  .0140335872156071589886627895397 };
140 
141 static double NF_N_Q_Q4_2D_CellWeight1[25] = {
142  -.0381508617030170997669370509012, -.0457968148244883468926385415758, 0.,
143  .0457968148244883468926385415758, .0381508617030170997669370509012,
144  -.0770705958970833725874381660912, -.0925165946758305269383256669817,
145  0., .0925165946758305269383256669817, .0770705958970833725874381660912,
146  -.0916046370982165246047206693712, -.109963456000253514598530550856,
147  0., .109963456000253514598530550856, .0916046370982165246047206693712,
148  -.0770705958970833725874381660912, -.0925165946758305269383256669817,
149  0., .0925165946758305269383256669817, .0770705958970833725874381660912,
150  -.0381508617030170997669370509012, -.0457968148244883468926385415758,
151  0., .0457968148244883468926385415758, .0381508617030170997669370509012 };
152 
153 static double NF_N_Q_Q4_2D_CellWeight2[25] = {
154  -.0381508617030170997669370509012, -.0770705958970833725874381660912,
155  -.0916046370982165246047206693712, -.0770705958970833725874381660912,
156  -.0381508617030170997669370509012, -.0457968148244883468926385415758,
157  -.0925165946758305269383256669817, -.109963456000253514598530550856,
158  -.0925165946758305269383256669817, -.0457968148244883468926385415758,
159  0., 0., 0., 0., 0., .0457968148244883468926385415758,
160  .0925165946758305269383256669817, .109963456000253514598530550856,
161  .0925165946758305269383256669817, .0457968148244883468926385415758,
162  .0381508617030170997669370509012, .0770705958970833725874381660912,
163  .0916046370982165246047206693712, .0770705958970833725874381660912,
164  .0381508617030170997669370509012 };
165 
166 static double NF_N_Q_Q4_2D_CellWeight3[25] = {
167  .0513448869121503817132846634880, -.00922455179105009948852661168580,
168  -.0842406702422005644495161034830, -.00922455179105009948852661168580,
169  .0513448869121503817132846634880, .103724551791050099488526611782,
170  -.0186350103689405051700747867548, -.170179082844219188636903649811,
171  -.0186350103689405051700747867548, .103724551791050099488526611782,
172  .123285019590122121700818902026, -.0221492171209863192316830993719,
173  -.202271604938271604938271605017, -.0221492171209863192316830993719,
174  .123285019590122121700818902026, .103724551791050099488526611782,
175  -.0186350103689405051700747867548, -.170179082844219188636903649811,
176  -.0186350103689405051700747867548, .103724551791050099488526611782,
177  .0513448869121503817132846634880, -.00922455179105009948852661168580,
178  -.0842406702422005644495161034830, -.00922455179105009948852661168580,
179  .0513448869121503817132846634880 };
180 
181 static double NF_N_Q_Q4_2D_CellWeight4[25] = {
182  .103714625941401935021929964806, .124500451806409120356135620186, -0.,
183  -.124500451806409120356135620186, -.103714625941401935021929964806,
184  .124500451806409120356135620186, .149452040725264731644736702307, -0.,
185  -.149452040725264731644736702307, -.124500451806409120356135620186,
186  -0., -0., 0., 0., 0., -.124500451806409120356135620186,
187  -.149452040725264731644736702307, 0., .149452040725264731644736702307,
188  .124500451806409120356135620186, -.103714625941401935021929964806,
189  -.124500451806409120356135620186, 0., .124500451806409120356135620186,
190  .103714625941401935021929964806 };
191 
192 static double NF_N_Q_Q4_2D_CellWeight5[25] = {
193  .0513448869121503817132846634880, .103724551791050099488526611782,
194  .123285019590122121700818902026, .103724551791050099488526611782,
195  .0513448869121503817132846634880, -.00922455179105009948852661168580,
196  -.0186350103689405051700747867548, -.0221492171209863192316830993719,
197  -.0186350103689405051700747867548, -.00922455179105009948852661168580,
198  -.0842406702422005644495161034830, -.170179082844219188636903649811,
199  -.202271604938271604938271605017, -.170179082844219188636903649811,
200  -.0842406702422005644495161034830, -.00922455179105009948852661168580,
201  -.0186350103689405051700747867548, -.0221492171209863192316830993719,
202  -.0186350103689405051700747867548, -.00922455179105009948852661168580,
203  .0513448869121503817132846634880, .103724551791050099488526611782,
204  .123285019590122121700818902026, .103724551791050099488526611782,
205  .0513448869121503817132846634880 };
206 
207 void NF_N_Q_Q4_2D_EvalAll(TCollection *Coll, TBaseCell *Cell, double *PointValues,
208  double *Functionals)
209 {
210  int OwnNum, NeighNum;
211  TBaseCell *neigh;
212 
213  Functionals[0] =( NF_N_Q_Q4_2D_EdgeWeight0[0]*PointValues[0]
214  +NF_N_Q_Q4_2D_EdgeWeight0[1]*PointValues[1]
215  +NF_N_Q_Q4_2D_EdgeWeight0[2]*PointValues[2]
216  +NF_N_Q_Q4_2D_EdgeWeight0[3]*PointValues[3]
217  +NF_N_Q_Q4_2D_EdgeWeight0[4]*PointValues[4]);
218  Functionals[1] =( NF_N_Q_Q4_2D_EdgeWeight0[0]*PointValues[5]
219  +NF_N_Q_Q4_2D_EdgeWeight0[1]*PointValues[6]
220  +NF_N_Q_Q4_2D_EdgeWeight0[2]*PointValues[7]
221  +NF_N_Q_Q4_2D_EdgeWeight0[3]*PointValues[8]
222  +NF_N_Q_Q4_2D_EdgeWeight0[4]*PointValues[9]);
223  Functionals[2] =( NF_N_Q_Q4_2D_EdgeWeight0[0]*PointValues[10]
224  +NF_N_Q_Q4_2D_EdgeWeight0[1]*PointValues[11]
225  +NF_N_Q_Q4_2D_EdgeWeight0[2]*PointValues[12]
226  +NF_N_Q_Q4_2D_EdgeWeight0[3]*PointValues[13]
227  +NF_N_Q_Q4_2D_EdgeWeight0[4]*PointValues[14]);
228  Functionals[3] =( NF_N_Q_Q4_2D_EdgeWeight0[0]*PointValues[15]
229  +NF_N_Q_Q4_2D_EdgeWeight0[1]*PointValues[16]
230  +NF_N_Q_Q4_2D_EdgeWeight0[2]*PointValues[17]
231  +NF_N_Q_Q4_2D_EdgeWeight0[3]*PointValues[18]
232  +NF_N_Q_Q4_2D_EdgeWeight0[4]*PointValues[19]);
233 
234  Functionals[4] =( NF_N_Q_Q4_2D_EdgeWeight1[0]*PointValues[0]
235  +NF_N_Q_Q4_2D_EdgeWeight1[1]*PointValues[1]
236  +NF_N_Q_Q4_2D_EdgeWeight1[2]*PointValues[2]
237  +NF_N_Q_Q4_2D_EdgeWeight1[3]*PointValues[3]
238  +NF_N_Q_Q4_2D_EdgeWeight1[4]*PointValues[4]);
239  Functionals[5] =( NF_N_Q_Q4_2D_EdgeWeight1[0]*PointValues[5]
240  +NF_N_Q_Q4_2D_EdgeWeight1[1]*PointValues[6]
241  +NF_N_Q_Q4_2D_EdgeWeight1[2]*PointValues[7]
242  +NF_N_Q_Q4_2D_EdgeWeight1[3]*PointValues[8]
243  +NF_N_Q_Q4_2D_EdgeWeight1[4]*PointValues[9]);
244  Functionals[6] =( NF_N_Q_Q4_2D_EdgeWeight1[0]*PointValues[10]
245  +NF_N_Q_Q4_2D_EdgeWeight1[1]*PointValues[11]
246  +NF_N_Q_Q4_2D_EdgeWeight1[2]*PointValues[12]
247  +NF_N_Q_Q4_2D_EdgeWeight1[3]*PointValues[13]
248  +NF_N_Q_Q4_2D_EdgeWeight1[4]*PointValues[14]);
249  Functionals[7] =( NF_N_Q_Q4_2D_EdgeWeight1[0]*PointValues[15]
250  +NF_N_Q_Q4_2D_EdgeWeight1[1]*PointValues[16]
251  +NF_N_Q_Q4_2D_EdgeWeight1[2]*PointValues[17]
252  +NF_N_Q_Q4_2D_EdgeWeight1[3]*PointValues[18]
253  +NF_N_Q_Q4_2D_EdgeWeight1[4]*PointValues[19]);
254 
255  Functionals[8] =( NF_N_Q_Q4_2D_EdgeWeight2[0]*PointValues[0]
256  +NF_N_Q_Q4_2D_EdgeWeight2[1]*PointValues[1]
257  +NF_N_Q_Q4_2D_EdgeWeight2[2]*PointValues[2]
258  +NF_N_Q_Q4_2D_EdgeWeight2[3]*PointValues[3]
259  +NF_N_Q_Q4_2D_EdgeWeight2[4]*PointValues[4]);
260  Functionals[9] =( NF_N_Q_Q4_2D_EdgeWeight2[0]*PointValues[5]
261  +NF_N_Q_Q4_2D_EdgeWeight2[1]*PointValues[6]
262  +NF_N_Q_Q4_2D_EdgeWeight2[2]*PointValues[7]
263  +NF_N_Q_Q4_2D_EdgeWeight2[3]*PointValues[8]
264  +NF_N_Q_Q4_2D_EdgeWeight2[4]*PointValues[9]);
265  Functionals[10]=( NF_N_Q_Q4_2D_EdgeWeight2[0]*PointValues[10]
266  +NF_N_Q_Q4_2D_EdgeWeight2[1]*PointValues[11]
267  +NF_N_Q_Q4_2D_EdgeWeight2[2]*PointValues[12]
268  +NF_N_Q_Q4_2D_EdgeWeight2[3]*PointValues[13]
269  +NF_N_Q_Q4_2D_EdgeWeight2[4]*PointValues[14]);
270  Functionals[11]=( NF_N_Q_Q4_2D_EdgeWeight2[0]*PointValues[15]
271  +NF_N_Q_Q4_2D_EdgeWeight2[1]*PointValues[16]
272  +NF_N_Q_Q4_2D_EdgeWeight2[2]*PointValues[17]
273  +NF_N_Q_Q4_2D_EdgeWeight2[3]*PointValues[18]
274  +NF_N_Q_Q4_2D_EdgeWeight2[4]*PointValues[19]);
275 
276  Functionals[12]=( NF_N_Q_Q4_2D_EdgeWeight3[0]*PointValues[0]
277  +NF_N_Q_Q4_2D_EdgeWeight3[1]*PointValues[1]
278  +NF_N_Q_Q4_2D_EdgeWeight3[2]*PointValues[2]
279  +NF_N_Q_Q4_2D_EdgeWeight3[3]*PointValues[3]
280  +NF_N_Q_Q4_2D_EdgeWeight3[4]*PointValues[4]);
281  Functionals[13]=( NF_N_Q_Q4_2D_EdgeWeight3[0]*PointValues[5]
282  +NF_N_Q_Q4_2D_EdgeWeight3[1]*PointValues[6]
283  +NF_N_Q_Q4_2D_EdgeWeight3[2]*PointValues[7]
284  +NF_N_Q_Q4_2D_EdgeWeight3[3]*PointValues[8]
285  +NF_N_Q_Q4_2D_EdgeWeight3[4]*PointValues[9]);
286  Functionals[14]=( NF_N_Q_Q4_2D_EdgeWeight3[0]*PointValues[10]
287  +NF_N_Q_Q4_2D_EdgeWeight3[1]*PointValues[11]
288  +NF_N_Q_Q4_2D_EdgeWeight3[2]*PointValues[12]
289  +NF_N_Q_Q4_2D_EdgeWeight3[3]*PointValues[13]
290  +NF_N_Q_Q4_2D_EdgeWeight3[4]*PointValues[14]);
291  Functionals[15]=( NF_N_Q_Q4_2D_EdgeWeight3[0]*PointValues[15]
292  +NF_N_Q_Q4_2D_EdgeWeight3[1]*PointValues[16]
293  +NF_N_Q_Q4_2D_EdgeWeight3[2]*PointValues[17]
294  +NF_N_Q_Q4_2D_EdgeWeight3[3]*PointValues[18]
295  +NF_N_Q_Q4_2D_EdgeWeight3[4]*PointValues[19]);
296 
297  Functionals[16] = NF_N_Q_Q4_2D_CellWeight0[0]*PointValues[20]
298  +NF_N_Q_Q4_2D_CellWeight0[1]*PointValues[21]
299  +NF_N_Q_Q4_2D_CellWeight0[2]*PointValues[22]
300  +NF_N_Q_Q4_2D_CellWeight0[3]*PointValues[23]
301  +NF_N_Q_Q4_2D_CellWeight0[4]*PointValues[24]
302  +NF_N_Q_Q4_2D_CellWeight0[5]*PointValues[25]
303  +NF_N_Q_Q4_2D_CellWeight0[6]*PointValues[26]
304  +NF_N_Q_Q4_2D_CellWeight0[7]*PointValues[27]
305  +NF_N_Q_Q4_2D_CellWeight0[8]*PointValues[28]
306  +NF_N_Q_Q4_2D_CellWeight0[9]*PointValues[29]
307  +NF_N_Q_Q4_2D_CellWeight0[10]*PointValues[30]
308  +NF_N_Q_Q4_2D_CellWeight0[11]*PointValues[31]
309  +NF_N_Q_Q4_2D_CellWeight0[12]*PointValues[32]
310  +NF_N_Q_Q4_2D_CellWeight0[13]*PointValues[33]
311  +NF_N_Q_Q4_2D_CellWeight0[14]*PointValues[34]
312  +NF_N_Q_Q4_2D_CellWeight0[15]*PointValues[35]
313  +NF_N_Q_Q4_2D_CellWeight0[16]*PointValues[36]
314  +NF_N_Q_Q4_2D_CellWeight0[17]*PointValues[37]
315  +NF_N_Q_Q4_2D_CellWeight0[18]*PointValues[38]
316  +NF_N_Q_Q4_2D_CellWeight0[19]*PointValues[39]
317  +NF_N_Q_Q4_2D_CellWeight0[20]*PointValues[40]
318  +NF_N_Q_Q4_2D_CellWeight0[21]*PointValues[41]
319  +NF_N_Q_Q4_2D_CellWeight0[22]*PointValues[42]
320  +NF_N_Q_Q4_2D_CellWeight0[23]*PointValues[43]
321  +NF_N_Q_Q4_2D_CellWeight0[24]*PointValues[44];
322  Functionals[17] = NF_N_Q_Q4_2D_CellWeight1[0]*PointValues[20]
323  +NF_N_Q_Q4_2D_CellWeight1[1]*PointValues[21]
324  +NF_N_Q_Q4_2D_CellWeight1[2]*PointValues[22]
325  +NF_N_Q_Q4_2D_CellWeight1[3]*PointValues[23]
326  +NF_N_Q_Q4_2D_CellWeight1[4]*PointValues[24]
327  +NF_N_Q_Q4_2D_CellWeight1[5]*PointValues[25]
328  +NF_N_Q_Q4_2D_CellWeight1[6]*PointValues[26]
329  +NF_N_Q_Q4_2D_CellWeight1[7]*PointValues[27]
330  +NF_N_Q_Q4_2D_CellWeight1[8]*PointValues[28]
331  +NF_N_Q_Q4_2D_CellWeight1[9]*PointValues[29]
332  +NF_N_Q_Q4_2D_CellWeight1[10]*PointValues[30]
333  +NF_N_Q_Q4_2D_CellWeight1[11]*PointValues[31]
334  +NF_N_Q_Q4_2D_CellWeight1[12]*PointValues[32]
335  +NF_N_Q_Q4_2D_CellWeight1[13]*PointValues[33]
336  +NF_N_Q_Q4_2D_CellWeight1[14]*PointValues[34]
337  +NF_N_Q_Q4_2D_CellWeight1[15]*PointValues[35]
338  +NF_N_Q_Q4_2D_CellWeight1[16]*PointValues[36]
339  +NF_N_Q_Q4_2D_CellWeight1[17]*PointValues[37]
340  +NF_N_Q_Q4_2D_CellWeight1[18]*PointValues[38]
341  +NF_N_Q_Q4_2D_CellWeight1[19]*PointValues[39]
342  +NF_N_Q_Q4_2D_CellWeight1[20]*PointValues[40]
343  +NF_N_Q_Q4_2D_CellWeight1[21]*PointValues[41]
344  +NF_N_Q_Q4_2D_CellWeight1[22]*PointValues[42]
345  +NF_N_Q_Q4_2D_CellWeight1[23]*PointValues[43]
346  +NF_N_Q_Q4_2D_CellWeight1[24]*PointValues[44];
347  Functionals[18] = NF_N_Q_Q4_2D_CellWeight2[0]*PointValues[20]
348  +NF_N_Q_Q4_2D_CellWeight2[1]*PointValues[21]
349  +NF_N_Q_Q4_2D_CellWeight2[2]*PointValues[22]
350  +NF_N_Q_Q4_2D_CellWeight2[3]*PointValues[23]
351  +NF_N_Q_Q4_2D_CellWeight2[4]*PointValues[24]
352  +NF_N_Q_Q4_2D_CellWeight2[5]*PointValues[25]
353  +NF_N_Q_Q4_2D_CellWeight2[6]*PointValues[26]
354  +NF_N_Q_Q4_2D_CellWeight2[7]*PointValues[27]
355  +NF_N_Q_Q4_2D_CellWeight2[8]*PointValues[28]
356  +NF_N_Q_Q4_2D_CellWeight2[9]*PointValues[29]
357  +NF_N_Q_Q4_2D_CellWeight2[10]*PointValues[30]
358  +NF_N_Q_Q4_2D_CellWeight2[11]*PointValues[31]
359  +NF_N_Q_Q4_2D_CellWeight2[12]*PointValues[32]
360  +NF_N_Q_Q4_2D_CellWeight2[13]*PointValues[33]
361  +NF_N_Q_Q4_2D_CellWeight2[14]*PointValues[34]
362  +NF_N_Q_Q4_2D_CellWeight2[15]*PointValues[35]
363  +NF_N_Q_Q4_2D_CellWeight2[16]*PointValues[36]
364  +NF_N_Q_Q4_2D_CellWeight2[17]*PointValues[37]
365  +NF_N_Q_Q4_2D_CellWeight2[18]*PointValues[38]
366  +NF_N_Q_Q4_2D_CellWeight2[19]*PointValues[39]
367  +NF_N_Q_Q4_2D_CellWeight2[20]*PointValues[40]
368  +NF_N_Q_Q4_2D_CellWeight2[21]*PointValues[41]
369  +NF_N_Q_Q4_2D_CellWeight2[22]*PointValues[42]
370  +NF_N_Q_Q4_2D_CellWeight2[23]*PointValues[43]
371  +NF_N_Q_Q4_2D_CellWeight2[24]*PointValues[44];
372  Functionals[19] = NF_N_Q_Q4_2D_CellWeight3[0]*PointValues[20]
373  +NF_N_Q_Q4_2D_CellWeight3[1]*PointValues[21]
374  +NF_N_Q_Q4_2D_CellWeight3[2]*PointValues[22]
375  +NF_N_Q_Q4_2D_CellWeight3[3]*PointValues[23]
376  +NF_N_Q_Q4_2D_CellWeight3[4]*PointValues[24]
377  +NF_N_Q_Q4_2D_CellWeight3[5]*PointValues[25]
378  +NF_N_Q_Q4_2D_CellWeight3[6]*PointValues[26]
379  +NF_N_Q_Q4_2D_CellWeight3[7]*PointValues[27]
380  +NF_N_Q_Q4_2D_CellWeight3[8]*PointValues[28]
381  +NF_N_Q_Q4_2D_CellWeight3[9]*PointValues[29]
382  +NF_N_Q_Q4_2D_CellWeight3[10]*PointValues[30]
383  +NF_N_Q_Q4_2D_CellWeight3[11]*PointValues[31]
384  +NF_N_Q_Q4_2D_CellWeight3[12]*PointValues[32]
385  +NF_N_Q_Q4_2D_CellWeight3[13]*PointValues[33]
386  +NF_N_Q_Q4_2D_CellWeight3[14]*PointValues[34]
387  +NF_N_Q_Q4_2D_CellWeight3[15]*PointValues[35]
388  +NF_N_Q_Q4_2D_CellWeight3[16]*PointValues[36]
389  +NF_N_Q_Q4_2D_CellWeight3[17]*PointValues[37]
390  +NF_N_Q_Q4_2D_CellWeight3[18]*PointValues[38]
391  +NF_N_Q_Q4_2D_CellWeight3[19]*PointValues[39]
392  +NF_N_Q_Q4_2D_CellWeight3[20]*PointValues[40]
393  +NF_N_Q_Q4_2D_CellWeight3[21]*PointValues[41]
394  +NF_N_Q_Q4_2D_CellWeight3[22]*PointValues[42]
395  +NF_N_Q_Q4_2D_CellWeight3[23]*PointValues[43]
396  +NF_N_Q_Q4_2D_CellWeight3[24]*PointValues[44];
397  Functionals[20] = NF_N_Q_Q4_2D_CellWeight4[0]*PointValues[20]
398  +NF_N_Q_Q4_2D_CellWeight4[1]*PointValues[21]
399  +NF_N_Q_Q4_2D_CellWeight4[2]*PointValues[22]
400  +NF_N_Q_Q4_2D_CellWeight4[3]*PointValues[23]
401  +NF_N_Q_Q4_2D_CellWeight4[4]*PointValues[24]
402  +NF_N_Q_Q4_2D_CellWeight4[5]*PointValues[25]
403  +NF_N_Q_Q4_2D_CellWeight4[6]*PointValues[26]
404  +NF_N_Q_Q4_2D_CellWeight4[7]*PointValues[27]
405  +NF_N_Q_Q4_2D_CellWeight4[8]*PointValues[28]
406  +NF_N_Q_Q4_2D_CellWeight4[9]*PointValues[29]
407  +NF_N_Q_Q4_2D_CellWeight4[10]*PointValues[30]
408  +NF_N_Q_Q4_2D_CellWeight4[11]*PointValues[31]
409  +NF_N_Q_Q4_2D_CellWeight4[12]*PointValues[32]
410  +NF_N_Q_Q4_2D_CellWeight4[13]*PointValues[33]
411  +NF_N_Q_Q4_2D_CellWeight4[14]*PointValues[34]
412  +NF_N_Q_Q4_2D_CellWeight4[15]*PointValues[35]
413  +NF_N_Q_Q4_2D_CellWeight4[16]*PointValues[36]
414  +NF_N_Q_Q4_2D_CellWeight4[17]*PointValues[37]
415  +NF_N_Q_Q4_2D_CellWeight4[18]*PointValues[38]
416  +NF_N_Q_Q4_2D_CellWeight4[19]*PointValues[39]
417  +NF_N_Q_Q4_2D_CellWeight4[20]*PointValues[40]
418  +NF_N_Q_Q4_2D_CellWeight4[21]*PointValues[41]
419  +NF_N_Q_Q4_2D_CellWeight4[22]*PointValues[42]
420  +NF_N_Q_Q4_2D_CellWeight4[23]*PointValues[43]
421  +NF_N_Q_Q4_2D_CellWeight4[24]*PointValues[44];
422  Functionals[21] = NF_N_Q_Q4_2D_CellWeight5[0]*PointValues[20]
423  +NF_N_Q_Q4_2D_CellWeight5[1]*PointValues[21]
424  +NF_N_Q_Q4_2D_CellWeight5[2]*PointValues[22]
425  +NF_N_Q_Q4_2D_CellWeight5[3]*PointValues[23]
426  +NF_N_Q_Q4_2D_CellWeight5[4]*PointValues[24]
427  +NF_N_Q_Q4_2D_CellWeight5[5]*PointValues[25]
428  +NF_N_Q_Q4_2D_CellWeight5[6]*PointValues[26]
429  +NF_N_Q_Q4_2D_CellWeight5[7]*PointValues[27]
430  +NF_N_Q_Q4_2D_CellWeight5[8]*PointValues[28]
431  +NF_N_Q_Q4_2D_CellWeight5[9]*PointValues[29]
432  +NF_N_Q_Q4_2D_CellWeight5[10]*PointValues[30]
433  +NF_N_Q_Q4_2D_CellWeight5[11]*PointValues[31]
434  +NF_N_Q_Q4_2D_CellWeight5[12]*PointValues[32]
435  +NF_N_Q_Q4_2D_CellWeight5[13]*PointValues[33]
436  +NF_N_Q_Q4_2D_CellWeight5[14]*PointValues[34]
437  +NF_N_Q_Q4_2D_CellWeight5[15]*PointValues[35]
438  +NF_N_Q_Q4_2D_CellWeight5[16]*PointValues[36]
439  +NF_N_Q_Q4_2D_CellWeight5[17]*PointValues[37]
440  +NF_N_Q_Q4_2D_CellWeight5[18]*PointValues[38]
441  +NF_N_Q_Q4_2D_CellWeight5[19]*PointValues[39]
442  +NF_N_Q_Q4_2D_CellWeight5[20]*PointValues[40]
443  +NF_N_Q_Q4_2D_CellWeight5[21]*PointValues[41]
444  +NF_N_Q_Q4_2D_CellWeight5[22]*PointValues[42]
445  +NF_N_Q_Q4_2D_CellWeight5[23]*PointValues[43]
446  +NF_N_Q_Q4_2D_CellWeight5[24]*PointValues[44];
447 
448  /*
449  if(Cell)
450  {
451  if(Cell->GetVertex(0) > Cell->GetVertex(1))
452  {
453  Functionals[4] = -Functionals[4];
454  Functionals[12] = -Functionals[12];
455  }
456  if(Cell->GetVertex(1) > Cell->GetVertex(2))
457  {
458  Functionals[5] = -Functionals[5];
459  Functionals[13] = -Functionals[13];
460  }
461  if(Cell->GetVertex(2) > Cell->GetVertex(3))
462  {
463  Functionals[6] = -Functionals[6];
464  Functionals[14] = -Functionals[14];
465  }
466  if(Cell->GetVertex(3) > Cell->GetVertex(0))
467  {
468  Functionals[7] = -Functionals[7];
469  Functionals[15] = -Functionals[15];
470  }
471  }
472  */
473 
474  if(Cell)
475  {
476  OwnNum = Coll->GetIndex(Cell);
477 
478  neigh = Cell->GetJoint(0)->GetNeighbour(Cell);
479  if(neigh)
480  {
481  NeighNum = Coll->GetIndex(neigh);
482  if(NeighNum < OwnNum)
483  {
484  Functionals[ 4] = -Functionals[ 4];
485  Functionals[12] = -Functionals[12];
486  }
487  } // endif neigh
488 
489  neigh = Cell->GetJoint(1)->GetNeighbour(Cell);
490  if(neigh)
491  {
492  NeighNum = Coll->GetIndex(neigh);
493  if(NeighNum < OwnNum)
494  {
495  Functionals[ 5] = -Functionals[ 5];
496  Functionals[13] = -Functionals[13];
497  }
498  } // endif neigh
499 
500  neigh = Cell->GetJoint(2)->GetNeighbour(Cell);
501  if(neigh)
502  {
503  NeighNum = Coll->GetIndex(neigh);
504  if(NeighNum < OwnNum)
505  {
506  Functionals[ 6] = -Functionals[ 6];
507  Functionals[14] = -Functionals[14];
508  }
509  } // endif neigh
510 
511  neigh = Cell->GetJoint(3)->GetNeighbour(Cell);
512  if(neigh)
513  {
514  NeighNum = Coll->GetIndex(neigh);
515  if(NeighNum < OwnNum)
516  {
517  Functionals[ 7] = -Functionals[ 7];
518  Functionals[15] = -Functionals[15];
519  }
520  } // endif neigh
521  } // endif Cell
522 }
523 
524 void NF_N_Q_Q4_2D_EvalEdge(TCollection *Coll, TBaseCell *Cell, int Joint,
525  double *PointValues, double *Functionals)
526 {
527  int OwnNum, NeighNum;
528  TBaseCell *neigh;
529 
530  Functionals[0] =( NF_N_Q_Q4_2D_EdgeWeight0[0]*PointValues[0]
531  +NF_N_Q_Q4_2D_EdgeWeight0[1]*PointValues[1]
532  +NF_N_Q_Q4_2D_EdgeWeight0[2]*PointValues[2]
533  +NF_N_Q_Q4_2D_EdgeWeight0[3]*PointValues[3]
534  +NF_N_Q_Q4_2D_EdgeWeight0[4]*PointValues[4]);
535 
536  Functionals[1] =( NF_N_Q_Q4_2D_EdgeWeight1[0]*PointValues[0]
537  +NF_N_Q_Q4_2D_EdgeWeight1[1]*PointValues[1]
538  +NF_N_Q_Q4_2D_EdgeWeight1[2]*PointValues[2]
539  +NF_N_Q_Q4_2D_EdgeWeight1[3]*PointValues[3]
540  +NF_N_Q_Q4_2D_EdgeWeight1[4]*PointValues[4]);
541 
542  Functionals[2] =( NF_N_Q_Q4_2D_EdgeWeight2[0]*PointValues[0]
543  +NF_N_Q_Q4_2D_EdgeWeight2[1]*PointValues[1]
544  +NF_N_Q_Q4_2D_EdgeWeight2[2]*PointValues[2]
545  +NF_N_Q_Q4_2D_EdgeWeight2[3]*PointValues[3]
546  +NF_N_Q_Q4_2D_EdgeWeight2[4]*PointValues[4]);
547 
548  Functionals[3] =( NF_N_Q_Q4_2D_EdgeWeight3[0]*PointValues[0]
549  +NF_N_Q_Q4_2D_EdgeWeight3[1]*PointValues[1]
550  +NF_N_Q_Q4_2D_EdgeWeight3[2]*PointValues[2]
551  +NF_N_Q_Q4_2D_EdgeWeight3[3]*PointValues[3]
552  +NF_N_Q_Q4_2D_EdgeWeight3[4]*PointValues[4]);
553 
554  if(Joint != -1)
555  {
556  // if(Cell->GetVertex(Joint) > Cell->GetVertex((Joint+1)%4))
557  // {
558  // Functionals[1] = -Functionals[1];
559  // Functionals[3] = -Functionals[3];
560  // }
561  neigh = Cell->GetJoint(Joint)->GetNeighbour(Cell);
562  if(neigh)
563  {
564  OwnNum = Coll->GetIndex(Cell);
565  NeighNum = Coll->GetIndex(neigh);
566  if(NeighNum < OwnNum)
567  {
568  Functionals[1] = -Functionals[1];
569  Functionals[3] = -Functionals[3];
570  }
571  } // endif neigh
572  // */
573  }
574 }
575 
576 /*
577  TNodalFunctional2D(NodalFunctional2D id,
578  int n_allfunctionals, int n_edgefunctionals,
579  int n_pointsall, int n_pointsedge,
580  double *xi, double *eta, double *t,
581  DoubleFunctVect *evalall,
582  DoubleFunctVect *evaledge);
583 */
584 
585 TNodalFunctional2D *NF_N_Q_Q4_2D_Obj = new TNodalFunctional2D
586  (NF_N_Q_Q4_2D, 22, 4, 45, 5, NF_N_Q_Q4_2D_Xi, NF_N_Q_Q4_2D_Eta,
587  NF_N_Q_Q4_2D_T, NF_N_Q_Q4_2D_EvalAll, NF_N_Q_Q4_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