ParMooN
 All Classes Functions Variables Friends Pages
BF_C_Q_UL3_2D.h
1 // ***********************************************************************
2 // Q3 element with bubbles, conforming, 2D
3 // ***********************************************************************
4 
5 // base function values
6 static void C_Q_UL3_2D_Funct(double xi, double eta, double *values)
7 {
8  double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15;
9  double t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28;
10  double t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41;
11  double t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54;
12  double t55, t56, t57, t58, t59, t60, t61, t62, t63, t64, t65, t66, t67;
13  double t68, t69, t70, t71, t72, t73, t74, t75, t76, t77, t91;
14 
15  t1 = xi/8.0;
16  t2 = eta/8.0;
17  t3 = xi*xi;
18  t4 = eta*eta;
19  t5 = t3*t4;
20  t6 = 81.0/64.0*t5;
21  t7 = t4*eta;
22  t8 = 3.0/32.0*t7;
23  t9 = t3*xi;
24  t10 = 3.0/32.0*t9;
25  t11 = t9*t4;
26  t12 = 3.0/16.0*t11;
27  t13 = xi*t4;
28  t14 = 3.0/32.0*t13;
29  t15 = t3*eta;
30  t16 = 3.0/32.0*t15;
31  t17 = t3*t7;
32  t18 = 3.0/16.0*t17;
33  t19 = xi*eta;
34  t20 = 15.0/32.0*t19;
35  t21 = t3*t3;
36  t22 = 105.0/256.0*t21;
37  t23 = 147.0/256.0*t3;
38  t24 = 147.0/256.0*t4;
39  t25 = t4*t4;
40  t26 = t3*t25;
41  t27 = 105.0/256.0*t26;
42  t28 = 105.0/256.0*t25;
43  t29 = xi*t7;
44  t30 = 7.0/16.0*t29;
45  t31 = t9*eta;
46  t32 = 7.0/16.0*t31;
47  t33 = t9*t7;
48  t34 = 5.0/32.0*t33;
49  t35 = t21*t4;
50  t36 = 105.0/256.0*t35;
51  t37 = t1+t2+t6-t8-t10-t12-t14-t16-t18-t20+t22-t23-t24-t27+t28+t30+t32-t34-t36+17.0/128.0;
52  t38 = 27.0/64.0*xi;
53  t39 = 27.0/64.0*eta;
54  t40 = 135.0/128.0*t5;
55  t41 = 45.0/64.0*t7;
56  t42 = 27.0/64.0*t9;
57  t43 = 81.0/64.0*t11;
58  t44 = 81.0/64.0*t13;
59  t45 = 27.0/64.0*t15;
60  t46 = 45.0/64.0*t17;
61  t47 = 81.0/64.0*t19;
62  t48 = 27.0/256.0*t3;
63  t49 = 135.0/128.0*t4;
64  t50 = 315.0/256.0*t26;
65  t51 = 315.0/256.0*t25;
66  t52 = 135.0/64.0*t29;
67  t53 = 81.0/64.0*t31;
68  t54 = 135.0/64.0*t33;
69  t55 = t38+t39+t40-t41-t42+t43-t44-t45+t46-t47-t48-t49-t50+t51+t52+t53-t54+27.0/256.0;
70  t56 = -t38+t39+t40-t41+t42-t43+t44-t45+t46+t47-t48-t49-t50+t51-t52-t53+t54+27.0/256.0;
71  t57 = -t1+t2+t6-t8+t10+t12+t14-t16-t18+t20+t22-t23-t24-t27+t28-t30-t32+t34-t36+17.0/128.0;
72  t58 = 27.0/64.0*t7;
73  t59 = 45.0/64.0*t9;
74  t60 = 45.0/64.0*t11;
75  t61 = 27.0/64.0*t13;
76  t62 = 81.0/64.0*t15;
77  t63 = 81.0/64.0*t17;
78  t64 = 315.0/256.0*t21;
79  t65 = 135.0/128.0*t3;
80  t66 = 27.0/256.0*t4;
81  t67 = 81.0/64.0*t29;
82  t68 = 135.0/64.0*t31;
83  t69 = 315.0/256.0*t35;
84  t70 = -t38+t39+t40-t58+t59-t60+t61-t62+t63+t47+t64-t65-t66-t67-t68+t54-t69+27.0/256.0;
85  t71 = -t38-t39+t40+t58+t59-t60+t61+t62-t63-t47+t64-t65-t66+t67+t68-t54-t69+27.0/256.0;
86  t72 = -t1-t2+t6+t8+t10+t12+t14+t16+t18-t20+t22-t23-t24-t27+t28+t30+t32-t34-t36+17.0/128.0;
87  t73 = -t38-t39+t40+t41+t42-t43+t44+t45-t46-t47-t48-t49-t50+t51+t52+t53-t54+27.0/256.0;
88  t74 = t38-t39+t40+t41-t42+t43-t44+t45-t46+t47-t48-t49-t50+t51-t52-t53+t54+27.0/256.0;
89  t75 = t1-t2+t6+t8-t10-t12-t14+t16+t18+t20+t22-t23-t24-t27+t28-t30-t32+t34-t36+17.0/128.0;
90  t76 = t38-t39+t40+t58-t59+t60-t61+t62-t63+t47+t64-t65-t66-t67-t68+t54-t69+27.0/256.0;
91  t77 = t38+t39+t40-t58-t59+t60-t61-t62+t63-t47+t64-t65-t66+t67+t68-t54-t69+27.0/256.0;
92  t91 = 315.0/32.0*t5;
93 
94  values[0] = t37;
95  values[1] = t55;
96  values[2] = t56;
97  values[3] = t57;
98  values[4] = t70;
99  values[5] = t71;
100  values[6] = t72;
101  values[7] = t73;
102  values[8] = t74;
103  values[9] = t75;
104  values[10] = t76;
105  values[11] = t77;
106  values[12] = -3.0/32.0+111.0/64.0*t4+111.0/64.0*t3-27.0/8.0*t5-105.0/64.0*t21+105.0/64.0*t35-105.0/64.0*t25+105.0/64.0*t26;
107  values[13] = 45.0/16.0*eta-45.0/16.0*t7-45.0/16.0*t15+45.0/16.0*t17;
108  values[14] = 45.0/16.0*xi-45.0/16.0*t13-45.0/16.0*t9+45.0/16.0*t11;
109  values[15] = 225.0/16.0*t19-225.0/16.0*t29-225.0/16.0*t31+225.0/16.0*t33;
110  values[16] = -105.0/64.0+315.0/32.0*t4+105.0/64.0*t3-t91-525.0/64.0*t25+525.0/64.0*t26;
111  values[17] = -105.0/64.0+105.0/64.0*t4+315.0/32.0*t3-t91-525.0/64.0*t21+525.0/64.0*t35;
112 }
113 
114 // values of the derivatives in xi direction
115 static void C_Q_UL3_2D_DeriveXi(double xi, double eta, double *values)
116 {
117  double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15;
118  double t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28;
119  double t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41;
120  double t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54;
121  double t55, t56, t57, t58, t59, t60, t61, t79;
122 
123  t1 = eta*eta;
124  t2 = xi*t1;
125  t3 = 81.0/32.0*t2;
126  t4 = xi*xi;
127  t5 = 9.0/32.0*t4;
128  t6 = t4*t1;
129  t7 = 9.0/16.0*t6;
130  t8 = 3.0/32.0*t1;
131  t9 = xi*eta;
132  t10 = 3.0/16.0*t9;
133  t11 = t1*eta;
134  t12 = xi*t11;
135  t13 = 3.0/8.0*t12;
136  t14 = 15.0/32.0*eta;
137  t15 = xi*t4;
138  t16 = 105.0/64.0*t15;
139  t17 = 147.0/128.0*xi;
140  t18 = t1*t1;
141  t19 = xi*t18;
142  t20 = 105.0/128.0*t19;
143  t21 = 7.0/16.0*t11;
144  t22 = t4*eta;
145  t23 = 21.0/16.0*t22;
146  t24 = t4*t11;
147  t25 = 15.0/32.0*t24;
148  t26 = t15*t1;
149  t27 = 105.0/64.0*t26;
150  t28 = 1.0/8.0+t3-t5-t7-t8-t10-t13-t14+t16-t17-t20+t21+t23-t25-t27;
151  t29 = 135.0/64.0*t2;
152  t30 = 81.0/64.0*t4;
153  t31 = 243.0/64.0*t6;
154  t32 = 81.0/64.0*t1;
155  t33 = 27.0/32.0*t9;
156  t34 = 45.0/32.0*t12;
157  t35 = 81.0/64.0*eta;
158  t36 = 27.0/128.0*xi;
159  t37 = 315.0/128.0*t19;
160  t38 = 135.0/64.0*t11;
161  t39 = 243.0/64.0*t22;
162  t40 = 405.0/64.0*t24;
163  t41 = 27.0/64.0+t29-t30+t31-t32-t33+t34-t35-t36-t37+t38+t39-t40;
164  t42 = -27.0/64.0+t29+t30-t31+t32-t33+t34+t35-t36-t37-t38-t39+t40;
165  t43 = -1.0/8.0+t3+t5+t7+t8-t10-t13+t14+t16-t17-t20-t21-t23+t25-t27;
166  t44 = 135.0/64.0*t4;
167  t45 = 135.0/64.0*t6;
168  t46 = 27.0/64.0*t1;
169  t47 = 81.0/32.0*t9;
170  t48 = 81.0/32.0*t12;
171  t49 = 315.0/64.0*t15;
172  t50 = 135.0/64.0*xi;
173  t51 = 81.0/64.0*t11;
174  t52 = 405.0/64.0*t22;
175  t53 = 315.0/64.0*t26;
176  t54 = -27.0/64.0+t29+t44-t45+t46-t47+t48+t35+t49-t50-t51-t52+t40-t53;
177  t55 = -27.0/64.0+t29+t44-t45+t46+t47-t48-t35+t49-t50+t51+t52-t40-t53;
178  t56 = -1.0/8.0+t3+t5+t7+t8+t10+t13-t14+t16-t17-t20+t21+t23-t25-t27;
179  t57 = -27.0/64.0+t29+t30-t31+t32+t33-t34-t35-t36-t37+t38+t39-t40;
180  t58 = 27.0/64.0+t29-t30+t31-t32+t33-t34+t35-t36-t37-t38-t39+t40;
181  t59 = 1.0/8.0+t3-t5-t7-t8+t10+t13+t14+t16-t17-t20-t21-t23+t25-t27;
182  t60 = 27.0/64.0+t29-t44+t45-t46+t47-t48+t35+t49-t50-t51-t52+t40-t53;
183  t61 = 27.0/64.0+t29-t44+t45-t46-t47+t48-t35+t49-t50+t51+t52-t40-t53;
184  t79 = 315.0/16.0*t2;
185 
186  values[0] = t28;
187  values[1] = t41;
188  values[2] = t42;
189  values[3] = t43;
190  values[4] = t54;
191  values[5] = t55;
192  values[6] = t56;
193  values[7] = t57;
194  values[8] = t58;
195  values[9] = t59;
196  values[10] = t60;
197  values[11] = t61;
198  values[12] = 111.0/32.0*xi-27.0/4.0*t2-105.0/16.0*t15+105.0/16.0*t26+105.0/32.0*t19;
199  values[13] = -45.0/8.0*t9+45.0/8.0*t12;
200  values[14] = 45.0/16.0-45.0/16.0*t1-135.0/16.0*t4+135.0/16.0*t6;
201  values[15] = 225.0/16.0*eta-225.0/16.0*t11-675.0/16.0*t22+675.0/16.0*t24;
202  values[16] = 105.0/32.0*xi-t79+525.0/32.0*t19;
203  values[17] = 315.0/16.0*xi-t79-525.0/16.0*t15+525.0/16.0*t26;
204 }
205 
206 // values of the derivatives in eta direction
207 static void C_Q_UL3_2D_DeriveEta(double xi, double eta, double *values)
208 {
209  double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15;
210  double t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28;
211  double t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41;
212  double t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54;
213  double t55, t56, t57, t58, t59, t60, t61, t79;
214 
215  t1 = xi*xi;
216  t2 = t1*eta;
217  t3 = 81.0/32.0*t2;
218  t4 = eta*eta;
219  t5 = 9.0/32.0*t4;
220  t6 = t1*xi;
221  t7 = t6*eta;
222  t8 = 3.0/8.0*t7;
223  t9 = xi*eta;
224  t10 = 3.0/16.0*t9;
225  t11 = 3.0/32.0*t1;
226  t12 = t4*t1;
227  t13 = 9.0/16.0*t12;
228  t14 = 15.0/32.0*xi;
229  t15 = 147.0/128.0*eta;
230  t16 = t4*eta;
231  t17 = t1*t16;
232  t18 = 105.0/64.0*t17;
233  t19 = 105.0/64.0*t16;
234  t20 = xi*t4;
235  t21 = 21.0/16.0*t20;
236  t22 = 7.0/16.0*t6;
237  t23 = t6*t4;
238  t24 = 15.0/32.0*t23;
239  t25 = t1*t1;
240  t26 = t25*eta;
241  t27 = 105.0/128.0*t26;
242  t28 = 1.0/8.0+t3-t5-t8-t10-t11-t13-t14-t15-t18+t19+t21+t22-t24-t27;
243  t29 = 135.0/64.0*t2;
244  t30 = 135.0/64.0*t4;
245  t31 = 81.0/32.0*t7;
246  t32 = 81.0/32.0*t9;
247  t33 = 27.0/64.0*t1;
248  t34 = 135.0/64.0*t12;
249  t35 = 81.0/64.0*xi;
250  t36 = 135.0/64.0*eta;
251  t37 = 315.0/64.0*t17;
252  t38 = 315.0/64.0*t16;
253  t39 = 405.0/64.0*t20;
254  t40 = 81.0/64.0*t6;
255  t41 = 405.0/64.0*t23;
256  t42 = 27.0/64.0+t29-t30+t31-t32-t33+t34-t35-t36-t37+t38+t39+t40-t41;
257  t43 = 27.0/64.0+t29-t30-t31+t32-t33+t34+t35-t36-t37+t38-t39-t40+t41;
258  t44 = 1.0/8.0+t3-t5+t8+t10-t11-t13+t14-t15-t18+t19-t21-t22+t24-t27;
259  t45 = 81.0/64.0*t4;
260  t46 = 45.0/32.0*t7;
261  t47 = 27.0/32.0*t9;
262  t48 = 81.0/64.0*t1;
263  t49 = 243.0/64.0*t12;
264  t50 = 27.0/128.0*eta;
265  t51 = 243.0/64.0*t20;
266  t52 = 135.0/64.0*t6;
267  t53 = 315.0/128.0*t26;
268  t54 = 27.0/64.0+t29-t45-t46+t47-t48+t49+t35-t50-t51-t52+t41-t53;
269  t55 = -27.0/64.0+t29+t45-t46+t47+t48-t49-t35-t50+t51+t52-t41-t53;
270  t56 = -1.0/8.0+t3+t5+t8+t10+t11+t13-t14-t15-t18+t19+t21+t22-t24-t27;
271  t57 = -27.0/64.0+t29+t30-t31+t32+t33-t34-t35-t36-t37+t38+t39+t40-t41;
272  t58 = -27.0/64.0+t29+t30+t31-t32+t33-t34+t35-t36-t37+t38-t39-t40+t41;
273  t59 = -1.0/8.0+t3+t5-t8-t10+t11+t13+t14-t15-t18+t19-t21-t22+t24-t27;
274  t60 = -27.0/64.0+t29+t45+t46-t47+t48-t49+t35-t50-t51-t52+t41-t53;
275  t61 = 27.0/64.0+t29-t45+t46-t47-t48+t49-t35-t50+t51+t52-t41-t53;
276  t79 = 315.0/16.0*t2;
277 
278  values[0] = t28;
279  values[1] = t42;
280  values[2] = t43;
281  values[3] = t44;
282  values[4] = t54;
283  values[5] = t55;
284  values[6] = t56;
285  values[7] = t57;
286  values[8] = t58;
287  values[9] = t59;
288  values[10] = t60;
289  values[11] = t61;
290  values[12] = 111.0/32.0*eta-27.0/4.0*t2+105.0/32.0*t26-105.0/16.0*t16+105.0/16.0*t17;
291  values[13] = 45.0/16.0-135.0/16.0*t4-45.0/16.0*t1+135.0/16.0*t12;
292  values[14] = -45.0/8.0*t9+45.0/8.0*t7;
293  values[15] = 225.0/16.0*xi-675.0/16.0*t20-225.0/16.0*t6+675.0/16.0*t23;
294  values[16] = 315.0/16.0*eta-t79-525.0/16.0*t16+525.0/16.0*t17;
295  values[17] = 105.0/32.0*eta-t79+525.0/32.0*t26;
296 }
297 
298 // values of the derivatives in xi-xi direction
299 static void C_Q_UL3_2D_DeriveXiXi(double xi, double eta, double *values)
300 {
301  double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15;
302  double t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t30;
303  double t31, t32, t33, t34, t35, t36, t37, t40, t43, t54;
304 
305  t1 = eta*eta;
306  t2 = 81.0/32.0*t1;
307  t3 = 9.0/16.0*xi;
308  t4 = t1*xi;
309  t5 = 9.0/8.0*t4;
310  t6 = 3.0/16.0*eta;
311  t7 = t1*eta;
312  t8 = 3.0/8.0*t7;
313  t9 = xi*xi;
314  t10 = 315.0/64.0*t9;
315  t11 = t1*t1;
316  t12 = 105.0/128.0*t11;
317  t13 = xi*eta;
318  t14 = 21.0/8.0*t13;
319  t15 = xi*t7;
320  t16 = 15.0/16.0*t15;
321  t17 = t9*t1;
322  t18 = 315.0/64.0*t17;
323  t19 = t2-t3-t5-t6-t8+t10-147.0/128.0-t12+t14-t16-t18;
324  t20 = 135.0/64.0*t1;
325  t21 = 81.0/32.0*xi;
326  t22 = 243.0/32.0*t4;
327  t23 = 27.0/32.0*eta;
328  t24 = 45.0/32.0*t7;
329  t25 = 315.0/128.0*t11;
330  t26 = 243.0/32.0*t13;
331  t27 = 405.0/32.0*t15;
332  t30 = t2+t3+t5-t6-t8+t10-147.0/128.0-t12-t14+t16-t18;
333  t31 = 135.0/32.0*xi;
334  t32 = 135.0/32.0*t4;
335  t33 = 81.0/32.0*eta;
336  t34 = 81.0/32.0*t7;
337  t35 = 945.0/64.0*t9;
338  t36 = 405.0/32.0*t13;
339  t37 = 945.0/64.0*t17;
340  t40 = t2+t3+t5+t6+t8+t10-147.0/128.0-t12+t14-t16-t18;
341  t43 = t2-t3-t5+t6+t8+t10-147.0/128.0-t12-t14+t16-t18;
342  t54 = 315.0/16.0*t1;
343 
344  values[0] = t19;
345  values[1] = t20-t21+t22-t23+t24-27.0/128.0-t25+t26-t27;
346  values[2] = t20+t21-t22-t23+t24-27.0/128.0-t25-t26+t27;
347  values[3] = t30;
348  values[4] = t20+t31-t32-t33+t34+t35-135.0/64.0-t36+t27-t37;
349  values[5] = t20+t31-t32+t33-t34+t35-135.0/64.0+t36-t27-t37;
350  values[6] = t40;
351  values[7] = t20+t21-t22+t23-t24-27.0/128.0-t25+t26-t27;
352  values[8] = t20-t21+t22+t23-t24-27.0/128.0-t25-t26+t27;
353  values[9] = t43;
354  values[10] = t20-t31+t32+t33-t34+t35-135.0/64.0-t36+t27-t37;
355  values[11] = t20-t31+t32-t33+t34+t35-135.0/64.0+t36-t27-t37;
356  values[12] = 111.0/32.0-27.0/4.0*t1-315.0/16.0*t9+315.0/16.0*t17+105.0/32.0*t11;
357  values[13] = -45.0/8.0*eta+45.0/8.0*t7;
358  values[14] = -135.0/8.0*xi+135.0/8.0*t4;
359  values[15] = -675.0/8.0*t13+675.0/8.0*t15;
360  values[16] = 105.0/32.0-t54+525.0/32.0*t11;
361  values[17] = 315.0/16.0-t54-1575.0/16.0*t9+1575.0/16.0*t17;
362 }
363 
364 // values of the derivatives in xi-eta direction
365 static void C_Q_UL3_2D_DeriveXiEta(double xi, double eta, double *values)
366 {
367  double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t12, t13, t14, t15, t16;
368  double t17, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30;
369  double t33, t34, t35, t36, t37, t38, t39, t40, t43, t46, t63;
370 
371  t1 = xi*eta;
372  t2 = 81.0/16.0*t1;
373  t3 = xi*xi;
374  t4 = t3*eta;
375  t5 = 9.0/8.0*t4;
376  t6 = 3.0/16.0*eta;
377  t7 = 3.0/16.0*xi;
378  t8 = eta*eta;
379  t9 = xi*t8;
380  t10 = 9.0/8.0*t9;
381  t12 = xi*t8*eta;
382  t13 = 105.0/32.0*t12;
383  t14 = 21.0/16.0*t8;
384  t15 = 21.0/16.0*t3;
385  t16 = t3*t8;
386  t17 = 45.0/32.0*t16;
387  t19 = t3*xi*eta;
388  t20 = 105.0/32.0*t19;
389  t21 = t2-t5-t6-t7-t10-15.0/32.0-t13+t14+t15-t17-t20;
390  t22 = 135.0/32.0*t1;
391  t23 = 243.0/32.0*t4;
392  t24 = 81.0/32.0*eta;
393  t25 = 27.0/32.0*xi;
394  t26 = 135.0/32.0*t9;
395  t27 = 315.0/32.0*t12;
396  t28 = 405.0/64.0*t8;
397  t29 = 243.0/64.0*t3;
398  t30 = 1215.0/64.0*t16;
399  t33 = t2+t5+t6-t7-t10+15.0/32.0-t13-t14-t15+t17-t20;
400  t34 = 135.0/32.0*t4;
401  t35 = 27.0/32.0*eta;
402  t36 = 81.0/32.0*xi;
403  t37 = 243.0/32.0*t9;
404  t38 = 243.0/64.0*t8;
405  t39 = 405.0/64.0*t3;
406  t40 = 315.0/32.0*t19;
407  t43 = t2+t5+t6+t7+t10-15.0/32.0-t13+t14+t15-t17-t20;
408  t46 = t2-t5-t6+t7+t10+15.0/32.0-t13-t14-t15+t17-t20;
409  t63 = 315.0/8.0*t1;
410 
411  values[0] = t21;
412  values[1] = t22+t23-t24-t25+t26-81.0/64.0-t27+t28+t29-t30;
413  values[2] = t22-t23+t24-t25+t26+81.0/64.0-t27-t28-t29+t30;
414  values[3] = t33;
415  values[4] = t22-t34+t35-t36+t37+81.0/64.0-t38-t39+t30-t40;
416  values[5] = t22-t34+t35+t36-t37-81.0/64.0+t38+t39-t30-t40;
417  values[6] = t43;
418  values[7] = t22-t23+t24+t25-t26-81.0/64.0-t27+t28+t29-t30;
419  values[8] = t22+t23-t24+t25-t26+81.0/64.0-t27-t28-t29+t30;
420  values[9] = t46;
421  values[10] = t22+t34-t35+t36-t37+81.0/64.0-t38-t39+t30-t40;
422  values[11] = t22+t34-t35-t36+t37-81.0/64.0+t38+t39-t30-t40;
423  values[12] = -27.0/2.0*t1+105.0/8.0*t19+105.0/8.0*t12;
424  values[13] = -45.0/8.0*xi+135.0/8.0*t9;
425  values[14] = -45.0/8.0*eta+135.0/8.0*t4;
426  values[15] = 225.0/16.0-675.0/16.0*t8-675.0/16.0*t3+2025.0/16.0*t16;
427  values[16] = -t63+525.0/8.0*t12;
428  values[17] = -t63+525.0/8.0*t19;
429 }
430 
431 // values of the derivatives in eta-eta direction
432 static void C_Q_UL3_2D_DeriveEtaEta(double xi, double eta, double *values)
433 {
434  double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15;
435  double t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28;
436  double t31, t32, t33, t34, t35, t36, t37, t40, t43, t54;
437 
438  t1 = xi*xi;
439  t2 = 81.0/32.0*t1;
440  t3 = 9.0/16.0*eta;
441  t4 = t1*xi;
442  t5 = 3.0/8.0*t4;
443  t6 = 3.0/16.0*xi;
444  t7 = t1*eta;
445  t8 = 9.0/8.0*t7;
446  t9 = eta*eta;
447  t10 = t9*t1;
448  t11 = 315.0/64.0*t10;
449  t12 = 315.0/64.0*t9;
450  t13 = xi*eta;
451  t14 = 21.0/8.0*t13;
452  t15 = t4*eta;
453  t16 = 15.0/16.0*t15;
454  t17 = t1*t1;
455  t18 = 105.0/128.0*t17;
456  t19 = t2-t3-t5-t6-t8-147.0/128.0-t11+t12+t14-t16-t18;
457  t20 = 135.0/64.0*t1;
458  t21 = 135.0/32.0*eta;
459  t22 = 81.0/32.0*t4;
460  t23 = 81.0/32.0*xi;
461  t24 = 135.0/32.0*t7;
462  t25 = 945.0/64.0*t10;
463  t26 = 945.0/64.0*t9;
464  t27 = 405.0/32.0*t13;
465  t28 = 405.0/32.0*t15;
466  t31 = t2-t3+t5+t6-t8-147.0/128.0-t11+t12-t14+t16-t18;
467  t32 = 81.0/32.0*eta;
468  t33 = 45.0/32.0*t4;
469  t34 = 27.0/32.0*xi;
470  t35 = 243.0/32.0*t7;
471  t36 = 243.0/32.0*t13;
472  t37 = 315.0/128.0*t17;
473  t40 = t2+t3+t5+t6+t8-147.0/128.0-t11+t12+t14-t16-t18;
474  t43 = t2+t3-t5-t6+t8-147.0/128.0-t11+t12-t14+t16-t18;
475  t54 = 315.0/16.0*t1;
476 
477  values[0] = t19;
478  values[1] = t20-t21+t22-t23+t24-135.0/64.0-t25+t26+t27-t28;
479  values[2] = t20-t21-t22+t23+t24-135.0/64.0-t25+t26-t27+t28;
480  values[3] = t31;
481  values[4] = t20-t32-t33+t34+t35-27.0/128.0-t36+t28-t37;
482  values[5] = t20+t32-t33+t34-t35-27.0/128.0+t36-t28-t37;
483  values[6] = t40;
484  values[7] = t20+t21-t22+t23-t24-135.0/64.0-t25+t26+t27-t28;
485  values[8] = t20+t21+t22-t23-t24-135.0/64.0-t25+t26-t27+t28;
486  values[9] = t43;
487  values[10] = t20+t32+t33-t34-t35-27.0/128.0-t36+t28-t37;
488  values[11] = t20-t32+t33-t34+t35-27.0/128.0+t36-t28-t37;
489  values[12] = 111.0/32.0-27.0/4.0*t1+105.0/32.0*t17-315.0/16.0*t9+315.0/16.0*t10;
490  values[13] = -135.0/8.0*eta+135.0/8.0*t7;
491  values[14] = -45.0/8.0*xi+45.0/8.0*t4;
492  values[15] = -675.0/8.0*t13+675.0/8.0*t15;
493  values[16] = 315.0/16.0-t54-1575.0/16.0*t9+1575.0/16.0*t10;
494  values[17] = 105.0/32.0-t54+525.0/32.0*t17;
495 }
496 
497 // ***********************************************************************
498 
499 TBaseFunct2D *BF_C_Q_UL3_2D_Obj = new TBaseFunct2D
500  (18, BF_C_Q_UL3_2D, BFUnitSquare,
501  C_Q_UL3_2D_Funct, C_Q_UL3_2D_DeriveXi,
502  C_Q_UL3_2D_DeriveEta, C_Q_UL3_2D_DeriveXiXi,
503  C_Q_UL3_2D_DeriveXiEta, C_Q_UL3_2D_DeriveEtaEta, 4, 3,
504  0, NULL);
Definition: BaseFunct2D.h:27