ParMooN
 All Classes Functions Variables Friends Pages
BF_C_H_UL2_3D.h
1 // ***********************************************************************
2 // Q2 element with bubble, conforming, 3D
3 // ***********************************************************************
4 
5 static void C_H_UL2_3D_Funct(double xi, double eta, double zeta,
6  double *values)
7 {
8  double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19,
9  t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39,
10  t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59,
11  t60, t61, t62, t63, t64, t65, t66, t67, t68, t69, t70, t71, t72, t73, t74, t75, t76, t77, t78, t79,
12  t80, t81, t82, t83, t84, t85, t86, t87, t88, t89, t90, t91, t92, t93, t94, t95, t96, t97, t98, t99, t100,
13  t101, t102, t103, t104, t105, t106, t107, t108, t109, t110, t111, t112, t113, t114, t115, t116, t117, t118, t119,
14  t120, t121, t122, t123, t124, t125, t126, t127, t128, t129, t130, t131, t132, t133, t134, t135, t136, t137, t138, t139,
15  t140, t141, t142, t143, t144, t145, t146, t147, t148, t149, t150, t151, t152, t153, t154, t155, t156, t157, t158, t159,
16  t160, t161, t162, t163, t164, t165, t166, t167, t168, t169, t170, t171, t172, t173, t174, t175, t176, t177, t178, t179,
17  t180, t181, t182, t183, t184, t185, t186, t187, t188, t189, t190, t191, t192, t193, t194, t195, t196, t197, t198, t199,
18  t201, t202, t203, t204, t205, t206, t207, t208, t209, t210, t211, t212, t213, t214, t215, t216, t217, t218, t219,
19  t220, t221, t222, t223, t224, t225, t226, t227, t228, t229, t230, t231, t232, t233, t234, t235, t236, t237, t238, t239;
20 
21  t1 = xi*xi;
22  t2 = zeta*t1;
23  t3 = eta*eta;
24  t4 = t2*t3;
25  t5 = 3.0/64.0*t4;
26  t6 = 5.0/64.0*xi;
27  t7 = 5.0/64.0*eta;
28  t8 = 5.0/64.0*zeta;
29  t9 = xi*zeta;
30  t10 = t9*t3;
31  t11 = t10/8.0;
32  t12 = xi*eta;
33  t13 = zeta*zeta;
34  t14 = t12*t13;
35  t15 = t14/8.0;
36  t17 = t12*zeta/8.0;
37  t18 = t1*t3;
38  t19 = t18*t13;
39  t20 = 9.0/64.0*t19;
40  t21 = eta*zeta;
41  t22 = t21*t1;
42  t23 = t22/8.0;
43  t24 = t13*zeta;
44  t25 = t18*t24;
45  t26 = 5.0/64.0*t25;
46  t27 = eta*t1;
47  t28 = t27*t13;
48  t29 = 3.0/64.0*t28;
49  t30 = t3*eta;
50  t31 = t1*t30;
51  t32 = t31*t13;
52  t33 = 5.0/64.0*t32;
53  t34 = t1*xi;
54  t35 = t34*t3;
55  t36 = t35*t13;
56  t37 = 5.0/64.0*t36;
57  t38 = xi*t3;
58  t39 = t38*t13;
59  t40 = 3.0/64.0*t39;
60  t41 = t1*t24;
61  t42 = 5.0/64.0*t41;
62  t43 = t18/64.0;
63  t44 = 5.0/64.0*t38;
64  t45 = -1.0/64.0-t5+t6+t7+t8+t11+t15-t17+t20+t23-t26-t29-t33-t37-t40+t42-
65 t43-t44;
66  t46 = 5.0/64.0*t35;
67  t47 = 5.0/64.0*t27;
68  t48 = 5.0/64.0*t31;
69  t49 = 5.0/64.0*t2;
70  t50 = xi*t13;
71  t51 = 5.0/64.0*t50;
72  t52 = t1*t13;
73  t53 = t52/64.0;
74  t54 = t34*t13;
75  t55 = 5.0/64.0*t54;
76  t56 = t3*t13;
77  t57 = t56/64.0;
78  t58 = eta*t13;
79  t59 = 5.0/64.0*t58;
80  t60 = t30*t13;
81  t61 = 5.0/64.0*t60;
82  t62 = zeta*t3;
83  t63 = 5.0/64.0*t62;
84  t64 = t3*t24;
85  t65 = 5.0/64.0*t64;
86  t66 = t1/64.0;
87  t67 = 5.0/64.0*t24;
88  t68 = t3/64.0;
89  t69 = t13/64.0;
90  t70 = 5.0/64.0*t30;
91  t71 = 5.0/64.0*t34;
92  t72 = t46-t47+t48-t49-t51-t53+t55-t57-t59+t61-t63+t65+t66-t67+t68+t69-t70
93 -t71;
94  t74 = 9.0/16.0*t4;
95  t75 = 5.0/16.0*eta;
96  t76 = 5.0/16.0*zeta;
97  t77 = 3.0/16.0*t19;
98  t78 = t22/4.0;
99  t79 = 5.0/16.0*t25;
100  t80 = 9.0/16.0*t28;
101  t81 = 5.0/16.0*t32;
102  t82 = 5.0/16.0*t41;
103  t83 = t18/16.0;
104  t84 = 5.0/16.0*t27;
105  t85 = 5.0/16.0*t31;
106  t86 = -1.0/16.0+t74+t75+t76-t77-t78-t79+t80-t81+t82-t83-t84+t85;
107  t87 = 5.0/16.0*t2;
108  t88 = t52/16.0;
109  t89 = 3.0/16.0*t56;
110  t90 = 9.0/16.0*t58;
111  t91 = 5.0/16.0*t60;
112  t92 = 9.0/16.0*t62;
113  t93 = 5.0/16.0*t64;
114  t94 = t21/4.0;
115  t95 = t1/16.0;
116  t96 = 5.0/16.0*t24;
117  t97 = t3/16.0;
118  t98 = t13/16.0;
119  t99 = 5.0/16.0*t30;
120  t100 = -t87-t88+t89-t90+t91-t92+t93+t94+t95-t96+t97+t98-t99;
121  t102 = -1.0/64.0-t5-t6+t7+t8-t11-t15+t17+t20+t23-t26-t29-t33+t37+t40+t42-
122 t43+t44;
123  t103 = -t46-t47+t48-t49+t51-t53-t55-t57-t59+t61-t63+t65+t66-t67+t68+t69-
124 t70+t71;
125  t105 = 5.0/16.0*xi;
126  t106 = t10/4.0;
127  t107 = 5.0/16.0*t36;
128  t108 = 9.0/16.0*t39;
129  t109 = 5.0/16.0*t38;
130  t110 = 5.0/16.0*t35;
131  t111 = -1.0/16.0+t74+t105+t76-t106-t77-t79-t107+t108+t82-t83-t109+t110;
132  t112 = 9.0/16.0*t2;
133  t113 = 9.0/16.0*t50;
134  t114 = 3.0/16.0*t52;
135  t115 = 5.0/16.0*t54;
136  t116 = t56/16.0;
137  t117 = 5.0/16.0*t62;
138  t118 = t9/4.0;
139  t119 = 5.0/16.0*t34;
140  t120 = -t112-t113+t114+t115-t116-t117+t93+t118+t95-t96+t97+t98-t119;
141  t122 = 3.0/4.0*zeta;
142  t123 = 3.0/4.0*t4;
143  t124 = 5.0/4.0*t25;
144  t125 = t18/4.0;
145  t126 = 3.0/4.0*t13;
146  t127 = 3.0/4.0*t56;
147  t128 = 3.0/4.0*t52;
148  t129 = 3.0/4.0*t19;
149  t130 = t3/4.0;
150  t131 = t1/4.0;
151  t132 = 5.0/4.0*t24;
152  t133 = 3.0/4.0*t62;
153  t134 = 5.0/4.0*t64;
154  t135 = 3.0/4.0*t2;
155  t136 = 5.0/4.0*t41;
156  t137 = t122+t123-t124-t125+t126-t127-t128+t129+t130+t131-t132-t133+t134-
157 t135+t136-1.0/4.0;
158  t138 = -1.0/16.0+t74-t105+t76+t106-t77-t79+t107-t108+t82-t83+t109-t110;
159  t139 = -t112+t113+t114-t115-t116-t117+t93-t118+t95-t96+t97+t98+t119;
160  t141 = -1.0/64.0-t5+t6-t7+t8+t11-t15+t17+t20-t23-t26+t29+t33-t37-t40+t42-
161 t43-t44;
162  t142 = t46+t47-t48-t49-t51-t53+t55-t57+t59-t61-t63+t65+t66-t67+t68+t69+
163 t70-t71;
164  t144 = -1.0/16.0+t74-t75+t76-t77+t78-t79-t80+t81+t82-t83+t84-t85;
165  t145 = -t87-t88+t89+t90-t91-t92+t93-t94+t95-t96+t97+t98+t99;
166  t147 = -1.0/64.0-t5-t6-t7+t8-t11+t15-t17+t20-t23-t26+t29+t33+t37+t40+t42-
167 t43+t44;
168  t148 = -t46+t47-t48-t49+t51-t53-t55-t57+t59-t61-t63+t65+t66-t67+t68+t69+
169 t70+t71;
170  t150 = t12/4.0;
171  t151 = t14/4.0;
172  t152 = 3.0/16.0*t18;
173  t153 = 9.0/16.0*t38;
174  t154 = -1.0/16.0+t150+t105+t75-t151-t77+t80-t81-t107+t108+t152-t153+t110;
175  t155 = 9.0/16.0*t27;
176  t156 = 5.0/16.0*t50;
177  t157 = 5.0/16.0*t58;
178  t158 = -t155+t85-t156-t88+t115-t116-t157+t91+t95+t97+t98-t99-t119;
179  t160 = 3.0/4.0*eta;
180  t161 = 3.0/4.0*t28;
181  t162 = 3.0/4.0*t18;
182  t163 = t13/4.0;
183  t164 = t52/4.0;
184  t165 = 3.0/4.0*t58;
185  t166 = 3.0/4.0*t3;
186  t167 = 5.0/4.0*t30;
187  t168 = 5.0/4.0*t60;
188  t169 = 3.0/4.0*t27;
189  t170 = 5.0/4.0*t31;
190  t171 = 5.0/4.0*t32;
191  t172 = t160+t161-t162+t163-t127-t164-t165+t129+t166+t131-t167+t168-t169+
192 t170-t171-1.0/4.0;
193  t173 = -1.0/16.0-t150-t105+t75+t151-t77+t80-t81+t107-t108+t152+t153-t110;
194  t174 = -t155+t85+t156-t88-t115-t116-t157+t91+t95+t97+t98-t99+t119;
195  t176 = 3.0/4.0*xi;
196  t177 = 3.0/4.0*t39;
197  t178 = 5.0/4.0*t36;
198  t179 = t56/4.0;
199  t180 = 3.0/4.0*t38;
200  t181 = 5.0/4.0*t54;
201  t182 = 5.0/4.0*t35;
202  t183 = 3.0/4.0*t1;
203  t184 = 5.0/4.0*t34;
204  t185 = 3.0/4.0*t50;
205  t186 = -t176-t177+t178-t162+t163-t179-t128+t180-t181-t182+t129+t130+t183+
206 t184-1.0/4.0+t185;
207  t187 = -1.0/16.0+t150-t105-t75-t151-t77-t80+t81+t107-t108+t152+t153-t110;
208  t188 = t155-t85+t156-t88-t115-t116+t157-t91+t95+t97+t98+t99+t119;
209  t190 = -t160-t161-t162+t163-t127-t164+t165+t129+t166+t131+t167-t168+t169-
210 t170+t171-1.0/4.0;
211  t191 = -1.0/16.0-t150+t105-t75+t151-t77-t80+t81-t107+t108+t152-t153+t110;
212  t192 = t155-t85-t156-t88+t115-t116+t157-t91+t95+t97+t98+t99-t119;
213  t194 = t176+t177-t178-t162+t163-t179-t128-t180+t181+t182+t129+t130+t183-
214 t184-1.0/4.0-t185;
215  t195 = -1.0/64.0+t5+t6+t7-t8-t11+t15+t17+t20-t23+t26-t29-t33-t37-t40-t42-
216 t43-t44;
217  t196 = t46-t47+t48+t49-t51-t53+t55-t57-t59+t61+t63-t65+t66+t67+t68+t69-
218 t70-t71;
219  t198 = -1.0/16.0-t74+t75-t76-t77+t78+t79+t80-t81-t82-t83-t84+t85;
220  t199 = t87-t88+t89-t90+t91+t92-t93-t94+t95+t96+t97+t98-t99;
221  t201 = -1.0/64.0+t5-t6+t7-t8+t11-t15-t17+t20-t23+t26-t29-t33+t37+t40-t42-
222 t43+t44;
223  t202 = -t46-t47+t48+t49+t51-t53-t55-t57-t59+t61+t63-t65+t66+t67+t68+t69-
224 t70+t71;
225  t204 = -1.0/16.0-t74+t105-t76+t106-t77+t79-t107+t108-t82-t83-t109+t110;
226  t205 = t112-t113+t114+t115-t116+t117-t93-t118+t95+t96+t97+t98-t119;
227  t207 = -t122-t123+t124-t125+t126-t127-t128+t129+t130+t131+t132+t133-t134+
228 t135-t136-1.0/4.0;
229  t208 = -1.0/16.0-t74-t105-t76-t106-t77+t79+t107-t108-t82-t83+t109-t110;
230  t209 = t112+t113+t114-t115-t116+t117-t93+t118+t95+t96+t97+t98+t119;
231  t211 = -1.0/64.0+t5+t6-t7-t8-t11-t15-t17+t20+t23+t26+t29+t33-t37-t40-t42-
232 t43-t44;
233  t212 = t46+t47-t48+t49-t51-t53+t55-t57+t59-t61+t63-t65+t66+t67+t68+t69+
234 t70-t71;
235  t214 = -1.0/16.0-t74-t75-t76-t77-t78+t79-t80+t81-t82-t83+t84-t85;
236  t215 = t87-t88+t89+t90-t91+t92-t93+t94+t95+t96+t97+t98+t99;
237  t217 = -1.0/64.0+t5-t6-t7-t8+t11+t15+t17+t20+t23+t26+t29+t33+t37+t40-t42-
238 t43+t44;
239  t218 = -t46+t47-t48+t49+t51-t53-t55-t57+t59-t61+t63-t65+t66+t67+t68+t69+
240 t70+t71;
241  values[0] = t45+t72;
242  values[1] = t86+t100;
243  values[2] = t102+t103;
244  values[3] = t111+t120;
245  values[4] = t137;
246  values[5] = t138+t139;
247  values[6] = t141+t142;
248  values[7] = t144+t145;
249  values[8] = t147+t148;
250  values[9] = t154+t158;
251  values[10] = t172;
252  values[11] = t173+t174;
253  values[12] = t186;
254  values[13] = t187+t188;
255  values[14] = t190;
256  values[15] = t191+t192;
257  values[16] = t194;
258  values[17] = t195+t196;
259  values[18] = t198+t199;
260  values[19] = t201+t202;
261  values[20] = t204+t205;
262  values[21] = t207;
263  values[22] = t208+t209;
264  values[23] = t211+t212;
265  values[24] = t214+t215;
266  values[25] = t217+t218;
267  values[26] = 27.0/64.0-27.0/64.0*t13-27.0/64.0*t3+27.0/64.0*t56-27.0/64.0*t1+
268 27.0/64.0*t52+27.0/64.0*t18-27.0/64.0*t19;
269  values[27] = 135.0/64.0*zeta-135.0/64.0*t24-135.0/64.0*t62+135.0/64.0*t64
270 -135.0/64.0*t2+135.0/64.0*t41+135.0/64.0*t4-135.0/64.0*t25;
271  values[28] = 135.0/64.0*eta-135.0/64.0*t58-135.0/64.0*t30+135.0/64.0*t60-135.0
272 /64.0*t27+135.0/64.0*t28+135.0/64.0*t31-135.0/64.0*t32;
273  values[29] = 135.0/64.0*xi-135.0/64.0*t50-135.0/64.0*t38+135.0/64.0*t39-135.0/
274 64.0*t34+135.0/64.0*t54+135.0/64.0*t35-135.0/64.0*t36;
275 }
276 
277 static void C_H_UL2_3D_DeriveXi(double xi, double eta, double zeta,
278  double *values)
279 {
280  double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19,
281  t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39,
282  t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59,
283  t60, t61, t62, t63, t64, t65, t66, t67, t68, t69, t70, t71, t72, t73, t74, t75, t76, t77, t78, t79,
284  t80, t81, t82, t83, t84, t85, t86, t87, t88, t89, t90, t91, t92, t93, t94, t95, t96, t97, t98, t99, t100,
285  t101, t102, t103, t104, t105, t106, t107, t108, t109, t110, t111, t112, t113, t114, t115, t116, t117, t118, t119,
286  t120, t121, t122, t123, t124, t125, t126, t127, t128, t129, t130, t131, t132, t133, t134, t135, t136, t137, t138, t139,
287  t140, t141, t142, t143, t144, t145, t146, t147, t148, t149, t150, t151, t152, t153, t154, t155, t156, t157, t158, t159;
288 
289  t1 = eta*eta;
290  t2 = zeta*zeta;
291  t3 = t1*t2;
292  t4 = 3.0/64.0*t3;
293  t5 = xi*xi;
294  t6 = t5*t1;
295  t7 = t6*t2;
296  t8 = 15.0/64.0*t7;
297  t9 = xi*eta;
298  t10 = t9*zeta;
299  t11 = t10/4.0;
300  t12 = eta*t2;
301  t13 = t12/8.0;
302  t14 = zeta*t1;
303  t15 = t14/8.0;
304  t16 = xi*zeta;
305  t17 = t16*t1;
306  t18 = 3.0/32.0*t17;
307  t19 = xi*t1;
308  t20 = t2*zeta;
309  t21 = t19*t20;
310  t22 = 5.0/32.0*t21;
311  t23 = t9*t2;
312  t24 = 3.0/32.0*t23;
313  t25 = t19/32.0;
314  t26 = xi*t2;
315  t27 = t26/32.0;
316  t28 = 5.0/64.0*t1;
317  t29 = 5.0/64.0-t4-t8+t11+t13+t15-t18-t22-t24-t25-t27-t28;
318  t30 = t5*t2;
319  t31 = 15.0/64.0*t30;
320  t32 = 15.0/64.0*t6;
321  t33 = t19*t2;
322  t34 = 9.0/32.0*t33;
323  t36 = eta*zeta/8.0;
324  t37 = xi/32.0;
325  t38 = 15.0/64.0*t5;
326  t39 = 5.0/32.0*t9;
327  t41 = xi*t1*eta;
328  t42 = 5.0/32.0*t41;
329  t43 = t41*t2;
330  t44 = 5.0/32.0*t43;
331  t45 = 5.0/32.0*t16;
332  t46 = xi*t20;
333  t47 = 5.0/32.0*t46;
334  t48 = 5.0/64.0*t2;
335  t49 = t31+t32+t34-t36+t37-t38-t39+t42-t44-t45+t47-t48;
336  t51 = t10/2.0;
337  t52 = 9.0/8.0*t17;
338  t53 = 5.0/8.0*t21;
339  t54 = 9.0/8.0*t23;
340  t55 = t19/8.0;
341  t56 = t26/8.0;
342  t57 = 3.0/8.0*t33;
343  t58 = xi/8.0;
344  t59 = 5.0/8.0*t9;
345  t60 = 5.0/8.0*t41;
346  t61 = 5.0/8.0*t43;
347  t62 = 5.0/8.0*t16;
348  t63 = 5.0/8.0*t46;
349  t64 = -t51+t52-t53+t54-t55-t56-t57+t58-t59+t60-t61-t62+t63;
350  t65 = -5.0/64.0+t4+t8+t11-t13-t15-t18-t22-t24-t25-t27+t28;
351  t66 = -t31-t32+t34+t36+t37+t38-t39+t42-t44-t45+t47+t48;
352  t68 = 9.0/16.0*t3;
353  t69 = 15.0/16.0*t7;
354  t70 = t14/4.0;
355  t71 = zeta/4.0;
356  t72 = 3.0/8.0*t26;
357  t73 = 5.0/16.0*t1;
358  t74 = 15.0/16.0*t30;
359  t75 = 15.0/16.0*t6;
360  t76 = 15.0/16.0*t5;
361  t77 = 9.0/8.0*t16;
362  t78 = 9.0/16.0*t2;
363  t79 = 5.0/16.0+t68-t69-t70+t52-t53-t55+t71+t72-t73+t74+t75-t57+t58-t76-
364 t77+t63-t78;
365  t80 = 3.0/2.0*t17;
366  t81 = 5.0/2.0*t21;
367  t82 = t19/2.0;
368  t83 = 3.0/2.0*t26;
369  t84 = 3.0/2.0*t33;
370  t85 = xi/2.0;
371  t86 = 3.0/2.0*t16;
372  t87 = 5.0/2.0*t46;
373  t89 = -5.0/16.0-t68+t69+t70+t52-t53-t55-t71+t72+t73-t74-t75-t57+t58+t76-
374 t77+t63+t78;
375  t90 = 5.0/64.0-t4-t8-t11-t13+t15-t18-t22+t24-t25-t27-t28;
376  t91 = t31+t32+t34+t36+t37-t38+t39-t42+t44-t45+t47-t48;
377  t93 = t51+t52-t53-t54-t55-t56-t57+t58+t59-t60+t61-t62+t63;
378  t94 = -5.0/64.0+t4+t8-t11+t13-t15-t18-t22+t24-t25-t27+t28;
379  t95 = -t31-t32+t34-t36+t37+t38+t39-t42+t44-t45+t47+t48;
380  t97 = t12/4.0;
381  t98 = 3.0/8.0*t19;
382  t99 = 9.0/16.0*t1;
383  t100 = eta/4.0;
384  t101 = 9.0/8.0*t9;
385  t102 = 5.0/16.0*t2;
386  t103 = 5.0/16.0+t68-t69-t97+t54+t98-t56-t99+t74+t75-t57+t100+t58-t76-t101
387 +t60-t61-t102;
388  t104 = 3.0/2.0*t23;
389  t105 = 3.0/2.0*t19;
390  t106 = t26/2.0;
391  t107 = 3.0/2.0*t9;
392  t108 = 5.0/2.0*t41;
393  t109 = 5.0/2.0*t43;
394  t111 = -5.0/16.0-t68+t69+t97+t54+t98-t56+t99-t74-t75-t57-t100+t58+t76-
395 t101+t60-t61+t102;
396  t112 = 3.0/4.0*t3;
397  t113 = 15.0/4.0*t7;
398  t114 = 3.0/4.0*t1;
399  t115 = 15.0/4.0*t30;
400  t116 = 15.0/4.0*t6;
401  t117 = 3.0/2.0*xi;
402  t118 = 15.0/4.0*t5;
403  t119 = 3.0/4.0*t2;
404  t120 = -3.0/4.0-t112+t113-t105-t83+t114-t115-t116+t84+t117+t118+t119;
405  t121 = -5.0/16.0-t68+t69-t97-t54+t98-t56+t99-t74-t75-t57+t100+t58+t76+
406 t101-t60+t61+t102;
407  t123 = 5.0/16.0+t68-t69+t97-t54+t98-t56-t99+t74+t75-t57-t100+t58-t76+t101
408 -t60+t61-t102;
409  t124 = 3.0/4.0+t112-t113-t105-t83-t114+t115+t116+t84+t117-t118-t119;
410  t125 = 5.0/64.0-t4-t8-t11+t13-t15+t18+t22-t24-t25-t27-t28;
411  t126 = t31+t32+t34+t36+t37-t38-t39+t42-t44+t45-t47-t48;
412  t128 = t51-t52+t53+t54-t55-t56-t57+t58-t59+t60-t61+t62-t63;
413  t129 = -5.0/64.0+t4+t8-t11-t13+t15+t18+t22-t24-t25-t27+t28;
414  t130 = -t31-t32+t34-t36+t37+t38-t39+t42-t44+t45-t47+t48;
415  t132 = 5.0/16.0+t68-t69+t70-t52+t53-t55-t71+t72-t73+t74+t75-t57+t58-t76+
416 t77-t63-t78;
417  t134 = -5.0/16.0-t68+t69-t70-t52+t53-t55+t71+t72+t73-t74-t75-t57+t58+t76+
418 t77-t63+t78;
419  t135 = 5.0/64.0-t4-t8+t11-t13-t15+t18+t22+t24-t25-t27-t28;
420  t136 = t31+t32+t34-t36+t37-t38+t39-t42+t44+t45-t47-t48;
421  t138 = -t51-t52+t53-t54-t55-t56-t57+t58+t59-t60+t61+t62-t63;
422  t139 = -5.0/64.0+t4+t8+t11+t13+t15+t18+t22+t24-t25-t27+t28;
423  t140 = -t31-t32+t34+t36+t37+t38+t39-t42+t44+t45-t47+t48;
424  values[0] = t29+t49;
425  values[1] = t64;
426  values[2] = t65+t66;
427  values[3] = t79;
428  values[4] = t80-t81-t82-t83+t84+t85-t86+t87;
429  values[5] = t89;
430  values[6] = t90+t91;
431  values[7] = t93;
432  values[8] = t94+t95;
433  values[9] = t103;
434  values[10] = t104-t105-t106+t84+t85-t107+t108-t109;
435  values[11] = t111;
436  values[12] = t120;
437  values[13] = t121;
438  values[14] = -t104-t105-t106+t84+t85+t107-t108+t109;
439  values[15] = t123;
440  values[16] = t124;
441  values[17] = t125+t126;
442  values[18] = t128;
443  values[19] = t129+t130;
444  values[20] = t132;
445  values[21] = -t80+t81-t82-t83+t84+t85+t86-t87;
446  values[22] = t134;
447  values[23] = t135+t136;
448  values[24] = t138;
449  values[25] = t139+t140;
450  values[26] = -27.0/32.0*xi+27.0/32.0*t26+27.0/32.0*t19-27.0/32.0*t33;
451  values[27] = -135.0/32.0*t16+135.0/32.0*t46+135.0/32.0*t17-135.0/32.0*t21;
452  values[28] = -135.0/32.0*t9+135.0/32.0*t23+135.0/32.0*t41-135.0/32.0*t43;
453  values[29] = 135.0/64.0-135.0/64.0*t2-135.0/64.0*t1+135.0/64.0*t3-405.0/64.0*
454 t5+405.0/64.0*t30+405.0/64.0*t6-405.0/64.0*t7;
455 }
456 
457 static void C_H_UL2_3D_DeriveEta(double xi, double eta, double zeta,
458  double *values)
459 {
460  double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19,
461  t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39,
462  t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59,
463  t60, t61, t62, t63, t64, t65, t66, t67, t68, t69, t70, t71, t72, t73, t74, t75, t76, t77, t78, t79,
464  t80, t81, t82, t83, t84, t85, t86, t87, t88, t89, t90, t91, t92, t93, t94, t95, t96, t97, t98, t99, t100,
465  t101, t102, t103, t104, t105, t106, t107, t108, t109, t110, t111, t112, t113, t114, t115, t116, t117, t118, t119,
466  t120, t121, t122, t123, t124, t125, t126, t127, t128, t129, t130, t131, t132, t133, t134, t135, t136, t137, t138, t139,
467  t140, t141, t142, t143, t144, t145, t146, t147, t148, t149, t150, t151, t152, t153, t154, t155, t156, t157, t158, t159;
468 
469  t1 = xi*eta;
470  t2 = zeta*zeta;
471  t3 = t1*t2;
472  t4 = 3.0/32.0*t3;
473  t5 = xi*xi;
474  t7 = t5*xi*eta;
475  t8 = t7*t2;
476  t9 = 5.0/32.0*t8;
477  t10 = zeta*t5;
478  t11 = t10/8.0;
479  t12 = xi*t2;
480  t13 = t12/8.0;
481  t14 = t1*zeta;
482  t15 = t14/4.0;
483  t16 = eta*zeta;
484  t17 = t16*t5;
485  t18 = 3.0/32.0*t17;
486  t19 = t5*eta;
487  t20 = t2*zeta;
488  t21 = t19*t20;
489  t22 = 5.0/32.0*t21;
490  t23 = t5*t2;
491  t24 = 3.0/64.0*t23;
492  t25 = t19/32.0;
493  t26 = eta*t2;
494  t27 = t26/32.0;
495  t28 = 5.0/32.0*t1;
496  t29 = 5.0/64.0-t4-t9+t11+t13+t15-t18-t22-t24-t25-t27-t28;
497  t30 = 5.0/32.0*t7;
498  t31 = 5.0/64.0*t2;
499  t32 = t19*t2;
500  t33 = 9.0/32.0*t32;
501  t34 = eta/32.0;
502  t36 = xi*zeta/8.0;
503  t37 = eta*eta;
504  t38 = 15.0/64.0*t37;
505  t39 = t37*t2;
506  t40 = 15.0/64.0*t39;
507  t41 = 5.0/64.0*t5;
508  t42 = t5*t37;
509  t43 = 15.0/64.0*t42;
510  t44 = t42*t2;
511  t45 = 15.0/64.0*t44;
512  t46 = 5.0/32.0*t16;
513  t47 = eta*t20;
514  t48 = 5.0/32.0*t47;
515  t49 = t30-t31+t33+t34-t36-t38+t40-t41+t43-t45-t46+t48;
516  t51 = t10/4.0;
517  t52 = 9.0/8.0*t17;
518  t53 = 5.0/8.0*t21;
519  t54 = 9.0/16.0*t23;
520  t55 = t19/8.0;
521  t56 = zeta/4.0;
522  t57 = 3.0/8.0*t26;
523  t58 = 9.0/16.0*t2;
524  t59 = 3.0/8.0*t32;
525  t60 = eta/8.0;
526  t61 = 15.0/16.0*t37;
527  t62 = 15.0/16.0*t39;
528  t63 = 5.0/16.0*t5;
529  t64 = 15.0/16.0*t42;
530  t65 = 15.0/16.0*t44;
531  t66 = 9.0/8.0*t16;
532  t67 = 5.0/8.0*t47;
533  t68 = 5.0/16.0-t51+t52-t53+t54-t55+t56+t57-t58-t59+t60-t61+t62-t63+t64-
534 t65-t66+t67;
535  t69 = 5.0/64.0+t4+t9+t11-t13-t15-t18-t22-t24-t25-t27+t28;
536  t70 = -t30-t31+t33+t34+t36-t38+t40-t41+t43-t45-t46+t48;
537  t72 = 9.0/8.0*t3;
538  t73 = 5.0/8.0*t8;
539  t74 = t14/2.0;
540  t75 = t26/8.0;
541  t76 = 5.0/8.0*t1;
542  t77 = 5.0/8.0*t7;
543  t78 = 5.0/8.0*t16;
544  t79 = t72-t73-t74+t52-t53-t55-t75-t76+t77-t59+t60-t78+t67;
545  t80 = 3.0/2.0*t17;
546  t81 = 5.0/2.0*t21;
547  t82 = t19/2.0;
548  t83 = 3.0/2.0*t26;
549  t84 = 3.0/2.0*t32;
550  t85 = eta/2.0;
551  t86 = 3.0/2.0*t16;
552  t87 = 5.0/2.0*t47;
553  t89 = -t72+t73+t74+t52-t53-t55-t75+t76-t77-t59+t60-t78+t67;
554  t90 = -5.0/64.0-t4-t9-t11-t13+t15-t18-t22+t24-t25-t27-t28;
555  t91 = t30+t31+t33+t34+t36+t38-t40+t41-t43+t45-t46+t48;
556  t93 = -5.0/16.0+t51+t52-t53-t54-t55-t56+t57+t58-t59+t60+t61-t62+t63-t64+
557 t65-t66+t67;
558  t94 = -5.0/64.0+t4+t9-t11+t13-t15-t18-t22+t24-t25-t27+t28;
559  t95 = -t30+t31+t33+t34-t36+t38-t40+t41-t43+t45-t46+t48;
560  t97 = t12/4.0;
561  t98 = 3.0/8.0*t19;
562  t99 = 9.0/8.0*t1;
563  t100 = 5.0/16.0*t2;
564  t101 = xi/4.0;
565  t102 = 9.0/16.0*t5;
566  t103 = 5.0/16.0+t72-t73-t97+t54+t98-t75-t99+t77-t100-t59+t60+t101-t61+t62
567 -t102+t64-t65;
568  t104 = 3.0/4.0*t23;
569  t105 = 3.0/2.0*t19;
570  t106 = 3.0/4.0*t2;
571  t107 = 3.0/2.0*eta;
572  t108 = 15.0/4.0*t37;
573  t109 = 15.0/4.0*t39;
574  t110 = 3.0/4.0*t5;
575  t111 = 15.0/4.0*t42;
576  t112 = 15.0/4.0*t44;
577  t113 = 3.0/4.0+t104-t105-t83-t106+t84+t107-t108+t109-t110+t111-t112;
578  t114 = 5.0/16.0-t72+t73+t97+t54+t98-t75+t99-t77-t100-t59+t60-t101-t61+t62
579 -t102+t64-t65;
580  t115 = 3.0/2.0*t3;
581  t116 = 5.0/2.0*t8;
582  t117 = t26/2.0;
583  t118 = 3.0/2.0*t1;
584  t119 = 5.0/2.0*t7;
585  t121 = -5.0/16.0-t72+t73-t97-t54+t98-t75+t99-t77+t100-t59+t60+t101+t61-
586 t62+t102-t64+t65;
587  t122 = -3.0/4.0-t104-t105-t83+t106+t84+t107+t108-t109+t110-t111+t112;
588  t123 = -5.0/16.0+t72-t73+t97-t54+t98-t75-t99+t77+t100-t59+t60-t101+t61-
589 t62+t102-t64+t65;
590  t125 = 5.0/64.0-t4-t9-t11+t13-t15+t18+t22-t24-t25-t27-t28;
591  t126 = t30-t31+t33+t34+t36-t38+t40-t41+t43-t45+t46-t48;
592  t128 = 5.0/16.0+t51-t52+t53+t54-t55-t56+t57-t58-t59+t60-t61+t62-t63+t64-
593 t65+t66-t67;
594  t129 = 5.0/64.0+t4+t9-t11-t13+t15+t18+t22-t24-t25-t27+t28;
595  t130 = -t30-t31+t33+t34-t36-t38+t40-t41+t43-t45+t46-t48;
596  t132 = t72-t73+t74-t52+t53-t55-t75-t76+t77-t59+t60+t78-t67;
597  t134 = -t72+t73-t74-t52+t53-t55-t75+t76-t77-t59+t60+t78-t67;
598  t135 = -5.0/64.0-t4-t9+t11-t13-t15+t18+t22+t24-t25-t27-t28;
599  t136 = t30+t31+t33+t34-t36+t38-t40+t41-t43+t45+t46-t48;
600  t138 = -5.0/16.0-t51-t52+t53-t54-t55+t56+t57+t58-t59+t60+t61-t62+t63-t64+
601 t65+t66-t67;
602  t139 = -5.0/64.0+t4+t9+t11+t13+t15+t18+t22+t24-t25-t27+t28;
603  t140 = -t30+t31+t33+t34+t36+t38-t40+t41-t43+t45+t46-t48;
604  values[0] = t29+t49;
605  values[1] = t68;
606  values[2] = t69+t70;
607  values[3] = t79;
608  values[4] = t80-t81-t82-t83+t84+t85-t86+t87;
609  values[5] = t89;
610  values[6] = t90+t91;
611  values[7] = t93;
612  values[8] = t94+t95;
613  values[9] = t103;
614  values[10] = t113;
615  values[11] = t114;
616  values[12] = -t115+t116-t105-t117+t118-t119+t84+t85;
617  values[13] = t121;
618  values[14] = t122;
619  values[15] = t123;
620  values[16] = t115-t116-t105-t117-t118+t119+t84+t85;
621  values[17] = t125+t126;
622  values[18] = t128;
623  values[19] = t129+t130;
624  values[20] = t132;
625  values[21] = -t80+t81-t82-t83+t84+t85+t86-t87;
626  values[22] = t134;
627  values[23] = t135+t136;
628  values[24] = t138;
629  values[25] = t139+t140;
630  values[26] = -27.0/32.0*eta+27.0/32.0*t26+27.0/32.0*t19-27.0/32.0*t32;
631  values[27] = -135.0/32.0*t16+135.0/32.0*t47+135.0/32.0*t17-135.0/32.0*t21;
632  values[28] = 135.0/64.0-135.0/64.0*t2-405.0/64.0*t37+405.0/64.0*t39-135.0/
633 64.0*t5+135.0/64.0*t23+405.0/64.0*t42-405.0/64.0*t44;
634  values[29] = -135.0/32.0*t1+135.0/32.0*t3+135.0/32.0*t7-135.0/32.0*t8;
635 }
636 
637 static void C_H_UL2_3D_DeriveZeta(double xi, double eta, double zeta,
638  double *values)
639 {
640  double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19,
641  t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39,
642  t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59,
643  t60, t61, t62, t63, t64, t65, t66, t67, t68, t69, t70, t71, t72, t73, t74, t75, t76, t77, t78, t79,
644  t80, t81, t82, t83, t84, t85, t86, t87, t88, t89, t90, t91, t92, t93, t94, t95, t96, t97, t98, t99, t100,
645  t101, t102, t103, t104, t105, t106, t107, t108, t109, t110, t111, t112, t113, t114, t115, t116, t117, t118, t119,
646  t120, t121, t122, t123, t124, t125, t126, t127, t128, t129, t130, t131, t132, t133, t134, t135, t136, t137, t138, t139,
647  t140, t141, t142, t143, t144, t145, t146, t147, t148, t149, t150, t151, t152, t153, t154, t155, t156, t157, t158, t159;
648 
649  t1 = xi*zeta;
650  t2 = eta*eta;
651  t3 = t1*t2;
652  t4 = 3.0/32.0*t3;
653  t5 = xi*xi;
654  t6 = t5*xi;
655  t8 = t6*t2*zeta;
656  t9 = 5.0/32.0*t8;
657  t10 = t5*eta;
658  t11 = t10/8.0;
659  t12 = xi*eta;
660  t13 = t12*zeta;
661  t14 = t13/4.0;
662  t15 = xi*t2;
663  t16 = t15/8.0;
664  t17 = t5*t2;
665  t18 = 3.0/64.0*t17;
666  t19 = zeta*zeta;
667  t20 = t17*t19;
668  t21 = 15.0/64.0*t20;
669  t22 = eta*zeta;
670  t23 = t22*t5;
671  t24 = 3.0/32.0*t23;
672  t25 = zeta/32.0;
673  t26 = t2*zeta;
674  t27 = t26/32.0;
675  t28 = zeta*t5;
676  t29 = t28/32.0;
677  t30 = 5.0/64.0-t4-t9+t11+t14+t16-t18-t21-t24+t25-t27-t29;
678  t31 = t6*zeta;
679  t32 = 5.0/32.0*t31;
680  t33 = 5.0/32.0*t22;
681  t34 = t28*t2;
682  t35 = 9.0/32.0*t34;
683  t36 = t12/8.0;
684  t37 = 15.0/64.0*t19;
685  t38 = eta*t2;
686  t39 = t38*zeta;
687  t40 = 5.0/32.0*t39;
688  t42 = t5*t38*zeta;
689  t43 = 5.0/32.0*t42;
690  t44 = 5.0/64.0*t2;
691  t45 = t19*t2;
692  t46 = 15.0/64.0*t45;
693  t47 = 5.0/64.0*t5;
694  t48 = t5*t19;
695  t49 = 15.0/64.0*t48;
696  t50 = 5.0/32.0*t1;
697  t51 = t32-t33+t35-t36-t37+t40-t43-t44+t46-t47+t49-t50;
698  t53 = t10/4.0;
699  t54 = 9.0/16.0*t17;
700  t55 = 15.0/16.0*t20;
701  t56 = 9.0/8.0*t23;
702  t57 = eta/4.0;
703  t58 = zeta/8.0;
704  t59 = 3.0/8.0*t26;
705  t60 = t28/8.0;
706  t61 = 9.0/8.0*t22;
707  t62 = 3.0/8.0*t34;
708  t63 = 15.0/16.0*t19;
709  t64 = 5.0/8.0*t39;
710  t65 = 5.0/8.0*t42;
711  t66 = 9.0/16.0*t2;
712  t67 = 15.0/16.0*t45;
713  t68 = 5.0/16.0*t5;
714  t69 = 15.0/16.0*t48;
715  t70 = -t53+5.0/16.0+t54-t55+t56+t57+t58+t59-t60-t61-t62-t63+t64-t65-t66+
716 t67-t68+t69;
717  t71 = 5.0/64.0+t4+t9+t11-t14-t16-t18-t21-t24+t25-t27-t29;
718  t72 = -t32-t33+t35+t36-t37+t40-t43-t44+t46-t47+t49+t50;
719  t74 = 9.0/8.0*t3;
720  t75 = 5.0/8.0*t8;
721  t76 = t15/4.0;
722  t77 = xi/4.0;
723  t78 = t26/8.0;
724  t79 = 3.0/8.0*t28;
725  t80 = 5.0/8.0*t31;
726  t81 = 5.0/16.0*t2;
727  t82 = 9.0/16.0*t5;
728  t83 = 9.0/8.0*t1;
729  t84 = t74-t75+5.0/16.0-t76+t54-t55+t77+t58-t78+t79+t80-t62-t63-t81+t67-
730 t82+t69-t83;
731  t85 = 3.0/4.0*t17;
732  t86 = 15.0/4.0*t20;
733  t87 = 3.0/2.0*zeta;
734  t88 = 3.0/2.0*t26;
735  t89 = 3.0/2.0*t28;
736  t90 = 3.0/2.0*t34;
737  t91 = 15.0/4.0*t19;
738  t92 = 3.0/4.0*t2;
739  t93 = 15.0/4.0*t45;
740  t94 = 3.0/4.0*t5;
741  t95 = 15.0/4.0*t48;
742  t96 = 3.0/4.0+t85-t86+t87-t88-t89+t90-t91-t92+t93-t94+t95;
743  t97 = -t74+t75+5.0/16.0+t76+t54-t55-t77+t58-t78+t79-t80-t62-t63-t81+t67-
744 t82+t69+t83;
745  t98 = 5.0/64.0-t4-t9-t11-t14+t16-t18-t21+t24+t25-t27-t29;
746  t99 = t32+t33+t35+t36-t37-t40+t43-t44+t46-t47+t49-t50;
747  t101 = t53+5.0/16.0+t54-t55-t56-t57+t58+t59-t60+t61-t62-t63-t64+t65-t66+
748 t67-t68+t69;
749  t102 = 5.0/64.0+t4+t9-t11+t14-t16-t18-t21+t24+t25-t27-t29;
750  t103 = -t32+t33+t35-t36-t37-t40+t43-t44+t46-t47+t49+t50;
751  t105 = t13/2.0;
752  t106 = 5.0/8.0*t22;
753  t107 = 5.0/8.0*t1;
754  t108 = t74-t75-t105+t56+t58-t78-t60+t80-t106-t62+t64-t65-t107;
755  t109 = 3.0/2.0*t23;
756  t110 = zeta/2.0;
757  t111 = t28/2.0;
758  t112 = 3.0/2.0*t22;
759  t113 = 5.0/2.0*t39;
760  t114 = 5.0/2.0*t42;
761  t116 = -t74+t75+t105+t56+t58-t78-t60-t80-t106-t62+t64-t65+t107;
762  t117 = 3.0/2.0*t3;
763  t118 = 5.0/2.0*t8;
764  t119 = t26/2.0;
765  t120 = 5.0/2.0*t31;
766  t121 = 3.0/2.0*t1;
767  t123 = -t74+t75-t105-t56+t58-t78-t60-t80+t106-t62-t64+t65+t107;
768  t125 = t74-t75+t105-t56+t58-t78-t60+t80+t106-t62-t64+t65-t107;
769  t127 = -5.0/64.0-t4-t9-t11+t14-t16+t18+t21-t24+t25-t27-t29;
770  t128 = t32-t33+t35+t36+t37+t40-t43+t44-t46+t47-t49-t50;
771  t130 = t53-5.0/16.0-t54+t55+t56-t57+t58+t59-t60-t61-t62+t63+t64-t65+t66-
772 t67+t68-t69;
773  t131 = -5.0/64.0+t4+t9-t11-t14+t16+t18+t21-t24+t25-t27-t29;
774  t132 = -t32-t33+t35-t36+t37+t40-t43+t44-t46+t47-t49+t50;
775  t134 = t74-t75-5.0/16.0+t76-t54+t55-t77+t58-t78+t79+t80-t62+t63+t81-t67+
776 t82-t69-t83;
777  t135 = -3.0/4.0-t85+t86+t87-t88-t89+t90+t91+t92-t93+t94-t95;
778  t136 = -t74+t75-5.0/16.0-t76-t54+t55+t77+t58-t78+t79-t80-t62+t63+t81-t67+
779 t82-t69+t83;
780  t137 = -5.0/64.0-t4-t9+t11-t14-t16+t18+t21+t24+t25-t27-t29;
781  t138 = t32+t33+t35-t36+t37-t40+t43+t44-t46+t47-t49-t50;
782  t140 = -t53-5.0/16.0-t54+t55-t56+t57+t58+t59-t60+t61-t62+t63-t64+t65+t66-
783 t67+t68-t69;
784  t141 = -5.0/64.0+t4+t9+t11+t14+t16+t18+t21+t24+t25-t27-t29;
785  t142 = -t32+t33+t35+t36+t37-t40+t43+t44-t46+t47-t49+t50;
786  values[0] = t30+t51;
787  values[1] = t70;
788  values[2] = t71+t72;
789  values[3] = t84;
790  values[4] = t96;
791  values[5] = t97;
792  values[6] = t98+t99;
793  values[7] = t101;
794  values[8] = t102+t103;
795  values[9] = t108;
796  values[10] = t109+t110-t88-t111-t112+t90+t113-t114;
797  values[11] = t116;
798  values[12] = -t117+t118+t110-t119-t89-t120+t90+t121;
799  values[13] = t123;
800  values[14] = -t109+t110-t88-t111+t112+t90-t113+t114;
801  values[15] = t125;
802  values[16] = t117-t118+t110-t119-t89+t120+t90-t121;
803  values[17] = t127+t128;
804  values[18] = t130;
805  values[19] = t131+t132;
806  values[20] = t134;
807  values[21] = t135;
808  values[22] = t136;
809  values[23] = t137+t138;
810  values[24] = t140;
811  values[25] = t141+t142;
812  values[26] = -27.0/32.0*zeta+27.0/32.0*t26+27.0/32.0*t28-27.0/32.0*t34;
813  values[27] = 135.0/64.0-405.0/64.0*t19-135.0/64.0*t2+405.0/64.0*t45-135.0/
814 64.0*t5+405.0/64.0*t48+135.0/64.0*t17-405.0/64.0*t20;
815  values[28] = -135.0/32.0*t22+135.0/32.0*t39+135.0/32.0*t23-135.0/32.0*t42;
816  values[29] = -135.0/32.0*t1+135.0/32.0*t3+135.0/32.0*t31-135.0/32.0*t8;
817 }
818 
819 static void C_H_UL2_3D_DeriveXiXi(double xi, double eta, double zeta,
820  double *values)
821 {
822  double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19,
823  t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39,
824  t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59,
825  t60, t61, t62, t63, t64, t65, t66, t67, t68, t69, t70, t71, t72, t73, t74, t75, t76, t77, t78, t79,
826  t80, t81, t82, t83, t84, t85, t86, t87, t88, t89, t90, t91, t92, t93, t94, t95, t96, t97, t98, t99, t100,
827  t101, t102, t103, t104, t105, t106, t107, t108, t109, t110, t111, t112, t113, t114, t115, t116, t117, t118, t119,
828  t120, t121, t122, t123, t124, t125, t126, t127, t128, t129, t130, t131, t132, t133, t134, t135, t136, t137, t138, t139,
829  t140, t141, t142, t143, t144, t145, t146, t147, t148, t149, t150, t151, t152, t153, t154, t155, t156, t157, t158, t159;
830 
831  t1 = eta*eta;
832  t2 = xi*t1;
833  t3 = zeta*zeta;
834  t4 = t2*t3;
835  t5 = 15.0/32.0*t4;
836  t6 = eta*zeta;
837  t7 = t6/4.0;
838  t8 = zeta*t1;
839  t9 = 3.0/32.0*t8;
840  t10 = t3*zeta;
841  t11 = t1*t10;
842  t12 = 5.0/32.0*t11;
843  t13 = eta*t3;
844  t14 = 3.0/32.0*t13;
845  t15 = t1/32.0;
846  t16 = t3/32.0;
847  t17 = xi*t3;
848  t18 = 15.0/32.0*t17;
849  t19 = 15.0/32.0*t2;
850  t20 = t1*t3;
851  t21 = 9.0/32.0*t20;
852  t22 = 15.0/32.0*xi;
853  t23 = 5.0/32.0*eta;
854  t24 = t1*eta;
855  t25 = 5.0/32.0*t24;
856  t26 = t24*t3;
857  t27 = 5.0/32.0*t26;
858  t28 = 5.0/32.0*zeta;
859  t29 = 5.0/32.0*t10;
860  t30 = -t5+t7-t9-t12-t14-t15-t16+t18+t19+t21+1.0/32.0-t22-t23+t25-t27-t28+
861 t29;
862  t31 = t6/2.0;
863  t32 = 9.0/8.0*t8;
864  t33 = 5.0/8.0*t11;
865  t34 = 9.0/8.0*t13;
866  t35 = t1/8.0;
867  t36 = t3/8.0;
868  t37 = 3.0/8.0*t20;
869  t38 = 5.0/8.0*eta;
870  t39 = 5.0/8.0*t24;
871  t40 = 5.0/8.0*t26;
872  t41 = 5.0/8.0*zeta;
873  t42 = 5.0/8.0*t10;
874  t43 = -t31+t32-t33+t34-t35-t36-t37+1.0/8.0-t38+t39-t40-t41+t42;
875  t44 = t5+t7-t9-t12-t14-t15-t16-t18-t19+t21+1.0/32.0+t22-t23+t25-t27-t28+
876 t29;
877  t45 = 15.0/8.0*t4;
878  t46 = 3.0/8.0*t3;
879  t47 = 15.0/8.0*t17;
880  t48 = 15.0/8.0*t2;
881  t49 = 15.0/8.0*xi;
882  t50 = 9.0/8.0*zeta;
883  t51 = -t45+t32-t33-t35+t46+t47+t48-t37+1.0/8.0-t49-t50+t42;
884  t52 = 3.0/2.0*t8;
885  t53 = 5.0/2.0*t11;
886  t54 = t1/2.0;
887  t55 = 3.0/2.0*t3;
888  t56 = 3.0/2.0*t20;
889  t57 = 3.0/2.0*zeta;
890  t58 = 5.0/2.0*t10;
891  t60 = t45+t32-t33-t35+t46-t47-t48-t37+1.0/8.0+t49-t50+t42;
892  t61 = -t5-t7-t9-t12+t14-t15-t16+t18+t19+t21+1.0/32.0-t22+t23-t25+t27-t28+
893 t29;
894  t62 = t31+t32-t33-t34-t35-t36-t37+1.0/8.0+t38-t39+t40-t41+t42;
895  t63 = t5-t7-t9-t12+t14-t15-t16-t18-t19+t21+1.0/32.0+t22+t23-t25+t27-t28+
896 t29;
897  t64 = 3.0/8.0*t1;
898  t65 = 9.0/8.0*eta;
899  t66 = -t45+t34+t64-t36+t47+t48-t37+1.0/8.0-t49-t65+t39-t40;
900  t67 = 3.0/2.0*t13;
901  t68 = 3.0/2.0*t1;
902  t69 = t3/2.0;
903  t70 = 3.0/2.0*eta;
904  t71 = 5.0/2.0*t24;
905  t72 = 5.0/2.0*t26;
906  t74 = t45+t34+t64-t36-t47-t48-t37+1.0/8.0+t49-t65+t39-t40;
907  t75 = 15.0/2.0*t4;
908  t76 = 15.0/2.0*t17;
909  t77 = 15.0/2.0*t2;
910  t78 = 15.0/2.0*xi;
911  t80 = t45-t34+t64-t36-t47-t48-t37+1.0/8.0+t49+t65-t39+t40;
912  t82 = -t45-t34+t64-t36+t47+t48-t37+1.0/8.0-t49+t65-t39+t40;
913  t84 = -t5-t7+t9+t12-t14-t15-t16+t18+t19+t21+1.0/32.0-t22-t23+t25-t27+t28-
914 t29;
915  t85 = t31-t32+t33+t34-t35-t36-t37+1.0/8.0-t38+t39-t40+t41-t42;
916  t86 = t5-t7+t9+t12-t14-t15-t16-t18-t19+t21+1.0/32.0+t22-t23+t25-t27+t28-
917 t29;
918  t87 = -t45-t32+t33-t35+t46+t47+t48-t37+1.0/8.0-t49+t50-t42;
919  t89 = t45-t32+t33-t35+t46-t47-t48-t37+1.0/8.0+t49+t50-t42;
920  t90 = -t5+t7+t9+t12+t14-t15-t16+t18+t19+t21+1.0/32.0-t22+t23-t25+t27+t28-
921 t29;
922  t91 = -t31-t32+t33-t34-t35-t36-t37+1.0/8.0+t38-t39+t40+t41-t42;
923  t92 = t5+t7+t9+t12+t14-t15-t16-t18-t19+t21+1.0/32.0+t22+t23-t25+t27+t28-
924 t29;
925  values[0] = t30;
926  values[1] = t43;
927  values[2] = t44;
928  values[3] = t51;
929  values[4] = t52-t53-t54-t55+t56+1.0/2.0-t57+t58;
930  values[5] = t60;
931  values[6] = t61;
932  values[7] = t62;
933  values[8] = t63;
934  values[9] = t66;
935  values[10] = t67-t68-t69+t56+1.0/2.0-t70+t71-t72;
936  values[11] = t74;
937  values[12] = t75-t68-t55-t76-t77+t56+3.0/2.0+t78;
938  values[13] = t80;
939  values[14] = -t67-t68-t69+t56+1.0/2.0+t70-t71+t72;
940  values[15] = t82;
941  values[16] = -t75-t68-t55+t76+t77+t56+3.0/2.0-t78;
942  values[17] = t84;
943  values[18] = t85;
944  values[19] = t86;
945  values[20] = t87;
946  values[21] = -t52+t53-t54-t55+t56+1.0/2.0+t57-t58;
947  values[22] = t89;
948  values[23] = t90;
949  values[24] = t91;
950  values[25] = t92;
951  values[26] = -27.0/32.0+27.0/32.0*t3+27.0/32.0*t1-27.0/32.0*t20;
952  values[27] = -135.0/32.0*zeta+135.0/32.0*t10+135.0/32.0*t8-135.0/32.0*t11;
953  values[28] = -135.0/32.0*eta+135.0/32.0*t13+135.0/32.0*t24-135.0/32.0*t26;
954  values[29] = -405.0/32.0*xi+405.0/32.0*t17+405.0/32.0*t2-405.0/32.0*t4;
955 }
956 
957 static void C_H_UL2_3D_DeriveXiEta(double xi, double eta, double zeta,
958  double *values)
959 {
960  double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19,
961  t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39,
962  t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59,
963  t60, t61, t62, t63, t64, t65, t66, t67, t68, t69, t70, t71, t72, t73, t74, t75, t76, t77, t78, t79,
964  t80, t81, t82, t83, t84, t85, t86, t87, t88, t89, t90, t91, t92, t93, t94, t95, t96, t97, t98, t99;
965 
966  t1 = zeta*zeta;
967  t2 = t1*eta;
968  t3 = 3.0/32.0*t2;
969  t4 = xi*xi;
970  t5 = eta*t4;
971  t6 = t5*t1;
972  t7 = 15.0/32.0*t6;
973  t8 = xi*zeta;
974  t9 = t8/4.0;
975  t10 = t1/8.0;
976  t11 = eta*zeta;
977  t12 = t11/4.0;
978  t13 = xi*eta;
979  t14 = t13*zeta;
980  t15 = 3.0/16.0*t14;
981  t17 = t13*t1*zeta;
982  t18 = 5.0/16.0*t17;
983  t19 = xi*t1;
984  t20 = 3.0/32.0*t19;
985  t21 = t13/16.0;
986  t22 = 5.0/32.0*eta;
987  t23 = 15.0/32.0*t5;
988  t24 = t13*t1;
989  t25 = 9.0/16.0*t24;
990  t26 = zeta/8.0;
991  t27 = 5.0/32.0*xi;
992  t28 = eta*eta;
993  t29 = xi*t28;
994  t30 = 15.0/32.0*t29;
995  t31 = t29*t1;
996  t32 = 15.0/32.0*t31;
997  t33 = -t3-t7+t9+t10+t12-t15-t18-t20-t21-t22+t23+t25-t26-t27+t30-t32;
998  t34 = t8/2.0;
999  t35 = 9.0/4.0*t14;
1000  t36 = 5.0/4.0*t17;
1001  t37 = 9.0/8.0*t19;
1002  t38 = t13/4.0;
1003  t39 = 3.0/4.0*t24;
1004  t40 = 5.0/8.0*xi;
1005  t41 = 15.0/8.0*t29;
1006  t42 = 15.0/8.0*t31;
1007  t44 = t3+t7+t9-t10-t12-t15-t18-t20-t21+t22-t23+t25+t26-t27+t30-t32;
1008  t45 = 9.0/8.0*t2;
1009  t46 = 15.0/8.0*t6;
1010  t47 = t11/2.0;
1011  t48 = 5.0/8.0*eta;
1012  t49 = 15.0/8.0*t5;
1013  t51 = 3.0*t14;
1014  t52 = 5.0*t17;
1015  t53 = 3.0*t24;
1016  t56 = -t3-t7-t9-t10+t12-t15-t18+t20-t21-t22+t23+t25+t26+t27-t30+t32;
1017  t58 = t3+t7-t9+t10-t12-t15-t18+t20-t21+t22-t23+t25-t26+t27-t30+t32;
1018  t59 = t1/4.0;
1019  t60 = 3.0/4.0*t13;
1020  t61 = 9.0/8.0*eta;
1021  t62 = 9.0/8.0*xi;
1022  t63 = t45-t46-t59+t37+t60-t61+t49-t39+1.0/4.0-t62+t41-t42;
1023  t64 = 3.0/2.0*t19;
1024  t65 = 3.0*t13;
1025  t66 = 3.0/2.0*xi;
1026  t67 = 15.0/2.0*t29;
1027  t68 = 15.0/2.0*t31;
1028  t70 = -t45+t46+t59+t37+t60+t61-t49-t39-1.0/4.0-t62+t41-t42;
1029  t71 = 3.0/2.0*t2;
1030  t72 = 15.0/2.0*t6;
1031  t73 = 3.0/2.0*eta;
1032  t74 = 15.0/2.0*t5;
1033  t76 = -t45+t46-t59-t37+t60+t61-t49-t39+1.0/4.0+t62-t41+t42;
1034  t78 = t45-t46+t59-t37+t60-t61+t49-t39-1.0/4.0+t62-t41+t42;
1035  t80 = -t3-t7-t9+t10-t12+t15+t18-t20-t21-t22+t23+t25+t26-t27+t30-t32;
1036  t82 = t3+t7-t9-t10+t12+t15+t18-t20-t21+t22-t23+t25-t26-t27+t30-t32;
1037  t86 = -t3-t7+t9-t10-t12+t15+t18+t20-t21-t22+t23+t25-t26+t27-t30+t32;
1038  t88 = t3+t7+t9+t10+t12+t15+t18+t20-t21+t22-t23+t25+t26+t27-t30+t32;
1039  values[0] = t33;
1040  values[1] = -t34+t35-t36+t37-t38-t39-t40+t41-t42;
1041  values[2] = t44;
1042  values[3] = t45-t46-t47+t35-t36-t38-t48+t49-t39;
1043  values[4] = t51-t52-t13+t53;
1044  values[5] = -t45+t46+t47+t35-t36-t38+t48-t49-t39;
1045  values[6] = t56;
1046  values[7] = t34+t35-t36-t37-t38-t39+t40-t41+t42;
1047  values[8] = t58;
1048  values[9] = t63;
1049  values[10] = t64-t65+t53-t66+t67-t68;
1050  values[11] = t70;
1051  values[12] = -t71+t72-t65+t73-t74+t53;
1052  values[13] = t76;
1053  values[14] = -t64-t65+t53+t66-t67+t68;
1054  values[15] = t78;
1055  values[16] = t71-t72-t65-t73+t74+t53;
1056  values[17] = t80;
1057  values[18] = t34-t35+t36+t37-t38-t39-t40+t41-t42;
1058  values[19] = t82;
1059  values[20] = t45-t46+t47-t35+t36-t38-t48+t49-t39;
1060  values[21] = -t51+t52-t13+t53;
1061  values[22] = -t45+t46-t47-t35+t36-t38+t48-t49-t39;
1062  values[23] = t86;
1063  values[24] = -t34-t35+t36-t37-t38-t39+t40-t41+t42;
1064  values[25] = t88;
1065  values[26] = 27.0/16.0*t13-27.0/16.0*t24;
1066  values[27] = 135.0/16.0*t14-135.0/16.0*t17;
1067  values[28] = -135.0/32.0*xi+135.0/32.0*t19+405.0/32.0*t29-405.0/32.0*t31;
1068  values[29] = -135.0/32.0*eta+135.0/32.0*t2+405.0/32.0*t5-405.0/32.0*t6;
1069 }
1070 
1071 static void C_H_UL2_3D_DeriveXiZeta(double xi, double eta, double zeta,
1072  double *values)
1073 {
1074  double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19,
1075  t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39,
1076  t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59,
1077  t60, t61, t62, t63, t64, t65, t66, t67, t68, t69, t70, t71, t72, t73, t74, t75, t76, t77, t78, t79,
1078  t80, t81, t82, t83, t84, t85, t86, t87, t88, t89, t90, t91, t92, t93, t94, t95, t96, t97, t98, t99;
1079 
1080  t1 = eta*eta;
1081  t2 = zeta*t1;
1082  t3 = 3.0/32.0*t2;
1083  t4 = xi*xi;
1084  t5 = zeta*t4;
1085  t6 = t5*t1;
1086  t7 = 15.0/32.0*t6;
1087  t8 = xi*eta;
1088  t9 = t8/4.0;
1089  t10 = eta*zeta;
1090  t11 = t10/4.0;
1091  t12 = t1/8.0;
1092  t13 = xi*t1;
1093  t14 = 3.0/32.0*t13;
1094  t15 = zeta*zeta;
1095  t16 = t13*t15;
1096  t17 = 15.0/32.0*t16;
1097  t18 = t8*zeta;
1098  t19 = 3.0/16.0*t18;
1099  t20 = xi*zeta;
1100  t21 = t20/16.0;
1101  t22 = 15.0/32.0*t5;
1102  t23 = t20*t1;
1103  t24 = 9.0/16.0*t23;
1104  t25 = eta/8.0;
1105  t28 = xi*t1*eta*zeta;
1106  t29 = 5.0/16.0*t28;
1107  t30 = 5.0/32.0*xi;
1108  t31 = xi*t15;
1109  t32 = 15.0/32.0*t31;
1110  t33 = 5.0/32.0*zeta;
1111  t34 = -t3-t7+t9+t11+t12-t14-t17-t19-t21+t22+t24-t25-t29-t30+t32-t33;
1112  t35 = t8/2.0;
1113  t36 = 9.0/8.0*t13;
1114  t37 = 15.0/8.0*t16;
1115  t38 = 9.0/4.0*t18;
1116  t39 = t20/4.0;
1117  t40 = 3.0/4.0*t23;
1118  t41 = 5.0/4.0*t28;
1119  t42 = 5.0/8.0*xi;
1120  t43 = 15.0/8.0*t31;
1121  t45 = t3+t7+t9-t11-t12-t14-t17-t19-t21-t22+t24+t25-t29-t30+t32+t33;
1122  t46 = 9.0/8.0*t2;
1123  t47 = 15.0/8.0*t6;
1124  t48 = t1/4.0;
1125  t49 = 3.0/4.0*t20;
1126  t50 = 15.0/8.0*t5;
1127  t51 = 9.0/8.0*xi;
1128  t52 = 9.0/8.0*zeta;
1129  t53 = t46-t47-t48+t36-t37+1.0/4.0+t49+t50-t40-t51+t43-t52;
1130  t54 = 3.0/2.0*t13;
1131  t55 = 15.0/2.0*t16;
1132  t56 = 3.0*t20;
1133  t57 = 3.0*t23;
1134  t58 = 3.0/2.0*xi;
1135  t59 = 15.0/2.0*t31;
1136  t61 = -t46+t47+t48+t36-t37-1.0/4.0+t49-t50-t40-t51+t43+t52;
1137  t62 = -t3-t7-t9-t11+t12-t14-t17+t19-t21+t22+t24+t25+t29-t30+t32-t33;
1138  t64 = t3+t7-t9+t11-t12-t14-t17+t19-t21-t22+t24-t25+t29-t30+t32+t33;
1139  t65 = t10/2.0;
1140  t66 = 5.0/8.0*zeta;
1141  t68 = 3.0*t18;
1142  t69 = 5.0*t28;
1143  t72 = 3.0/2.0*t2;
1144  t73 = 15.0/2.0*t6;
1145  t74 = 15.0/2.0*t5;
1146  t75 = 3.0/2.0*zeta;
1147  t81 = -t3-t7-t9+t11-t12+t14+t17-t19-t21+t22+t24+t25-t29+t30-t32-t33;
1148  t83 = t3+t7-t9-t11+t12+t14+t17-t19-t21-t22+t24-t25-t29+t30-t32+t33;
1149  t84 = t46-t47+t48-t36+t37-1.0/4.0+t49+t50-t40+t51-t43-t52;
1150  t86 = -t46+t47-t48-t36+t37+1.0/4.0+t49-t50-t40+t51-t43+t52;
1151  t87 = -t3-t7+t9-t11-t12+t14+t17+t19-t21+t22+t24-t25+t29+t30-t32-t33;
1152  t89 = t3+t7+t9+t11+t12+t14+t17+t19-t21-t22+t24+t25+t29+t30-t32+t33;
1153  values[0] = t34;
1154  values[1] = -t35+t36-t37+t38-t39-t40-t41-t42+t43;
1155  values[2] = t45;
1156  values[3] = t53;
1157  values[4] = t54-t55-t56+t57-t58+t59;
1158  values[5] = t61;
1159  values[6] = t62;
1160  values[7] = t35+t36-t37-t38-t39-t40+t41-t42+t43;
1161  values[8] = t64;
1162  values[9] = t46-t47-t65+t38-t39+t50-t40-t41-t66;
1163  values[10] = t68-t20+t57-t69;
1164  values[11] = -t46+t47+t65+t38-t39-t50-t40-t41+t66;
1165  values[12] = -t72+t73-t56-t74+t57+t75;
1166  values[13] = -t46+t47-t65-t38-t39-t50-t40+t41+t66;
1167  values[14] = -t68-t20+t57+t69;
1168  values[15] = t46-t47+t65-t38-t39+t50-t40+t41-t66;
1169  values[16] = t72-t73-t56+t74+t57-t75;
1170  values[17] = t81;
1171  values[18] = t35-t36+t37+t38-t39-t40-t41+t42-t43;
1172  values[19] = t83;
1173  values[20] = t84;
1174  values[21] = -t54+t55-t56+t57+t58-t59;
1175  values[22] = t86;
1176  values[23] = t87;
1177  values[24] = -t35-t36+t37-t38-t39-t40+t41+t42-t43;
1178  values[25] = t89;
1179  values[26] = 27.0/16.0*t20-27.0/16.0*t23;
1180  values[27] = -135.0/32.0*xi+405.0/32.0*t31+135.0/32.0*t13-405.0/32.0*t16;
1181  values[28] = 135.0/16.0*t18-135.0/16.0*t28;
1182  values[29] = -135.0/32.0*zeta+135.0/32.0*t2+405.0/32.0*t5-405.0/32.0*t6;
1183 }
1184 
1185 static void C_H_UL2_3D_DeriveEtaEta(double xi, double eta, double zeta,
1186  double *values)
1187 {
1188  double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19,
1189  t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39,
1190  t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59,
1191  t60, t61, t62, t63, t64, t65, t66, t67, t68, t69, t70, t71, t72, t73, t74, t75, t76, t77, t78, t79,
1192  t80, t81, t82, t83, t84, t85, t86, t87, t88, t89, t90, t91, t92, t93, t94, t95, t96, t97, t98, t99;
1193 
1194  t1 = zeta*zeta;
1195  t2 = xi*t1;
1196  t3 = 3.0/32.0*t2;
1197  t4 = xi*xi;
1198  t5 = t4*xi;
1199  t6 = t5*t1;
1200  t7 = 5.0/32.0*t6;
1201  t8 = xi*zeta;
1202  t9 = t8/4.0;
1203  t10 = zeta*t4;
1204  t11 = 3.0/32.0*t10;
1205  t12 = zeta*t1;
1206  t13 = t4*t12;
1207  t14 = 5.0/32.0*t13;
1208  t15 = t4/32.0;
1209  t16 = t1/32.0;
1210  t17 = 5.0/32.0*xi;
1211  t18 = 5.0/32.0*t5;
1212  t19 = t4*t1;
1213  t20 = 9.0/32.0*t19;
1214  t21 = 15.0/32.0*eta;
1215  t22 = eta*t1;
1216  t23 = 15.0/32.0*t22;
1217  t24 = eta*t4;
1218  t25 = 15.0/32.0*t24;
1219  t26 = t24*t1;
1220  t27 = 15.0/32.0*t26;
1221  t28 = 5.0/32.0*zeta;
1222  t29 = 5.0/32.0*t12;
1223  t30 = -t3-t7+t9-t11-t14-t15-t16-t17+t18+t20+1.0/32.0-t21+t23+t25-t27-t28+
1224 t29;
1225  t31 = 9.0/8.0*t10;
1226  t32 = 5.0/8.0*t13;
1227  t33 = t4/8.0;
1228  t34 = 3.0/8.0*t1;
1229  t35 = 3.0/8.0*t19;
1230  t36 = 15.0/8.0*eta;
1231  t37 = 15.0/8.0*t22;
1232  t38 = 15.0/8.0*t24;
1233  t39 = 15.0/8.0*t26;
1234  t40 = 9.0/8.0*zeta;
1235  t41 = 5.0/8.0*t12;
1236  t42 = t31-t32-t33+t34-t35+1.0/8.0-t36+t37+t38-t39-t40+t41;
1237  t43 = t3+t7-t9-t11-t14-t15-t16+t17-t18+t20+1.0/32.0-t21+t23+t25-t27-t28+
1238 t29;
1239  t44 = 9.0/8.0*t2;
1240  t45 = 5.0/8.0*t6;
1241  t46 = t8/2.0;
1242  t47 = t1/8.0;
1243  t48 = 5.0/8.0*xi;
1244  t49 = 5.0/8.0*t5;
1245  t50 = 5.0/8.0*zeta;
1246  t51 = t44-t45-t46+t31-t32-t33-t47-t48+t49-t35+1.0/8.0-t50+t41;
1247  t52 = 3.0/2.0*t10;
1248  t53 = 5.0/2.0*t13;
1249  t54 = t4/2.0;
1250  t55 = 3.0/2.0*t1;
1251  t56 = 3.0/2.0*t19;
1252  t57 = 3.0/2.0*zeta;
1253  t58 = 5.0/2.0*t12;
1254  t60 = -t44+t45+t46+t31-t32-t33-t47+t48-t49-t35+1.0/8.0-t50+t41;
1255  t61 = -t3-t7+t9-t11-t14-t15-t16-t17+t18+t20+1.0/32.0+t21-t23-t25+t27-t28+
1256 t29;
1257  t62 = t31-t32-t33+t34-t35+1.0/8.0+t36-t37-t38+t39-t40+t41;
1258  t63 = t3+t7-t9-t11-t14-t15-t16+t17-t18+t20+1.0/32.0+t21-t23-t25+t27-t28+
1259 t29;
1260  t64 = 3.0/8.0*t4;
1261  t65 = 9.0/8.0*xi;
1262  t66 = t44-t45+t64-t47-t65+t49-t35+1.0/8.0-t36+t37+t38-t39;
1263  t67 = 3.0/2.0*t4;
1264  t68 = 15.0/2.0*eta;
1265  t69 = 15.0/2.0*t22;
1266  t70 = 15.0/2.0*t24;
1267  t71 = 15.0/2.0*t26;
1268  t73 = -t44+t45+t64-t47+t65-t49-t35+1.0/8.0-t36+t37+t38-t39;
1269  t74 = 3.0/2.0*t2;
1270  t75 = 5.0/2.0*t6;
1271  t76 = t1/2.0;
1272  t77 = 3.0/2.0*xi;
1273  t78 = 5.0/2.0*t5;
1274  t80 = -t44+t45+t64-t47+t65-t49-t35+1.0/8.0+t36-t37-t38+t39;
1275  t82 = t44-t45+t64-t47-t65+t49-t35+1.0/8.0+t36-t37-t38+t39;
1276  t84 = -t3-t7-t9+t11+t14-t15-t16-t17+t18+t20+1.0/32.0-t21+t23+t25-t27+t28-
1277 t29;
1278  t85 = -t31+t32-t33+t34-t35+1.0/8.0-t36+t37+t38-t39+t40-t41;
1279  t86 = t3+t7+t9+t11+t14-t15-t16+t17-t18+t20+1.0/32.0-t21+t23+t25-t27+t28-
1280 t29;
1281  t87 = t44-t45+t46-t31+t32-t33-t47-t48+t49-t35+1.0/8.0+t50-t41;
1282  t89 = -t44+t45-t46-t31+t32-t33-t47+t48-t49-t35+1.0/8.0+t50-t41;
1283  t90 = -t3-t7-t9+t11+t14-t15-t16-t17+t18+t20+1.0/32.0+t21-t23-t25+t27+t28-
1284 t29;
1285  t91 = -t31+t32-t33+t34-t35+1.0/8.0+t36-t37-t38+t39+t40-t41;
1286  t92 = t3+t7+t9+t11+t14-t15-t16+t17-t18+t20+1.0/32.0+t21-t23-t25+t27+t28-
1287 t29;
1288  values[0] = t30;
1289  values[1] = t42;
1290  values[2] = t43;
1291  values[3] = t51;
1292  values[4] = t52-t53-t54-t55+t56+1.0/2.0-t57+t58;
1293  values[5] = t60;
1294  values[6] = t61;
1295  values[7] = t62;
1296  values[8] = t63;
1297  values[9] = t66;
1298  values[10] = -t67-t55+t56+3.0/2.0-t68+t69+t70-t71;
1299  values[11] = t73;
1300  values[12] = -t74+t75-t67-t76+t77-t78+t56+1.0/2.0;
1301  values[13] = t80;
1302  values[14] = -t67-t55+t56+3.0/2.0+t68-t69-t70+t71;
1303  values[15] = t82;
1304  values[16] = t74-t75-t67-t76-t77+t78+t56+1.0/2.0;
1305  values[17] = t84;
1306  values[18] = t85;
1307  values[19] = t86;
1308  values[20] = t87;
1309  values[21] = -t52+t53-t54-t55+t56+1.0/2.0+t57-t58;
1310  values[22] = t89;
1311  values[23] = t90;
1312  values[24] = t91;
1313  values[25] = t92;
1314  values[26] = -27.0/32.0+27.0/32.0*t1+27.0/32.0*t4-27.0/32.0*t19;
1315  values[27] = -135.0/32.0*zeta+135.0/32.0*t12+135.0/32.0*t10-135.0/32.0*t13;
1316  values[28] = -405.0/32.0*eta+405.0/32.0*t22+405.0/32.0*t24-405.0/32.0*t26;
1317  values[29] = -135.0/32.0*xi+135.0/32.0*t2+135.0/32.0*t5-135.0/32.0*t6;
1318 }
1319 
1320 static void C_H_UL2_3D_DeriveEtaZeta(double xi, double eta, double zeta,
1321  double *values)
1322 {
1323  double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19,
1324  t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39,
1325  t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59,
1326  t60, t61, t62, t63, t64, t65, t66, t67, t68, t69, t70, t71, t72, t73, t74, t75, t76, t77, t78, t79,
1327  t80, t81, t82, t83, t84, t85, t86, t87, t88, t89, t90, t91, t92, t93, t94, t95, t96, t97, t98, t99;
1328 
1329  t1 = xi*eta;
1330  t2 = t1*zeta;
1331  t3 = 3.0/16.0*t2;
1332  t4 = xi*xi;
1333  t7 = t4*xi*eta*zeta;
1334  t8 = 5.0/16.0*t7;
1335  t9 = t4/8.0;
1336  t10 = xi*zeta;
1337  t11 = t10/4.0;
1338  t12 = t1/4.0;
1339  t13 = eta*t4;
1340  t14 = 3.0/32.0*t13;
1341  t15 = zeta*zeta;
1342  t16 = t13*t15;
1343  t17 = 15.0/32.0*t16;
1344  t18 = zeta*t4;
1345  t19 = 3.0/32.0*t18;
1346  t20 = eta*zeta;
1347  t21 = t20/16.0;
1348  t22 = 5.0/32.0*zeta;
1349  t23 = t20*t4;
1350  t24 = 9.0/16.0*t23;
1351  t25 = xi/8.0;
1352  t26 = eta*eta;
1353  t27 = zeta*t26;
1354  t28 = 15.0/32.0*t27;
1355  t29 = t18*t26;
1356  t30 = 15.0/32.0*t29;
1357  t31 = 5.0/32.0*eta;
1358  t32 = eta*t15;
1359  t33 = 15.0/32.0*t32;
1360  t34 = -t3-t8+t9+t11+t12-t14-t17-t19-t21-t22+t24-t25+t28-t30-t31+t33;
1361  t35 = t4/4.0;
1362  t36 = 9.0/8.0*t13;
1363  t37 = 15.0/8.0*t16;
1364  t38 = 9.0/8.0*t18;
1365  t39 = 3.0/4.0*t20;
1366  t40 = 9.0/8.0*zeta;
1367  t41 = 3.0/4.0*t23;
1368  t42 = 15.0/8.0*t27;
1369  t43 = 15.0/8.0*t29;
1370  t44 = 9.0/8.0*eta;
1371  t45 = 15.0/8.0*t32;
1372  t46 = -t35+t36-t37+t38+1.0/4.0+t39-t40-t41+t42-t43-t44+t45;
1373  t47 = t3+t8+t9-t11-t12-t14-t17-t19-t21-t22+t24+t25+t28-t30-t31+t33;
1374  t48 = 9.0/4.0*t2;
1375  t49 = 5.0/4.0*t7;
1376  t50 = t1/2.0;
1377  t51 = t20/4.0;
1378  t52 = 5.0/8.0*eta;
1379  t54 = 3.0/2.0*t13;
1380  t55 = 15.0/2.0*t16;
1381  t56 = 3.0*t20;
1382  t57 = 3.0*t23;
1383  t58 = 3.0/2.0*eta;
1384  t59 = 15.0/2.0*t32;
1385  t62 = -t3-t8-t9-t11+t12-t14-t17+t19-t21+t22+t24+t25-t28+t30-t31+t33;
1386  t63 = t35+t36-t37-t38-1.0/4.0+t39+t40-t41-t42+t43-t44+t45;
1387  t64 = t3+t8-t9+t11-t12-t14-t17+t19-t21+t22+t24-t25-t28+t30-t31+t33;
1388  t65 = t10/2.0;
1389  t66 = 5.0/8.0*zeta;
1390  t68 = 3.0/2.0*t18;
1391  t69 = 3.0/2.0*zeta;
1392  t70 = 15.0/2.0*t27;
1393  t71 = 15.0/2.0*t29;
1394  t74 = 3.0*t2;
1395  t75 = 5.0*t7;
1396  t81 = -t3-t8-t9+t11-t12+t14+t17-t19-t21-t22+t24+t25+t28-t30+t31-t33;
1397  t82 = t35-t36+t37+t38-1.0/4.0+t39-t40-t41+t42-t43+t44-t45;
1398  t83 = t3+t8-t9-t11+t12+t14+t17-t19-t21-t22+t24-t25+t28-t30+t31-t33;
1399  t87 = -t3-t8+t9-t11-t12+t14+t17+t19-t21+t22+t24-t25-t28+t30+t31-t33;
1400  t88 = -t35-t36+t37-t38+1.0/4.0+t39+t40-t41-t42+t43+t44-t45;
1401  t89 = t3+t8+t9+t11+t12+t14+t17+t19-t21+t22+t24+t25-t28+t30+t31-t33;
1402  values[0] = t34;
1403  values[1] = t46;
1404  values[2] = t47;
1405  values[3] = t48-t49-t50+t36-t37-t51-t41-t52+t45;
1406  values[4] = t54-t55-t56+t57-t58+t59;
1407  values[5] = -t48+t49+t50+t36-t37-t51-t41-t52+t45;
1408  values[6] = t62;
1409  values[7] = t63;
1410  values[8] = t64;
1411  values[9] = t48-t49-t65+t38-t51-t66-t41+t42-t43;
1412  values[10] = t68-t56-t69+t57+t70-t71;
1413  values[11] = -t48+t49+t65+t38-t51-t66-t41+t42-t43;
1414  values[12] = -t74+t75-t20+t57;
1415  values[13] = -t48+t49-t65-t38-t51+t66-t41-t42+t43;
1416  values[14] = -t68-t56+t69+t57-t70+t71;
1417  values[15] = t48-t49+t65-t38-t51+t66-t41-t42+t43;
1418  values[16] = t74-t75-t20+t57;
1419  values[17] = t81;
1420  values[18] = t82;
1421  values[19] = t83;
1422  values[20] = t48-t49+t50-t36+t37-t51-t41+t52-t45;
1423  values[21] = -t54+t55-t56+t57+t58-t59;
1424  values[22] = -t48+t49-t50-t36+t37-t51-t41+t52-t45;
1425  values[23] = t87;
1426  values[24] = t88;
1427  values[25] = t89;
1428  values[26] = 27.0/16.0*t20-27.0/16.0*t23;
1429  values[27] = -135.0/32.0*eta+405.0/32.0*t32+135.0/32.0*t13-405.0/32.0*t16;
1430  values[28] = -135.0/32.0*zeta+405.0/32.0*t27+135.0/32.0*t18-405.0/32.0*t29;
1431  values[29] = 135.0/16.0*t2-135.0/16.0*t7;
1432 }
1433 
1434 static void C_H_UL2_3D_DeriveZetaZeta(double xi, double eta, double zeta,
1435  double *values)
1436 {
1437  double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19,
1438  t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39,
1439  t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59,
1440  t60, t61, t62, t63, t64, t65, t66, t67, t68, t69, t70, t71, t72, t73, t74, t75, t76, t77, t78, t79,
1441  t80, t81, t82, t83, t84, t85, t86, t87, t88, t89, t90, t91, t92, t93, t94, t95, t96, t97, t98, t99;
1442 
1443  t1 = eta*eta;
1444  t2 = xi*t1;
1445  t3 = 3.0/32.0*t2;
1446  t4 = xi*xi;
1447  t5 = t4*xi;
1448  t6 = t5*t1;
1449  t7 = 5.0/32.0*t6;
1450  t8 = xi*eta;
1451  t9 = t8/4.0;
1452  t10 = zeta*t4;
1453  t11 = t10*t1;
1454  t12 = 15.0/32.0*t11;
1455  t13 = eta*t4;
1456  t14 = 3.0/32.0*t13;
1457  t15 = t1/32.0;
1458  t16 = t4/32.0;
1459  t17 = 5.0/32.0*t5;
1460  t18 = 5.0/32.0*eta;
1461  t19 = t4*t1;
1462  t20 = 9.0/32.0*t19;
1463  t21 = 15.0/32.0*zeta;
1464  t22 = t1*eta;
1465  t23 = 5.0/32.0*t22;
1466  t24 = t4*t22;
1467  t25 = 5.0/32.0*t24;
1468  t26 = t1*zeta;
1469  t27 = 15.0/32.0*t26;
1470  t28 = 15.0/32.0*t10;
1471  t29 = 5.0/32.0*xi;
1472  t30 = -t3-t7+t9-t12-t14+1.0/32.0-t15-t16+t17-t18+t20-t21+t23-t25+t27+t28-
1473 t29;
1474  t31 = 15.0/8.0*t11;
1475  t32 = 9.0/8.0*t13;
1476  t33 = 3.0/8.0*t1;
1477  t34 = t4/8.0;
1478  t35 = 9.0/8.0*eta;
1479  t36 = 3.0/8.0*t19;
1480  t37 = 15.0/8.0*zeta;
1481  t38 = 5.0/8.0*t22;
1482  t39 = 5.0/8.0*t24;
1483  t40 = 15.0/8.0*t26;
1484  t41 = 15.0/8.0*t10;
1485  t42 = -t31+t32+1.0/8.0+t33-t34-t35-t36-t37+t38-t39+t40+t41;
1486  t43 = t3+t7-t9-t12-t14+1.0/32.0-t15-t16-t17-t18+t20-t21+t23-t25+t27+t28+
1487 t29;
1488  t44 = 9.0/8.0*t2;
1489  t45 = 5.0/8.0*t6;
1490  t46 = t1/8.0;
1491  t47 = 3.0/8.0*t4;
1492  t48 = 5.0/8.0*t5;
1493  t49 = 9.0/8.0*xi;
1494  t50 = t44-t45-t31+1.0/8.0-t46+t47+t48-t36-t37+t40+t41-t49;
1495  t51 = 15.0/2.0*t11;
1496  t52 = 3.0/2.0*t1;
1497  t53 = 3.0/2.0*t4;
1498  t54 = 3.0/2.0*t19;
1499  t55 = 15.0/2.0*zeta;
1500  t56 = 15.0/2.0*t26;
1501  t57 = 15.0/2.0*t10;
1502  t59 = -t44+t45-t31+1.0/8.0-t46+t47-t48-t36-t37+t40+t41+t49;
1503  t60 = -t3-t7-t9-t12+t14+1.0/32.0-t15-t16+t17+t18+t20-t21-t23+t25+t27+t28-
1504 t29;
1505  t61 = -t31-t32+1.0/8.0+t33-t34+t35-t36-t37-t38+t39+t40+t41;
1506  t62 = t3+t7+t9-t12+t14+1.0/32.0-t15-t16-t17+t18+t20-t21-t23+t25+t27+t28+
1507 t29;
1508  t63 = t8/2.0;
1509  t64 = 5.0/8.0*eta;
1510  t65 = 5.0/8.0*xi;
1511  t66 = t44-t45-t63+t32+1.0/8.0-t46-t34+t48-t64-t36+t38-t39-t65;
1512  t67 = 3.0/2.0*t13;
1513  t68 = t4/2.0;
1514  t69 = 3.0/2.0*eta;
1515  t70 = 5.0/2.0*t22;
1516  t71 = 5.0/2.0*t24;
1517  t73 = -t44+t45+t63+t32+1.0/8.0-t46-t34-t48-t64-t36+t38-t39+t65;
1518  t74 = 3.0/2.0*t2;
1519  t75 = 5.0/2.0*t6;
1520  t76 = t1/2.0;
1521  t77 = 5.0/2.0*t5;
1522  t78 = 3.0/2.0*xi;
1523  t80 = -t44+t45-t63-t32+1.0/8.0-t46-t34-t48+t64-t36-t38+t39+t65;
1524  t82 = t44-t45+t63-t32+1.0/8.0-t46-t34+t48+t64-t36-t38+t39-t65;
1525  t84 = -t3-t7+t9+t12-t14+1.0/32.0-t15-t16+t17-t18+t20+t21+t23-t25-t27-t28-
1526 t29;
1527  t85 = t31+t32+1.0/8.0+t33-t34-t35-t36+t37+t38-t39-t40-t41;
1528  t86 = t3+t7-t9+t12-t14+1.0/32.0-t15-t16-t17-t18+t20+t21+t23-t25-t27-t28+
1529 t29;
1530  t87 = t44-t45+t31+1.0/8.0-t46+t47+t48-t36+t37-t40-t41-t49;
1531  t89 = -t44+t45+t31+1.0/8.0-t46+t47-t48-t36+t37-t40-t41+t49;
1532  t90 = -t3-t7-t9+t12+t14+1.0/32.0-t15-t16+t17+t18+t20+t21-t23+t25-t27-t28-
1533 t29;
1534  t91 = t31-t32+1.0/8.0+t33-t34+t35-t36+t37-t38+t39-t40-t41;
1535  t92 = t3+t7+t9+t12+t14+1.0/32.0-t15-t16-t17+t18+t20+t21-t23+t25-t27-t28+
1536 t29;
1537  values[0] = t30;
1538  values[1] = t42;
1539  values[2] = t43;
1540  values[3] = t50;
1541  values[4] = -t51+3.0/2.0-t52-t53+t54-t55+t56+t57;
1542  values[5] = t59;
1543  values[6] = t60;
1544  values[7] = t61;
1545  values[8] = t62;
1546  values[9] = t66;
1547  values[10] = t67+1.0/2.0-t52-t68-t69+t54+t70-t71;
1548  values[11] = t73;
1549  values[12] = -t74+t75+1.0/2.0-t76-t53-t77+t54+t78;
1550  values[13] = t80;
1551  values[14] = -t67+1.0/2.0-t52-t68+t69+t54-t70+t71;
1552  values[15] = t82;
1553  values[16] = t74-t75+1.0/2.0-t76-t53+t77+t54-t78;
1554  values[17] = t84;
1555  values[18] = t85;
1556  values[19] = t86;
1557  values[20] = t87;
1558  values[21] = t51+3.0/2.0-t52-t53+t54+t55-t56-t57;
1559  values[22] = t89;
1560  values[23] = t90;
1561  values[24] = t91;
1562  values[25] = t92;
1563  values[26] = -27.0/32.0+27.0/32.0*t1+27.0/32.0*t4-27.0/32.0*t19;
1564  values[27] = -405.0/32.0*zeta+405.0/32.0*t26+405.0/32.0*t10-405.0/32.0*t11;
1565  values[28] = -135.0/32.0*eta+135.0/32.0*t22+135.0/32.0*t13-135.0/32.0*t24;
1566  values[29] = -135.0/32.0*xi+135.0/32.0*t2+135.0/32.0*t5-135.0/32.0*t6;
1567 }
1568 
1569 TBaseFunct3D *BF_C_H_UL2_3D_Obj =
1570 new TBaseFunct3D(30, BF_C_H_UL2_3D, BFUnitHexahedron,
1571  C_H_UL2_3D_Funct, C_H_UL2_3D_DeriveXi,
1572  C_H_UL2_3D_DeriveEta, C_H_UL2_3D_DeriveZeta,
1573  C_H_UL2_3D_DeriveXiXi, C_H_UL2_3D_DeriveXiEta,
1574  C_H_UL2_3D_DeriveXiZeta, C_H_UL2_3D_DeriveEtaEta,
1575  C_H_UL2_3D_DeriveEtaZeta, C_H_UL2_3D_DeriveZetaZeta,
1576  3, 2,
1577  0, NULL);
Definition: BaseFunct3D.h:27