ParMooN
 All Classes Functions Variables Friends Pages
BF_D_H_Q2_3D.h
1 // ***********************************************************************
2 // Q2 element, discontinuous, 3D
3 // ***********************************************************************
4 
5 static void D_H_Q2_3D_Funct(double xi, double eta, double zeta,
6  double *values)
7 {
8  values[0] = 1;
9 
10  values[1] = xi;
11  values[2] = eta;
12  values[3] = zeta;
13 
14  values[4] = 3*xi*xi-1;
15  values[5] = xi*eta;
16  values[6] = xi*zeta;
17  values[7] = 3*eta*eta-1;
18  values[8] = eta*zeta;
19  values[9] = 3*zeta*zeta-1;
20 
21  values[10] = (3*xi*xi-1)*eta;
22  values[11] = (3*xi*xi-1)*zeta;
23  values[12] = (3*eta*eta-1)*xi;
24  values[13] = xi*eta*zeta;
25  values[14] = (3*zeta*zeta-1)*xi;
26  values[15] = (3*eta*eta-1)*zeta;
27  values[16] = (3*zeta*zeta-1)*eta;
28 
29  values[17] = (3*xi*xi-1)*(3*eta*eta-1);
30  values[18] = (3*xi*xi-1)*eta*zeta;
31  values[19] = (3*xi*xi-1)*(3*zeta*zeta-1);
32  values[20] = (3*eta*eta-1)*xi*zeta;
33  values[21] = (3*zeta*zeta-1)*xi*eta;
34  values[22] = (3*eta*eta-1)*(3*zeta*zeta-1);
35 
36  values[23] = (3*xi*xi-1)*(3*eta*eta-1)*zeta;
37  values[24] = (3*xi*xi-1)*(3*zeta*zeta-1)*eta;
38  values[25] = (3*eta*eta-1)*(3*zeta*zeta-1)*xi;
39 
40  values[26] = (3*xi*xi-1)*(3*eta*eta-1)*(3*zeta*zeta-1);
41 }
42 
43 static void D_H_Q2_3D_DeriveXi(double xi, double eta, double zeta,
44  double *values)
45 {
46  values[0] = 0;
47 
48  values[1] = 1;
49  values[2] = 0;
50  values[3] = 0;
51 
52  values[4] = 6*xi;
53  values[5] = eta;
54  values[6] = zeta;
55  values[7] = 0;
56  values[8] = 0;
57  values[9] = 0;
58 
59  values[10] = 6*xi*eta;
60  values[11] = 6*xi*zeta;
61  values[12] = (3*eta*eta-1);
62  values[13] = eta*zeta;
63  values[14] = (3*zeta*zeta-1);
64  values[15] = 0;
65  values[16] = 0;
66 
67  values[17] = 6*xi*(3*eta*eta-1);
68  values[18] = 6*xi*eta*zeta;
69  values[19] = 6*xi*(3*zeta*zeta-1);
70  values[20] = (3*eta*eta-1)*zeta;
71  values[21] = (3*zeta*zeta-1)*eta;
72  values[22] = 0;
73 
74  values[23] = 6*xi*(3*eta*eta-1)*zeta;
75  values[24] = 6*xi*(3*zeta*zeta-1)*eta;
76  values[25] = (3*eta*eta-1)*(3*zeta*zeta-1);
77 
78  values[26] = 6*xi*(3*eta*eta-1)*(3*zeta*zeta-1);
79 }
80 
81 static void D_H_Q2_3D_DeriveEta(double xi, double eta, double zeta,
82  double *values)
83 {
84  values[0] = 0;
85 
86  values[1] = 0;
87  values[2] = 1;
88  values[3] = 0;
89 
90  values[4] = 0;
91  values[5] = xi;
92  values[6] = 0;
93  values[7] = 6*eta;
94  values[8] = zeta;
95  values[9] = 0;
96 
97  values[10] = (3*xi*xi-1);
98  values[11] = 0;
99  values[12] = 6*eta*xi;
100  values[13] = xi*zeta;
101  values[14] = 0;
102  values[15] = 6*eta*zeta;
103  values[16] = (3*zeta*zeta-1);
104 
105  values[17] = (3*xi*xi-1)*6*eta;
106  values[18] = (3*xi*xi-1)*zeta;
107  values[19] = 0;
108  values[20] = 6*eta*xi*zeta;
109  values[21] = (3*zeta*zeta-1)*xi;
110  values[22] = 6*eta*(3*zeta*zeta-1);
111 
112  values[23] = (3*xi*xi-1)*6*eta*zeta;
113  values[24] = (3*xi*xi-1)*(3*zeta*zeta-1);
114  values[25] = 6*eta*(3*zeta*zeta-1)*xi;
115 
116  values[26] = (3*xi*xi-1)*6*eta*(3*zeta*zeta-1);
117 }
118 
119 static void D_H_Q2_3D_DeriveZeta(double xi, double eta, double zeta,
120  double *values)
121 {
122  values[0] = 0;
123 
124  values[1] = 0;
125  values[2] = 0;
126  values[3] = 1;
127 
128  values[4] = 0;
129  values[5] = 0;
130  values[6] = xi;
131  values[7] = 0;
132  values[8] = eta;
133  values[9] = 6*zeta;
134 
135  values[10] = 0;
136  values[11] = (3*xi*xi-1);
137  values[12] = 0;
138  values[13] = xi*eta;
139  values[14] = 6*zeta*xi;
140  values[15] = (3*eta*eta-1);
141  values[16] = 6*zeta*eta;
142 
143  values[17] = 0;
144  values[18] = (3*xi*xi-1)*eta;
145  values[19] = (3*xi*xi-1)*6*zeta;
146  values[20] = (3*eta*eta-1)*xi;
147  values[21] = 6*zeta*xi*eta;
148  values[22] = (3*eta*eta-1)*6*zeta;
149 
150  values[23] = (3*xi*xi-1)*(3*eta*eta-1);
151  values[24] = (3*xi*xi-1)*6*zeta*eta;
152  values[25] = (3*eta*eta-1)*6*zeta*xi;
153 
154  values[26] = (3*xi*xi-1)*(3*eta*eta-1)*6*zeta;
155 }
156 
157 static void D_H_Q2_3D_DeriveXiXi(double xi, double eta, double zeta,
158  double *values)
159 {
160  values[0] = 0;
161 
162  values[1] = 0;
163  values[2] = 0;
164  values[3] = 0;
165 
166  values[4] = 6;
167  values[5] = 0;
168  values[6] = 0;
169  values[7] = 0;
170  values[8] = 0;
171  values[9] = 0;
172 
173  values[10] = 6*eta;
174  values[11] = 6*zeta;
175  values[12] = 0;
176  values[13] = 0;
177  values[14] = 0;
178  values[15] = 0;
179  values[16] = 0;
180 
181  values[17] = 6*(3*eta*eta-1);
182  values[18] = 6*eta*zeta;
183  values[19] = 6*(3*zeta*zeta-1);
184  values[20] = 0;
185  values[21] = 0;
186  values[22] = 0;
187 
188  values[23] = 6*(3*eta*eta-1)*zeta;
189  values[24] = 6*(3*zeta*zeta-1)*eta;
190  values[25] = 0;
191 
192  values[26] = 6*(3*eta*eta-1)*(3*zeta*zeta-1);
193 }
194 
195 static void D_H_Q2_3D_DeriveXiEta(double xi, double eta, double zeta,
196  double *values)
197 {
198  values[0] = 0;
199 
200  values[1] = 0;
201  values[2] = 0;
202  values[3] = 0;
203 
204  values[4] = 0;
205  values[5] = 1;
206  values[6] = 0;
207  values[7] = 0;
208  values[8] = 0;
209  values[9] = 0;
210 
211  values[10] = 6*xi;
212  values[11] = 0;
213  values[12] = 6*eta;
214  values[13] = zeta;
215  values[14] = 0;
216  values[15] = 0;
217  values[16] = 0;
218 
219  values[17] = 6*xi*6*eta;
220  values[18] = 6*xi*zeta;
221  values[19] = 0;
222  values[20] = 6*eta*zeta;
223  values[21] = (3*zeta*zeta-1);
224  values[22] = 0;
225 
226  values[23] = 6*xi*6*eta*zeta;
227  values[24] = 6*xi*(3*zeta*zeta-1);
228  values[25] = 6*eta*(3*zeta*zeta-1);
229 
230  values[26] = 6*xi*6*eta*(3*zeta*zeta-1);
231 }
232 
233 static void D_H_Q2_3D_DeriveXiZeta(double xi, double eta, double zeta,
234  double *values)
235 {
236  values[0] = 0;
237 
238  values[1] = 0;
239  values[2] = 0;
240  values[3] = 0;
241 
242  values[4] = 0;
243  values[5] = 0;
244  values[6] = 1;
245  values[7] = 0;
246  values[8] = 0;
247  values[9] = 0;
248 
249  values[10] = 0;
250  values[11] = 6*xi;
251  values[12] = 0;
252  values[13] = eta;
253  values[14] = 6*zeta;
254  values[15] = 0;
255  values[16] = 0;
256 
257  values[17] = 0;
258  values[18] = 6*xi*eta;
259  values[19] = 6*xi*6*zeta;
260  values[20] = (3*eta*eta-1);
261  values[21] = 6*zeta*eta;
262  values[22] = 0;
263 
264  values[23] = 6*xi*(3*eta*eta-1);
265  values[24] = 6*xi*6*zeta*eta;
266  values[25] = (3*eta*eta-1)*6*zeta;
267 
268  values[26] = 6*xi*(3*eta*eta-1)*6*zeta;
269 }
270 
271 static void D_H_Q2_3D_DeriveEtaEta(double xi, double eta, double zeta,
272  double *values)
273 {
274  values[0] = 0;
275 
276  values[1] = 0;
277  values[2] = 0;
278  values[3] = 0;
279 
280  values[4] = 0;
281  values[5] = 0;
282  values[6] = 0;
283  values[7] = 6;
284  values[8] = 0;
285  values[9] = 0;
286 
287  values[10] = 0;
288  values[11] = 0;
289  values[12] = 6*xi;
290  values[13] = 0;
291  values[14] = 0;
292  values[15] = 6*zeta;
293  values[16] = 0;
294 
295  values[17] = (3*xi*xi-1)*6;
296  values[18] = 0;
297  values[19] = 0;
298  values[20] = 6*xi*zeta;
299  values[21] = 0;
300  values[22] = 6*(3*zeta*zeta-1);
301 
302  values[23] = (3*xi*xi-1)*6*zeta;
303  values[24] = 0;
304  values[25] = 6*(3*zeta*zeta-1)*xi;
305 
306  values[26] = (3*xi*xi-1)*6*(3*zeta*zeta-1);
307 }
308 
309 static void D_H_Q2_3D_DeriveEtaZeta(double xi, double eta, double zeta,
310  double *values)
311 {
312  values[0] = 0;
313 
314  values[1] = 0;
315  values[2] = 0;
316  values[3] = 0;
317 
318  values[4] = 0;
319  values[5] = 0;
320  values[6] = 0;
321  values[7] = 0;
322  values[8] = 1;
323  values[9] = 0;
324 
325  values[10] = 0;
326  values[11] = 0;
327  values[12] = 0;
328  values[13] = xi;
329  values[14] = 0;
330  values[15] = 6*eta;
331  values[16] = 6*zeta;
332 
333  values[17] = 0;
334  values[18] = (3*xi*xi-1);
335  values[19] = 0;
336  values[20] = 6*eta*xi;
337  values[21] = 6*zeta*xi;
338  values[22] = 6*eta*6*zeta;
339 
340  values[23] = (3*xi*xi-1)*6*eta;
341  values[24] = (3*xi*xi-1)*6*zeta;
342  values[25] = 6*eta*6*zeta*xi;
343 
344  values[26] = (3*xi*xi-1)*6*eta*6*zeta;
345 }
346 
347 static void D_H_Q2_3D_DeriveZetaZeta(double xi, double eta, double zeta,
348  double *values)
349 {
350  values[0] = 0;
351 
352  values[1] = 0;
353  values[2] = 0;
354  values[3] = 0;
355 
356  values[4] = 0;
357  values[5] = 0;
358  values[6] = 0;
359  values[7] = 0;
360  values[8] = 0;
361  values[9] = 6;
362 
363  values[10] = 0;
364  values[11] = 0;
365  values[12] = 0;
366  values[13] = 0;
367  values[14] = 6*xi;
368  values[15] = 0;
369  values[16] = 6*eta;
370 
371  values[17] = 0;
372  values[18] = 0;
373  values[19] = (3*xi*xi-1)*6;
374  values[20] = 0;
375  values[21] = 6*xi*eta;
376  values[22] = (3*eta*eta-1)*6;
377 
378  values[23] = 0;
379  values[24] = (3*xi*xi-1)*6*eta;
380  values[25] = (3*eta*eta-1)*6*xi;
381 
382  values[26] = (3*xi*xi-1)*(3*eta*eta-1)*6;
383 }
384 
385 TBaseFunct3D *BF_D_H_Q2_3D_Obj =
386 new TBaseFunct3D(27, BF_D_H_Q2_3D, BFUnitHexahedron,
387  D_H_Q2_3D_Funct, D_H_Q2_3D_DeriveXi,
388  D_H_Q2_3D_DeriveEta, D_H_Q2_3D_DeriveZeta,
389  D_H_Q2_3D_DeriveXiXi, D_H_Q2_3D_DeriveXiEta,
390  D_H_Q2_3D_DeriveXiZeta, D_H_Q2_3D_DeriveEtaEta,
391  D_H_Q2_3D_DeriveEtaZeta, D_H_Q2_3D_DeriveZetaZeta,
392  3, 1,
393  0, NULL);
Definition: BaseFunct3D.h:27