ParMooN
 All Classes Functions Variables Friends Pages
NF_C_H_Q3_3D.h
1 /*
2  TNodalFunctional3D(NodalFunctional3D id,
3  int n_allfunctionals, int *n_facefunctionals,
4  int n_pointsall, int *n_pointsface,
5  double *xi, double *eta, double *zeta,
6  double **xiarray, double **etaarray,
7  double **zetaarray,
8  DoubleFunctVect *evalall,
9  DoubleFunctVect *evalface);
10 */
11 
12 /* for all functionals */
13 static double NF_C_H_Q3_3D_Xi[] = {
14  -1, -0.33333333333333333333, 0.33333333333333333333, 1,
15  -1, -0.33333333333333333333, 0.33333333333333333333, 1,
16  -1, -0.33333333333333333333, 0.33333333333333333333, 1,
17  -1, -0.33333333333333333333, 0.33333333333333333333, 1,
18  -1, -0.33333333333333333333, 0.33333333333333333333, 1,
19  -1, -0.33333333333333333333, 0.33333333333333333333, 1,
20  -1, -0.33333333333333333333, 0.33333333333333333333, 1,
21  -1, -0.33333333333333333333, 0.33333333333333333333, 1,
22  -1, -0.33333333333333333333, 0.33333333333333333333, 1,
23  -1, -0.33333333333333333333, 0.33333333333333333333, 1,
24  -1, -0.33333333333333333333, 0.33333333333333333333, 1,
25  -1, -0.33333333333333333333, 0.33333333333333333333, 1,
26  -1, -0.33333333333333333333, 0.33333333333333333333, 1,
27  -1, -0.33333333333333333333, 0.33333333333333333333, 1,
28  -1, -0.33333333333333333333, 0.33333333333333333333, 1,
29  -1, -0.33333333333333333333, 0.33333333333333333333, 1 };
30 static double NF_C_H_Q3_3D_Eta[] = {
31  -1, -1, -1, -1,
32  -0.33333333333333333333, -0.33333333333333333333,
33  -0.33333333333333333333, -0.33333333333333333333,
34  0.33333333333333333333, 0.33333333333333333333,
35  0.33333333333333333333, 0.33333333333333333333,
36  1, 1, 1, 1,
37  -1, -1, -1, -1,
38  -0.33333333333333333333, -0.33333333333333333333,
39  -0.33333333333333333333, -0.33333333333333333333,
40  0.33333333333333333333, 0.33333333333333333333,
41  0.33333333333333333333, 0.33333333333333333333,
42  1, 1, 1, 1,
43  -1, -1, -1, -1,
44  -0.33333333333333333333, -0.33333333333333333333,
45  -0.33333333333333333333, -0.33333333333333333333,
46  0.33333333333333333333, 0.33333333333333333333,
47  0.33333333333333333333, 0.33333333333333333333,
48  1, 1, 1, 1,
49  -1, -1, -1, -1,
50  -0.33333333333333333333, -0.33333333333333333333,
51  -0.33333333333333333333, -0.33333333333333333333,
52  0.33333333333333333333, 0.33333333333333333333,
53  0.33333333333333333333, 0.33333333333333333333,
54  1, 1, 1, 1 };
55 static double NF_C_H_Q3_3D_Zeta[] = {
56  -1, -1, -1, -1,
57  -1, -1, -1, -1,
58  -1, -1, -1, -1,
59  -1, -1, -1, -1,
60  -0.33333333333333333333, -0.33333333333333333333,
61  -0.33333333333333333333, -0.33333333333333333333,
62  -0.33333333333333333333, -0.33333333333333333333,
63  -0.33333333333333333333, -0.33333333333333333333,
64  -0.33333333333333333333, -0.33333333333333333333,
65  -0.33333333333333333333, -0.33333333333333333333,
66  -0.33333333333333333333, -0.33333333333333333333,
67  -0.33333333333333333333, -0.33333333333333333333,
68  0.33333333333333333333, 0.33333333333333333333,
69  0.33333333333333333333, 0.33333333333333333333,
70  0.33333333333333333333, 0.33333333333333333333,
71  0.33333333333333333333, 0.33333333333333333333,
72  0.33333333333333333333, 0.33333333333333333333,
73  0.33333333333333333333, 0.33333333333333333333,
74  0.33333333333333333333, 0.33333333333333333333,
75  0.33333333333333333333, 0.33333333333333333333,
76  1, 1, 1, 1,
77  1, 1, 1, 1,
78  1, 1, 1, 1,
79  1, 1, 1, 1 };
80 
81 /* face 0: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 */
82 static double NF_C_H_Q3_3D_F0_Xi[] = {
83  -1.00000000000000,
84  -0.33333333333333,
85  0.33333333333333,
86  1.00000000000000,
87  -1.00000000000000,
88  -0.33333333333333,
89  0.33333333333333,
90  1.00000000000000,
91  -1.00000000000000,
92  -0.33333333333333,
93  0.33333333333333,
94  1.00000000000000,
95  -1.00000000000000,
96  -0.33333333333333,
97  0.33333333333333,
98  1.00000000000000 };
99 static double NF_C_H_Q3_3D_F0_Eta[] = {
100  -1.00000000000000,
101  -1.00000000000000,
102  -1.00000000000000,
103  -1.00000000000000,
104  -0.33333333333333,
105  -0.33333333333333,
106  -0.33333333333333,
107  -0.33333333333333,
108  0.33333333333333,
109  0.33333333333333,
110  0.33333333333333,
111  0.33333333333333,
112  1.00000000000000,
113  1.00000000000000,
114  1.00000000000000,
115  1.00000000000000 };
116 static double NF_C_H_Q3_3D_F0_Zeta[] = {
117  -1,
118  -1,
119  -1,
120  -1,
121  -1,
122  -1,
123  -1,
124  -1,
125  -1,
126  -1,
127  -1,
128  -1,
129  -1,
130  -1,
131  -1,
132  -1 };
133 
134 /* face 1: 0, 16, 32, 48, 1, 17, 33, 49, 2, 18, 34, 50, 3, 19, 35, 51 */
135 static double NF_C_H_Q3_3D_F1_Xi[] = {
136  -1.00000000000000,
137  -1.00000000000000,
138  -1.00000000000000,
139  -1.00000000000000,
140  -0.33333333333333,
141  -0.33333333333333,
142  -0.33333333333333,
143  -0.33333333333333,
144  0.33333333333333,
145  0.33333333333333,
146  0.33333333333333,
147  0.33333333333333,
148  1.00000000000000,
149  1.00000000000000,
150  1.00000000000000,
151  1.00000000000000 };
152 static double NF_C_H_Q3_3D_F1_Eta[] = {
153  -1,
154  -1,
155  -1,
156  -1,
157  -1,
158  -1,
159  -1,
160  -1,
161  -1,
162  -1,
163  -1,
164  -1,
165  -1,
166  -1,
167  -1,
168  -1 };
169 static double NF_C_H_Q3_3D_F1_Zeta[] = {
170  -1.00000000000000,
171  -0.33333333333333,
172  0.33333333333333,
173  1.00000000000000,
174  -1.00000000000000,
175  -0.33333333333333,
176  0.33333333333333,
177  1.00000000000000,
178  -1.00000000000000,
179  -0.33333333333333,
180  0.33333333333333,
181  1.00000000000000,
182  -1.00000000000000,
183  -0.33333333333333,
184  0.33333333333333,
185  1.00000000000000 };
186 
187 /* face 2: 3, 19, 35, 51, 7, 23, 39, 55, 11, 27, 43, 59, 15, 31, 47, 63 */
188 static double NF_C_H_Q3_3D_F2_Xi[] = {
189  1,
190  1,
191  1,
192  1,
193  1,
194  1,
195  1,
196  1,
197  1,
198  1,
199  1,
200  1,
201  1,
202  1,
203  1,
204  1 };
205 static double NF_C_H_Q3_3D_F2_Eta[] = {
206  -1.00000000000000,
207  -1.00000000000000,
208  -1.00000000000000,
209  -1.00000000000000,
210  -0.33333333333333,
211  -0.33333333333333,
212  -0.33333333333333,
213  -0.33333333333333,
214  0.33333333333333,
215  0.33333333333333,
216  0.33333333333333,
217  0.33333333333333,
218  1.00000000000000,
219  1.00000000000000,
220  1.00000000000000,
221  1.00000000000000 };
222 static double NF_C_H_Q3_3D_F2_Zeta[] = {
223  -1.00000000000000,
224  -0.33333333333333,
225  0.33333333333333,
226  1.00000000000000,
227  -1.00000000000000,
228  -0.33333333333333,
229  0.33333333333333,
230  1.00000000000000,
231  -1.00000000000000,
232  -0.33333333333333,
233  0.33333333333333,
234  1.00000000000000,
235  -1.00000000000000,
236  -0.33333333333333,
237  0.33333333333333,
238  1.00000000000000 };
239 
240 /* face 3: 15, 31, 47, 63, 14, 30, 46, 62, 13, 29, 45, 61, 12, 28, 44, 60 */
241 static double NF_C_H_Q3_3D_F3_Xi[] = {
242  1.00000000000000,
243  1.00000000000000,
244  1.00000000000000,
245  1.00000000000000,
246  0.33333333333333,
247  0.33333333333333,
248  0.33333333333333,
249  0.33333333333333,
250  -0.33333333333333,
251  -0.33333333333333,
252  -0.33333333333333,
253  -0.33333333333333,
254  -1.00000000000000,
255  -1.00000000000000,
256  -1.00000000000000,
257  -1.00000000000000 };
258 static double NF_C_H_Q3_3D_F3_Eta[] = {
259  1,
260  1,
261  1,
262  1,
263  1,
264  1,
265  1,
266  1,
267  1,
268  1,
269  1,
270  1,
271  1,
272  1,
273  1,
274  1 };
275 static double NF_C_H_Q3_3D_F3_Zeta[] = {
276  -1.00000000000000,
277  -0.33333333333333,
278  0.33333333333333,
279  1.00000000000000,
280  -1.00000000000000,
281  -0.33333333333333,
282  0.33333333333333,
283  1.00000000000000,
284  -1.00000000000000,
285  -0.33333333333333,
286  0.33333333333333,
287  1.00000000000000,
288  -1.00000000000000,
289  -0.33333333333333,
290  0.33333333333333,
291  1.00000000000000 };
292 
293 /* face 4: 0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60 */
294 static double NF_C_H_Q3_3D_F4_Xi[] = {
295  -1,
296  -1,
297  -1,
298  -1,
299  -1,
300  -1,
301  -1,
302  -1,
303  -1,
304  -1,
305  -1,
306  -1,
307  -1,
308  -1,
309  -1,
310  -1 };
311 static double NF_C_H_Q3_3D_F4_Eta[] = {
312  -1.00000000000000,
313  -0.33333333333333,
314  0.33333333333333,
315  1.00000000000000,
316  -1.00000000000000,
317  -0.33333333333333,
318  0.33333333333333,
319  1.00000000000000,
320  -1.00000000000000,
321  -0.33333333333333,
322  0.33333333333333,
323  1.00000000000000,
324  -1.00000000000000,
325  -0.33333333333333,
326  0.33333333333333,
327  1.00000000000000 };
328 static double NF_C_H_Q3_3D_F4_Zeta[] = {
329  -1.00000000000000,
330  -1.00000000000000,
331  -1.00000000000000,
332  -1.00000000000000,
333  -0.33333333333333,
334  -0.33333333333333,
335  -0.33333333333333,
336  -0.33333333333333,
337  0.33333333333333,
338  0.33333333333333,
339  0.33333333333333,
340  0.33333333333333,
341  1.00000000000000,
342  1.00000000000000,
343  1.00000000000000,
344  1.00000000000000 };
345 
346 /* face 5: 48, 52, 56, 60, 49, 53, 57, 61, 50, 54, 58, 62, 51, 55, 59, 63 */
347 static double NF_C_H_Q3_3D_F5_Xi[] = {
348  -1.00000000000000,
349  -1.00000000000000,
350  -1.00000000000000,
351  -1.00000000000000,
352  -0.33333333333333,
353  -0.33333333333333,
354  -0.33333333333333,
355  -0.33333333333333,
356  0.33333333333333,
357  0.33333333333333,
358  0.33333333333333,
359  0.33333333333333,
360  1.00000000000000,
361  1.00000000000000,
362  1.00000000000000,
363  1.00000000000000 };
364 static double NF_C_H_Q3_3D_F5_Eta[] = {
365  -1.00000000000000,
366  -0.33333333333333,
367  0.33333333333333,
368  1.00000000000000,
369  -1.00000000000000,
370  -0.33333333333333,
371  0.33333333333333,
372  1.00000000000000,
373  -1.00000000000000,
374  -0.33333333333333,
375  0.33333333333333,
376  1.00000000000000,
377  -1.00000000000000,
378  -0.33333333333333,
379  0.33333333333333,
380  1.00000000000000 };
381 static double NF_C_H_Q3_3D_F5_Zeta[] = {
382  1,
383  1,
384  1,
385  1,
386  1,
387  1,
388  1,
389  1,
390  1,
391  1,
392  1,
393  1,
394  1,
395  1,
396  1,
397  1 };
398 
399 static double *NF_C_H_Q3_3D_XiArray[6] = {
400  NF_C_H_Q3_3D_F0_Xi,
401  NF_C_H_Q3_3D_F1_Xi,
402  NF_C_H_Q3_3D_F2_Xi,
403  NF_C_H_Q3_3D_F3_Xi,
404  NF_C_H_Q3_3D_F4_Xi,
405  NF_C_H_Q3_3D_F5_Xi };
406 
407 static double *NF_C_H_Q3_3D_EtaArray[6] = {
408  NF_C_H_Q3_3D_F0_Eta,
409  NF_C_H_Q3_3D_F1_Eta,
410  NF_C_H_Q3_3D_F2_Eta,
411  NF_C_H_Q3_3D_F3_Eta,
412  NF_C_H_Q3_3D_F4_Eta,
413  NF_C_H_Q3_3D_F5_Eta };
414 
415 static double *NF_C_H_Q3_3D_ZetaArray[6] = {
416  NF_C_H_Q3_3D_F0_Zeta,
417  NF_C_H_Q3_3D_F1_Zeta,
418  NF_C_H_Q3_3D_F2_Zeta,
419  NF_C_H_Q3_3D_F3_Zeta,
420  NF_C_H_Q3_3D_F4_Zeta,
421  NF_C_H_Q3_3D_F5_Zeta };
422 
423 static double NF_C_H_Q3_3D_T[16] = {
424  0, 0.33333333333333333333, 0.66666666666666666667, 1,
425  0, 0.33333333333333333333, 0.66666666666666666667, 1,
426  0, 0.33333333333333333333, 0.66666666666666666667, 1,
427  0, 0.33333333333333333333, 0.66666666666666666667, 1 };
428 static double NF_C_H_Q3_3D_S[16] = {
429  0, 0, 0, 0,
430  0.33333333333333333333, 0.33333333333333333333,
431  0.33333333333333333333, 0.33333333333333333333,
432  0.66666666666666666667, 0.66666666666666666667,
433  0.66666666666666666667, 0.66666666666666666667,
434  1, 1, 1, 1 };
435 
436 void NF_C_H_Q3_3D_EvalAll(TCollection *Coll, TBaseCell *Cell,
437  double *PointValues, double *Functionals)
438 {
439  memcpy(Functionals, PointValues, 64*SizeOfDouble);
440 }
441 
442 void NF_C_H_Q3_3D_EvalFace(TCollection *Coll, TBaseCell *Cell, int Joint,
443  double *PointValues, double *Functionals)
444 {
445  memcpy(Functionals, PointValues, 16*SizeOfDouble);
446 }
447 
448 static int NF_C_H_Q3_3D_N_AllFunctionals = 64;
449 static int NF_C_H_Q3_3D_N_PointsAll = 64;
450 static int NF_C_H_Q3_3D_N_FaceFunctionals[] = { 16, 16, 16, 16, 16, 16 };
451 static int NF_C_H_Q3_3D_N_PointsFace[] = { 16, 16, 16, 16, 16, 16 };
452 
453 TNodalFunctional3D *NF_C_H_Q3_3D_Obj = new TNodalFunctional3D
454  (NF_C_H_Q3_3D, NF_C_H_Q3_3D_N_AllFunctionals,
455  NF_C_H_Q3_3D_N_FaceFunctionals, NF_C_H_Q3_3D_N_PointsAll,
456  NF_C_H_Q3_3D_N_PointsFace,
457  NF_C_H_Q3_3D_Xi, NF_C_H_Q3_3D_Eta, NF_C_H_Q3_3D_Zeta,
458  NF_C_H_Q3_3D_XiArray, NF_C_H_Q3_3D_EtaArray,
459  NF_C_H_Q3_3D_ZetaArray,
460  NF_C_H_Q3_3D_T, NF_C_H_Q3_3D_S,
461  NF_C_H_Q3_3D_EvalAll, NF_C_H_Q3_3D_EvalFace);
Definition: NodalFunctional3D.h:21
store cells in an array, used by cell iterators
Definition: Collection.h:18
information for finite element data structure
Definition: BaseCell.h:25