ParMooN
 All Classes Functions Variables Friends Pages
BF_C_Q_UL4_2D.h
1 // ********************************************************************
2 // Q4 element with bubbles, conforming, 2D
3 // ********************************************************************
4 
5 // base function values
6 static void C_Q_UL4_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, t58, t59, t60, t61, t62, t63, t64, t65, t66, t67, t68;
13  double t69, t70, t71, t72, t73, t74, t75, t76, t77, t78, t79, t80, t81;
14  double t83, t84, t85, t86, t87, t88, t89, t90, t91, t92, t93, t94, t95;
15  double t96, t97, t98, t99, t100, t101, t103, t104, t106, t107, t108;
16  double t109, t110, t111, t112, t113, t114, t115, t116, t117, t118, t119;
17  double t120, t121, t122, t123, t124, t125, t126, t128, t129, t130, t131;
18  double t132, t133, t134, t135, t136, t137, t138, t139, t140, t141, t142;
19  double t143, t144, t146, t147, t149, t150, t152, t153, t154, t156, t157;
20  double t159, t160, t162, t163, t164, t184, t187, t188, t190;
21 
22  t1 = 49.0/160.0*xi;
23  t2 = xi*xi;
24  t3 = t2*t2;
25  t4 = t3*xi;
26  t5 = 147.0/320.0*t4;
27  t6 = 73.0/256.0*t3;
28  t7 = t2*xi;
29  t8 = 49.0/64.0*t7;
30  t9 = 49.0/160.0*eta;
31  t10 = eta*eta;
32  t11 = t10*t10;
33  t12 = 73.0/256.0*t11;
34  t13 = t11*eta;
35  t14 = 147.0/320.0*t13;
36  t15 = t10*eta;
37  t16 = 49.0/64.0*t15;
38  t17 = t7*eta;
39  t18 = 11.0/48.0*t17;
40  t19 = 41.0/128.0*t2;
41  t20 = 41.0/128.0*t10;
42  t21 = xi*eta;
43  t22 = 5.0/16.0*t21;
44  t23 = t2*t10;
45  t24 = 185.0/64.0*t23;
46  t25 = -9.0/256.0-t1-t5-t6+t8-t9-t12-t14+t16+t18+t19+t20-t22-t24;
47  t26 = t2*eta;
48  t27 = 373.0/320.0*t26;
49  t28 = t7*t10;
50  t29 = 37.0/24.0*t28;
51  t30 = t2*t15;
52  t31 = 37.0/24.0*t30;
53  t32 = t3*t11;
54  t33 = 1435.0/768.0*t32;
55  t34 = t2*t13;
56  t35 = 147.0/320.0*t34;
57  t36 = t3*t15;
58  t37 = 85.0/192.0*t36;
59  t38 = t7*t11;
60  t39 = 85.0/192.0*t38;
61  t40 = t4*t10;
62  t41 = 147.0/320.0*t40;
63  t42 = t2*t11;
64  t43 = 955.0/384.0*t42;
65  t44 = t7*t15;
66  t45 = 5.0/48.0*t44;
67  t46 = t3*t10;
68  t47 = 955.0/384.0*t46;
69  t48 = xi*t11;
70  t49 = 149.0/192.0*t48;
71  t50 = t3*eta;
72  t51 = 149.0/192.0*t50;
73  t52 = xi*t15;
74  t53 = 11.0/48.0*t52;
75  t54 = xi*t10;
76  t55 = 373.0/320.0*t54;
77  t56 = t27-t29-t31-t33+t35+t37+t39+t41+t43+t45+t47-t49-t51+t53+t55;
78  t58 = xi/4.0;
79  t59 = 9.0/10.0*eta;
80  t60 = 21.0/10.0*t34;
81  t61 = 35.0/12.0*t48;
82  t62 = 5.0*t23;
83  t63 = 35.0/6.0*t32;
84  t64 = 10.0/3.0*t36;
85  t65 = 2.0*t50;
86  t66 = 35.0/12.0*t38;
87  t67 = 21.0/10.0*t13;
88  t68 = 3.0*t15;
89  t69 = t7/4.0;
90  t70 = -t58-t59+t60-t61-t62-t63+t64-t65+t66-t67+t68+t69;
91  t71 = 5.0/2.0*t28;
92  t72 = 5.0/2.0*t54;
93  t73 = 29.0/10.0*t26;
94  t74 = 19.0/3.0*t30;
95  t75 = t3/2.0;
96  t76 = t2/2.0;
97  t77 = 35.0/6.0*t42;
98  t78 = 5.0/3.0*t52;
99  t79 = 5.0/3.0*t44;
100  t80 = 5.0*t46;
101  t81 = -t71+t72+t73-t74-t21-t75+t76+t77+t78+t17-t79+t80;
102  t83 = 33.0/80.0*eta;
103  t84 = 63.0/80.0*t34;
104  t85 = 75.0/8.0*t23;
105  t86 = 35.0/4.0*t32;
106  t87 = 5.0*t36;
107  t88 = 3.0*t50;
108  t89 = 63.0/80.0*t13;
109  t90 = t15/8.0;
110  t91 = 273.0/80.0*t26;
111  t92 = 41.0/8.0*t30;
112  t93 = 3.0/4.0*t3;
113  t94 = 15.0/16.0*t2;
114  t95 = 15.0/8.0*t10;
115  t96 = 175.0/16.0*t42;
116  t97 = 35.0/16.0*t11;
117  t98 = 15.0/2.0*t46;
118  t99 = t83+t84+t85+t86-t87+t88-t89+3.0/16.0-t90-t91+t92+t93-t94-t95-t96+t97-t98;
119  t100 = t58-t59+t60+t61-t62-t63+t64-t65-t66-t67+t68-t69;
120  t101 = t71-t72+t73-t74+t21-t75+t76+t77-t78-t17+t79+t80;
121  t103 = -9.0/256.0+t1+t5-t6-t8-t9-t12-t14+t16-t18+t19+t20+t22-t24;
122  t104 = t27+t29-t31-t33+t35+t37-t39-t41+t43-t45+t47+t49-t51-t53-t55;
123  t106 = 9.0/10.0*xi;
124  t107 = eta/4.0;
125  t108 = 2.0*t48;
126  t109 = 35.0/12.0*t36;
127  t110 = 35.0/12.0*t50;
128  t111 = 10.0/3.0*t38;
129  t112 = 21.0/10.0*t40;
130  t113 = 21.0/10.0*t4;
131  t114 = t15/4.0;
132  t115 = 3.0*t7;
133  t116 = t106-t107+t108-t62-t63+t109-t110-t111-t112+t113+t114-t115;
134  t117 = 19.0/3.0*t28;
135  t118 = 29.0/10.0*t54;
136  t119 = 5.0/2.0*t26;
137  t120 = 5.0/2.0*t30;
138  t121 = t10/2.0;
139  t122 = 5.0*t42;
140  t123 = t11/2.0;
141  t124 = 5.0/3.0*t17;
142  t125 = 35.0/6.0*t46;
143  t126 = t117-t118+t119-t120+t21+t121+t122-t123-t52-t124+t79+t125;
144  t128 = 33.0/80.0*xi;
145  t129 = 3.0*t48;
146  t130 = 5.0*t38;
147  t131 = 63.0/80.0*t40;
148  t132 = 63.0/80.0*t4;
149  t133 = t7/8.0;
150  t134 = 41.0/8.0*t28;
151  t135 = 273.0/80.0*t54;
152  t136 = 35.0/16.0*t3;
153  t137 = 15.0/8.0*t2;
154  t138 = 15.0/16.0*t10;
155  t139 = 15.0/2.0*t42;
156  t140 = 3.0/4.0*t11;
157  t141 = 175.0/16.0*t46;
158  t142 = -t128-t129+t85+t86+t130-t131+t132+3.0/16.0+t133-t134+t135+t136-t137-t138-t139+t140-t141;
159  t143 = t106+t107+t108-t62-t63-t109+t110-t111-t112+t113-t114-t115;
160  t144 = t117-t118-t119+t120-t21+t121+t122-t123+t52+t124-t79+t125;
161  t146 = -9.0/256.0+t1+t5-t6-t8+t9-t12+t14-t16+t18+t19+t20-t22-t24;
162  t147 = -t27+t29+t31-t33-t35-t37-t39-t41+t43+t45+t47+t49+t51+t53-t55;
163  t149 = t58+t59-t60+t61-t62-t63-t64+t65-t66+t67-t68-t69;
164  t150 = t71-t72-t73+t74-t21-t75+t76+t77+t78+t17-t79+t80;
165  t152 = -t83-t84+t85+t86+t87-t88+t89+3.0/16.0+t90+t91-t92+t93-t94-t95-t96+t97-t98;
166  t153 = -t58+t59-t60-t61-t62-t63-t64+t65+t66+t67-t68+t69;
167  t154 = -t71+t72-t73+t74+t21-t75+t76+t77-t78-t17+t79+t80;
168  t156 = -9.0/256.0-t1-t5-t6+t8+t9-t12+t14-t16-t18+t19+t20+t22-t24;
169  t157 = -t27-t29+t31-t33-t35-t37+t39+t41+t43-t45+t47-t49+t51-t53+t55;
170  t159 = -t106+t107-t108-t62-t63-t109+t110+t111+t112-t113-t114+t115;
171  t160 = -t117+t118-t119+t120+t21+t121+t122-t123-t52-t124+t79+t125;
172  t162 = t128+t129+t85+t86-t130+t131-t132+3.0/16.0-t133+t134-t135+t136-t137-t138-t139+t140-t141;
173  t163 = -t106-t107-t108-t62-t63+t109-t110+t111+t112-t113+t114+t115;
174  t164 = -t117+t118+t119-t120-t21+t121+t122-t123+t52+t124-t79+t125;
175  t184 = 525.0/128.0*t10;
176  t187 = 525.0/128.0*t2;
177  t188 = 1575.0/64.0*t23;
178  t190 = 6125.0/256.0*t32;
179 
180  values[0] = t25+t56;
181  values[1] = t70+t81;
182  values[2] = t99;
183  values[3] = t100+t101;
184  values[4] = t103+t104;
185  values[5] = t116+t126;
186  values[6] = t142;
187  values[7] = t143+t144;
188  values[8] = t146+t147;
189  values[9] = t149+t150;
190  values[10] = t152;
191  values[11] = t153+t154;
192  values[12] = t156+t157;
193  values[13] = t159+t160;
194  values[14] = t162;
195  values[15] = t163+t164;
196  values[16] = -175.0/256.0*t3+75.0/128.0*t2+75.0/128.0*t10+25.0/256.0-175.0/256.0*t11+1225.0/256.0*t32-525.0/128.0*t46-525.0/128.0*t42+225.0/64.0*t23;
197  values[17] = -21.0/8.0*eta+735.0/64.0*t15-567.0/64.0*t13-315.0/16.0*t30+693.0/64.0*t26+567.0/64.0*t34-525.0/64.0*t50+525.0/64.0*t36;
198  values[18] = -175.0/256.0+t184+1225.0/256.0*t3-3675.0/128.0*t46-t187+t188-875.0/256.0*t11+t190-2625.0/128.0*t42;
199  values[19] = -21.0/8.0*xi+693.0/64.0*t54-525.0/64.0*t48+735.0/64.0*t7-315.0/16.0*t28-567.0/64.0*t4+567.0/64.0*t40+525.0/64.0*t38;
200  values[20] = 225.0/16.0*t21-225.0/16.0*t52-225.0/16.0*t17+225.0/16.0*t44;
201  values[21] = -525.0/64.0*xi+1575.0/32.0*t54-2625.0/64.0*t48+525.0/64.0*t7+2625.0/64.0*t38-1575.0/32.0*t28;
202  values[22] = -175.0/256.0+1225.0/256.0*t11-t184+t187-3675.0/128.0*t42+t188-875.0/256.0*t3+t190-2625.0/128.0*t46;
203  values[23] = -525.0/64.0*eta-2625.0/64.0*t50+1575.0/32.0*t26+525.0/64.0*t15+2625.0/64.0*t36-1575.0/32.0*t30;
204  values[24] = 11025.0/64.0*t23+30625.0/256.0*t32+1225.0/256.0+6125.0/256.0*t3-3675.0/128.0*t2-3675.0/128.0*t10-18375.0/128.0*t42+6125.0/256.0*t11-18375.0/128.0*t46;
205  values[25] = -567.0/64.0*eta+945.0/32.0*t15-1323.0/64.0*t13-945.0/32.0*t30+567.0/64.0*t26+1323.0/64.0*t34;
206  values[26] = -567.0/64.0*xi+567.0/64.0*t54+945.0/32.0*t7-945.0/32.0*t28-1323.0/64.0*t4+1323.0/64.0*t40;
207 }
208 
209 
210 // values of the derivatives in xi direction
211 static void C_Q_UL4_2D_DeriveXi(double xi, double eta, double *values)
212 {
213  double t1, t2, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16;
214  double t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29;
215  double t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42;
216  double t43, t44, t45, t47, t48, t49, t50, t51, t52, t53, t54, t55, t57;
217  double t58, t59, t60, t61, t62, t63, t64, t65, t66, t68, t69, t70, t71;
218  double t72, t73, t74, t75, t76, t77, t78, t79, t81, t83, t84, t86, t87;
219  double t88, t89, t90, t91, t92, t93, t94, t95, t96, t97, t98, t99, t100;
220  double t101, t102, t103, t104, t105, t106, t107, t108, t109, t110, t111;
221  double t112, t113, t114, t115, t118, t120, t122, t124, t125, t127, t128;
222  double t129, t145, t146, t147;
223 
224  t1 = eta*eta;
225  t2 = t1*t1;
226  t4 = xi*t2*eta;
227  t5 = 147.0/160.0*t4;
228  t6 = 149.0/192.0*t2;
229  t7 = xi*t1;
230  t8 = 185.0/32.0*t7;
231  t9 = xi*xi;
232  t10 = t9*xi;
233  t11 = t2*t10;
234  t12 = 1435.0/192.0*t11;
235  t13 = t1*eta;
236  t14 = t10*t13;
237  t15 = 85.0/48.0*t14;
238  t16 = t10*eta;
239  t17 = 149.0/48.0*t16;
240  t18 = t9*t2;
241  t19 = 85.0/64.0*t18;
242  t20 = t9*t9;
243  t21 = t20*t1;
244  t22 = 147.0/64.0*t21;
245  t23 = 147.0/64.0*t20;
246  t24 = 147.0/64.0*t9;
247  t25 = -49.0/160.0+t5-t6-t8-t12+t15-t17+t19+t22-t23+t24;
248  t26 = t9*t1;
249  t27 = 37.0/8.0*t26;
250  t28 = 373.0/320.0*t1;
251  t29 = xi*eta;
252  t30 = 373.0/160.0*t29;
253  t31 = xi*t13;
254  t32 = 37.0/12.0*t31;
255  t33 = 5.0/16.0*eta;
256  t34 = 73.0/64.0*t10;
257  t35 = 41.0/64.0*xi;
258  t36 = t2*xi;
259  t37 = 955.0/192.0*t36;
260  t38 = 11.0/48.0*t13;
261  t39 = t9*eta;
262  t40 = 11.0/16.0*t39;
263  t41 = t9*t13;
264  t42 = 5.0/16.0*t41;
265  t43 = t10*t1;
266  t44 = 955.0/96.0*t43;
267  t45 = -t27+t28+t30-t32-t33-t34+t35+t37+t38+t40+t42+t44;
268  t47 = 21.0/5.0*t4;
269  t48 = 35.0/12.0*t2;
270  t49 = 10.0*t7;
271  t50 = 70.0/3.0*t11;
272  t51 = 40.0/3.0*t14;
273  t52 = 8.0*t16;
274  t53 = 35.0/4.0*t18;
275  t54 = 3.0/4.0*t9;
276  t55 = 15.0/2.0*t26;
277  t57 = 5.0/2.0*t1;
278  t58 = 29.0/5.0*t29;
279  t59 = 38.0/3.0*t31;
280  t60 = 2.0*t10;
281  t61 = 35.0/3.0*t36;
282  t62 = 5.0/3.0*t13;
283  t63 = 3.0*t39;
284  t64 = 5.0*t41;
285  t65 = 20.0*t43;
286  t66 = t57+t58-t59-eta-t60+xi+t61+t62+t63-t64+t65;
287  t68 = 63.0/40.0*t4;
288  t69 = 75.0/4.0*t7;
289  t70 = 35.0*t11;
290  t71 = 20.0*t14;
291  t72 = 12.0*t16;
292  t73 = 273.0/40.0*t29;
293  t74 = 41.0/4.0*t31;
294  t75 = 3.0*t10;
295  t76 = 15.0/8.0*xi;
296  t77 = 175.0/8.0*t36;
297  t78 = 30.0*t43;
298  t79 = t68+t69+t70-t71+t72-t73+t74+t75-t76-t77-t78;
299  t81 = -t57+t58-t59+eta-t60+xi+t61-t62-t63+t64+t65;
300  t83 = 49.0/160.0+t5+t6-t8-t12+t15-t17-t19-t22+t23-t24;
301  t84 = t27-t28+t30-t32+t33-t34+t35+t37-t38-t40-t42+t44;
302  t86 = 2.0*t2;
303  t87 = 35.0/3.0*t14;
304  t88 = 35.0/3.0*t16;
305  t89 = 10.0*t18;
306  t90 = 21.0/2.0*t21;
307  t91 = 21.0/2.0*t20;
308  t92 = 9.0*t9;
309  t93 = 19.0*t26;
310  t94 = 29.0/10.0*t1;
311  t95 = 5.0*t29;
312  t96 = 5.0*t31;
313  t97 = 10.0*t36;
314  t98 = 5.0*t39;
315  t99 = 70.0/3.0*t43;
316  t100 = 9.0/10.0+t86-t49-t50+t87-t88-t89-t90+t91-t92+t93-t94+t95-t96+eta+t97-t13-t98+t64+t99;
317  t101 = 3.0*t2;
318  t102 = 15.0*t18;
319  t103 = 63.0/16.0*t21;
320  t104 = 63.0/16.0*t20;
321  t105 = 3.0/8.0*t9;
322  t106 = 123.0/8.0*t26;
323  t107 = 273.0/80.0*t1;
324  t108 = 35.0/4.0*t10;
325  t109 = 15.0/4.0*xi;
326  t110 = 15.0*t36;
327  t111 = 175.0/4.0*t43;
328  t112 = -33.0/80.0-t101+t69+t70+t102-t103+t104+t105-t106+t107+t108-t109-t110-t111;
329  t113 = 9.0/10.0+t86-t49-t50-t87+t88-t89-t90+t91-t92+t93-t94-t95+t96-eta+t97+t13+t98-t64+t99;
330  t114 = 49.0/160.0-t5+t6-t8-t12-t15+t17-t19-t22+t23-t24;
331  t115 = t27-t28-t30+t32-t33-t34+t35+t37+t38+t40+t42+t44;
332  t118 = -t57-t58+t59-eta-t60+xi+t61+t62+t63-t64+t65;
333  t120 = -t68+t69+t70+t71-t72+t73-t74+t75-t76-t77-t78;
334  t122 = t57-t58+t59+eta-t60+xi+t61-t62-t63+t64+t65;
335  t124 = -49.0/160.0-t5-t6-t8-t12-t15+t17+t19+t22-t23+t24;
336  t125 = -t27+t28-t30+t32+t33-t34+t35+t37-t38-t40-t42+t44;
337  t127 = -9.0/10.0-t86-t49-t50-t87+t88+t89+t90-t91+t92-t93+t94-t95+t96+eta+t97-t13-t98+t64+t99;
338  t128 = 33.0/80.0+t101+t69+t70-t102+t103-t104-t105+t106-t107+t108-t109-t110-t111;
339  t129 = -9.0/10.0-t86-t49-t50+t87-t88+t89+t90-t91+t92-t93+t94+t95-t96-eta+t97+t13+t98-t64+t99;
340  t145 = 525.0/64.0*xi;
341  t146 = 1575.0/32.0*t7;
342  t147 = 6125.0/64.0*t11;
343 
344  values[0] = t25+t45;
345  values[1] = -1.0/4.0+t47-t48-t49-t50+t51-t52+t53+t54-t55+t66;
346  values[2] = t79;
347  values[3] = 1.0/4.0+t47+t48-t49-t50+t51-t52-t53-t54+t55+t81;
348  values[4] = t83+t84;
349  values[5] = t100;
350  values[6] = t112;
351  values[7] = t113;
352  values[8] = t114+t115;
353  values[9] = 1.0/4.0-t47+t48-t49-t50-t51+t52-t53-t54+t55+t118;
354  values[10] = t120;
355  values[11] = -1.0/4.0-t47-t48-t49-t50-t51+t52+t53+t54-t55+t122;
356  values[12] = t124+t125;
357  values[13] = t127;
358  values[14] = t128;
359  values[15] = t129;
360  values[16] = -175.0/64.0*t10+75.0/64.0*xi+1225.0/64.0*t11-525.0/32.0*t43-525.0/64.0*t36+225.0/32.0*t7;
361  values[17] = -315.0/8.0*t31+693.0/32.0*t29+567.0/32.0*t4-525.0/16.0*t16+525.0/16.0*t14;
362  values[18] = 1225.0/64.0*t10-3675.0/32.0*t43-t145+t146+t147-2625.0/64.0*t36;
363  values[19] = -21.0/8.0+693.0/64.0*t1-525.0/64.0*t2+2205.0/64.0*t9-945.0/16.0*t26-2835.0/64.0*t20+2835.0/64.0*t21+1575.0/64.0*t18;
364  values[20] = 225.0/16.0*eta-225.0/16.0*t13-675.0/16.0*t39+675.0/16.0*t41;
365  values[21] = -525.0/64.0+1575.0/32.0*t1-2625.0/64.0*t2+1575.0/64.0*t9+7875.0/64.0*t18-4725.0/32.0*t26;
366  values[22] = t145-3675.0/64.0*t36+t146-875.0/64.0*t10+t147-2625.0/32.0*t43;
367  values[23] = -2625.0/16.0*t16+1575.0/16.0*t29+2625.0/16.0*t14-1575.0/16.0*t31;
368  values[24] = 11025.0/32.0*t7+30625.0/64.0*t11+6125.0/64.0*t10-3675.0/64.0*xi-18375.0/64.0*t36-18375.0/32.0*t43;
369  values[25] = -945.0/16.0*t31+567.0/32.0*t29+1323.0/32.0*t4;
370  values[26] = -567.0/64.0+567.0/64.0*t1+2835.0/32.0*t9-2835.0/32.0*t26-6615.0/64.0*t20+6615.0/64.0*t21;
371 }
372 
373 // values of the derivatives in eta direction
374 static void C_Q_UL4_2D_DeriveEta(double xi, double eta, double *values)
375 {
376  double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15;
377  double t16, t17, t18, t19, t21, t22, t23, t24, t25, t26, t27, t28, t29;
378  double t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42;
379  double t43, t44, t45, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56;
380  double t57, t58, t59, t60, t61, t62, t63, t64, t65, t66, t67, t68, t69;
381  double t70, t71, t72, t73, t74, t75, t76, t77, t78, t79, t80, t81, t83;
382  double t84, t85, t86, t87, t88, t89, t91, t92, t93, t94, t95, t96, t97;
383  double t98, t99, t101, t102, t103, t104, t105, t106, t107, t108, t109;
384  double t110, t112, t114, t115, t117, t118, t119, t120, t121, t124, t126;
385  double t128, t145, t147, t149;
386 
387  t1 = xi*xi;
388  t2 = eta*eta;
389  t3 = t2*t2;
390  t4 = t1*t3;
391  t5 = 147.0/64.0*t4;
392  t6 = t2*eta;
393  t7 = xi*t6;
394  t8 = 149.0/48.0*t7;
395  t9 = t1*eta;
396  t10 = 185.0/32.0*t9;
397  t11 = t1*t1;
398  t12 = t11*t6;
399  t13 = 1435.0/192.0*t12;
400  t14 = t2*t11;
401  t15 = 85.0/64.0*t14;
402  t16 = 149.0/192.0*t11;
403  t17 = t1*xi;
404  t18 = t17*t6;
405  t19 = 85.0/48.0*t18;
406  t21 = t11*xi*eta;
407  t22 = 147.0/160.0*t21;
408  t23 = 147.0/64.0*t3;
409  t24 = 147.0/64.0*t2;
410  t25 = -49.0/160.0+t5-t8-t10-t13+t15-t16+t19+t22-t23+t24;
411  t26 = t17*eta;
412  t27 = 37.0/12.0*t26;
413  t28 = xi*eta;
414  t29 = 373.0/160.0*t28;
415  t30 = 373.0/320.0*t1;
416  t31 = t1*t2;
417  t32 = 37.0/8.0*t31;
418  t33 = 5.0/16.0*xi;
419  t34 = 41.0/64.0*eta;
420  t35 = t1*t6;
421  t36 = 955.0/96.0*t35;
422  t37 = 73.0/64.0*t6;
423  t38 = xi*t2;
424  t39 = 11.0/16.0*t38;
425  t40 = 11.0/48.0*t17;
426  t41 = t17*t2;
427  t42 = 5.0/16.0*t41;
428  t43 = t11*eta;
429  t44 = 955.0/192.0*t43;
430  t45 = -t27+t29+t30-t32-t33+t34+t36-t37+t39+t40+t42+t44;
431  t47 = 21.0/2.0*t4;
432  t48 = 35.0/3.0*t7;
433  t49 = 10.0*t9;
434  t50 = 70.0/3.0*t12;
435  t51 = 10.0*t14;
436  t52 = 2.0*t11;
437  t53 = 35.0/3.0*t18;
438  t54 = 21.0/2.0*t3;
439  t55 = 9.0*t2;
440  t56 = 5.0*t26;
441  t57 = 5.0*t28;
442  t58 = 29.0/10.0*t1;
443  t59 = 19.0*t31;
444  t60 = 70.0/3.0*t35;
445  t61 = 5.0*t38;
446  t62 = 5.0*t41;
447  t63 = 10.0*t43;
448  t64 = -9.0/10.0+t47-t48-t49-t50+t51-t52+t53-t54+t55-t56+t57+t58-t59-xi+t60+t61+t17-t62+t63;
449  t65 = 63.0/16.0*t4;
450  t66 = 75.0/4.0*t9;
451  t67 = 35.0*t12;
452  t68 = 15.0*t14;
453  t69 = 3.0*t11;
454  t70 = 63.0/16.0*t3;
455  t71 = 3.0/8.0*t2;
456  t72 = 273.0/80.0*t1;
457  t73 = 123.0/8.0*t31;
458  t74 = 15.0/4.0*eta;
459  t75 = 175.0/4.0*t35;
460  t76 = 35.0/4.0*t6;
461  t77 = 15.0*t43;
462  t78 = 33.0/80.0+t65+t66+t67-t68+t69-t70-t71-t72+t73-t74-t75+t76-t77;
463  t79 = -9.0/10.0+t47+t48-t49-t50+t51-t52-t53-t54+t55+t56-t57+t58-t59+xi+t60-t61-t17+t62+t63;
464  t80 = -49.0/160.0+t5+t8-t10-t13+t15-t16-t19-t22-t23+t24;
465  t81 = t27-t29+t30-t32+t33+t34+t36-t37-t39-t40-t42+t44;
466  t83 = 8.0*t7;
467  t84 = 35.0/4.0*t14;
468  t85 = 35.0/12.0*t11;
469  t86 = 40.0/3.0*t18;
470  t87 = 21.0/5.0*t21;
471  t88 = 3.0/4.0*t2;
472  t89 = 38.0/3.0*t26;
473  t91 = 29.0/5.0*t28;
474  t92 = 5.0/2.0*t1;
475  t93 = 15.0/2.0*t31;
476  t94 = 20.0*t35;
477  t95 = 2.0*t6;
478  t96 = 3.0*t38;
479  t97 = 5.0/3.0*t17;
480  t98 = 35.0/3.0*t43;
481  t99 = -t91+t92-t93+xi+eta+t94-t95-t96-t97+t62+t98;
482  t101 = 12.0*t7;
483  t102 = 20.0*t18;
484  t103 = 63.0/40.0*t21;
485  t104 = 41.0/4.0*t26;
486  t105 = 273.0/40.0*t28;
487  t106 = 15.0/8.0*eta;
488  t107 = 30.0*t35;
489  t108 = 3.0*t6;
490  t109 = 175.0/8.0*t43;
491  t110 = -t101+t66+t67+t102-t103-t104+t105-t106-t107+t108-t109;
492  t112 = -t91-t92+t93-xi+eta+t94-t95+t96+t97-t62+t98;
493  t114 = 49.0/160.0-t5+t8-t10-t13-t15+t16-t19-t22+t23-t24;
494  t115 = t27-t29-t30+t32-t33+t34+t36-t37+t39+t40+t42+t44;
495  t117 = 9.0/10.0-t47+t48-t49-t50-t51+t52-t53+t54-t55+t56-t57-t58+t59-xi+t60+t61+t17-t62+t63;
496  t118 = -33.0/80.0-t65+t66+t67+t68-t69+t70+t71+t72-t73-t74-t75+t76-t77;
497  t119 = 9.0/10.0-t47-t48-t49-t50-t51+t52+t53+t54-t55-t56+t57-t58+t59+xi+t60-t61-t17+t62+t63;
498  t120 = 49.0/160.0-t5-t8-t10-t13-t15+t16+t19+t22+t23-t24;
499  t121 = -t27+t29-t30+t32+t33+t34+t36-t37-t39-t40-t42+t44;
500  t124 = t91-t92+t93+xi+eta+t94-t95-t96-t97+t62+t98;
501  t126 = t101+t66+t67-t102+t103+t104-t105-t106-t107+t108-t109;
502  t128 = t91+t92-t93-xi+eta+t94-t95+t96+t97-t62+t98;
503  t145 = 525.0/64.0*eta;
504  t147 = 1575.0/32.0*t9;
505  t149 = 6125.0/64.0*t12;
506 
507  values[0] = t25+t45;
508  values[1] = t64;
509  values[2] = t78;
510  values[3] = t79;
511  values[4] = t80+t81;
512  values[5] = -1.0/4.0+t83-t49-t50+t84-t85-t86-t87+t88+t89+t99;
513  values[6] = t110;
514  values[7] = 1.0/4.0+t83-t49-t50-t84+t85-t86-t87-t88+t89+t112;
515  values[8] = t114+t115;
516  values[9] = t117;
517  values[10] = t118;
518  values[11] = t119;
519  values[12] = t120+t121;
520  values[13] = 1.0/4.0-t83-t49-t50-t84+t85+t86+t87-t88-t89+t124;
521  values[14] = t126;
522  values[15] = -1.0/4.0-t83-t49-t50+t84-t85+t86+t87+t88-t89+t128;
523  values[16] = 75.0/64.0*eta-175.0/64.0*t6+1225.0/64.0*t12-525.0/64.0*t43-525.0/32.0*t35+225.0/32.0*t9;
524  values[17] = -21.0/8.0+2205.0/64.0*t2-2835.0/64.0*t3-945.0/16.0*t31+693.0/64.0*t1+2835.0/64.0*t4-525.0/64.0*t11+1575.0/64.0*t14;
525  values[18] = t145-3675.0/64.0*t43+t147-875.0/64.0*t6+t149-2625.0/32.0*t35;
526  values[19] = 693.0/32.0*t28-525.0/16.0*t7-315.0/8.0*t26+567.0/32.0*t21+525.0/16.0*t18;
527  values[20] = 225.0/16.0*xi-675.0/16.0*t38-225.0/16.0*t17+675.0/16.0*t41;
528  values[21] = 1575.0/16.0*t28-2625.0/16.0*t7+2625.0/16.0*t18-1575.0/16.0*t26;
529  values[22] = 1225.0/64.0*t6-t145-3675.0/32.0*t35+t147+t149-2625.0/64.0*t43;
530  values[23] = -525.0/64.0-2625.0/64.0*t11+1575.0/32.0*t1+1575.0/64.0*t2+7875.0/64.0*t14-4725.0/32.0*t31;
531  values[24] = 11025.0/32.0*t9+30625.0/64.0*t12-3675.0/64.0*eta-18375.0/32.0*t35+6125.0/64.0*t6-18375.0/64.0*t43;
532  values[25] = -567.0/64.0+2835.0/32.0*t2-6615.0/64.0*t3-2835.0/32.0*t31+567.0/64.0*t1+6615.0/64.0*t4;
533  values[26] = 567.0/32.0*t28-945.0/16.0*t26+1323.0/32.0*t21;
534 }
535 
536 // values of the derivatives in xi-xi direction
537 static void C_Q_UL4_2D_DeriveXiXi(double xi, double eta, double *values)
538 {
539  double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15;
540  double t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28;
541  double t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41;
542  double t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54;
543  double t55, t56, t57, t58, t59, t60, t61, t62, t63, t64, t65, t66, t67;
544  double t68, t69, t70, t71, t72, t73, t74, t75, t76, t77, t78, t79, t80;
545  double t81, t82, t83, t84, t85, t86, t87, t88, t89, t90, t91, t92, t93;
546  double t108, t109;
547 
548  t1 = eta*eta;
549  t2 = t1*t1;
550  t3 = t2*eta;
551  t4 = 147.0/160.0*t3;
552  t5 = 185.0/32.0*t1;
553  t6 = xi*xi;
554  t7 = t6*t2;
555  t8 = 1435.0/64.0*t7;
556  t9 = t1*eta;
557  t10 = t6*t9;
558  t11 = 85.0/16.0*t10;
559  t12 = t6*eta;
560  t13 = 149.0/16.0*t12;
561  t14 = xi*t2;
562  t15 = 85.0/32.0*t14;
563  t16 = xi*t6;
564  t17 = t16*t1;
565  t18 = 147.0/16.0*t17;
566  t19 = 147.0/16.0*t16;
567  t20 = 147.0/32.0*xi;
568  t21 = t1*xi;
569  t22 = 37.0/4.0*t21;
570  t23 = 373.0/160.0*eta;
571  t24 = 37.0/12.0*t9;
572  t25 = 219.0/64.0*t6;
573  t26 = 955.0/192.0*t2;
574  t27 = xi*eta;
575  t28 = 11.0/8.0*t27;
576  t29 = xi*t9;
577  t30 = 5.0/8.0*t29;
578  t31 = t1*t6;
579  t32 = 955.0/32.0*t31;
580  t33 = t4-t5-t8+t11-t13+t15+t18-t19+t20-t22+t23-t24-t25+41.0/64.0+t26+t28+t30+t32;
581  t34 = 21.0/5.0*t3;
582  t35 = 10.0*t1;
583  t36 = 70.0*t7;
584  t37 = 40.0*t10;
585  t38 = 24.0*t12;
586  t39 = 35.0/2.0*t14;
587  t40 = 3.0/2.0*xi;
588  t41 = 15.0*t21;
589  t42 = 29.0/5.0*eta;
590  t43 = 38.0/3.0*t9;
591  t44 = 6.0*t6;
592  t45 = 35.0/3.0*t2;
593  t46 = 6.0*t27;
594  t47 = 10.0*t29;
595  t48 = 60.0*t31;
596  t49 = t34-t35-t36+t37-t38+t39+t40-t41+t42-t43-t44+1.0+t45+t46-t47+t48;
597  t50 = 63.0/40.0*t3;
598  t51 = 75.0/4.0*t1;
599  t52 = 105.0*t7;
600  t53 = 60.0*t10;
601  t54 = 36.0*t12;
602  t55 = 273.0/40.0*eta;
603  t56 = 41.0/4.0*t9;
604  t57 = 9.0*t6;
605  t58 = 175.0/8.0*t2;
606  t59 = 90.0*t31;
607  t60 = t50+t51+t52-t53+t54-t55+t56+t57-15.0/8.0-t58-t59;
608  t61 = t34-t35-t36+t37-t38-t39-t40+t41+t42-t43-t44+1.0+t45-t46+t47+t48;
609  t62 = t4-t5-t8+t11-t13-t15-t18+t19-t20+t22+t23-t24-t25+41.0/64.0+t26-t28-t30+t32;
610  t63 = 35.0*t10;
611  t64 = 35.0*t12;
612  t65 = 20.0*t14;
613  t66 = 42.0*t17;
614  t67 = 42.0*t16;
615  t68 = 18.0*xi;
616  t69 = 38.0*t21;
617  t70 = 5.0*eta;
618  t71 = 5.0*t9;
619  t72 = 10.0*t2;
620  t73 = 10.0*t27;
621  t74 = 70.0*t31;
622  t75 = -t35-t36+t63-t64-t65-t66+t67-t68+t69+t70-t71+t72-t73+t47+t74;
623  t76 = 30.0*t14;
624  t77 = 63.0/4.0*t17;
625  t78 = 63.0/4.0*t16;
626  t79 = 3.0/4.0*xi;
627  t80 = 123.0/4.0*t21;
628  t81 = 105.0/4.0*t6;
629  t82 = 15.0*t2;
630  t83 = 525.0/4.0*t31;
631  t84 = t51+t52+t76-t77+t78+t79-t80+t81-15.0/4.0-t82-t83;
632  t85 = -t35-t36-t63+t64-t65-t66+t67-t68+t69-t70+t71+t72+t73-t47+t74;
633  t86 = -t4-t5-t8-t11+t13-t15-t18+t19-t20+t22-t23+t24-t25+41.0/64.0+t26+t28+t30+t32;
634  t87 = -t34-t35-t36-t37+t38-t39-t40+t41-t42+t43-t44+1.0+t45+t46-t47+t48;
635  t88 = -t50+t51+t52+t53-t54+t55-t56+t57-15.0/8.0-t58-t59;
636  t89 = -t34-t35-t36-t37+t38+t39+t40-t41-t42+t43-t44+1.0+t45-t46+t47+t48;
637  t90 = -t4-t5-t8-t11+t13+t15+t18-t19+t20-t22-t23+t24-t25+41.0/64.0+t26-t28-t30+t32;
638  t91 = -t35-t36-t63+t64+t65+t66-t67+t68-t69-t70+t71+t72-t73+t47+t74;
639  t92 = t51+t52-t76+t77-t78-t79+t80+t81-15.0/4.0-t82-t83;
640  t93 = -t35-t36+t63-t64+t65+t66-t67+t68-t69+t70-t71+t72+t73-t47+t74;
641  t108 = 1575.0/32.0*t1;
642  t109 = 18375.0/64.0*t7;
643 
644  values[0] = t33;
645  values[1] = t49;
646  values[2] = t60;
647  values[3] = t61;
648  values[4] = t62;
649  values[5] = t75;
650  values[6] = t84;
651  values[7] = t85;
652  values[8] = t86;
653  values[9] = t87;
654  values[10] = t88;
655  values[11] = t89;
656  values[12] = t90;
657  values[13] = t91;
658  values[14] = t92;
659  values[15] = t93;
660  values[16] = -525.0/64.0*t6+75.0/64.0+3675.0/64.0*t7-1575.0/32.0*t31-525.0/64.0*t2+225.0/32.0*t1;
661  values[17] = -315.0/8.0*t9+693.0/32.0*eta+567.0/32.0*t3-1575.0/16.0*t12+1575.0/16.0*t10;
662  values[18] = 3675.0/64.0*t6-11025.0/32.0*t31-525.0/64.0+t108+t109-2625.0/64.0*t2;
663  values[19] = 2205.0/32.0*xi-945.0/8.0*t21-2835.0/16.0*t16+2835.0/16.0*t17+1575.0/32.0*t14;
664  values[20] = -675.0/8.0*t27+675.0/8.0*t29;
665  values[21] = 1575.0/32.0*xi+7875.0/32.0*t14-4725.0/16.0*t21;
666  values[22] = 525.0/64.0-3675.0/64.0*t2+t108-2625.0/64.0*t6+t109-7875.0/32.0*t31;
667  values[23] = -7875.0/16.0*t12+1575.0/16.0*eta+7875.0/16.0*t10-1575.0/16.0*t9;
668  values[24] = 11025.0/32.0*t1+91875.0/64.0*t7+18375.0/64.0*t6-3675.0/64.0-18375.0/64.0*t2-55125.0/32.0*t31;
669  values[25] = -945.0/16.0*t9+567.0/32.0*eta+1323.0/32.0*t3;
670  values[26] = 2835.0/16.0*xi-2835.0/16.0*t21-6615.0/16.0*t16+6615.0/16.0*t17;
671 }
672 
673 // values of the derivatives in xi-eta direction
674 static void C_Q_UL4_2D_DeriveXiEta(double xi, double eta, double *values)
675 {
676  double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15;
677  double t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28;
678  double t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41;
679  double t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54;
680  double t55, t56, t57, t58, t59, t60, t61, t63, t64, t65, t66, t67, t68;
681  double t69, t70, t71, t72, t73, t74, t75, t76, t77, t78, t79, t80, t81;
682  double t82, t83, t84, t85, t87, t88, t89, t91, t92, t93, t95, t108, t109;
683 
684  t1 = eta*eta;
685  t2 = t1*t1;
686  t3 = xi*t2;
687  t4 = 147.0/32.0*t3;
688  t5 = t1*eta;
689  t6 = 149.0/48.0*t5;
690  t7 = xi*eta;
691  t8 = 185.0/16.0*t7;
692  t9 = xi*xi;
693  t10 = xi*t9;
694  t11 = t10*t5;
695  t12 = 1435.0/48.0*t11;
696  t13 = t10*t1;
697  t14 = 85.0/16.0*t13;
698  t15 = 149.0/48.0*t10;
699  t16 = t9*t5;
700  t17 = 85.0/16.0*t16;
701  t18 = t9*t9;
702  t19 = t18*eta;
703  t20 = 147.0/32.0*t19;
704  t21 = t9*eta;
705  t22 = 37.0/4.0*t21;
706  t23 = 373.0/160.0*eta;
707  t24 = 373.0/160.0*xi;
708  t25 = t1*xi;
709  t26 = 37.0/4.0*t25;
710  t27 = xi*t5;
711  t28 = 955.0/48.0*t27;
712  t29 = 11.0/16.0*t1;
713  t30 = 11.0/16.0*t9;
714  t31 = t9*t1;
715  t32 = 15.0/16.0*t31;
716  t33 = t10*eta;
717  t34 = 955.0/48.0*t33;
718  t35 = t4-t6-t8-t12+t14-t15+t17+t20-t22+t23+t24-t26-5.0/16.0+t28+t29+t30+t32+t34;
719  t36 = 21.0*t3;
720  t37 = 35.0/3.0*t5;
721  t38 = 20.0*t7;
722  t39 = 280.0/3.0*t11;
723  t40 = 40.0*t13;
724  t41 = 8.0*t10;
725  t42 = 35.0*t16;
726  t43 = 15.0*t21;
727  t44 = 5.0*eta;
728  t45 = 29.0/5.0*xi;
729  t46 = 38.0*t25;
730  t47 = 140.0/3.0*t27;
731  t48 = 5.0*t1;
732  t49 = 3.0*t9;
733  t50 = 15.0*t31;
734  t51 = 40.0*t33;
735  t52 = t36-t37-t38-t39+t40-t41+t42-t43+t44+t45-t46-1.0+t47+t48+t49-t50+t51;
736  t53 = 63.0/8.0*t3;
737  t54 = 75.0/2.0*t7;
738  t55 = 140.0*t11;
739  t56 = 60.0*t13;
740  t57 = 12.0*t10;
741  t58 = 273.0/40.0*xi;
742  t59 = 123.0/4.0*t25;
743  t60 = 175.0/2.0*t27;
744  t61 = 60.0*t33;
745  t63 = t36+t37-t38-t39+t40-t41-t42+t43-t44+t45-t46+1.0+t47-t48-t49+t50+t51;
746  t64 = t4+t6-t8-t12+t14-t15-t17-t20+t22-t23+t24-t26+5.0/16.0+t28-t29-t30-t32+t34;
747  t65 = 8.0*t5;
748  t66 = 35.0*t13;
749  t67 = 35.0/3.0*t10;
750  t68 = 40.0*t16;
751  t69 = 21.0*t19;
752  t70 = 38.0*t21;
753  t71 = 29.0/5.0*eta;
754  t72 = 5.0*xi;
755  t73 = 15.0*t25;
756  t74 = 40.0*t27;
757  t75 = 3.0*t1;
758  t76 = 5.0*t9;
759  t77 = 140.0/3.0*t33;
760  t78 = t65-t38-t39+t66-t67-t68-t69+t70-t71+t72-t73+1.0+t74-t75-t76+t50+t77;
761  t79 = 12.0*t5;
762  t80 = 60.0*t16;
763  t81 = 63.0/8.0*t19;
764  t82 = 123.0/4.0*t21;
765  t83 = 273.0/40.0*eta;
766  t84 = 60.0*t27;
767  t85 = 175.0/2.0*t33;
768  t87 = t65-t38-t39-t66+t67-t68-t69+t70-t71-t72+t73-1.0+t74+t75+t76-t50+t77;
769  t88 = -t4+t6-t8-t12-t14+t15-t17-t20+t22-t23-t24+t26-5.0/16.0+t28+t29+t30+t32+t34;
770  t89 = -t36+t37-t38-t39-t40+t41-t42+t43-t44-t45+t46-1.0+t47+t48+t49-t50+t51;
771  t91 = -t36-t37-t38-t39-t40+t41+t42-t43+t44-t45+t46+1.0+t47-t48-t49+t50+t51;
772  t92 = -t4-t6-t8-t12-t14+t15+t17+t20-t22+t23-t24+t26+5.0/16.0+t28-t29-t30-t32+t34;
773  t93 = -t65-t38-t39-t66+t67+t68+t69-t70+t71-t72+t73+1.0+t74-t75-t76+t50+t77;
774  t95 = -t65-t38-t39+t66-t67+t68+t69-t70+t71+t72-t73-1.0+t74+t75+t76-t50+t77;
775  t108 = 1575.0/16.0*t7;
776  t109 = 6125.0/16.0*t11;
777 
778  values[0] = t35;
779  values[1] = t52;
780  values[2] = t53+t54+t55-t56+t57-t58+t59-t60-t61;
781  values[3] = t63;
782  values[4] = t64;
783  values[5] = t78;
784  values[6] = -t79+t54+t55+t80-t81-t82+t83-t84-t85;
785  values[7] = t87;
786  values[8] = t88;
787  values[9] = t89;
788  values[10] = -t53+t54+t55+t56-t57+t58-t59-t60-t61;
789  values[11] = t91;
790  values[12] = t92;
791  values[13] = t93;
792  values[14] = t79+t54+t55-t80+t81+t82-t83-t84-t85;
793  values[15] = t95;
794  values[16] = 1225.0/16.0*t11-525.0/16.0*t33-525.0/16.0*t27+225.0/16.0*t7;
795  values[17] = -945.0/8.0*t25+693.0/32.0*xi+2835.0/32.0*t3-525.0/16.0*t10+1575.0/16.0*t13;
796  values[18] = -3675.0/16.0*t33+t108+t109-2625.0/16.0*t27;
797  values[19] = 693.0/32.0*eta-525.0/16.0*t5-945.0/8.0*t21+2835.0/32.0*t19+1575.0/16.0*t16;
798  values[20] = 225.0/16.0-675.0/16.0*t1-675.0/16.0*t9+2025.0/16.0*t31;
799  values[21] = 1575.0/16.0*eta-2625.0/16.0*t5+7875.0/16.0*t16-4725.0/16.0*t21;
800  values[22] = -3675.0/16.0*t27+t108+t109-2625.0/16.0*t33;
801  values[23] = -2625.0/16.0*t10+1575.0/16.0*xi+7875.0/16.0*t13-4725.0/16.0*t25;
802  values[24] = 11025.0/16.0*t7+30625.0/16.0*t11-18375.0/16.0*t27-18375.0/16.0*t33;
803  values[25] = -2835.0/16.0*t25+567.0/32.0*xi+6615.0/32.0*t3;
804  values[26] = 567.0/32.0*eta-2835.0/16.0*t21+6615.0/32.0*t19;
805 }
806 
807 // values of the derivatives in eta-eta direction
808 static void C_Q_UL4_2D_DeriveEtaEta(double xi, double eta, double *values)
809 {
810  double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15;
811  double t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28;
812  double t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41;
813  double t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54;
814  double t55, t56, t57, t58, t59, t60, t61, t62, t63, t64, t65, t66, t67;
815  double t68, t69, t70, t71, t72, t73, t74, t75, t76, t77, t78, t79, t80;
816  double t81, t82, t83, t84, t85, t86, t87, t88, t89, t90, t91, t92, t93;
817  double t107, t109;
818 
819  t1 = xi*xi;
820  t2 = eta*eta;
821  t3 = t2*eta;
822  t4 = t1*t3;
823  t5 = 147.0/16.0*t4;
824  t6 = xi*t2;
825  t7 = 149.0/16.0*t6;
826  t8 = 185.0/32.0*t1;
827  t9 = t1*t1;
828  t10 = t9*t2;
829  t11 = 1435.0/64.0*t10;
830  t12 = t9*eta;
831  t13 = 85.0/32.0*t12;
832  t14 = t1*xi;
833  t15 = t14*t2;
834  t16 = 85.0/16.0*t15;
835  t17 = xi*t9;
836  t18 = 147.0/160.0*t17;
837  t19 = 147.0/16.0*t3;
838  t20 = 147.0/32.0*eta;
839  t21 = 37.0/12.0*t14;
840  t22 = 373.0/160.0*xi;
841  t23 = t1*eta;
842  t24 = 37.0/4.0*t23;
843  t25 = t1*t2;
844  t26 = 955.0/32.0*t25;
845  t27 = 219.0/64.0*t2;
846  t28 = xi*eta;
847  t29 = 11.0/8.0*t28;
848  t30 = t14*eta;
849  t31 = 5.0/8.0*t30;
850  t32 = 955.0/192.0*t9;
851  t33 = t5-t7-t8-t11+t13+t16+t18-t19+t20-t21+t22-t24+41.0/64.0+t26-t27+t29+t31+t32;
852  t34 = 42.0*t4;
853  t35 = 35.0*t6;
854  t36 = 10.0*t1;
855  t37 = 70.0*t10;
856  t38 = 20.0*t12;
857  t39 = 35.0*t15;
858  t40 = 42.0*t3;
859  t41 = 18.0*eta;
860  t42 = 5.0*t14;
861  t43 = 5.0*xi;
862  t44 = 38.0*t23;
863  t45 = 70.0*t25;
864  t46 = 10.0*t28;
865  t47 = 10.0*t30;
866  t48 = 10.0*t9;
867  t49 = t34-t35-t36-t37+t38+t39-t40+t41-t42+t43-t44+t45+t46-t47+t48;
868  t50 = 63.0/4.0*t4;
869  t51 = 75.0/4.0*t1;
870  t52 = 105.0*t10;
871  t53 = 30.0*t12;
872  t54 = 63.0/4.0*t3;
873  t55 = 3.0/4.0*eta;
874  t56 = 123.0/4.0*t23;
875  t57 = 525.0/4.0*t25;
876  t58 = 105.0/4.0*t2;
877  t59 = 15.0*t9;
878  t60 = t50+t51+t52-t53-t54-t55+t56-15.0/4.0-t57+t58-t59;
879  t61 = t34+t35-t36-t37+t38-t39-t40+t41+t42-t43-t44+t45-t46+t47+t48;
880  t62 = t5+t7-t8-t11+t13-t16-t18-t19+t20+t21-t22-t24+41.0/64.0+t26-t27-t29-t31+t32;
881  t63 = 24.0*t6;
882  t64 = 35.0/2.0*t12;
883  t65 = 40.0*t15;
884  t66 = 21.0/5.0*t17;
885  t67 = 3.0/2.0*eta;
886  t68 = 38.0/3.0*t14;
887  t69 = 29.0/5.0*xi;
888  t70 = 15.0*t23;
889  t71 = 60.0*t25;
890  t72 = 6.0*t2;
891  t73 = 6.0*t28;
892  t74 = 35.0/3.0*t9;
893  t75 = t63-t36-t37+t64-t65-t66+t67+t68-t69-t70+1.0+t71-t72-t73+t47+t74;
894  t76 = 36.0*t6;
895  t77 = 60.0*t15;
896  t78 = 63.0/40.0*t17;
897  t79 = 41.0/4.0*t14;
898  t80 = 273.0/40.0*xi;
899  t81 = 90.0*t25;
900  t82 = 9.0*t2;
901  t83 = 175.0/8.0*t9;
902  t84 = -t76+t51+t52+t77-t78-t79+t80-15.0/8.0-t81+t82-t83;
903  t85 = t63-t36-t37-t64-t65-t66-t67+t68-t69+t70+1.0+t71-t72+t73-t47+t74;
904  t86 = -t5+t7-t8-t11-t13-t16-t18+t19-t20+t21-t22+t24+41.0/64.0+t26-t27+t29+t31+t32;
905  t87 = -t34+t35-t36-t37-t38-t39+t40-t41+t42-t43+t44+t45+t46-t47+t48;
906  t88 = -t50+t51+t52+t53+t54+t55-t56-15.0/4.0-t57+t58-t59;
907  t89 = -t34-t35-t36-t37-t38+t39+t40-t41-t42+t43+t44+t45-t46+t47+t48;
908  t90 = -t5-t7-t8-t11-t13+t16+t18+t19-t20-t21+t22+t24+41.0/64.0+t26-t27-t29-t31+t32;
909  t91 = -t63-t36-t37-t64+t65+t66-t67-t68+t69+t70+1.0+t71-t72-t73+t47+t74;
910  t92 = t76+t51+t52-t77+t78+t79-t80-15.0/8.0-t81+t82-t83;
911  t93 = -t63-t36-t37+t64+t65+t66+t67-t68+t69-t70+1.0+t71-t72+t73-t47+t74;
912  t107 = 1575.0/32.0*t1;
913  t109 = 18375.0/64.0*t10;
914 
915  values[0] = t33;
916  values[1] = t49;
917  values[2] = t60;
918  values[3] = t61;
919  values[4] = t62;
920  values[5] = t75;
921  values[6] = t84;
922  values[7] = t85;
923  values[8] = t86;
924  values[9] = t87;
925  values[10] = t88;
926  values[11] = t89;
927  values[12] = t90;
928  values[13] = t91;
929  values[14] = t92;
930  values[15] = t93;
931  values[16] = 75.0/64.0-525.0/64.0*t2+3675.0/64.0*t10-525.0/64.0*t9-1575.0/32.0*t25+225.0/32.0*t1;
932  values[17] = 2205.0/32.0*eta-2835.0/16.0*t3-945.0/8.0*t23+2835.0/16.0*t4+1575.0/32.0*t12;
933  values[18] = 525.0/64.0-3675.0/64.0*t9+t107-2625.0/64.0*t2+t109-7875.0/32.0*t25;
934  values[19] = 693.0/32.0*xi-1575.0/16.0*t6-315.0/8.0*t14+567.0/32.0*t17+1575.0/16.0*t15;
935  values[20] = -675.0/8.0*t28+675.0/8.0*t30;
936  values[21] = 1575.0/16.0*xi-7875.0/16.0*t6+7875.0/16.0*t15-1575.0/16.0*t14;
937  values[22] = 3675.0/64.0*t2-525.0/64.0-11025.0/32.0*t25+t107+t109-2625.0/64.0*t9;
938  values[23] = 1575.0/32.0*eta+7875.0/32.0*t12-4725.0/16.0*t23;
939  values[24] = 11025.0/32.0*t1+91875.0/64.0*t10-3675.0/64.0-55125.0/32.0*t25+18375.0/64.0*t2-18375.0/64.0*t9;
940  values[25] = 2835.0/16.0*eta-6615.0/16.0*t3-2835.0/16.0*t23+6615.0/16.0*t4;
941  values[26] = 567.0/32.0*xi-945.0/16.0*t14+1323.0/32.0*t17;
942 }
943 
944 
945 // ***********************************************************************
946 
947 TBaseFunct2D *BF_C_Q_UL4_2D_Obj = new TBaseFunct2D
948  (27, BF_C_Q_UL4_2D, BFUnitSquare,
949  C_Q_UL4_2D_Funct, C_Q_UL4_2D_DeriveXi,
950  C_Q_UL4_2D_DeriveEta, C_Q_UL4_2D_DeriveXiXi,
951  C_Q_UL4_2D_DeriveXiEta, C_Q_UL4_2D_DeriveEtaEta, 5, 4,
952  0, NULL);
Definition: BaseFunct2D.h:27