ParMooN
 All Classes Functions Variables Friends Pages
BF_C_Q_M6_2D.h
1 // ***********************************************************************
2 // M6 element with bubbles, conforming, 2D
3 // ***********************************************************************
4 
5 // base function values
6 static void C_Q_M6_2D_Funct(double xi, double eta, double *values)
7 {
8  double t1 = eta*eta;
9  double t2 = 65431.0/67200.0*t1;
10  double t3 = t1*t1;
11  double t4 = 26111.0/13440.0*t3;
12  double t5 = xi*xi;
13  double t6 = t5*t5;
14  double t7 = t6*xi;
15  double t8 = 81.0/160.0*t7;
16  double t9 = t3*eta;
17  double t10 = 81.0/160.0*t9;
18  double t11 = t5*t1;
19  double t19 = (1.0-t5)*(3.0/8.0+35.0/8.0*t6-15.0/4.0*t5)*(1.0+eta);
20  double t20 = 81.0/700.0*t19;
21  double t27 = (1.0-t1)*(3.0/8.0+35.0/8.0*t3-15.0/4.0*t1)*(1.0+xi);
22  double t28 = 81.0/700.0*t27;
23  double t29 = t6*t5;
24  double t30 = 81.0/80.0*t29;
25  double t31 = t5*xi;
26  double t32 = t31*eta;
27  double t35 = t3*t1;
28  double t36 = 81.0/80.0*t35;
29  double t38 = 26111.0/13440.0*t6;
30  double t40 = -243.0/2800.0+t2-t4-t8-t10-229.0/192.0*t11+t20+t28+t30-89.0/64.0*t32+43.0/96.0*t31+t36+251.0/16800.0*xi-t38+251.0/16800.0*eta;
31  double t41 = t1*eta;
32  double t43 = t6*eta;
33  double t44 = 369.0/560.0*t43;
34  double t45 = xi*eta;
35  double t47 = xi*t41;
36  double t49 = 65431.0/67200.0*t5;
37  double t50 = t5*t41;
38  double t52 = xi*t9;
39  double t53 = 81.0/160.0*t52;
40  double t54 = t5*t3;
41  double t55 = 277.0/384.0*t54;
42  double t56 = t31*t41;
43  double t58 = t6*t1;
44  double t59 = 277.0/384.0*t58;
45  double t60 = t7*eta;
46  double t61 = 81.0/160.0*t60;
47  double t62 = t5*eta;
48  double t64 = xi*t1;
49  double t66 = t31*t1;
50  double t68 = xi*t3;
51  double t69 = 369.0/560.0*t68;
52  double t70 = 43.0/96.0*t41-t44+291.0/320.0*t45-89.0/64.0*t47+t49-t50/6.0+t53+t55+71.0/64.0*t56+t59+t61+10399.0/16800.0*t62+10399.0/16800.0*t64-t66/6.0-t69;
53  double t72 = 21.0/64.0*t1;
54  double t73 = 21.0/64.0*t3;
55  double t74 = 81.0/40.0*t7;
56  double t75 = 75.0/64.0*t11;
57  double t76 = 243.0/350.0*t19;
58  double t77 = 243.0/40.0*t29;
59  double t81 = 11043.0/1120.0*t6;
60  double t83 = 729.0/2800.0-t72+t73+t74+t75-t76-t77+207.0/64.0*t32-297.0/128.0*t31+189.0/640.0*xi+t81+2157.0/22400.0*eta;
61  double t84 = 21.0/128.0*t41;
62  double t85 = 1269.0/560.0*t43;
63  double t86 = 387.0/320.0*t45;
64  double t88 = 22653.0/5600.0*t5;
65  double t89 = 21.0/128.0*t50;
66  double t90 = 21.0/64.0*t54;
67  double t91 = 63.0/64.0*t56;
68  double t92 = 27.0/32.0*t58;
69  double t93 = 81.0/40.0*t60;
70  double t97 = t84+t85-t86+63.0/64.0*t47-t88-t89-t90-t91-t92-t93-52917.0/22400.0*t62-9.0/128.0*t64+9.0/128.0*t66;
71  double t99 = 105.0/128.0*t1;
72  double t100 = 105.0/128.0*t3;
73  double t101 = 81.0/32.0*t7;
74  double t102 = 483.0/128.0*t11;
75  double t103 = 243.0/140.0*t19;
76  double t104 = 243.0/16.0*t29;
77  double t108 = 9909.0/448.0*t6;
78  double t110 = -729.0/1120.0-t99+t100-t101+t102+t103+t104-153.0/128.0*t32+999.0/256.0*t31-351.0/256.0*xi-t108-9507.0/8960.0*eta;
79  double t111 = 105.0/256.0*t41;
80  double t112 = 351.0/112.0*t43;
81  double t113 = 171.0/128.0*t45;
82  double t115 = 16983.0/2240.0*t5;
83  double t116 = 105.0/256.0*t50;
84  double t117 = 105.0/128.0*t54;
85  double t118 = 315.0/128.0*t56;
86  double t119 = 189.0/64.0*t58;
87  double t120 = 81.0/32.0*t60;
88  double t122 = 63.0/256.0*t64;
89  double t123 = 63.0/256.0*t66;
90  double t124 = t111-t112-t113+315.0/128.0*t47+t115-t116-t117-t118-t119+t120+37587.0/8960.0*t62+t122-t123;
91  double t128 = 99.0/32.0*t45;
92  double t131 = 99.0/32.0*t32;
93  double t132 = 677.0/96.0*t11;
94  double t133 = 99.0/32.0*t47;
95  double t134 = 171.0/56.0*t43;
96  double t137 = 99.0/64.0*xi+10417.0/6720.0*eta+t128-30937.0/6720.0*t62-99.0/64.0*t64-t131-t132-t133+t134+99.0/64.0*t66+227.0/192.0*t50;
97  double t139 = 83.0/96.0*t1;
98  double t143 = 35.0/96.0*t3;
99  double t145 = 99.0/32.0*t56;
100  double t146 = 35.0/96.0*t54;
101  double t148 = 81.0/35.0*t19;
102  double t149 = 243.0/280.0-5031.0/560.0*t5+t139-99.0/64.0*t31-227.0/192.0*t41+3177.0/112.0*t6-t143+99.0/16.0*t58+t145+t146-81.0/4.0*t29-t148;
103  double t151 = 21.0/128.0*t1;
104  double t152 = 21.0/128.0*t3;
105  double t153 = 399.0/128.0*t11;
106  double t158 = -729.0/1120.0-t151+t152+t101+t153+t103+t104+531.0/128.0*t32-621.0/256.0*t31-27.0/256.0*xi-t108-6567.0/8960.0*eta;
107  double t159 = 21.0/256.0*t41;
108  double t160 = 207.0/128.0*t45;
109  double t162 = 21.0/256.0*t50;
110  double t163 = 21.0/128.0*t54;
111  double t164 = 63.0/128.0*t56;
112  double t168 = t159-t112-t160+63.0/128.0*t47+t115-t162-t163-t164-t119-t120+34647.0/8960.0*t62+315.0/256.0*t64-315.0/256.0*t66;
113  double t170 = 3.0/64.0*t1;
114  double t171 = 3.0/64.0*t3;
115  double t172 = 51.0/64.0*t11;
116  double t177 = 729.0/2800.0+t170-t171-t74+t172-t76-t77-153.0/64.0*t32+351.0/128.0*t31-459.0/640.0*xi+t81+6357.0/22400.0*eta;
117  double t178 = 3.0/128.0*t41;
118  double t179 = 117.0/320.0*t45;
119  double t181 = 3.0/128.0*t50;
120  double t182 = 3.0/64.0*t54;
121  double t183 = 9.0/64.0*t56;
122  double t187 = -t178+t85+t179-9.0/64.0*t47-t88+t181+t182+t183-t92+t93-57117.0/22400.0*t62+63.0/128.0*t64-63.0/128.0*t66;
123  double t189 = 95563.0/201600.0*t1;
124  double t190 = 17363.0/40320.0*t3;
125  double t191 = 403.0/576.0*t11;
126  double t192 = 125.0/192.0*t32;
127  double t197 = -t189+t190+t8-t10-t191+t20-t28+t30+t192-157.0/192.0*t31+11923.0/33600.0*xi-t38-1459.0/6300.0*eta+25.0/36.0*t41;
128  double t198 = 163.0/960.0*t45;
129  double t199 = 125.0/192.0*t47;
130  double t201 = 263.0/1152.0*t54;
131  double t202 = 71.0/192.0*t56;
132  double t206 = -t44-t198+t199+t49-119.0/288.0*t50-t53+t201-t202+t59-t61+21811.0/25200.0*t62-33223.0/33600.0*t64+103.0/192.0*t66+t69;
133  double t210 = 177.0/320.0*t45;
134  double t214 = 39.0/64.0*t11;
135  double t216 = 21.0/128.0*t66;
136  double t218 = 1269.0/560.0*t68;
137  double t219 = 21.0/64.0*t5;
138  double t220 = -9507.0/22400.0*xi+369.0/640.0*eta+t210-45.0/128.0*t62+60267.0/22400.0*t64-21.0/64.0*t32+t214-165.0/64.0*t47-t216+45.0/128.0*t50-t218-t219;
139  double t221 = 12573.0/5600.0*t1;
140  double t222 = 21.0/128.0*t31;
141  double t224 = 21.0/64.0*t6;
142  double t225 = 2223.0/1120.0*t3;
143  double t226 = 81.0/40.0*t9;
144  double t227 = 21.0/64.0*t58;
145  double t228 = 21.0/64.0*t56;
146  double t229 = 9.0/32.0*t54;
147  double t230 = 81.0/40.0*t52;
148  double t231 = 243.0/350.0*t27;
149  double t232 = -729.0/2800.0+t221+t222-333.0/128.0*t41+t224-t225+t226-t227+t228-t229+t230+t231;
150  double t236 = 39.0/128.0*t45;
151  double t240 = 231.0/128.0*t11;
152  double t242 = 105.0/256.0*t66;
153  double t244 = 351.0/112.0*t68;
154  double t245 = 105.0/128.0*t5;
155  double t246 = 2157.0/8960.0*xi-99.0/256.0*eta-t236-189.0/256.0*t62-30237.0/8960.0*t64-105.0/128.0*t32+t240+363.0/128.0*t47-t242+189.0/256.0*t50+t244-t245;
156  double t247 = 10683.0/2240.0*t1;
157  double t248 = 105.0/256.0*t31;
158  double t250 = 105.0/128.0*t6;
159  double t251 = 1845.0/448.0*t3;
160  double t252 = 81.0/32.0*t9;
161  double t253 = 105.0/128.0*t58;
162  double t254 = 105.0/128.0*t56;
163  double t255 = 63.0/64.0*t54;
164  double t256 = 81.0/32.0*t52;
165  double t257 = 243.0/140.0*t27;
166  double t258 = 729.0/1120.0-t247+t248+747.0/256.0*t41+t250+t251-t252-t253+t254-t255-t256-t257;
167  double t262 = 33.0/32.0*t45;
168  double t265 = 33.0/32.0*t32;
169  double t266 = 281.0/96.0*t11;
170  double t267 = 33.0/32.0*t47;
171  double t270 = 171.0/56.0*t68;
172  double t271 = -3487.0/6720.0*xi-33.0/64.0*eta-t262+33.0/64.0*t62+24007.0/6720.0*t64+t265-t266+t267-29.0/192.0*t66-33.0/64.0*t50-t270;
173  double t272 = 83.0/96.0*t5;
174  double t276 = 35.0/96.0*t6;
175  double t278 = 35.0/96.0*t58;
176  double t279 = 33.0/32.0*t56;
177  double t281 = 81.0/35.0*t27;
178  double t282 = -243.0/280.0+t272+3351.0/560.0*t1+29.0/192.0*t31+33.0/64.0*t41-t276-573.0/112.0*t3+t278-t279+33.0/16.0*t54+t281;
179  double t286 = 165.0/128.0*t45;
180  double t287 = 63.0/256.0*t62;
181  double t290 = 147.0/128.0*t11;
182  double t292 = 21.0/256.0*t66;
183  double t293 = 63.0/256.0*t50;
184  double t294 = 21.0/128.0*t5;
185  double t295 = 5097.0/8960.0*xi+225.0/256.0*eta+t286+t287-33177.0/8960.0*t64-21.0/128.0*t32+t290-489.0/128.0*t47-t292-t293+t244-t294;
186  double t296 = 21.0/256.0*t31;
187  double t298 = 21.0/128.0*t6;
188  double t299 = 21.0/128.0*t58;
189  double t300 = 21.0/128.0*t56;
190  double t301 = 729.0/1120.0-t247+t296-873.0/256.0*t41+t298+t251+t252-t299+t300-t255+t256-t257;
191  double t305 = 87.0/320.0*t45;
192  double t309 = 15.0/64.0*t11;
193  double t311 = 3.0/128.0*t66;
194  double t313 = 3.0/64.0*t5;
195  double t314 = -5307.0/22400.0*xi-279.0/640.0*eta-t305+27.0/128.0*t62+56067.0/22400.0*t64+3.0/64.0*t32+t309+147.0/64.0*t47+t311-27.0/128.0*t50-t218+t313;
196  double t315 = 3.0/128.0*t31;
197  double t317 = 3.0/64.0*t6;
198  double t318 = 3.0/64.0*t58;
199  double t319 = 3.0/64.0*t56;
200  double t320 = -729.0/2800.0+t221-t315+315.0/128.0*t41-t317-t225-t226+t318-t319-t229-t230+t231;
201  double t326 = 17363.0/40320.0*t6;
202  double t329 = 243.0/2800.0-t189+t190+t8+t10-119.0/576.0*t11-t20-t28-233.0/576.0*t32-329.0/576.0*t31+10919.0/100800.0*xi+t326+10919.0/100800.0*eta-329.0/576.0*t41;
203  double t332 = 95563.0/201600.0*t5;
204  double t335 = 263.0/1152.0*t58;
205  double t339 = t44-221.0/2880.0*t45-233.0/576.0*t47-t332+167.0/576.0*t50+t53+t201+71.0/576.0*t56+t335+t61-74819.0/100800.0*t62-74819.0/100800.0*t64+167.0/576.0*t66+t69;
206  double t348 = 12573.0/5600.0*t5;
207  double t349 = -279.0/640.0*xi-5307.0/22400.0*eta-t305+56067.0/22400.0*t62+27.0/128.0*t64+147.0/64.0*t32+t309+3.0/64.0*t47-t85-27.0/128.0*t66+t181+t348;
208  double t351 = 2223.0/1120.0*t6;
209  double t352 = 9.0/32.0*t58;
210  double t353 = -729.0/2800.0+t170+315.0/128.0*t31-t178-t351-t171-t74-t93-t352-t319+t182+t76;
211  double t360 = 10683.0/2240.0*t5;
212  double t361 = 225.0/256.0*xi+5097.0/8960.0*eta+t286-33177.0/8960.0*t62+t122-489.0/128.0*t32+t290-21.0/128.0*t47+t112-t123-t162-t360;
213  double t363 = 1845.0/448.0*t6;
214  double t364 = 63.0/64.0*t58;
215  double t365 = 729.0/1120.0-t151-873.0/256.0*t31+t159+t363+t152+t101+t120-t364+t300-t163-t103;
216  double t373 = -33.0/64.0*xi-3487.0/6720.0*eta-t262+24007.0/6720.0*t62+33.0/64.0*t64+t265-t266+t267-t134-33.0/64.0*t66-29.0/192.0*t50;
217  double t379 = -243.0/280.0+3351.0/560.0*t5+t139+33.0/64.0*t31+29.0/192.0*t41-573.0/112.0*t6-t143+33.0/16.0*t58-t279+t146+t148;
218  double t388 = -99.0/256.0*xi+2157.0/8960.0*eta-t236-30237.0/8960.0*t62-189.0/256.0*t64+363.0/128.0*t32+t240-105.0/128.0*t47+t112+189.0/256.0*t66-t116-t360;
219  double t390 = 729.0/1120.0-t99+747.0/256.0*t31+t111+t363+t100-t101-t120-t364+t254-t117-t103;
220  double t399 = 369.0/640.0*xi-9507.0/22400.0*eta+t210+60267.0/22400.0*t62-45.0/128.0*t64-165.0/64.0*t32+t214-21.0/64.0*t47-t85+45.0/128.0*t66-t89+t348;
221  double t401 = -729.0/2800.0-t72-333.0/128.0*t31+t84-t351+t73+t74+t93-t352+t228-t90+t76;
222  double t407 = t2-t4-t8+t10-t191-t20+t28+t192+25.0/36.0*t31+t36-1459.0/6300.0*xi+t326+11923.0/33600.0*eta-157.0/192.0*t41;
223  double t412 = t44-t198+t199-t332+103.0/192.0*t50-t53+t55-t202+t335-t61-33223.0/33600.0*t62+21811.0/25200.0*t64-119.0/288.0*t66-t69;
224  double t414 = 22653.0/5600.0*t1;
225  double t415 = 11043.0/1120.0*t3;
226  double t417 = 243.0/40.0*t35;
227  double t420 = 729.0/2800.0-t414+t415-t226+t172-t231-9.0/64.0*t32-t315-t417+6357.0/22400.0*xi-t317-459.0/640.0*eta;
228  double t424 = 27.0/32.0*t54;
229  double t427 = 351.0/128.0*t41+t179-153.0/64.0*t47+t313-63.0/128.0*t50+t230-t424+t183+t318+63.0/128.0*t62-57117.0/22400.0*t64+t311+t218;
230  double t429 = 16983.0/2240.0*t1;
231  double t430 = 9909.0/448.0*t3;
232  double t432 = 243.0/16.0*t35;
233  double t435 = -729.0/1120.0+t429-t430+t252+t153+t257+63.0/128.0*t32+t296+t432-6567.0/8960.0*xi+t298-27.0/256.0*eta;
234  double t439 = 189.0/64.0*t54;
235  double t442 = -621.0/256.0*t41-t160+531.0/128.0*t47-t294-315.0/256.0*t50-t256-t439-t164-t299+315.0/256.0*t62+34647.0/8960.0*t64-t292-t244;
236  double t450 = 10417.0/6720.0*xi+99.0/64.0*eta+t128-99.0/64.0*t62-30937.0/6720.0*t64-t131-t132-t133+227.0/192.0*t66+99.0/64.0*t50+t270;
237  double t457 = 243.0/280.0+t272-5031.0/560.0*t1-227.0/192.0*t31-99.0/64.0*t41-t276+3177.0/112.0*t3+t278+t145+99.0/16.0*t54-81.0/4.0*t35-t281;
238  double t462 = -729.0/1120.0+t429-t430-t252+t102+t257+315.0/128.0*t32+t248+t432-9507.0/8960.0*xi+t250-351.0/256.0*eta;
239  double t466 = 999.0/256.0*t41-t113-153.0/128.0*t47-t245-t293+t256-t439-t118-t253+t287+37587.0/8960.0*t64-t242-t244;
240  double t471 = 729.0/2800.0-t414+t415+t226+t75-t231+63.0/64.0*t32+t222-t417+2157.0/22400.0*xi+t224+189.0/640.0*eta;
241  double t477 = -297.0/128.0*t41-t86+207.0/64.0*t47-t219+9.0/128.0*t50-t230-t424-t91-t227-9.0/128.0*t62-52917.0/22400.0*t64-t216+t218;
242  double t479 = 16.0/9.0*xi;
243  double t480 = 16.0/9.0*eta;
244  double t482 = 16.0/9.0*t62;
245  double t483 = 16.0/9.0*t64;
246  double t487 = 16.0/9.0*t66;
247  double t488 = 16.0/9.0*t50;
248  double t489 = 32.0/9.0*t5;
249  double t490 = 32.0/9.0*t1;
250  double t491 = 16.0/9.0*t31;
251  double t492 = 16.0/9.0*t41;
252  double t493 = 32.0/9.0*t6;
253  double t494 = 32.0/9.0*t3;
254  double t495 = 32.0/9.0*t58;
255  double t497 = 32.0/9.0*t54;
256  double t498 = t479+t480+64.0/9.0*t45-t482-t483-64.0/9.0*t32-64.0/9.0*t11-64.0/9.0*t47+t487+t488+t489+t490-t491-t492-t493-t494+t495+64.0/9.0*t56+t497;
257  double t499 = 8.0/3.0*xi;
258  double t500 = 8.0/3.0*eta;
259  double t501 = 16.0/3.0*t45;
260  double t502 = 8.0/3.0*t62;
261  double t503 = 8.0/3.0*t64;
262  double t504 = 16.0/3.0*t32;
263  double t505 = 16.0/3.0*t11;
264  double t506 = 16.0/3.0*t47;
265  double t507 = 8.0/3.0*t66;
266  double t508 = 8.0/3.0*t50;
267  double t510 = 8.0/3.0*t31;
268  double t511 = 8.0/3.0*t41;
269  double t514 = 16.0/3.0*t56;
270  double t515 = -t499-t500-t501+t502+t503+t504+t505+t506-t507-t508-16.0/3.0*t5+t510+t511+16.0/3.0*t6-16.0/3.0*t58-t514;
271  double t519 = -t499-t500-t501+t502+t503+t504+t505+t506-t507-t508-16.0/3.0*t1+t510+t511+16.0/3.0*t3-t514-16.0/3.0*t54;
272  double t520 = 32.0/9.0*t11;
273  double t534 = 1.0+2.0*xi+2.0*eta+4.0*t45-2.0*t62-2.0*t64-4.0*t32+t11-4.0*t47+2.0*t66+2.0*t50-t5-t1-2.0*t31-2.0*t41+4.0*t56;
274 
275  values[0] = t40+t70;
276  values[1] = t83+t97;
277  values[2] = t110+t124;
278  values[3] = t137+t149;
279  values[4] = t158+t168;
280  values[5] = t177+t187;
281  values[6] = t197+t206;
282  values[7] = t220+t232;
283  values[8] = t246+t258;
284  values[9] = t271+t282;
285  values[10] = t295+t301;
286  values[11] = t314+t320;
287  values[12] = t329+t339;
288  values[13] = t349+t353;
289  values[14] = t361+t365;
290  values[15] = t373+t379;
291  values[16] = t388+t390;
292  values[17] = t399+t401;
293  values[18] = t407+t412;
294  values[19] = t420+t427;
295  values[20] = t435+t442;
296  values[21] = t450+t457;
297  values[22] = t462+t466;
298  values[23] = t471+t477;
299  values[24] = t498;
300  values[25] = t515;
301  values[26] = t519;
302  values[27] = t479-t483-t520+t487+t489-t491-t493+t495;
303  values[28] = t534;
304  values[29] = t480-t482-t520+t488+t490-t492-t494+t497;
305 }
306 
307 // values of the derivatives in xi direction
308 static void C_Q_M6_2D_DeriveXi(double xi, double eta, double *values)
309 {
310  double t1 = xi*xi;
311  double t2 = t1*t1;
312  double t7 = 1.0+eta;
313  double t8 = xi*(3.0/8.0+35.0/8.0*t2-15.0/4.0*t1)*t7;
314  double t9 = 81.0/350.0*t8;
315  double t11 = xi*t1;
316  double t16 = (1.0-t1)*(35.0/2.0*t11-15.0/2.0*xi)*t7;
317  double t17 = 81.0/700.0*t16;
318  double t18 = eta*eta;
319  double t20 = t18*t18;
320  double t24 = (1.0-t18)*(3.0/8.0+35.0/8.0*t20-15.0/4.0*t18);
321  double t25 = 81.0/700.0*t24;
322  double t27 = 369.0/560.0*t20;
323  double t28 = t1*t18;
324  double t30 = xi*t18;
325  double t32 = t18*eta;
326  double t34 = t11*eta;
327  double t35 = 369.0/140.0*t34;
328  double t37 = t1*eta;
329  double t39 = 251.0/16800.0-t9+t17+t25+291.0/320.0*eta-t27-t28/2.0-229.0/96.0*t30-89.0/64.0*t32-t35+10399.0/16800.0*t18-267.0/64.0*t37;
330  double t40 = xi*eta;
331  double t42 = t2*eta;
332  double t43 = 81.0/32.0*t42;
333  double t44 = t11*t18;
334  double t45 = 277.0/96.0*t44;
335  double t46 = t1*t32;
336  double t48 = xi*t20;
337  double t49 = 277.0/192.0*t48;
338  double t50 = t20*eta;
339  double t51 = 81.0/160.0*t50;
340  double t52 = xi*t32;
341  double t54 = 65431.0/33600.0*xi;
342  double t56 = 26111.0/3360.0*t11;
343  double t57 = 81.0/32.0*t2;
344  double t58 = t2*xi;
345  double t59 = 243.0/40.0*t58;
346  double t60 = 10399.0/8400.0*t40+t43+t45+213.0/64.0*t46+t49+t51-t52/3.0+t54+43.0/32.0*t1-t56-t57+t59;
347  double t62 = 243.0/175.0*t8;
348  double t63 = 243.0/350.0*t16;
349  double t64 = 387.0/320.0*eta;
350  double t66 = 75.0/32.0*t30;
351  double t68 = 1269.0/140.0*t34;
352  double t73 = 81.0/8.0*t42;
353  double t74 = 27.0/8.0*t44;
354  double t75 = 189.0/64.0*t46;
355  double t76 = 21.0/32.0*t48;
356  double t77 = 21.0/64.0*t52;
357  double t78 = 22653.0/2800.0*xi;
358  double t80 = 11043.0/280.0*t11;
359  double t81 = 81.0/8.0*t2;
360  double t82 = 729.0/20.0*t58;
361  double t83 = -52917.0/11200.0*t40-t73-t74-t75-t76-t77-t78-891.0/128.0*t1+t80+t81-t82;
362  double t85 = 243.0/70.0*t8;
363  double t86 = 243.0/140.0*t16;
364  double t87 = 171.0/128.0*eta;
365  double t88 = 189.0/256.0*t28;
366  double t89 = 483.0/64.0*t30;
367  double t91 = 351.0/28.0*t34;
368  double t92 = 63.0/256.0*t18;
369  double t96 = 405.0/32.0*t42;
370  double t97 = 189.0/16.0*t44;
371  double t98 = 945.0/128.0*t46;
372  double t99 = 105.0/64.0*t48;
373  double t100 = 105.0/128.0*t52;
374  double t101 = 16983.0/1120.0*xi;
375  double t103 = 9909.0/112.0*t11;
376  double t104 = 405.0/32.0*t2;
377  double t105 = 729.0/8.0*t58;
378  double t106 = 37587.0/4480.0*t40+t96-t97-t98-t99-t100+t101+2997.0/256.0*t1-t103-t104+t105;
379  double t108 = 99.0/32.0*eta;
380  double t111 = 297.0/32.0*t37;
381  double t112 = 677.0/48.0*t30;
382  double t113 = 99.0/32.0*t32;
383  double t114 = 171.0/14.0*t34;
384  double t121 = 297.0/32.0*t46;
385  double t122 = 35.0/48.0*t48;
386  double t124 = 162.0/35.0*t8;
387  double t125 = 81.0/35.0*t16;
388  double t126 = 99.0/64.0+t108-30937.0/3360.0*t40-99.0/64.0*t18-t111-t112-t113+t114+297.0/64.0*t28+227.0/96.0*t52-5031.0/280.0*xi-297.0/64.0*t1+3177.0/28.0*t11+99.0/4.0*t44+t121+t122-243.0/2.0*t58+t124-t125;
389  double t127 = 207.0/128.0*eta;
390  double t129 = 399.0/64.0*t30;
391  double t135 = 189.0/128.0*t46;
392  double t136 = 21.0/64.0*t48;
393  double t137 = 21.0/128.0*t52;
394  double t139 = 34647.0/4480.0*t40-t96-t97-t135-t136-t137+t101-1863.0/256.0*t1-t103+t104+t105;
395  double t141 = 117.0/320.0*eta;
396  double t143 = 51.0/32.0*t30;
397  double t149 = 27.0/64.0*t46;
398  double t150 = 3.0/32.0*t48;
399  double t151 = 3.0/64.0*t52;
400  double t153 = -57117.0/11200.0*t40+t73-t74+t149+t150+t151-t78+1053.0/128.0*t1+t80-t81-t82;
401  double t155 = 163.0/960.0*eta;
402  double t157 = 403.0/288.0*t30;
403  double t158 = 125.0/192.0*t32;
404  double t160 = 125.0/64.0*t37;
405  double t161 = 11923.0/33600.0-t9+t17-t25-t155+t27+103.0/64.0*t28-t157+t158-t35-33223.0/33600.0*t18+t160;
406  double t163 = 71.0/64.0*t46;
407  double t164 = 263.0/576.0*t48;
408  double t167 = 21811.0/12600.0*t40-t43+t45-t163+t164-t51-119.0/144.0*t52+t54-157.0/64.0*t1-t56+t57+t59;
409  double t169 = 177.0/320.0*eta;
410  double t173 = 39.0/32.0*t30;
411  double t175 = 63.0/128.0*t28;
412  double t177 = 1269.0/560.0*t20;
413  double t178 = 21.0/32.0*xi;
414  double t179 = 63.0/128.0*t1;
415  double t180 = 21.0/16.0*t11;
416  double t181 = 21.0/16.0*t44;
417  double t182 = 63.0/64.0*t46;
418  double t183 = 9.0/16.0*t48;
419  double t184 = 81.0/40.0*t50;
420  double t185 = 243.0/350.0*t24;
421  double t186 = -9507.0/22400.0+t169-45.0/64.0*t40+60267.0/22400.0*t18-63.0/64.0*t37+t173-165.0/64.0*t32-t175+45.0/64.0*t52-t177-t178+t179+t180-t181+t182-t183+t184+t185;
422  double t187 = 39.0/128.0*eta;
423  double t191 = 231.0/64.0*t30;
424  double t193 = 315.0/256.0*t28;
425  double t195 = 351.0/112.0*t20;
426  double t196 = 105.0/64.0*xi;
427  double t197 = 315.0/256.0*t1;
428  double t198 = 105.0/32.0*t11;
429  double t199 = 105.0/32.0*t44;
430  double t200 = 315.0/128.0*t46;
431  double t201 = 63.0/32.0*t48;
432  double t202 = 81.0/32.0*t50;
433  double t203 = 243.0/140.0*t24;
434  double t204 = 2157.0/8960.0-t187-189.0/128.0*t40-30237.0/8960.0*t18-315.0/128.0*t37+t191+363.0/128.0*t32-t193+189.0/128.0*t52+t195-t196+t197+t198-t199+t200-t201-t202-t203;
435  double t205 = 33.0/32.0*eta;
436  double t208 = 99.0/32.0*t37;
437  double t209 = 281.0/48.0*t30;
438  double t210 = 33.0/32.0*t32;
439  double t213 = 171.0/56.0*t20;
440  double t214 = 83.0/48.0*xi;
441  double t216 = 35.0/24.0*t11;
442  double t217 = 35.0/24.0*t44;
443  double t218 = 99.0/32.0*t46;
444  double t220 = 81.0/35.0*t24;
445  double t221 = -3487.0/6720.0-t205+33.0/32.0*t40+24007.0/6720.0*t18+t208-t209+t210-29.0/64.0*t28-33.0/32.0*t52-t213+t214+29.0/64.0*t1-t216+t217-t218+33.0/8.0*t48+t220;
446  double t222 = 165.0/128.0*eta;
447  double t223 = 63.0/128.0*t40;
448  double t226 = 147.0/64.0*t30;
449  double t228 = 63.0/256.0*t28;
450  double t229 = 63.0/128.0*t52;
451  double t230 = 21.0/64.0*xi;
452  double t231 = 63.0/256.0*t1;
453  double t232 = 21.0/32.0*t11;
454  double t233 = 21.0/32.0*t44;
455  double t234 = 63.0/128.0*t46;
456  double t235 = 5097.0/8960.0+t222+t223-33177.0/8960.0*t18-63.0/128.0*t37+t226-489.0/128.0*t32-t228-t229+t195-t230+t231+t232-t233+t234-t201+t202-t203;
457  double t236 = 87.0/320.0*eta;
458  double t240 = 15.0/32.0*t30;
459  double t242 = 9.0/128.0*t28;
460  double t244 = 3.0/32.0*xi;
461  double t245 = 9.0/128.0*t1;
462  double t246 = 3.0/16.0*t11;
463  double t247 = 3.0/16.0*t44;
464  double t248 = 9.0/64.0*t46;
465  double t249 = -5307.0/22400.0-t236+27.0/64.0*t40+56067.0/22400.0*t18+9.0/64.0*t37+t240+147.0/64.0*t32+t242-27.0/64.0*t52-t177+t244-t245-t246+t247-t248-t183-t184+t185;
466  double t255 = 10919.0/100800.0+t9-t17-t25-221.0/2880.0*eta+t27+167.0/192.0*t28-119.0/288.0*t30-233.0/576.0*t32+t35-74819.0/100800.0*t18;
467  double t258 = 263.0/288.0*t44;
468  double t261 = 95563.0/100800.0*xi;
469  double t263 = 17363.0/10080.0*t11;
470  double t264 = -233.0/192.0*t37-74819.0/50400.0*t40+t43+t258+71.0/192.0*t46+t164+t51+167.0/288.0*t52-t261-329.0/192.0*t1+t263+t57;
471  double t271 = 12573.0/2800.0*xi;
472  double t273 = 2223.0/280.0*t11;
473  double t274 = 9.0/8.0*t44;
474  double t275 = -279.0/640.0-t236+56067.0/11200.0*t40+27.0/128.0*t18+441.0/64.0*t37+t240+3.0/64.0*t32-t68-81.0/128.0*t28+t151+t271+945.0/128.0*t1-t273-t81-t73-t274-t248+t150-t62+t63;
475  double t279 = 10683.0/1120.0*xi;
476  double t281 = 1845.0/112.0*t11;
477  double t282 = 63.0/16.0*t44;
478  double t283 = 225.0/256.0+t222-33177.0/4480.0*t40+t92-1467.0/128.0*t37+t226-21.0/128.0*t32+t91-t88-t137-t279-2619.0/256.0*t1+t281+t104+t96-t282+t234-t136+t85-t86;
479  double t292 = -33.0/64.0-t205+24007.0/3360.0*t40+33.0/64.0*t18+t208-t209+t210-t114-99.0/64.0*t28-29.0/96.0*t52+3351.0/280.0*xi+99.0/64.0*t1-573.0/28.0*t11+33.0/4.0*t44-t218+t122-t124+t125;
480  double t299 = -99.0/256.0-t187-30237.0/4480.0*t40-189.0/256.0*t18+1089.0/128.0*t37+t191-105.0/128.0*t32+t91+567.0/256.0*t28-t100-t279+2241.0/256.0*t1+t281-t104-t96-t282+t200-t99+t85-t86;
481  double t306 = 369.0/640.0+t169+60267.0/11200.0*t40-45.0/128.0*t18-495.0/64.0*t37+t173-21.0/64.0*t32-t68+135.0/128.0*t28-t77+t271-999.0/128.0*t1-t273+t81+t73-t274+t182-t76-t62+t63;
482  double t309 = -1459.0/6300.0+t9-t17+t25-t155-t27-119.0/96.0*t28-t157+t158+t35+21811.0/25200.0*t18;
483  double t313 = t160-33223.0/16800.0*t40-t43+t258-t163+t49-t51+103.0/96.0*t52-t261+25.0/12.0*t1+t263-t57;
484  double t319 = 27.0/16.0*t48;
485  double t321 = -t185+6357.0/22400.0+t141+t177+t242+t143-153.0/64.0*t32-57117.0/22400.0*t18-27.0/64.0*t37+63.0/64.0*t40+t247+t149-t319+t184-63.0/64.0*t52+t244-t245-t246;
486  double t326 = 189.0/32.0*t48;
487  double t328 = t203-6567.0/8960.0-t127-t195-t228+t129+531.0/128.0*t32+34647.0/8960.0*t18+189.0/128.0*t37+315.0/128.0*t40-t233-t135-t326-t202-315.0/128.0*t52-t230+t231+t232;
488  double t335 = 10417.0/6720.0+t108-99.0/32.0*t40-30937.0/6720.0*t18-t111-t112-t113+227.0/64.0*t28+99.0/32.0*t52+t213+t214-227.0/64.0*t1-t216+t217+t121+99.0/8.0*t48-t220;
489  double t339 = t203-9507.0/8960.0-t87-t195-t193+t89-153.0/128.0*t32+37587.0/8960.0*t18+945.0/128.0*t37+t223-t199-t98-t326+t202-t229-t196+t197+t198;
490  double t345 = -t185+2157.0/22400.0-t64+t177-t175+t66+207.0/64.0*t32-52917.0/22400.0*t18+189.0/64.0*t37-9.0/64.0*t40-t181-t75-t319-t184+9.0/64.0*t52-t178+t179+t180;
491  double t347 = 32.0/9.0*t40;
492  double t348 = 16.0/9.0*t18;
493  double t352 = 16.0/3.0*t28;
494  double t353 = 32.0/9.0*t52;
495  double t354 = 64.0/9.0*xi;
496  double t355 = 16.0/3.0*t1;
497  double t356 = 128.0/9.0*t11;
498  double t357 = 128.0/9.0*t44;
499  double t359 = 64.0/9.0*t48;
500  double t360 = 16.0/9.0+64.0/9.0*eta-t347-t348-64.0/3.0*t37-128.0/9.0*t30-64.0/9.0*t32+t352+t353+t354-t355-t356+t357+64.0/3.0*t46+t359;
501  double t361 = 16.0/3.0*eta;
502  double t362 = 16.0/3.0*t40;
503  double t363 = 8.0/3.0*t18;
504  double t364 = 16.0*t37;
505  double t365 = 32.0/3.0*t30;
506  double t366 = 16.0/3.0*t32;
507  double t367 = 8.0*t28;
508  double t368 = 16.0/3.0*t52;
509  double t370 = 8.0*t1;
510  double t373 = 16.0*t46;
511  double t374 = -8.0/3.0-t361+t362+t363+t364+t365+t366-t367-t368-32.0/3.0*xi+t370+64.0/3.0*t11-64.0/3.0*t44-t373;
512  double t376 = -8.0/3.0-t361+t362+t363+t364+t365+t366-t367-t368+t370-t373-32.0/3.0*t48;
513  double t377 = 64.0/9.0*t30;
514  double t390 = 2.0+4.0*eta-4.0*t40-2.0*t18-12.0*t37+2.0*t30-4.0*t32+6.0*t28+4.0*t52-2.0*xi-6.0*t1+12.0*t46;
515 
516  values[0] = t39+t60;
517  values[1] = 189.0/640.0+t62-t63-t64+27.0/128.0*t28+t66+63.0/64.0*t32+t68-9.0/128.0*t18+621.0/64.0*t37+t83;
518  values[2] = -351.0/256.0-t85+t86-t87-t88+t89+315.0/128.0*t32-t91+t92-459.0/128.0*t37+t106;
519  values[3] = t126;
520  values[4] = -27.0/256.0-t85+t86-t127-945.0/256.0*t28+t129+63.0/128.0*t32-t91+315.0/256.0*t18+1593.0/128.0*t37+t139;
521  values[5] = -459.0/640.0+t62-t63+t141-189.0/128.0*t28+t143-9.0/64.0*t32+t68+63.0/128.0*t18-459.0/64.0*t37+t153;
522  values[6] = t161+t167;
523  values[7] = t186;
524  values[8] = t204;
525  values[9] = t221;
526  values[10] = t235;
527  values[11] = t249;
528  values[12] = t255+t264;
529  values[13] = t275;
530  values[14] = t283;
531  values[15] = t292;
532  values[16] = t299;
533  values[17] = t306;
534  values[18] = t309+t313;
535  values[19] = t321;
536  values[20] = t328;
537  values[21] = t335;
538  values[22] = t339;
539  values[23] = t345;
540  values[24] = t360;
541  values[25] = t374;
542  values[26] = t376;
543  values[27] = 16.0/9.0-t348-t377+t352+t354-t355-t356+t357;
544  values[28] = t390;
545  values[29] = -t347-t377+t353+t359;
546 }
547 
548 // values of the derivatives in eta direction
549 static void C_Q_M6_2D_DeriveEta(double xi, double eta, double *values)
550 {
551  double t1 = xi*xi;
552  double t3 = t1*t1;
553  double t7 = (1.0-t1)*(3.0/8.0+35.0/8.0*t3-15.0/4.0*t1);
554  double t8 = 81.0/700.0*t7;
555  double t9 = eta*eta;
556  double t10 = t9*t9;
557  double t15 = 1.0+xi;
558  double t16 = eta*(3.0/8.0+35.0/8.0*t10-15.0/4.0*t9)*t15;
559  double t17 = 81.0/350.0*t16;
560  double t19 = t9*eta;
561  double t24 = (1.0-t9)*(35.0/2.0*t19-15.0/2.0*eta)*t15;
562  double t25 = 81.0/700.0*t24;
563  double t27 = xi*t19;
564  double t28 = 369.0/140.0*t27;
565  double t29 = t1*xi;
566  double t30 = t29*eta;
567  double t32 = t1*eta;
568  double t34 = xi*t9;
569  double t36 = 369.0/560.0*t3;
570  double t37 = xi*eta;
571  double t40 = 251.0/16800.0+t8-t17+t25+291.0/320.0*xi-t28-t30/3.0-229.0/96.0*t32-267.0/64.0*t34-t36+10399.0/8400.0*t37-89.0/64.0*t29;
572  double t42 = t3*xi;
573  double t43 = 81.0/160.0*t42;
574  double t44 = t3*eta;
575  double t45 = 277.0/192.0*t44;
576  double t46 = t29*t9;
577  double t48 = t1*t19;
578  double t49 = 277.0/96.0*t48;
579  double t50 = xi*t10;
580  double t51 = 81.0/32.0*t50;
581  double t52 = t1*t9;
582  double t54 = 65431.0/33600.0*eta;
583  double t55 = 26111.0/3360.0*t19;
584  double t57 = 81.0/32.0*t10;
585  double t58 = t10*eta;
586  double t59 = 243.0/40.0*t58;
587  double t60 = 10399.0/16800.0*t1+t43+t45+213.0/64.0*t46+t49+t51-t52/2.0+t54-t55+43.0/32.0*t9-t57+t59;
588  double t62 = 243.0/350.0*t7;
589  double t63 = 387.0/320.0*xi;
590  double t65 = 75.0/32.0*t32;
591  double t67 = 1269.0/560.0*t3;
592  double t71 = 81.0/40.0*t42;
593  double t72 = 27.0/16.0*t44;
594  double t73 = 189.0/64.0*t46;
595  double t74 = 21.0/16.0*t48;
596  double t75 = 63.0/128.0*t52;
597  double t76 = 21.0/32.0*eta;
598  double t77 = 21.0/16.0*t19;
599  double t78 = 63.0/128.0*t9;
600  double t79 = -t62+2157.0/22400.0-t63+9.0/64.0*t30+t65+189.0/64.0*t34+t67-9.0/64.0*t37+207.0/64.0*t29-52917.0/22400.0*t1-t71-t72-t73-t74-t75-t76+t77+t78;
601  double t80 = 243.0/140.0*t7;
602  double t81 = 171.0/128.0*xi;
603  double t82 = 63.0/128.0*t30;
604  double t83 = 483.0/64.0*t32;
605  double t85 = 351.0/112.0*t3;
606  double t86 = 63.0/128.0*t37;
607  double t89 = 81.0/32.0*t42;
608  double t90 = 189.0/32.0*t44;
609  double t91 = 945.0/128.0*t46;
610  double t92 = 105.0/32.0*t48;
611  double t93 = 315.0/256.0*t52;
612  double t94 = 105.0/64.0*eta;
613  double t95 = 105.0/32.0*t19;
614  double t96 = 315.0/256.0*t9;
615  double t97 = t80-9507.0/8960.0-t81-t82+t83+945.0/128.0*t34-t85+t86-153.0/128.0*t29+37587.0/8960.0*t1+t89-t90-t91-t92-t93-t94+t95+t96;
616  double t98 = 99.0/32.0*xi;
617  double t101 = 99.0/32.0*t29;
618  double t102 = 677.0/48.0*t32;
619  double t103 = 297.0/32.0*t34;
620  double t104 = 171.0/56.0*t3;
621  double t107 = 83.0/48.0*eta;
622  double t109 = 35.0/24.0*t19;
623  double t111 = 297.0/32.0*t46;
624  double t112 = 35.0/24.0*t48;
625  double t113 = 81.0/35.0*t7;
626  double t114 = 10417.0/6720.0+t98-30937.0/6720.0*t1-99.0/32.0*t37-t101-t102-t103+t104+99.0/32.0*t30+227.0/64.0*t52+t107-227.0/64.0*t9-t109+99.0/8.0*t44+t111+t112-t113;
627  double t115 = 207.0/128.0*xi;
628  double t117 = 399.0/64.0*t32;
629  double t122 = 189.0/128.0*t46;
630  double t123 = 21.0/32.0*t48;
631  double t124 = 63.0/256.0*t52;
632  double t125 = 21.0/64.0*eta;
633  double t126 = 21.0/32.0*t19;
634  double t127 = 63.0/256.0*t9;
635  double t128 = t80-6567.0/8960.0-t115-315.0/128.0*t30+t117+189.0/128.0*t34-t85+315.0/128.0*t37+531.0/128.0*t29+34647.0/8960.0*t1-t89-t90-t122-t123-t124-t125+t126+t127;
636  double t129 = 117.0/320.0*xi;
637  double t131 = 51.0/32.0*t32;
638  double t136 = 27.0/64.0*t46;
639  double t137 = 3.0/16.0*t48;
640  double t138 = 9.0/128.0*t52;
641  double t139 = 3.0/32.0*eta;
642  double t140 = 3.0/16.0*t19;
643  double t141 = 9.0/128.0*t9;
644  double t142 = -t62+6357.0/22400.0+t129-63.0/64.0*t30+t131-27.0/64.0*t34+t67+63.0/64.0*t37-153.0/64.0*t29-57117.0/22400.0*t1+t71-t72+t136+t137+t138+t139-t140-t141;
645  double t143 = 163.0/960.0*xi;
646  double t145 = 403.0/288.0*t32;
647  double t146 = 125.0/64.0*t34;
648  double t148 = -1459.0/6300.0+t8+t17-t25-t143+t28+103.0/96.0*t30-t145+t146-t36-33223.0/16800.0*t37;
649  double t149 = 125.0/192.0*t29;
650  double t151 = 71.0/64.0*t46;
651  double t152 = 263.0/288.0*t48;
652  double t154 = 95563.0/100800.0*eta;
653  double t155 = 17363.0/10080.0*t19;
654  double t157 = t149+21811.0/25200.0*t1-t43+t45-t151+t152-t51-119.0/96.0*t52-t154+t155+25.0/12.0*t9-t57;
655  double t159 = 177.0/320.0*xi;
656  double t163 = 39.0/32.0*t32;
657  double t165 = 21.0/64.0*t30;
658  double t167 = 1269.0/140.0*t27;
659  double t168 = 12573.0/2800.0*eta;
660  double t170 = 2223.0/280.0*t19;
661  double t171 = 81.0/8.0*t10;
662  double t172 = 21.0/32.0*t44;
663  double t173 = 63.0/64.0*t46;
664  double t174 = 9.0/8.0*t48;
665  double t175 = 81.0/8.0*t50;
666  double t176 = 243.0/175.0*t16;
667  double t177 = 243.0/350.0*t24;
668  double t178 = 369.0/640.0+t159-45.0/128.0*t1+60267.0/11200.0*t37-21.0/64.0*t29+t163-495.0/64.0*t34-t165+135.0/128.0*t52-t167+t168-999.0/128.0*t9-t170+t171-t172+t173-t174+t175-t176+t177;
669  double t179 = 39.0/128.0*xi;
670  double t183 = 231.0/64.0*t32;
671  double t185 = 105.0/128.0*t30;
672  double t187 = 351.0/28.0*t27;
673  double t188 = 10683.0/1120.0*eta;
674  double t190 = 1845.0/112.0*t19;
675  double t191 = 405.0/32.0*t10;
676  double t192 = 105.0/64.0*t44;
677  double t193 = 315.0/128.0*t46;
678  double t194 = 63.0/16.0*t48;
679  double t195 = 405.0/32.0*t50;
680  double t196 = 243.0/70.0*t16;
681  double t197 = 243.0/140.0*t24;
682  double t198 = -99.0/256.0-t179-189.0/256.0*t1-30237.0/4480.0*t37-105.0/128.0*t29+t183+1089.0/128.0*t34-t185+567.0/256.0*t52+t187-t188+2241.0/256.0*t9+t190-t191-t192+t193-t194-t195+t196-t197;
683  double t199 = 33.0/32.0*xi;
684  double t202 = 33.0/32.0*t29;
685  double t203 = 281.0/48.0*t32;
686  double t204 = 99.0/32.0*t34;
687  double t207 = 171.0/14.0*t27;
688  double t211 = 35.0/48.0*t44;
689  double t212 = 99.0/32.0*t46;
690  double t214 = 162.0/35.0*t16;
691  double t215 = 81.0/35.0*t24;
692  double t216 = -33.0/64.0-t199+33.0/64.0*t1+24007.0/3360.0*t37+t202-t203+t204-29.0/96.0*t30-99.0/64.0*t52-t207+3351.0/280.0*eta+99.0/64.0*t9-573.0/28.0*t19+t211-t212+33.0/4.0*t48-t214+t215;
693  double t217 = 165.0/128.0*xi;
694  double t218 = 63.0/256.0*t1;
695  double t221 = 147.0/64.0*t32;
696  double t223 = 21.0/128.0*t30;
697  double t224 = 189.0/256.0*t52;
698  double t226 = 21.0/64.0*t44;
699  double t227 = 63.0/128.0*t46;
700  double t228 = 225.0/256.0+t217+t218-33177.0/4480.0*t37-21.0/128.0*t29+t221-1467.0/128.0*t34-t223-t224+t187-t188-2619.0/256.0*t9+t190+t191-t226+t227-t194+t195+t196-t197;
701  double t229 = 87.0/320.0*xi;
702  double t233 = 15.0/32.0*t32;
703  double t235 = 3.0/64.0*t30;
704  double t238 = 3.0/32.0*t44;
705  double t239 = 9.0/64.0*t46;
706  double t240 = -279.0/640.0-t229+27.0/128.0*t1+56067.0/11200.0*t37+3.0/64.0*t29+t233+441.0/64.0*t34+t235-81.0/128.0*t52-t167+t168+945.0/128.0*t9-t170-t171+t238-t239-t174-t175-t176+t177;
707  double t246 = 10919.0/100800.0-t8+t17-t25-221.0/2880.0*xi+t28+167.0/288.0*t30-119.0/288.0*t32-233.0/192.0*t34+t36-74819.0/50400.0*t37;
708  double t249 = 263.0/576.0*t44;
709  double t253 = -233.0/576.0*t29-74819.0/100800.0*t1+t43+t249+71.0/192.0*t46+t152+t51+167.0/192.0*t52-t154+t155-329.0/192.0*t9+t57;
710  double t260 = 9.0/16.0*t44;
711  double t261 = -5307.0/22400.0-t229+56067.0/22400.0*t1+27.0/64.0*t37+147.0/64.0*t29+t233+9.0/64.0*t34-t67-27.0/64.0*t30+t138+t139-t141-t140-t71-t260-t239+t137+t62;
712  double t265 = 63.0/32.0*t44;
713  double t266 = 5097.0/8960.0+t217-33177.0/8960.0*t1+t86-489.0/128.0*t29+t221-63.0/128.0*t34+t85-t82-t124-t125+t127+t126+t89-t265+t227-t123-t80;
714  double t273 = -3487.0/6720.0-t199+24007.0/6720.0*t1+33.0/32.0*t37+t202-t203+t204-t104-33.0/32.0*t30-29.0/64.0*t52+t107+29.0/64.0*t9-t109+33.0/8.0*t44-t212+t112+t113;
715  double t279 = 2157.0/8960.0-t179-30237.0/8960.0*t1-189.0/128.0*t37+363.0/128.0*t29+t183-315.0/128.0*t34+t85+189.0/128.0*t30-t93-t94+t96+t95-t89-t265+t193-t92-t80;
716  double t285 = -9507.0/22400.0+t159+60267.0/22400.0*t1-45.0/64.0*t37-165.0/64.0*t29+t163-63.0/64.0*t34-t67+45.0/64.0*t30-t75-t76+t78+t77+t71-t260+t173-t74+t62;
717  double t288 = 11923.0/33600.0-t8-t17+t25-t143-t28-119.0/144.0*t30-t145+t146+t36+21811.0/12600.0*t37+t149;
718  double t292 = -33223.0/33600.0*t1-t43+t249-t151+t49-t51+103.0/64.0*t52+t54-t55-157.0/64.0*t9+t57+t59;
719  double t299 = 27.0/8.0*t48;
720  double t301 = 22653.0/2800.0*eta;
721  double t302 = 11043.0/280.0*t19;
722  double t304 = 729.0/20.0*t58;
723  double t305 = 63.0/128.0*t1+t238+t136-t299+t175-189.0/128.0*t52-t301+t302+1053.0/128.0*t9-t171-t304;
724  double t312 = 189.0/16.0*t48;
725  double t314 = 16983.0/1120.0*eta;
726  double t315 = 9909.0/112.0*t19;
727  double t317 = 729.0/8.0*t58;
728  double t318 = 315.0/256.0*t1-t226-t122-t312-t195-945.0/256.0*t52+t314-t315-1863.0/256.0*t9+t191+t317;
729  double t329 = 99.0/64.0+t98-99.0/64.0*t1-30937.0/3360.0*t37-t101-t102-t103+227.0/96.0*t30+297.0/64.0*t52+t207-5031.0/280.0*eta-297.0/64.0*t9+3177.0/28.0*t19+t211+t111+99.0/4.0*t48-243.0/2.0*t58+t214-t215;
730  double t335 = t218-t192-t91-t312+t195-t224+t314-t315+2997.0/256.0*t9-t191+t317;
731  double t344 = -9.0/128.0*t1-t172-t73-t299-t175+27.0/128.0*t52-t301+t302-891.0/128.0*t9+t171-t304;
732  double t347 = 16.0/9.0*t1;
733  double t348 = 32.0/9.0*t37;
734  double t352 = 32.0/9.0*t30;
735  double t353 = 16.0/3.0*t52;
736  double t354 = 64.0/9.0*eta;
737  double t355 = 16.0/3.0*t9;
738  double t356 = 128.0/9.0*t19;
739  double t357 = 64.0/9.0*t44;
740  double t359 = 128.0/9.0*t48;
741  double t360 = 16.0/9.0+64.0/9.0*xi-t347-t348-64.0/9.0*t29-128.0/9.0*t32-64.0/3.0*t34+t352+t353+t354-t355-t356+t357+64.0/3.0*t46+t359;
742  double t361 = 16.0/3.0*xi;
743  double t362 = 8.0/3.0*t1;
744  double t363 = 16.0/3.0*t37;
745  double t364 = 16.0/3.0*t29;
746  double t365 = 32.0/3.0*t32;
747  double t366 = 16.0*t34;
748  double t367 = 16.0/3.0*t30;
749  double t368 = 8.0*t52;
750  double t369 = 8.0*t9;
751  double t371 = 16.0*t46;
752  double t372 = -8.0/3.0-t361+t362+t363+t364+t365+t366-t367-t368+t369-32.0/3.0*t44-t371;
753  double t376 = -8.0/3.0-t361+t362+t363+t364+t365+t366-t367-t368-32.0/3.0*eta+t369+64.0/3.0*t19-t371-64.0/3.0*t48;
754  double t377 = 64.0/9.0*t32;
755  double t390 = 2.0+4.0*xi-2.0*t1-4.0*t37-4.0*t29+2.0*t32-12.0*t34+4.0*t30+6.0*t52-2.0*eta-6.0*t9+12.0*t46;
756 
757  values[0] = t40+t60;
758  values[1] = t79;
759  values[2] = t97;
760  values[3] = t114;
761  values[4] = t128;
762  values[5] = t142;
763  values[6] = t148+t157;
764  values[7] = t178;
765  values[8] = t198;
766  values[9] = t216;
767  values[10] = t228;
768  values[11] = t240;
769  values[12] = t246+t253;
770  values[13] = t261;
771  values[14] = t266;
772  values[15] = t273;
773  values[16] = t279;
774  values[17] = t285;
775  values[18] = t288+t292;
776  values[19] = -459.0/640.0+t176-t177+t129+t167+t235+t131-459.0/64.0*t34-57117.0/11200.0*t37-9.0/64.0*t29+t305;
777  values[20] = -27.0/256.0-t196+t197-t115-t187-t223+t117+1593.0/128.0*t34+34647.0/4480.0*t37+63.0/128.0*t29+t318;
778  values[21] = t329;
779  values[22] = -351.0/256.0-t196+t197-t81-t187-t185+t83-459.0/128.0*t34+37587.0/4480.0*t37+315.0/128.0*t29+t335;
780  values[23] = 189.0/640.0+t176-t177-t63+t167-t165+t65+621.0/64.0*t34-52917.0/11200.0*t37+63.0/64.0*t29+t344;
781  values[24] = t360;
782  values[25] = t372;
783  values[26] = t376;
784  values[27] = -t348-t377+t352+t357;
785  values[28] = t390;
786  values[29] = 16.0/9.0-t347-t377+t353+t354-t355-t356+t359;
787 }
788 
789 // values of the derivatives in xi-xi direction
790 static void C_Q_M6_2D_DeriveXiXi(double xi, double eta, double *values)
791 {
792  double t1 = xi*xi;
793  double t2 = t1*t1;
794  double t6 = 1.0+eta;
795  double t7 = (3.0/8.0+35.0/8.0*t2-15.0/4.0*t1)*t6;
796  double t8 = 81.0/350.0*t7;
797  double t9 = t1*xi;
798  double t14 = xi*(35.0/2.0*t9-15.0/2.0*xi)*t6;
799  double t15 = 81.0/175.0*t14;
800  double t20 = (1.0-t1)*(105.0/2.0*t1-15.0/2.0)*t6;
801  double t21 = 81.0/700.0*t20;
802  double t22 = eta*eta;
803  double t23 = xi*t22;
804  double t25 = t1*eta;
805  double t26 = 1107.0/140.0*t25;
806  double t27 = xi*eta;
807  double t30 = t9*eta;
808  double t31 = 81.0/8.0*t30;
809  double t32 = t1*t22;
810  double t33 = 277.0/32.0*t32;
811  double t34 = t22*eta;
812  double t35 = xi*t34;
813  double t37 = t22*t22;
814  double t38 = 277.0/192.0*t37;
815  double t41 = 26111.0/1120.0*t1;
816  double t42 = 81.0/8.0*t9;
817  double t43 = 243.0/8.0*t2;
818  double t44 = -t8-t15+t21-t23-229.0/96.0*t22-t26-267.0/32.0*t27+10399.0/8400.0*eta+t31+t33+213.0/32.0*t35+t38-t34/3.0+65431.0/33600.0+43.0/16.0*xi-t41-t42+t43;
819  double t45 = 243.0/175.0*t7;
820  double t46 = 486.0/175.0*t14;
821  double t47 = 243.0/350.0*t20;
822  double t49 = 75.0/32.0*t22;
823  double t50 = 3807.0/140.0*t25;
824  double t53 = 81.0/2.0*t30;
825  double t54 = 81.0/8.0*t32;
826  double t55 = 189.0/32.0*t35;
827  double t56 = 21.0/32.0*t37;
828  double t57 = 21.0/64.0*t34;
829  double t59 = 33129.0/280.0*t1;
830  double t60 = 81.0/2.0*t9;
831  double t61 = 729.0/4.0*t2;
832  double t62 = t45+t46-t47+27.0/64.0*t23+t49+t50+621.0/32.0*t27-52917.0/11200.0*eta-t53-t54-t55-t56-t57-22653.0/2800.0-891.0/64.0*xi+t59+t60-t61;
833  double t63 = 243.0/70.0*t7;
834  double t64 = 243.0/35.0*t14;
835  double t65 = 243.0/140.0*t20;
836  double t66 = 189.0/128.0*t23;
837  double t67 = 483.0/64.0*t22;
838  double t68 = 1053.0/28.0*t25;
839  double t71 = 405.0/8.0*t30;
840  double t72 = 567.0/16.0*t32;
841  double t73 = 945.0/64.0*t35;
842  double t74 = 105.0/64.0*t37;
843  double t75 = 105.0/128.0*t34;
844  double t77 = 29727.0/112.0*t1;
845  double t78 = 405.0/8.0*t9;
846  double t79 = 3645.0/8.0*t2;
847  double t80 = -t63-t64+t65-t66+t67-t68-459.0/64.0*t27+37587.0/4480.0*eta+t71-t72-t73-t74-t75+16983.0/1120.0+2997.0/128.0*xi-t77-t78+t79;
848  double t82 = 297.0/16.0*t27;
849  double t83 = 677.0/48.0*t22;
850  double t84 = 513.0/14.0*t25;
851  double t90 = 297.0/16.0*t35;
852  double t91 = 35.0/48.0*t37;
853  double t93 = 162.0/35.0*t7;
854  double t94 = 324.0/35.0*t14;
855  double t95 = 81.0/35.0*t20;
856  double t96 = -30937.0/3360.0*eta-t82-t83+t84+297.0/32.0*t23+227.0/96.0*t34-5031.0/280.0-297.0/32.0*xi+9531.0/28.0*t1+297.0/4.0*t32+t90+t91-1215.0/2.0*t2+t93+t94-t95;
857  double t98 = 399.0/64.0*t22;
858  double t101 = 189.0/64.0*t35;
859  double t102 = 21.0/64.0*t37;
860  double t103 = 21.0/128.0*t34;
861  double t105 = -t63-t64+t65-945.0/128.0*t23+t98-t68+1593.0/64.0*t27+34647.0/4480.0*eta-t71-t72-t101-t102-t103+16983.0/1120.0-1863.0/128.0*xi-t77+t78+t79;
862  double t107 = 51.0/32.0*t22;
863  double t110 = 27.0/32.0*t35;
864  double t111 = 3.0/32.0*t37;
865  double t112 = 3.0/64.0*t34;
866  double t114 = t45+t46-t47-189.0/64.0*t23+t107+t50-459.0/32.0*t27-57117.0/11200.0*eta+t53-t54+t110+t111+t112-22653.0/2800.0+1053.0/64.0*xi+t59-t60-t61;
867  double t116 = 403.0/288.0*t22;
868  double t117 = 125.0/32.0*t27;
869  double t119 = 71.0/32.0*t35;
870  double t120 = 263.0/576.0*t37;
871  double t123 = -t8-t15+t21+103.0/32.0*t23-t116-t26+t117+21811.0/12600.0*eta-t31+t33-t119+t120-119.0/144.0*t34+65431.0/33600.0-157.0/32.0*xi-t41+t42+t43;
872  double t126 = 39.0/32.0*t22;
873  double t127 = 63.0/64.0*t23;
874  double t129 = 63.0/64.0*xi;
875  double t130 = 63.0/16.0*t1;
876  double t131 = 63.0/16.0*t32;
877  double t132 = 63.0/32.0*t35;
878  double t133 = 9.0/16.0*t37;
879  double t134 = -45.0/64.0*eta-63.0/32.0*t27+t126-t127+45.0/64.0*t34-21.0/32.0+t129+t130-t131+t132-t133;
880  double t137 = 231.0/64.0*t22;
881  double t138 = 315.0/128.0*t23;
882  double t140 = 315.0/128.0*xi;
883  double t141 = 315.0/32.0*t1;
884  double t142 = 315.0/32.0*t32;
885  double t143 = 315.0/64.0*t35;
886  double t144 = 63.0/32.0*t37;
887  double t145 = -189.0/128.0*eta-315.0/64.0*t27+t137-t138+189.0/128.0*t34-105.0/64.0+t140+t141-t142+t143-t144;
888  double t147 = 99.0/16.0*t27;
889  double t148 = 281.0/48.0*t22;
890  double t152 = 35.0/8.0*t1;
891  double t153 = 35.0/8.0*t32;
892  double t154 = 99.0/16.0*t35;
893  double t156 = 33.0/32.0*eta+t147-t148-29.0/32.0*t23-33.0/32.0*t34+83.0/48.0+29.0/32.0*xi-t152+t153-t154+33.0/8.0*t37;
894  double t157 = 63.0/128.0*eta;
895  double t159 = 147.0/64.0*t22;
896  double t160 = 63.0/128.0*t23;
897  double t161 = 63.0/128.0*t34;
898  double t162 = 63.0/128.0*xi;
899  double t163 = 63.0/32.0*t1;
900  double t164 = 63.0/32.0*t32;
901  double t165 = 63.0/64.0*t35;
902  double t166 = t157-63.0/64.0*t27+t159-t160-t161-21.0/64.0+t162+t163-t164+t165-t144;
903  double t169 = 15.0/32.0*t22;
904  double t170 = 9.0/64.0*t23;
905  double t172 = 9.0/64.0*xi;
906  double t173 = 9.0/16.0*t1;
907  double t174 = 9.0/16.0*t32;
908  double t175 = 9.0/32.0*t35;
909  double t176 = 27.0/64.0*eta+9.0/32.0*t27+t169+t170-27.0/64.0*t34+3.0/32.0-t172-t173+t174-t175-t133;
910  double t181 = 263.0/96.0*t32;
911  double t185 = 17363.0/3360.0*t1;
912  double t186 = t8+t15-t21+167.0/96.0*t23-119.0/288.0*t22+t26-233.0/96.0*t27-74819.0/50400.0*eta+t31+t181+71.0/96.0*t35+t120+167.0/288.0*t34-95563.0/100800.0-329.0/96.0*xi+t185+t42;
913  double t191 = 6669.0/280.0*t1;
914  double t192 = 27.0/8.0*t32;
915  double t193 = 56067.0/11200.0*eta+441.0/32.0*t27+t169-t50-81.0/64.0*t23+t112+12573.0/2800.0+945.0/64.0*xi-t191-t60-t53-t192-t175+t111-t45-t46+t47;
916  double t197 = 5535.0/112.0*t1;
917  double t198 = 189.0/16.0*t32;
918  double t199 = -33177.0/4480.0*eta-1467.0/64.0*t27+t159+t68-t66-t103-10683.0/1120.0-2619.0/128.0*xi+t197+t78+t71-t198+t165-t102+t63+t64-t65;
919  double t206 = 24007.0/3360.0*eta+t147-t148-t84-99.0/32.0*t23-29.0/96.0*t34+3351.0/280.0+99.0/32.0*xi-1719.0/28.0*t1+99.0/4.0*t32-t154+t91-t93-t94+t95;
920  double t211 = -30237.0/4480.0*eta+1089.0/64.0*t27+t137+t68+567.0/128.0*t23-t75-10683.0/1120.0+2241.0/128.0*xi+t197-t78-t71-t198+t143-t74+t63+t64-t65;
921  double t216 = 60267.0/11200.0*eta-495.0/32.0*t27+t126-t50+135.0/64.0*t23-t57+12573.0/2800.0-999.0/64.0*xi-t191+t60+t53-t192+t132-t56-t45-t46+t47;
922  double t221 = t8+t15-t21-119.0/48.0*t23-t116+t26+t117-33223.0/16800.0*eta-t31+t181-t119+t38+103.0/96.0*t34-95563.0/100800.0+25.0/6.0*xi+t185-t42;
923  double t224 = 27.0/16.0*t37;
924  double t226 = t170+t107-27.0/32.0*t27+63.0/64.0*eta+t174+t110-t224-63.0/64.0*t34+3.0/32.0-t172-t173;
925  double t229 = 189.0/32.0*t37;
926  double t231 = -t160+t98+189.0/64.0*t27+315.0/128.0*eta-t164-t101-t229-315.0/128.0*t34-21.0/64.0+t162+t163;
927  double t237 = -99.0/32.0*eta-t82-t83+227.0/32.0*t23+99.0/32.0*t34+83.0/48.0-227.0/32.0*xi-t152+t153+t90+99.0/8.0*t37;
928  double t239 = -t138+t67+945.0/64.0*t27+t157-t142-t73-t229-t161-105.0/64.0+t140+t141;
929  double t243 = -t127+t49+189.0/32.0*t27-9.0/64.0*eta-t131-t55-t224+9.0/64.0*t34-21.0/32.0+t129+t130;
930  double t244 = 32.0/9.0*eta;
931  double t247 = 32.0/3.0*t23;
932  double t248 = 32.0/9.0*t34;
933  double t249 = 32.0/3.0*xi;
934  double t250 = 128.0/3.0*t1;
935  double t251 = 128.0/3.0*t32;
936  double t253 = 64.0/9.0*t37;
937  double t254 = -t244-128.0/3.0*t27-128.0/9.0*t22+t247+t248+64.0/9.0-t249-t250+t251+128.0/3.0*t35+t253;
938  double t255 = 16.0/3.0*eta;
939  double t256 = 32.0*t27;
940  double t257 = 32.0/3.0*t22;
941  double t258 = 16.0*t23;
942  double t259 = 16.0/3.0*t34;
943  double t260 = 16.0*xi;
944  double t263 = 32.0*t35;
945  double t267 = 64.0/9.0*t22;
946 
947  values[0] = t44;
948  values[1] = t62;
949  values[2] = t80;
950  values[3] = t96;
951  values[4] = t105;
952  values[5] = t114;
953  values[6] = t123;
954  values[7] = t134;
955  values[8] = t145;
956  values[9] = t156;
957  values[10] = t166;
958  values[11] = t176;
959  values[12] = t186;
960  values[13] = t193;
961  values[14] = t199;
962  values[15] = t206;
963  values[16] = t211;
964  values[17] = t216;
965  values[18] = t221;
966  values[19] = t226;
967  values[20] = t231;
968  values[21] = t237;
969  values[22] = t239;
970  values[23] = t243;
971  values[24] = t254;
972  values[25] = t255+t256+t257-t258-t259-32.0/3.0+t260+64.0*t1-64.0*t32-t263;
973  values[26] = t255+t256+t257-t258-t259+t260-t263-32.0/3.0*t37;
974  values[27] = -t267+t247+64.0/9.0-t249-t250+t251;
975  values[28] = -4.0*eta-24.0*t27+2.0*t22+12.0*t23+4.0*t34-2.0-12.0*xi+24.0*t35;
976  values[29] = -t244-t267+t248+t253;
977 }
978 
979 // values of the derivatives in xi-eta direction
980 static void C_Q_M6_2D_DeriveXiEta(double xi, double eta, double *values)
981 {
982  double t1 = xi*xi;
983  double t2 = t1*t1;
984  double t6 = xi*(3.0/8.0+35.0/8.0*t2-15.0/4.0*t1);
985  double t7 = 81.0/350.0*t6;
986  double t9 = t1*xi;
987  double t13 = (1.0-t1)*(35.0/2.0*t9-15.0/2.0*xi);
988  double t14 = 81.0/700.0*t13;
989  double t15 = eta*eta;
990  double t16 = t15*t15;
991  double t20 = eta*(3.0/8.0+35.0/8.0*t16-15.0/4.0*t15);
992  double t21 = 81.0/350.0*t20;
993  double t23 = t15*eta;
994  double t27 = (1.0-t15)*(35.0/2.0*t23-15.0/2.0*eta);
995  double t28 = 81.0/700.0*t27;
996  double t29 = 369.0/140.0*t23;
997  double t30 = t1*eta;
998  double t31 = xi*eta;
999  double t34 = 369.0/140.0*t9;
1000  double t38 = 81.0/32.0*t2;
1001  double t39 = t9*eta;
1002  double t40 = 277.0/48.0*t39;
1003  double t41 = t1*t15;
1004  double t43 = xi*t23;
1005  double t44 = 277.0/48.0*t43;
1006  double t45 = 81.0/32.0*t16;
1007  double t46 = xi*t15;
1008  double t47 = -t7+t14-t21+t28+291.0/320.0-t29-t30-229.0/48.0*t31-267.0/64.0*t15-t34+10399.0/8400.0*eta-267.0/64.0*t1+10399.0/8400.0*xi+t38+t40+639.0/64.0*t41+t44+t45-t46;
1009  double t48 = 243.0/175.0*t6;
1010  double t49 = 243.0/350.0*t13;
1011  double t51 = 75.0/16.0*t31;
1012  double t53 = 1269.0/140.0*t9;
1013  double t57 = 81.0/8.0*t2;
1014  double t58 = 27.0/4.0*t39;
1015  double t59 = 567.0/64.0*t41;
1016  double t60 = 21.0/8.0*t43;
1017  double t61 = 63.0/64.0*t46;
1018  double t62 = t48-t49-387.0/320.0+27.0/64.0*t30+t51+189.0/64.0*t15+t53-9.0/64.0*eta+621.0/64.0*t1-52917.0/11200.0*xi-t57-t58-t59-t60-t61;
1019  double t63 = 243.0/70.0*t6;
1020  double t64 = 243.0/140.0*t13;
1021  double t65 = 189.0/128.0*t30;
1022  double t66 = 483.0/32.0*t31;
1023  double t68 = 351.0/28.0*t9;
1024  double t69 = 63.0/128.0*eta;
1025  double t72 = 405.0/32.0*t2;
1026  double t73 = 189.0/8.0*t39;
1027  double t74 = 2835.0/128.0*t41;
1028  double t75 = 105.0/16.0*t43;
1029  double t76 = 315.0/128.0*t46;
1030  double t77 = -t63+t64-171.0/128.0-t65+t66+945.0/128.0*t15-t68+t69-459.0/128.0*t1+37587.0/4480.0*xi+t72-t73-t74-t75-t76;
1031  double t80 = 297.0/32.0*t1;
1032  double t81 = 677.0/24.0*t31;
1033  double t82 = 297.0/32.0*t15;
1034  double t83 = 171.0/14.0*t9;
1035  double t87 = 891.0/32.0*t41;
1036  double t88 = 35.0/12.0*t43;
1037  double t89 = 162.0/35.0*t6;
1038  double t90 = 81.0/35.0*t13;
1039  double t91 = 99.0/32.0-30937.0/3360.0*xi-99.0/32.0*eta-t80-t81-t82+t83+297.0/32.0*t30+227.0/32.0*t46+99.0/2.0*t39+t87+t88+t89-t90;
1040  double t93 = 399.0/32.0*t31;
1041  double t98 = 567.0/128.0*t41;
1042  double t99 = 21.0/16.0*t43;
1043  double t100 = 63.0/128.0*t46;
1044  double t101 = -t63+t64-207.0/128.0-945.0/128.0*t30+t93+189.0/128.0*t15-t68+315.0/128.0*eta+1593.0/128.0*t1+34647.0/4480.0*xi-t72-t73-t98-t99-t100;
1045  double t103 = 51.0/16.0*t31;
1046  double t108 = 81.0/64.0*t41;
1047  double t109 = 3.0/8.0*t43;
1048  double t110 = 9.0/64.0*t46;
1049  double t111 = t48-t49+117.0/320.0-189.0/64.0*t30+t103-27.0/64.0*t15+t53+63.0/64.0*eta-459.0/64.0*t1-57117.0/11200.0*xi+t57-t58+t108+t109+t110;
1050  double t113 = 403.0/144.0*t31;
1051  double t114 = 125.0/64.0*t15;
1052  double t116 = 125.0/64.0*t1;
1053  double t118 = 213.0/64.0*t41;
1054  double t119 = 263.0/144.0*t43;
1055  double t121 = -t7+t14+t21-t28-163.0/960.0+t29+103.0/32.0*t30-t113+t114-t34-33223.0/16800.0*eta+t116+21811.0/12600.0*xi-t38+t40-t118+t119-t45-119.0/48.0*t46;
1056  double t125 = 39.0/16.0*t31;
1057  double t127 = 63.0/64.0*t30;
1058  double t129 = 1269.0/140.0*t23;
1059  double t130 = 21.0/8.0*t39;
1060  double t131 = 189.0/64.0*t41;
1061  double t132 = 9.0/4.0*t43;
1062  double t133 = 81.0/8.0*t16;
1063  double t134 = 243.0/175.0*t20;
1064  double t135 = 243.0/350.0*t27;
1065  double t136 = 177.0/320.0-45.0/64.0*xi+60267.0/11200.0*eta-63.0/64.0*t1+t125-495.0/64.0*t15-t127+135.0/64.0*t46-t129-t130+t131-t132+t133-t134+t135;
1066  double t140 = 231.0/32.0*t31;
1067  double t142 = 315.0/128.0*t30;
1068  double t144 = 351.0/28.0*t23;
1069  double t145 = 105.0/16.0*t39;
1070  double t146 = 945.0/128.0*t41;
1071  double t147 = 63.0/8.0*t43;
1072  double t148 = 405.0/32.0*t16;
1073  double t149 = 243.0/70.0*t20;
1074  double t150 = 243.0/140.0*t27;
1075  double t151 = -39.0/128.0-189.0/128.0*xi-30237.0/4480.0*eta-315.0/128.0*t1+t140+1089.0/128.0*t15-t142+567.0/128.0*t46+t144-t145+t146-t147-t148+t149-t150;
1076  double t154 = 99.0/32.0*t1;
1077  double t155 = 281.0/24.0*t31;
1078  double t156 = 99.0/32.0*t15;
1079  double t159 = 171.0/14.0*t23;
1080  double t160 = 35.0/12.0*t39;
1081  double t161 = 297.0/32.0*t41;
1082  double t163 = 162.0/35.0*t20;
1083  double t164 = 81.0/35.0*t27;
1084  double t165 = -33.0/32.0+33.0/32.0*xi+24007.0/3360.0*eta+t154-t155+t156-29.0/32.0*t30-99.0/32.0*t46-t159+t160-t161+33.0/2.0*t43-t163+t164;
1085  double t166 = 63.0/128.0*xi;
1086  double t169 = 147.0/32.0*t31;
1087  double t171 = 63.0/128.0*t30;
1088  double t172 = 189.0/128.0*t46;
1089  double t173 = 21.0/16.0*t39;
1090  double t174 = 189.0/128.0*t41;
1091  double t175 = 165.0/128.0+t166-33177.0/4480.0*eta-63.0/128.0*t1+t169-1467.0/128.0*t15-t171-t172+t144-t173+t174-t147+t148+t149-t150;
1092  double t179 = 15.0/16.0*t31;
1093  double t181 = 9.0/64.0*t30;
1094  double t183 = 3.0/8.0*t39;
1095  double t184 = 27.0/64.0*t41;
1096  double t185 = -87.0/320.0+27.0/64.0*xi+56067.0/11200.0*eta+9.0/64.0*t1+t179+441.0/64.0*t15+t181-81.0/64.0*t46-t129+t183-t184-t132-t133-t134+t135;
1097  double t192 = 263.0/144.0*t39;
1098  double t195 = t7-t14+t21-t28-221.0/2880.0+t29+167.0/96.0*t30-119.0/144.0*t31-233.0/192.0*t15+t34-74819.0/50400.0*eta-233.0/192.0*t1-74819.0/50400.0*xi+t38+t192+71.0/64.0*t41+t119+t45+167.0/96.0*t46;
1099  double t201 = 9.0/4.0*t39;
1100  double t202 = -87.0/320.0+56067.0/11200.0*xi+27.0/64.0*eta+441.0/64.0*t1+t179+9.0/64.0*t15-t53-81.0/64.0*t30+t110-t57-t201-t184+t109-t48+t49;
1101  double t206 = 63.0/8.0*t39;
1102  double t207 = 165.0/128.0-33177.0/4480.0*xi+t69-1467.0/128.0*t1+t169-63.0/128.0*t15+t68-t65-t100+t72-t206+t174-t99+t63-t64;
1103  double t213 = -33.0/32.0+24007.0/3360.0*xi+33.0/32.0*eta+t154-t155+t156-t83-99.0/32.0*t30-29.0/32.0*t46+33.0/2.0*t39-t161+t88-t89+t90;
1104  double t219 = -39.0/128.0-30237.0/4480.0*xi-189.0/128.0*eta+1089.0/128.0*t1+t140-315.0/128.0*t15+t68+567.0/128.0*t30-t76-t72-t206+t146-t75+t63-t64;
1105  double t225 = 177.0/320.0+60267.0/11200.0*xi-45.0/64.0*eta-495.0/64.0*t1+t125-63.0/64.0*t15-t53+135.0/64.0*t30-t61+t57-t201+t131-t60-t48+t49;
1106  double t230 = t7-t14-t21+t28-163.0/960.0-t29-119.0/48.0*t30-t113+t114+t34+21811.0/12600.0*eta+t116-33223.0/16800.0*xi-t38+t192-t118+t44-t45+103.0/32.0*t46;
1107  double t235 = 27.0/4.0*t43;
1108  double t237 = t134-t135+117.0/320.0+t129+t181+t103-459.0/64.0*t15-57117.0/11200.0*eta-27.0/64.0*t1+63.0/64.0*xi+t183+t108-t235+t133-189.0/64.0*t46;
1109  double t242 = 189.0/8.0*t43;
1110  double t244 = -t149+t150-207.0/128.0-t144-t171+t93+1593.0/128.0*t15+34647.0/4480.0*eta+189.0/128.0*t1+315.0/128.0*xi-t173-t98-t242-t148-945.0/128.0*t46;
1111  double t250 = 99.0/32.0-99.0/32.0*xi-30937.0/3360.0*eta-t80-t81-t82+227.0/32.0*t30+297.0/32.0*t46+t159+t160+t87+99.0/2.0*t43+t163-t164;
1112  double t254 = -t149+t150-171.0/128.0-t144-t142+t66-459.0/128.0*t15+37587.0/4480.0*eta+945.0/128.0*t1+t166-t145-t74-t242+t148-t172;
1113  double t260 = t134-t135-387.0/320.0+t129-t127+t51+621.0/64.0*t15-52917.0/11200.0*eta+189.0/64.0*t1-9.0/64.0*xi-t130-t59-t235-t133+27.0/64.0*t46;
1114  double t261 = 32.0/9.0*xi;
1115  double t262 = 32.0/9.0*eta;
1116  double t266 = 32.0/3.0*t30;
1117  double t267 = 32.0/3.0*t46;
1118  double t268 = 256.0/9.0*t39;
1119  double t270 = 256.0/9.0*t43;
1120  double t271 = 64.0/9.0-t261-t262-64.0/3.0*t1-256.0/9.0*t31-64.0/3.0*t15+t266+t267+t268+64.0*t41+t270;
1121  double t272 = 16.0/3.0*xi;
1122  double t273 = 16.0/3.0*eta;
1123  double t274 = 16.0*t1;
1124  double t275 = 64.0/3.0*t31;
1125  double t276 = 16.0*t15;
1126  double t277 = 16.0*t30;
1127  double t278 = 16.0*t46;
1128  double t280 = 48.0*t41;
1129  double t284 = 128.0/9.0*t31;
1130 
1131  values[0] = t47;
1132  values[1] = t62;
1133  values[2] = t77;
1134  values[3] = t91;
1135  values[4] = t101;
1136  values[5] = t111;
1137  values[6] = t121;
1138  values[7] = t136;
1139  values[8] = t151;
1140  values[9] = t165;
1141  values[10] = t175;
1142  values[11] = t185;
1143  values[12] = t195;
1144  values[13] = t202;
1145  values[14] = t207;
1146  values[15] = t213;
1147  values[16] = t219;
1148  values[17] = t225;
1149  values[18] = t230;
1150  values[19] = t237;
1151  values[20] = t244;
1152  values[21] = t250;
1153  values[22] = t254;
1154  values[23] = t260;
1155  values[24] = t271;
1156  values[25] = -16.0/3.0+t272+t273+t274+t275+t276-t277-t278-128.0/3.0*t39-t280;
1157  values[26] = -16.0/3.0+t272+t273+t274+t275+t276-t277-t278-t280-128.0/3.0*t43;
1158  values[27] = -t262-t284+t266+t268;
1159  values[28] = 4.0-4.0*xi-4.0*eta-12.0*t1+4.0*t31-12.0*t15+12.0*t30+12.0*t46+36.0*t41;
1160  values[29] = -t261-t284+t267+t270;
1161 }
1162 
1163 // values of the derivatives in eta-eta direction
1164 static void C_Q_M6_2D_DeriveEtaEta(double xi, double eta, double *values)
1165 {
1166  double t1 = eta*eta;
1167  double t2 = t1*t1;
1168  double t6 = 1.0+xi;
1169  double t7 = (3.0/8.0+35.0/8.0*t2-15.0/4.0*t1)*t6;
1170  double t8 = 81.0/350.0*t7;
1171  double t9 = t1*eta;
1172  double t14 = eta*(35.0/2.0*t9-15.0/2.0*eta)*t6;
1173  double t15 = 81.0/175.0*t14;
1174  double t20 = (1.0-t1)*(105.0/2.0*t1-15.0/2.0)*t6;
1175  double t21 = 81.0/700.0*t20;
1176  double t22 = t1*xi;
1177  double t23 = 1107.0/140.0*t22;
1178  double t24 = xi*xi;
1179  double t25 = t24*xi;
1180  double t28 = xi*eta;
1181  double t31 = t24*t24;
1182  double t32 = 277.0/192.0*t31;
1183  double t33 = t25*eta;
1184  double t35 = t24*t1;
1185  double t36 = 277.0/32.0*t35;
1186  double t37 = xi*t9;
1187  double t38 = 81.0/8.0*t37;
1188  double t39 = t24*eta;
1189  double t40 = 26111.0/1120.0*t1;
1190  double t42 = 81.0/8.0*t9;
1191  double t43 = 243.0/8.0*t2;
1192  double t44 = -t8-t15+t21-t23-t25/3.0-229.0/96.0*t24-267.0/32.0*t28+10399.0/8400.0*xi+t32+213.0/32.0*t33+t36+t38-t39+65431.0/33600.0-t40+43.0/16.0*eta-t42+t43;
1193  double t46 = 75.0/32.0*t24;
1194  double t49 = 27.0/16.0*t31;
1195  double t50 = 189.0/32.0*t33;
1196  double t51 = 63.0/16.0*t35;
1197  double t52 = 63.0/64.0*t39;
1198  double t53 = 63.0/16.0*t1;
1199  double t54 = 63.0/64.0*eta;
1200  double t55 = 9.0/64.0*t25+t46+189.0/32.0*t28-9.0/64.0*xi-t49-t50-t51-t52-21.0/32.0+t53+t54;
1201  double t56 = 63.0/128.0*t25;
1202  double t57 = 483.0/64.0*t24;
1203  double t59 = 63.0/128.0*xi;
1204  double t60 = 189.0/32.0*t31;
1205  double t61 = 945.0/64.0*t33;
1206  double t62 = 315.0/32.0*t35;
1207  double t63 = 315.0/128.0*t39;
1208  double t64 = 315.0/32.0*t1;
1209  double t65 = 315.0/128.0*eta;
1210  double t66 = -t56+t57+945.0/64.0*t28+t59-t60-t61-t62-t63-105.0/64.0+t64+t65;
1211  double t68 = 677.0/48.0*t24;
1212  double t69 = 297.0/16.0*t28;
1213  double t73 = 35.0/8.0*t1;
1214  double t75 = 297.0/16.0*t33;
1215  double t76 = 35.0/8.0*t35;
1216  double t77 = -99.0/32.0*xi-t68-t69+99.0/32.0*t25+227.0/32.0*t39+83.0/48.0-227.0/32.0*eta-t73+99.0/8.0*t31+t75+t76;
1217  double t79 = 399.0/64.0*t24;
1218  double t82 = 189.0/64.0*t33;
1219  double t83 = 63.0/32.0*t35;
1220  double t84 = 63.0/128.0*t39;
1221  double t85 = 63.0/32.0*t1;
1222  double t86 = 63.0/128.0*eta;
1223  double t87 = -315.0/128.0*t25+t79+189.0/64.0*t28+315.0/128.0*xi-t60-t82-t83-t84-21.0/64.0+t85+t86;
1224  double t89 = 51.0/32.0*t24;
1225  double t92 = 27.0/32.0*t33;
1226  double t93 = 9.0/16.0*t35;
1227  double t94 = 9.0/64.0*t39;
1228  double t95 = 9.0/16.0*t1;
1229  double t96 = 9.0/64.0*eta;
1230  double t97 = -63.0/64.0*t25+t89-27.0/32.0*t28+63.0/64.0*xi-t49+t92+t93+t94+3.0/32.0-t95-t96;
1231  double t99 = 403.0/288.0*t24;
1232  double t100 = 125.0/32.0*t28;
1233  double t102 = 71.0/32.0*t33;
1234  double t103 = 263.0/96.0*t35;
1235  double t105 = 17363.0/3360.0*t1;
1236  double t107 = t8+t15-t21+t23+103.0/96.0*t25-t99+t100-33223.0/16800.0*xi+t32-t102+t103-t38-119.0/48.0*t39-95563.0/100800.0+t105+25.0/6.0*eta-t42;
1237  double t109 = 39.0/32.0*t24;
1238  double t111 = 21.0/64.0*t25;
1239  double t113 = 3807.0/140.0*t22;
1240  double t115 = 6669.0/280.0*t1;
1241  double t116 = 81.0/2.0*t9;
1242  double t117 = 21.0/32.0*t31;
1243  double t118 = 63.0/32.0*t33;
1244  double t119 = 27.0/8.0*t35;
1245  double t120 = 81.0/2.0*t37;
1246  double t121 = 243.0/175.0*t7;
1247  double t122 = 486.0/175.0*t14;
1248  double t123 = 243.0/350.0*t20;
1249  double t124 = 60267.0/11200.0*xi+t109-495.0/32.0*t28-t111+135.0/64.0*t39-t113+12573.0/2800.0-999.0/64.0*eta-t115+t116-t117+t118-t119+t120-t121-t122+t123;
1250  double t126 = 231.0/64.0*t24;
1251  double t128 = 105.0/128.0*t25;
1252  double t130 = 1053.0/28.0*t22;
1253  double t132 = 5535.0/112.0*t1;
1254  double t133 = 405.0/8.0*t9;
1255  double t134 = 105.0/64.0*t31;
1256  double t135 = 315.0/64.0*t33;
1257  double t136 = 189.0/16.0*t35;
1258  double t137 = 405.0/8.0*t37;
1259  double t138 = 243.0/70.0*t7;
1260  double t139 = 243.0/35.0*t14;
1261  double t140 = 243.0/140.0*t20;
1262  double t141 = -30237.0/4480.0*xi+t126+1089.0/64.0*t28-t128+567.0/128.0*t39+t130-10683.0/1120.0+2241.0/128.0*eta+t132-t133-t134+t135-t136-t137+t138+t139-t140;
1263  double t143 = 281.0/48.0*t24;
1264  double t144 = 99.0/16.0*t28;
1265  double t147 = 513.0/14.0*t22;
1266  double t150 = 35.0/48.0*t31;
1267  double t151 = 99.0/16.0*t33;
1268  double t153 = 162.0/35.0*t7;
1269  double t154 = 324.0/35.0*t14;
1270  double t155 = 81.0/35.0*t20;
1271  double t156 = 24007.0/3360.0*xi-t143+t144-29.0/96.0*t25-99.0/32.0*t39-t147+3351.0/280.0+99.0/32.0*eta-1719.0/28.0*t1+t150-t151+99.0/4.0*t35-t153-t154+t155;
1272  double t158 = 147.0/64.0*t24;
1273  double t160 = 21.0/128.0*t25;
1274  double t161 = 189.0/128.0*t39;
1275  double t163 = 21.0/64.0*t31;
1276  double t164 = 63.0/64.0*t33;
1277  double t165 = -33177.0/4480.0*xi+t158-1467.0/64.0*t28-t160-t161+t130-10683.0/1120.0-2619.0/128.0*eta+t132+t133-t163+t164-t136+t137+t138+t139-t140;
1278  double t167 = 15.0/32.0*t24;
1279  double t169 = 3.0/64.0*t25;
1280  double t172 = 3.0/32.0*t31;
1281  double t173 = 9.0/32.0*t33;
1282  double t174 = 56067.0/11200.0*xi+t167+441.0/32.0*t28+t169-81.0/64.0*t39-t113+12573.0/2800.0+945.0/64.0*eta-t115-t116+t172-t173-t119-t120-t121-t122+t123;
1283  double t179 = 263.0/576.0*t31;
1284  double t183 = t8+t15-t21+t23+167.0/288.0*t25-119.0/288.0*t24-233.0/96.0*t28-74819.0/50400.0*xi+t179+71.0/96.0*t33+t103+t38+167.0/96.0*t39-95563.0/100800.0+t105-329.0/96.0*eta+t42;
1285  double t187 = 9.0/16.0*t31;
1286  double t188 = 27.0/64.0*xi+t167+9.0/32.0*t28-27.0/64.0*t25+t94+3.0/32.0-t96-t95-t187-t173+t93;
1287  double t190 = 63.0/32.0*t31;
1288  double t191 = t59+t158-63.0/64.0*t28-t56-t84-21.0/64.0+t86+t85-t190+t164-t83;
1289  double t197 = 33.0/32.0*xi-t143+t144-33.0/32.0*t25-29.0/32.0*t39+83.0/48.0+29.0/32.0*eta-t73+33.0/8.0*t31-t151+t76;
1290  double t201 = -189.0/128.0*xi+t126-315.0/64.0*t28+189.0/128.0*t25-t63-105.0/64.0+t65+t64-t190+t135-t62;
1291  double t205 = -45.0/64.0*xi+t109-63.0/32.0*t28+45.0/64.0*t25-t52-21.0/32.0+t54+t53-t187+t118-t51;
1292  double t210 = -t8-t15+t21-t23-119.0/144.0*t25-t99+t100+21811.0/12600.0*xi+t179-t102+t36-t38+103.0/32.0*t39+65431.0/33600.0-t40-157.0/32.0*eta+t42+t43;
1293  double t213 = 81.0/8.0*t35;
1294  double t215 = 33129.0/280.0*t1;
1295  double t217 = 729.0/4.0*t2;
1296  double t218 = t121+t122-t123+t113+t169+t89-459.0/32.0*t28-57117.0/11200.0*xi+t172+t92-t213+t120-189.0/64.0*t39-22653.0/2800.0+t215+1053.0/64.0*eta-t116-t217;
1297  double t221 = 567.0/16.0*t35;
1298  double t223 = 29727.0/112.0*t1;
1299  double t225 = 3645.0/8.0*t2;
1300  double t226 = -t138-t139+t140-t130-t160+t79+1593.0/64.0*t28+34647.0/4480.0*xi-t163-t82-t221-t137-945.0/128.0*t39+16983.0/1120.0-t223-1863.0/128.0*eta+t133+t225;
1301  double t234 = -30937.0/3360.0*xi-t68-t69+227.0/96.0*t25+297.0/32.0*t39+t147-5031.0/280.0-297.0/32.0*eta+9531.0/28.0*t1+t150+t75+297.0/4.0*t35-1215.0/2.0*t2+t153+t154-t155;
1302  double t238 = -t138-t139+t140-t130-t128+t57-459.0/64.0*t28+37587.0/4480.0*xi-t134-t61-t221+t137-t161+16983.0/1120.0-t223+2997.0/128.0*eta-t133+t225;
1303  double t243 = t121+t122-t123+t113-t111+t46+621.0/32.0*t28-52917.0/11200.0*xi-t117-t50-t213-t120+27.0/64.0*t39-22653.0/2800.0+t215-891.0/64.0*eta+t116-t217;
1304  double t244 = 32.0/9.0*xi;
1305  double t247 = 32.0/9.0*t25;
1306  double t248 = 32.0/3.0*t39;
1307  double t249 = 32.0/3.0*eta;
1308  double t250 = 128.0/3.0*t1;
1309  double t251 = 64.0/9.0*t31;
1310  double t253 = 128.0/3.0*t35;
1311  double t254 = -t244-128.0/9.0*t24-128.0/3.0*t28+t247+t248+64.0/9.0-t249-t250+t251+128.0/3.0*t33+t253;
1312  double t255 = 16.0/3.0*xi;
1313  double t256 = 32.0/3.0*t24;
1314  double t257 = 32.0*t28;
1315  double t258 = 16.0/3.0*t25;
1316  double t259 = 16.0*t39;
1317  double t260 = 16.0*eta;
1318  double t262 = 32.0*t33;
1319  double t267 = 64.0/9.0*t24;
1320 
1321  values[0] = t44;
1322  values[1] = t55;
1323  values[2] = t66;
1324  values[3] = t77;
1325  values[4] = t87;
1326  values[5] = t97;
1327  values[6] = t107;
1328  values[7] = t124;
1329  values[8] = t141;
1330  values[9] = t156;
1331  values[10] = t165;
1332  values[11] = t174;
1333  values[12] = t183;
1334  values[13] = t188;
1335  values[14] = t191;
1336  values[15] = t197;
1337  values[16] = t201;
1338  values[17] = t205;
1339  values[18] = t210;
1340  values[19] = t218;
1341  values[20] = t226;
1342  values[21] = t234;
1343  values[22] = t238;
1344  values[23] = t243;
1345  values[24] = t254;
1346  values[25] = t255+t256+t257-t258-t259+t260-32.0/3.0*t31-t262;
1347  values[26] = t255+t256+t257-t258-t259-32.0/3.0+t260+64.0*t1-t262-64.0*t35;
1348  values[27] = -t244-t267+t247+t251;
1349  values[28] = -4.0*xi+2.0*t24-24.0*t28+4.0*t25+12.0*t39-2.0-12.0*eta+24.0*t33;
1350  values[29] = -t267+t248+64.0/9.0-t249-t250+t253;
1351 }
1352 
1353 // ***********************************************************************
1354 
1355 TBaseFunct2D *BF_C_Q_M6_2D_Obj = new TBaseFunct2D
1356  (30, BF_C_Q_M6_2D, BFUnitSquare,
1357  C_Q_M6_2D_Funct, C_Q_M6_2D_DeriveXi,
1358  C_Q_M6_2D_DeriveEta, C_Q_M6_2D_DeriveXiXi,
1359  C_Q_M6_2D_DeriveXiEta, C_Q_M6_2D_DeriveEtaEta, 6, 6,
1360  0, NULL);
Definition: BaseFunct2D.h:27