ParMooN
 All Classes Functions Variables Friends Pages
NF_N_H_Q1_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 #define __POINTVALUES__
13 
14 #ifdef __POINTVALUES__
15 /* for all functionals */
16 static double NF_N_H_Q1_3D_Xi[] = { 0, 0, 1, 0, -1, 0 };
17 static double NF_N_H_Q1_3D_Eta[] = { 0, -1, 0, 1, 0, 0 };
18 static double NF_N_H_Q1_3D_Zeta[] = { -1, 0, 0, 0, 0, 1 };
19 
20 /* face 0 0 */
21 static double NF_N_H_Q1_3D_F0_Xi[] = { 0 };
22 static double NF_N_H_Q1_3D_F0_Eta[] = { 0 };
23 static double NF_N_H_Q1_3D_F0_Zeta[] = { -1 };
24 
25 /* face 1 1 */
26 static double NF_N_H_Q1_3D_F1_Xi[] = { 0 };
27 static double NF_N_H_Q1_3D_F1_Eta[] = { -1 };
28 static double NF_N_H_Q1_3D_F1_Zeta[] = { 0 };
29 
30 /* face 2 2 */
31 static double NF_N_H_Q1_3D_F2_Xi[] = { 1 };
32 static double NF_N_H_Q1_3D_F2_Eta[] = { 0 };
33 static double NF_N_H_Q1_3D_F2_Zeta[] = { 0 };
34 
35 /* face 3 3 */
36 static double NF_N_H_Q1_3D_F3_Xi[] = { 0 };
37 static double NF_N_H_Q1_3D_F3_Eta[] = { 1 };
38 static double NF_N_H_Q1_3D_F3_Zeta[] = { 0 };
39 
40 /* face 4 4 */
41 static double NF_N_H_Q1_3D_F4_Xi[] = { -1 };
42 static double NF_N_H_Q1_3D_F4_Eta[] = { 0 };
43 static double NF_N_H_Q1_3D_F4_Zeta[] = { 0 };
44 
45 /* face 5 5 */
46 static double NF_N_H_Q1_3D_F5_Xi[] = { 0 };
47 static double NF_N_H_Q1_3D_F5_Eta[] = { 0 };
48 static double NF_N_H_Q1_3D_F5_Zeta[] = { 1 };
49 
50 static double *NF_N_H_Q1_3D_XiArray[6] = {
51  NF_N_H_Q1_3D_F0_Xi,
52  NF_N_H_Q1_3D_F1_Xi,
53  NF_N_H_Q1_3D_F2_Xi,
54  NF_N_H_Q1_3D_F3_Xi,
55  NF_N_H_Q1_3D_F4_Xi,
56  NF_N_H_Q1_3D_F5_Xi };
57 
58 static double *NF_N_H_Q1_3D_EtaArray[6] = {
59  NF_N_H_Q1_3D_F0_Eta,
60  NF_N_H_Q1_3D_F1_Eta,
61  NF_N_H_Q1_3D_F2_Eta,
62  NF_N_H_Q1_3D_F3_Eta,
63  NF_N_H_Q1_3D_F4_Eta,
64  NF_N_H_Q1_3D_F5_Eta };
65 
66 static double *NF_N_H_Q1_3D_ZetaArray[6] = {
67  NF_N_H_Q1_3D_F0_Zeta,
68  NF_N_H_Q1_3D_F1_Zeta,
69  NF_N_H_Q1_3D_F2_Zeta,
70  NF_N_H_Q1_3D_F3_Zeta,
71  NF_N_H_Q1_3D_F4_Zeta,
72  NF_N_H_Q1_3D_F5_Zeta };
73 
74 static double NF_N_H_Q1_3D_T[1] = { 0.5 };
75 static double NF_N_H_Q1_3D_S[1] = { 0.5 };
76 
77 void NF_N_H_Q1_3D_EvalAll(TCollection *Coll, TBaseCell *Cell,
78  double *PointValues, double *Functionals)
79 {
80  Functionals[0] = PointValues[0];
81  Functionals[1] = PointValues[1];
82  Functionals[2] = PointValues[2];
83  Functionals[3] = PointValues[3];
84  Functionals[4] = PointValues[4];
85  Functionals[5] = PointValues[5];
86 }
87 
88 void NF_N_H_Q1_3D_EvalFace(TCollection *Coll, TBaseCell *Cell, int Joint,
89  double *PointValues, double *Functionals)
90 {
91  Functionals[0] = PointValues[0];
92 }
93 
94 static int NF_N_H_Q1_3D_N_AllFunctionals = 6;
95 static int NF_N_H_Q1_3D_N_PointsAll = 6;
96 static int NF_N_H_Q1_3D_N_FaceFunctionals[] = { 1, 1, 1, 1, 1, 1 };
97 static int NF_N_H_Q1_3D_N_PointsFace[] = { 1, 1, 1, 1, 1, 1 };
98 
99 #else
100 
101 /* for all functionals */
102 static double NF_N_H_Q1_3D_Xi[] = {
103  -7.7459666924148340e-01,
104  0.0000000000000000e+00,
105  7.7459666924148340e-01,
106  -7.7459666924148340e-01,
107  0.0000000000000000e+00,
108  7.7459666924148340e-01,
109  -7.7459666924148340e-01,
110  0.0000000000000000e+00,
111  7.7459666924148340e-01,
112  -7.7459666924148340e-01,
113  -7.7459666924148340e-01,
114  -7.7459666924148340e-01,
115  0.0000000000000000e+00,
116  0.0000000000000000e+00,
117  0.0000000000000000e+00,
118  7.7459666924148340e-01,
119  7.7459666924148340e-01,
120  7.7459666924148340e-01,
121  1.0000000000000000e+00,
122  1.0000000000000000e+00,
123  1.0000000000000000e+00,
124  1.0000000000000000e+00,
125  1.0000000000000000e+00,
126  1.0000000000000000e+00,
127  1.0000000000000000e+00,
128  1.0000000000000000e+00,
129  1.0000000000000000e+00,
130  7.7459666924148340e-01,
131  7.7459666924148340e-01,
132  7.7459666924148340e-01,
133  -0.0000000000000000e+00,
134  -0.0000000000000000e+00,
135  -0.0000000000000000e+00,
136  -7.7459666924148340e-01,
137  -7.7459666924148340e-01,
138  -7.7459666924148340e-01,
139  -1.0000000000000000e+00,
140  -1.0000000000000000e+00,
141  -1.0000000000000000e+00,
142  -1.0000000000000000e+00,
143  -1.0000000000000000e+00,
144  -1.0000000000000000e+00,
145  -1.0000000000000000e+00,
146  -1.0000000000000000e+00,
147  -1.0000000000000000e+00,
148  -7.7459666924148340e-01,
149  -7.7459666924148340e-01,
150  -7.7459666924148340e-01,
151  0.0000000000000000e+00,
152  0.0000000000000000e+00,
153  0.0000000000000000e+00,
154  7.7459666924148340e-01,
155  7.7459666924148340e-01,
156  7.7459666924148340e-01 };
157 
158 static double NF_N_H_Q1_3D_Eta[] = {
159  -7.7459666924148340e-01,
160  -7.7459666924148340e-01,
161  -7.7459666924148340e-01,
162  0.0000000000000000e+00,
163  0.0000000000000000e+00,
164  0.0000000000000000e+00,
165  7.7459666924148340e-01,
166  7.7459666924148340e-01,
167  7.7459666924148340e-01,
168  -1.0000000000000000e+00,
169  -1.0000000000000000e+00,
170  -1.0000000000000000e+00,
171  -1.0000000000000000e+00,
172  -1.0000000000000000e+00,
173  -1.0000000000000000e+00,
174  -1.0000000000000000e+00,
175  -1.0000000000000000e+00,
176  -1.0000000000000000e+00,
177  -7.7459666924148340e-01,
178  -7.7459666924148340e-01,
179  -7.7459666924148340e-01,
180  0.0000000000000000e+00,
181  0.0000000000000000e+00,
182  0.0000000000000000e+00,
183  7.7459666924148340e-01,
184  7.7459666924148340e-01,
185  7.7459666924148340e-01,
186  1.0000000000000000e+00,
187  1.0000000000000000e+00,
188  1.0000000000000000e+00,
189  1.0000000000000000e+00,
190  1.0000000000000000e+00,
191  1.0000000000000000e+00,
192  1.0000000000000000e+00,
193  1.0000000000000000e+00,
194  1.0000000000000000e+00,
195  -7.7459666924148340e-01,
196  0.0000000000000000e+00,
197  7.7459666924148340e-01,
198  -7.7459666924148340e-01,
199  0.0000000000000000e+00,
200  7.7459666924148340e-01,
201  -7.7459666924148340e-01,
202  0.0000000000000000e+00,
203  7.7459666924148340e-01,
204  -7.7459666924148340e-01,
205  0.0000000000000000e+00,
206  7.7459666924148340e-01,
207  -7.7459666924148340e-01,
208  0.0000000000000000e+00,
209  7.7459666924148340e-01,
210  -7.7459666924148340e-01,
211  0.0000000000000000e+00,
212  7.7459666924148340e-01 };
213 
214 static double NF_N_H_Q1_3D_Zeta[] = {
215  -1.0000000000000000e+00,
216  -1.0000000000000000e+00,
217  -1.0000000000000000e+00,
218  -1.0000000000000000e+00,
219  -1.0000000000000000e+00,
220  -1.0000000000000000e+00,
221  -1.0000000000000000e+00,
222  -1.0000000000000000e+00,
223  -1.0000000000000000e+00,
224  -7.7459666924148340e-01,
225  0.0000000000000000e+00,
226  7.7459666924148340e-01,
227  -7.7459666924148340e-01,
228  0.0000000000000000e+00,
229  7.7459666924148340e-01,
230  -7.7459666924148340e-01,
231  0.0000000000000000e+00,
232  7.7459666924148340e-01,
233  -7.7459666924148340e-01,
234  0.0000000000000000e+00,
235  7.7459666924148340e-01,
236  -7.7459666924148340e-01,
237  0.0000000000000000e+00,
238  7.7459666924148340e-01,
239  -7.7459666924148340e-01,
240  0.0000000000000000e+00,
241  7.7459666924148340e-01,
242  -7.7459666924148340e-01,
243  0.0000000000000000e+00,
244  7.7459666924148340e-01,
245  -7.7459666924148340e-01,
246  0.0000000000000000e+00,
247  7.7459666924148340e-01,
248  -7.7459666924148340e-01,
249  0.0000000000000000e+00,
250  7.7459666924148340e-01,
251  -7.7459666924148340e-01,
252  -7.7459666924148340e-01,
253  -7.7459666924148340e-01,
254  0.0000000000000000e+00,
255  0.0000000000000000e+00,
256  0.0000000000000000e+00,
257  7.7459666924148340e-01,
258  7.7459666924148340e-01,
259  7.7459666924148340e-01,
260  1.0000000000000000e+00,
261  1.0000000000000000e+00,
262  1.0000000000000000e+00,
263  1.0000000000000000e+00,
264  1.0000000000000000e+00,
265  1.0000000000000000e+00,
266  1.0000000000000000e+00,
267  1.0000000000000000e+00,
268  1.0000000000000000e+00};
269 
270 /* face 0 0 */
271 static double NF_N_H_Q1_3D_F0_Xi[] = { 0 };
272 static double NF_N_H_Q1_3D_F0_Eta[] = { 0 };
273 static double NF_N_H_Q1_3D_F0_Zeta[] = { -1 };
274 
275 /* face 1 1 */
276 static double NF_N_H_Q1_3D_F1_Xi[] = { 0 };
277 static double NF_N_H_Q1_3D_F1_Eta[] = { -1 };
278 static double NF_N_H_Q1_3D_F1_Zeta[] = { 0 };
279 
280 /* face 2 2 */
281 static double NF_N_H_Q1_3D_F2_Xi[] = { 1 };
282 static double NF_N_H_Q1_3D_F2_Eta[] = { 0 };
283 static double NF_N_H_Q1_3D_F2_Zeta[] = { 0 };
284 
285 /* face 3 3 */
286 static double NF_N_H_Q1_3D_F3_Xi[] = { 0 };
287 static double NF_N_H_Q1_3D_F3_Eta[] = { 1 };
288 static double NF_N_H_Q1_3D_F3_Zeta[] = { 0 };
289 
290 /* face 4 4 */
291 static double NF_N_H_Q1_3D_F4_Xi[] = { -1 };
292 static double NF_N_H_Q1_3D_F4_Eta[] = { 0 };
293 static double NF_N_H_Q1_3D_F4_Zeta[] = { 0 };
294 
295 /* face 5 5 */
296 static double NF_N_H_Q1_3D_F5_Xi[] = { 0 };
297 static double NF_N_H_Q1_3D_F5_Eta[] = { 0 };
298 static double NF_N_H_Q1_3D_F5_Zeta[] = { 1 };
299 
300 static double *NF_N_H_Q1_3D_XiArray[6] = {
301  NF_N_H_Q1_3D_F0_Xi,
302  NF_N_H_Q1_3D_F1_Xi,
303  NF_N_H_Q1_3D_F2_Xi,
304  NF_N_H_Q1_3D_F3_Xi,
305  NF_N_H_Q1_3D_F4_Xi,
306  NF_N_H_Q1_3D_F5_Xi };
307 
308 static double *NF_N_H_Q1_3D_EtaArray[6] = {
309  NF_N_H_Q1_3D_F0_Eta,
310  NF_N_H_Q1_3D_F1_Eta,
311  NF_N_H_Q1_3D_F2_Eta,
312  NF_N_H_Q1_3D_F3_Eta,
313  NF_N_H_Q1_3D_F4_Eta,
314  NF_N_H_Q1_3D_F5_Eta };
315 
316 static double *NF_N_H_Q1_3D_ZetaArray[6] = {
317  NF_N_H_Q1_3D_F0_Zeta,
318  NF_N_H_Q1_3D_F1_Zeta,
319  NF_N_H_Q1_3D_F2_Zeta,
320  NF_N_H_Q1_3D_F3_Zeta,
321  NF_N_H_Q1_3D_F4_Zeta,
322  NF_N_H_Q1_3D_F5_Zeta };
323 
324 static double NF_N_H_Q1_3D_T[9] = { 0.11270166537925831149, 0.5,
325  0.88729833462074168851,
326  0.11270166537925831149, 0.5,
327  0.88729833462074168851,
328  0.11270166537925831149, 0.5,
329  0.88729833462074168851 };
330 static double NF_N_H_Q1_3D_S[9] = { 0.11270166537925831149,
331  0.11270166537925831149,
332  0.11270166537925831149,
333  0.5, 0.5, 0.5,
334  0.88729833462074168851,
335  0.88729833462074168851,
336  0.88729833462074168851 };
337 
338 void NF_N_H_Q1_3D_EvalAll(TCollection *Coll, TBaseCell *cell,
339  double *PointValues, double *Functionals)
340 {
341  Functionals[0] = ( 25*PointValues[0]
342  +40*PointValues[1]
343  +25*PointValues[2]
344  +40*PointValues[3]
345  +64*PointValues[4]
346  +40*PointValues[5]
347  +25*PointValues[6]
348  +40*PointValues[7]
349  +25*PointValues[8])/324;
350  Functionals[1] = ( 25*PointValues[9]
351  +40*PointValues[10]
352  +25*PointValues[11]
353  +40*PointValues[12]
354  +64*PointValues[13]
355  +40*PointValues[14]
356  +25*PointValues[15]
357  +40*PointValues[16]
358  +25*PointValues[17])/324;
359  Functionals[2] = ( 25*PointValues[18]
360  +40*PointValues[19]
361  +25*PointValues[20]
362  +40*PointValues[21]
363  +64*PointValues[22]
364  +40*PointValues[23]
365  +25*PointValues[24]
366  +40*PointValues[25]
367  +25*PointValues[26])/324;
368  Functionals[3] = ( 25*PointValues[27]
369  +40*PointValues[28]
370  +25*PointValues[29]
371  +40*PointValues[30]
372  +64*PointValues[31]
373  +40*PointValues[32]
374  +25*PointValues[33]
375  +40*PointValues[34]
376  +25*PointValues[35])/324;
377  Functionals[4] = ( 25*PointValues[36]
378  +40*PointValues[37]
379  +25*PointValues[38]
380  +40*PointValues[39]
381  +64*PointValues[40]
382  +40*PointValues[41]
383  +25*PointValues[42]
384  +40*PointValues[43]
385  +25*PointValues[44])/324;
386  Functionals[5] = ( 25*PointValues[45]
387  +40*PointValues[46]
388  +25*PointValues[47]
389  +40*PointValues[48]
390  +64*PointValues[49]
391  +40*PointValues[50]
392  +25*PointValues[51]
393  +40*PointValues[52]
394  +25*PointValues[53])/324;
395 }
396 
397 void NF_N_H_Q1_3D_EvalFace(TCollection *Coll, TBaseCell *cell, int Joint,
398  double *PointValues, double *Functionals)
399 {
400  Functionals[0] = ( 25*PointValues[0]
401  +40*PointValues[1]
402  +25*PointValues[2]
403  +40*PointValues[3]
404  +64*PointValues[4]
405  +40*PointValues[5]
406  +25*PointValues[6]
407  +40*PointValues[7]
408  +25*PointValues[8])/324;
409 }
410 
411 static int NF_N_H_Q1_3D_N_AllFunctionals = 6;
412 static int NF_N_H_Q1_3D_N_PointsAll = 54;
413 static int NF_N_H_Q1_3D_N_FaceFunctionals[] = { 1, 1, 1, 1, 1, 1 };
414 static int NF_N_H_Q1_3D_N_PointsFace[] = { 9, 9, 9, 9, 9, 9 };
415 #endif // __POINTVALUES__
416 
417 TNodalFunctional3D *NF_N_H_Q1_3D_Obj = new TNodalFunctional3D
418  (NF_N_H_Q1_3D, NF_N_H_Q1_3D_N_AllFunctionals,
419  NF_N_H_Q1_3D_N_FaceFunctionals, NF_N_H_Q1_3D_N_PointsAll,
420  NF_N_H_Q1_3D_N_PointsFace,
421  NF_N_H_Q1_3D_Xi, NF_N_H_Q1_3D_Eta, NF_N_H_Q1_3D_Zeta,
422  NF_N_H_Q1_3D_XiArray, NF_N_H_Q1_3D_EtaArray,
423  NF_N_H_Q1_3D_ZetaArray,
424  NF_N_H_Q1_3D_T, NF_N_H_Q1_3D_S,
425  NF_N_H_Q1_3D_EvalAll, NF_N_H_Q1_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