49 double u = lcoords[0];
50 double v = lcoords[1];
51 double w = lcoords[2];
53 std::array<double, 3> a = {0.5 * ( u - 1.0 ) * u, 0.5 * ( u + 1.0 ) * u, 1.0 - u * u};
54 std::array<double, 3> b = {0.5 * ( v - 1.0 ) * v, 0.5 * ( v + 1.0 ) * v, 1.0 - v * v};
55 std::array<double, 3> c = {0.5 * ( w - 1.0 ) * w, 0.5 * ( w + 1.0 ) * w, 1.0 - w * w};
58 a [ 0 ] * b [ 0 ] * c [ 1 ],
59 a [ 0 ] * b [ 1 ] * c [ 1 ],
60 a [ 1 ] * b [ 1 ] * c [ 1 ],
61 a [ 1 ] * b [ 0 ] * c [ 1 ],
62 a [ 0 ] * b [ 0 ] * c [ 0 ],
63 a [ 0 ] * b [ 1 ] * c [ 0 ],
64 a [ 1 ] * b [ 1 ] * c [ 0 ],
65 a [ 1 ] * b [ 0 ] * c [ 0 ],
66 a [ 0 ] * b [ 2 ] * c [ 1 ],
67 a [ 2 ] * b [ 1 ] * c [ 1 ],
68 a [ 1 ] * b [ 2 ] * c [ 1 ],
69 a [ 2 ] * b [ 0 ] * c [ 1 ],
70 a [ 0 ] * b [ 2 ] * c [ 0 ],
71 a [ 2 ] * b [ 1 ] * c [ 0 ],
72 a [ 1 ] * b [ 2 ] * c [ 0 ],
73 a [ 2 ] * b [ 0 ] * c [ 0 ],
74 a [ 0 ] * b [ 0 ] * c [ 2 ],
75 a [ 0 ] * b [ 1 ] * c [ 2 ],
76 a [ 1 ] * b [ 1 ] * c [ 2 ],
77 a [ 1 ] * b [ 0 ] * c [ 2 ],
78 a [ 2 ] * b [ 2 ] * c [ 1 ],
79 a [ 0 ] * b [ 2 ] * c [ 2 ],
80 a [ 2 ] * b [ 2 ] * c [ 0 ],
81 a [ 2 ] * b [ 1 ] * c [ 2 ],
82 a [ 1 ] * b [ 2 ] * c [ 2 ],
83 a [ 2 ] * b [ 0 ] * c [ 2 ],
84 a [ 2 ] * b [ 2 ] * c [ 2 ]
92 answer =
evalN(lcoords);
94 double u = lcoords.
at(1);
95 double v = lcoords.
at(2);
96 double w = lcoords.
at(3);
99 0.5 * ( u - 1.0 ) * u, 0.5 * ( u + 1.0 ) * u, 1.0 - u * u
102 0.5 * ( v - 1.0 ) * v, 0.5 * ( v + 1.0 ) * v, 1.0 - v * v
105 0.5 * ( w - 1.0 ) * w, 0.5 * ( w + 1.0 ) * w, 1.0 - w * w
110 answer.
at(5) = a [ 0 ] * b [ 0 ] * c [ 0 ];
111 answer.
at(8) = a [ 1 ] * b [ 0 ] * c [ 0 ];
112 answer.
at(16) = a [ 2 ] * b [ 0 ] * c [ 0 ];
114 answer.
at(6) = a [ 0 ] * b [ 1 ] * c [ 0 ];
115 answer.
at(7) = a [ 1 ] * b [ 1 ] * c [ 0 ];
116 answer.
at(14) = a [ 2 ] * b [ 1 ] * c [ 0 ];
118 answer.
at(13) = a [ 0 ] * b [ 2 ] * c [ 0 ];
119 answer.
at(15) = a [ 1 ] * b [ 2 ] * c [ 0 ];
120 answer.
at(22) = a [ 2 ] * b [ 2 ] * c [ 0 ];
122 answer.
at(1) = a [ 0 ] * b [ 0 ] * c [ 1 ];
123 answer.
at(4) = a [ 1 ] * b [ 0 ] * c [ 1 ];
124 answer.
at(12) = a [ 2 ] * b [ 0 ] * c [ 1 ];
126 answer.
at(2) = a [ 0 ] * b [ 1 ] * c [ 1 ];
127 answer.
at(3) = a [ 1 ] * b [ 1 ] * c [ 1 ];
128 answer.
at(10) = a [ 2 ] * b [ 1 ] * c [ 1 ];
130 answer.
at(9) = a [ 0 ] * b [ 2 ] * c [ 1 ];
131 answer.
at(11) = a [ 1 ] * b [ 2 ] * c [ 1 ];
132 answer.
at(21) = a [ 2 ] * b [ 2 ] * c [ 1 ];
134 answer.
at(17) = a [ 0 ] * b [ 0 ] * c [ 2 ];
135 answer.
at(20) = a [ 1 ] * b [ 0 ] * c [ 2 ];
136 answer.
at(26) = a [ 2 ] * b [ 0 ] * c [ 2 ];
138 answer.
at(18) = a [ 0 ] * b [ 1 ] * c [ 2 ];
139 answer.
at(19) = a [ 1 ] * b [ 1 ] * c [ 2 ];
140 answer.
at(24) = a [ 2 ] * b [ 1 ] * c [ 2 ];
142 answer.
at(23) = a [ 0 ] * b [ 2 ] * c [ 2 ];
143 answer.
at(25) = a [ 1 ] * b [ 2 ] * c [ 2 ];
144 answer.
at(27) = a [ 2 ] * b [ 2 ] * c [ 2 ];
183 double u = lcoords.
at(1);
184 double v = lcoords.
at(2);
187 0.5 * ( u - 1. ) * u, 0.5 * ( u + 1. ) * u, 1. - u * u
190 0.5 * ( v - 1. ) * v, 0.5 * ( v + 1. ) * v, 1. - v * v
194 u - 0.5, u + 0.5, -2. * u
197 v - 0.5, v + 0.5, -2. * v
200 dNdu.at(1) = da [ 0 ] * b [ 0 ];
201 dNdu.at(2) = da [ 1 ] * b [ 0 ];
202 dNdu.at(5) = da [ 2 ] * b [ 0 ];
204 dNdu.at(4) = da [ 0 ] * b [ 1 ];
205 dNdu.at(3) = da [ 1 ] * b [ 1 ];
206 dNdu.at(7) = da [ 2 ] * b [ 1 ];
208 dNdu.at(8) = da [ 0 ] * b [ 2 ];
209 dNdu.at(6) = da [ 1 ] * b [ 2 ];
210 dNdu.at(9) = da [ 2 ] * b [ 2 ];
213 dNdv.
at(1) = a [ 0 ] * db [ 0 ];
214 dNdv.
at(2) = a [ 1 ] * db [ 0 ];
215 dNdv.
at(5) = a [ 2 ] * db [ 0 ];
217 dNdv.
at(4) = a [ 0 ] * db [ 1 ];
218 dNdv.
at(3) = a [ 1 ] * db [ 1 ];
219 dNdv.
at(7) = a [ 2 ] * db [ 1 ];
221 dNdv.
at(8) = a [ 0 ] * db [ 2 ];
222 dNdv.
at(6) = a [ 1 ] * db [ 2 ];
223 dNdv.
at(9) = a [ 2 ] * db [ 2 ];
226 for (
int i = 1; i <= 9; ++i ) {
237FEI3dHexaTriQuad :: computeLocalSurfaceMapping(
int isurf)
const
240 return { 2, 1, 4, 3, 9, 12, 11, 10, 21};
241 }
else if ( isurf == 2 ) {
242 return { 5, 6, 7, 8, 13, 14, 15, 16, 22};
243 }
else if ( isurf == 3 ) {
244 return { 1, 2, 6, 5, 9, 18, 13, 17, 23};
245 }
else if ( isurf == 4 ) {
246 return { 2, 3, 7, 6, 10, 19, 14, 18, 24};
247 }
else if ( isurf == 5 ) {
248 return { 3, 4, 8, 7, 11, 20, 15, 19, 25};
249 }
else if ( isurf == 6 ) {
250 return { 4, 1, 5, 8, 12, 17, 16, 20, 26};
252 throw std::range_error(
"invalid surface number");
261 double u = lcoords[0];
262 double v = lcoords[1];
263 double w = lcoords[2];
265 std::array<double, 3> a = {0.5 * ( u - 1.0 ) * u, 0.5 * ( u + 1.0 ) * u, 1.0 - u * u};
266 std::array<double, 3> b = {0.5 * ( v - 1.0 ) * v, 0.5 * ( v + 1.0 ) * v, 1.0 - v * v};
267 std::array<double, 3> c = {0.5 * ( w - 1.0 ) * w, 0.5 * ( w + 1.0 ) * w, 1.0 - w * w};
269 std::array<double, 3> da = {-0.5 + u, 0.5 + u, -2.0 * u};
270 std::array<double, 3> db = {-0.5 + v, 0.5 + v, -2.0 * v};
271 std::array<double, 3> dc = {-0.5 + w, 0.5 + w, -2.0 * w};
274 da [ 0 ] * b [ 0 ] * c [ 1 ], a [ 0 ] * db [ 0 ] * c [ 1 ], a [ 0 ] * b [ 0 ] * dc [ 1 ],
275 da [ 0 ] * b [ 1 ] * c [ 1 ], a [ 0 ] * db [ 1 ] * c [ 1 ], a [ 0 ] * b [ 1 ] * dc [ 1 ],
276 da [ 1 ] * b [ 1 ] * c [ 1 ], a [ 1 ] * db [ 1 ] * c [ 1 ], a [ 1 ] * b [ 1 ] * dc [ 1 ],
277 da [ 1 ] * b [ 0 ] * c [ 1 ], a [ 1 ] * db [ 0 ] * c [ 1 ], a [ 1 ] * b [ 0 ] * dc [ 1 ],
278 da [ 0 ] * b [ 0 ] * c [ 0 ], a [ 0 ] * db [ 0 ] * c [ 0 ], a [ 0 ] * b [ 0 ] * dc [ 0 ],
279 da [ 0 ] * b [ 1 ] * c [ 0 ], a [ 0 ] * db [ 1 ] * c [ 0 ], a [ 0 ] * b [ 1 ] * dc [ 0 ],
280 da [ 1 ] * b [ 1 ] * c [ 0 ], a [ 1 ] * db [ 1 ] * c [ 0 ], a [ 1 ] * b [ 1 ] * dc [ 0 ],
281 da [ 1 ] * b [ 0 ] * c [ 0 ], a [ 1 ] * db [ 0 ] * c [ 0 ], a [ 1 ] * b [ 0 ] * dc [ 0 ],
282 da [ 0 ] * b [ 2 ] * c [ 1 ], a [ 0 ] * db [ 2 ] * c [ 1 ], a [ 0 ] * b [ 2 ] * dc [ 1 ],
283 da [ 2 ] * b [ 1 ] * c [ 1 ], a [ 2 ] * db [ 1 ] * c [ 1 ], a [ 2 ] * b [ 1 ] * dc [ 1 ],
284 da [ 1 ] * b [ 2 ] * c [ 1 ], a [ 1 ] * db [ 2 ] * c [ 1 ], a [ 1 ] * b [ 2 ] * dc [ 1 ],
285 da [ 2 ] * b [ 0 ] * c [ 1 ], a [ 2 ] * db [ 0 ] * c [ 1 ], a [ 2 ] * b [ 0 ] * dc [ 1 ],
286 da [ 0 ] * b [ 2 ] * c [ 0 ], a [ 0 ] * db [ 2 ] * c [ 0 ], a [ 0 ] * b [ 2 ] * dc [ 0 ],
287 da [ 2 ] * b [ 1 ] * c [ 0 ], a [ 2 ] * db [ 1 ] * c [ 0 ], a [ 2 ] * b [ 1 ] * dc [ 0 ],
288 da [ 1 ] * b [ 2 ] * c [ 0 ], a [ 1 ] * db [ 2 ] * c [ 0 ], a [ 1 ] * b [ 2 ] * dc [ 0 ],
289 da [ 2 ] * b [ 0 ] * c [ 0 ], a [ 2 ] * db [ 0 ] * c [ 0 ], a [ 2 ] * b [ 0 ] * dc [ 0 ],
290 da [ 0 ] * b [ 0 ] * c [ 2 ], a [ 0 ] * db [ 0 ] * c [ 2 ], a [ 0 ] * b [ 0 ] * dc [ 2 ],
291 da [ 0 ] * b [ 1 ] * c [ 2 ], a [ 0 ] * db [ 1 ] * c [ 2 ], a [ 0 ] * b [ 1 ] * dc [ 2 ],
292 da [ 1 ] * b [ 1 ] * c [ 2 ], a [ 1 ] * db [ 1 ] * c [ 2 ], a [ 1 ] * b [ 1 ] * dc [ 2 ],
293 da [ 1 ] * b [ 0 ] * c [ 2 ], a [ 1 ] * db [ 0 ] * c [ 2 ], a [ 1 ] * b [ 0 ] * dc [ 2 ],
294 da [ 2 ] * b [ 2 ] * c [ 1 ], a [ 2 ] * db [ 2 ] * c [ 1 ], a [ 2 ] * b [ 2 ] * dc [ 1 ],
295 da [ 2 ] * b [ 2 ] * c [ 0 ], a [ 2 ] * db [ 2 ] * c [ 0 ], a [ 2 ] * b [ 2 ] * dc [ 0 ],
296 da [ 0 ] * b [ 2 ] * c [ 2 ], a [ 0 ] * db [ 2 ] * c [ 2 ], a [ 0 ] * b [ 2 ] * dc [ 2 ],
297 da [ 2 ] * b [ 1 ] * c [ 2 ], a [ 2 ] * db [ 1 ] * c [ 2 ], a [ 2 ] * b [ 1 ] * dc [ 2 ],
298 da [ 1 ] * b [ 2 ] * c [ 2 ], a [ 1 ] * db [ 2 ] * c [ 2 ], a [ 1 ] * b [ 2 ] * dc [ 2 ],
299 da [ 2 ] * b [ 0 ] * c [ 2 ], a [ 2 ] * db [ 0 ] * c [ 2 ], a [ 2 ] * b [ 0 ] * dc [ 2 ],
300 da [ 2 ] * b [ 2 ] * c [ 2 ], a [ 2 ] * db [ 2 ] * c [ 2 ], a [ 2 ] * b [ 2 ] * dc [ 2 ],
318 0.5 * ( u - 1.0 ) * u, 0.5 * ( u + 1.0 ) * u, 1.0 - u * u
321 0.5 * ( v - 1.0 ) * v, 0.5 * ( v + 1.0 ) * v, 1.0 - v * v
324 0.5 * ( w - 1.0 ) * w, 0.5 * ( w + 1.0 ) * w, 1.0 - w * w
328 -0.5 + u, 0.5 + u, -2.0 * u
331 -0.5 + v, 0.5 + v, -2.0 * v
334 -0.5 + w, 0.5 + w, -2.0 * w
339 dN.
at(5, 1) = da [ 0 ] * b [ 0 ] * c [ 0 ];
340 dN.
at(8, 1) = da [ 1 ] * b [ 0 ] * c [ 0 ];
341 dN.
at(16, 1) = da [ 2 ] * b [ 0 ] * c [ 0 ];
343 dN.
at(6, 1) = da [ 0 ] * b [ 1 ] * c [ 0 ];
344 dN.
at(7, 1) = da [ 1 ] * b [ 1 ] * c [ 0 ];
345 dN.
at(14, 1) = da [ 2 ] * b [ 1 ] * c [ 0 ];
347 dN.
at(13, 1) = da [ 0 ] * b [ 2 ] * c [ 0 ];
348 dN.
at(15, 1) = da [ 1 ] * b [ 2 ] * c [ 0 ];
349 dN.
at(22, 1) = da [ 2 ] * b [ 2 ] * c [ 0 ];
351 dN.
at(1, 1) = da [ 0 ] * b [ 0 ] * c [ 1 ];
352 dN.
at(4, 1) = da [ 1 ] * b [ 0 ] * c [ 1 ];
353 dN.
at(12, 1) = da [ 2 ] * b [ 0 ] * c [ 1 ];
355 dN.
at(2, 1) = da [ 0 ] * b [ 1 ] * c [ 1 ];
356 dN.
at(3, 1) = da [ 1 ] * b [ 1 ] * c [ 1 ];
357 dN.
at(10, 1) = da [ 2 ] * b [ 1 ] * c [ 1 ];
359 dN.
at(9, 1) = da [ 0 ] * b [ 2 ] * c [ 1 ];
360 dN.
at(11, 1) = da [ 1 ] * b [ 2 ] * c [ 1 ];
361 dN.
at(21, 1) = da [ 2 ] * b [ 2 ] * c [ 1 ];
363 dN.
at(17, 1) = da [ 0 ] * b [ 0 ] * c [ 2 ];
364 dN.
at(20, 1) = da [ 1 ] * b [ 0 ] * c [ 2 ];
365 dN.
at(26, 1) = da [ 2 ] * b [ 0 ] * c [ 2 ];
367 dN.
at(18, 1) = da [ 0 ] * b [ 1 ] * c [ 2 ];
368 dN.
at(19, 1) = da [ 1 ] * b [ 1 ] * c [ 2 ];
369 dN.
at(24, 1) = da [ 2 ] * b [ 1 ] * c [ 2 ];
371 dN.
at(23, 1) = da [ 0 ] * b [ 2 ] * c [ 2 ];
372 dN.
at(25, 1) = da [ 1 ] * b [ 2 ] * c [ 2 ];
373 dN.
at(27, 1) = da [ 2 ] * b [ 2 ] * c [ 2 ];
377 dN.
at(5, 2) = a [ 0 ] * db [ 0 ] * c [ 0 ];
378 dN.
at(8, 2) = a [ 1 ] * db [ 0 ] * c [ 0 ];
379 dN.
at(16, 2) = a [ 2 ] * db [ 0 ] * c [ 0 ];
381 dN.
at(6, 2) = a [ 0 ] * db [ 1 ] * c [ 0 ];
382 dN.
at(7, 2) = a [ 1 ] * db [ 1 ] * c [ 0 ];
383 dN.
at(14, 2) = a [ 2 ] * db [ 1 ] * c [ 0 ];
385 dN.
at(13, 2) = a [ 0 ] * db [ 2 ] * c [ 0 ];
386 dN.
at(15, 2) = a [ 1 ] * db [ 2 ] * c [ 0 ];
387 dN.
at(22, 2) = a [ 2 ] * db [ 2 ] * c [ 0 ];
389 dN.
at(1, 2) = a [ 0 ] * db [ 0 ] * c [ 1 ];
390 dN.
at(4, 2) = a [ 1 ] * db [ 0 ] * c [ 1 ];
391 dN.
at(12, 2) = a [ 2 ] * db [ 0 ] * c [ 1 ];
393 dN.
at(2, 2) = a [ 0 ] * db [ 1 ] * c [ 1 ];
394 dN.
at(3, 2) = a [ 1 ] * db [ 1 ] * c [ 1 ];
395 dN.
at(10, 2) = a [ 2 ] * db [ 1 ] * c [ 1 ];
397 dN.
at(9, 2) = a [ 0 ] * db [ 2 ] * c [ 1 ];
398 dN.
at(11, 2) = a [ 1 ] * db [ 2 ] * c [ 1 ];
399 dN.
at(21, 2) = a [ 2 ] * db [ 2 ] * c [ 1 ];
401 dN.
at(17, 2) = a [ 0 ] * db [ 0 ] * c [ 2 ];
402 dN.
at(20, 2) = a [ 1 ] * db [ 0 ] * c [ 2 ];
403 dN.
at(26, 2) = a [ 2 ] * db [ 0 ] * c [ 2 ];
405 dN.
at(18, 2) = a [ 0 ] * db [ 1 ] * c [ 2 ];
406 dN.
at(19, 2) = a [ 1 ] * db [ 1 ] * c [ 2 ];
407 dN.
at(24, 2) = a [ 2 ] * db [ 1 ] * c [ 2 ];
409 dN.
at(23, 2) = a [ 0 ] * db [ 2 ] * c [ 2 ];
410 dN.
at(25, 2) = a [ 1 ] * db [ 2 ] * c [ 2 ];
411 dN.
at(27, 2) = a [ 2 ] * db [ 2 ] * c [ 2 ];
415 dN.
at(5, 3) = a [ 0 ] * b [ 0 ] * dc [ 0 ];
416 dN.
at(8, 3) = a [ 1 ] * b [ 0 ] * dc [ 0 ];
417 dN.
at(16, 3) = a [ 2 ] * b [ 0 ] * dc [ 0 ];
419 dN.
at(6, 3) = a [ 0 ] * b [ 1 ] * dc [ 0 ];
420 dN.
at(7, 3) = a [ 1 ] * b [ 1 ] * dc [ 0 ];
421 dN.
at(14, 3) = a [ 2 ] * b [ 1 ] * dc [ 0 ];
423 dN.
at(13, 3) = a [ 0 ] * b [ 2 ] * dc [ 0 ];
424 dN.
at(15, 3) = a [ 1 ] * b [ 2 ] * dc [ 0 ];
425 dN.
at(22, 3) = a [ 2 ] * b [ 2 ] * dc [ 0 ];
427 dN.
at(1, 3) = a [ 0 ] * b [ 0 ] * dc [ 1 ];
428 dN.
at(4, 3) = a [ 1 ] * b [ 0 ] * dc [ 1 ];
429 dN.
at(12, 3) = a [ 2 ] * b [ 0 ] * dc [ 1 ];
431 dN.
at(2, 3) = a [ 0 ] * b [ 1 ] * dc [ 1 ];
432 dN.
at(3, 3) = a [ 1 ] * b [ 1 ] * dc [ 1 ];
433 dN.
at(10, 3) = a [ 2 ] * b [ 1 ] * dc [ 1 ];
435 dN.
at(9, 3) = a [ 0 ] * b [ 2 ] * dc [ 1 ];
436 dN.
at(11, 3) = a [ 1 ] * b [ 2 ] * dc [ 1 ];
437 dN.
at(21, 3) = a [ 2 ] * b [ 2 ] * dc [ 1 ];
439 dN.
at(17, 3) = a [ 0 ] * b [ 0 ] * dc [ 2 ];
440 dN.
at(20, 3) = a [ 1 ] * b [ 0 ] * dc [ 2 ];
441 dN.
at(26, 3) = a [ 2 ] * b [ 0 ] * dc [ 2 ];
443 dN.
at(18, 3) = a [ 0 ] * b [ 1 ] * dc [ 2 ];
444 dN.
at(19, 3) = a [ 1 ] * b [ 1 ] * dc [ 2 ];
445 dN.
at(24, 3) = a [ 2 ] * b [ 1 ] * dc [ 2 ];
447 dN.
at(23, 3) = a [ 0 ] * b [ 2 ] * dc [ 2 ];
448 dN.
at(25, 3) = a [ 1 ] * b [ 2 ] * dc [ 2 ];
449 dN.
at(27, 3) = a [ 2 ] * b [ 2 ] * dc [ 2 ];
493 c2(1) * ( -3 * c3(0) - 3 * c4(0) + 18 * c6(0) - 4 * c7(0) + 18 * c8(0) + 24 * c9(0) ) +
494 c3(1) * ( 3 * c2(0) - 3 * c4(0) + 2 * c5(0) + 2 * c6(0) - 2 * c7(0) - 2 * c8(0) ) +
495 c4(1) * ( 3 * c2(0) + 3 * c3(0) - 18 * c5(0) + 4 * c6(0) - 18 * c7(0) - 24 * c9(0) ) +
496 c5(1) * ( -2 * c3(0) + 18 * c4(0) + 12 * c6(0) + 24 * c7(0) - 108 * c8(0) - 144 * c9(0) ) +
497 c6(1) * ( -18 * c2(0) - 2 * c3(0) - 4 * c4(0) - 12 * c5(0) - 4 * c7(0) + 24 * c8(0) + 16 * c9(0) ) +
498 c7(1) * ( 4 * c2(0) + 2 * c3(0) + 18 * c4(0) - 24 * c5(0) + 4 * c6(0) + 12 * c8(0) - 16 * c9(0) ) +
499 c8(1) * ( -18 * c2(0) + 2 * c3(0) + 108 * c5(0) - 24 * c6(0) - 12 * c7(0) + 144 * c9(0) ) +
500 c9(1) * ( -24 * c2(0) + 24 * c4(0) + 144 * c5(0) - 16 * c6(0) + 16 * c7(0) - 144 * c8(0) )
503 c1(1) * ( 3 * c3(0) + 3 * c4(0) - 18 * c6(0) + 4 * c7(0) - 18 * c8(0) - 24 * c9(0) ) +
504 c3(1) * ( -3 * c1(0) - 3 * c4(0) + 18 * c5(0) + 18 * c7(0) - 4 * c8(0) + 24 * c9(0) ) +
505 c4(1) * ( -3 * c1(0) + 3 * c3(0) - 2 * c5(0) + 2 * c6(0) + 2 * c7(0) - 2 * c8(0) ) +
506 c5(1) * ( -18 * c3(0) + 2 * c4(0) + 108 * c6(0) - 24 * c7(0) - 12 * c8(0) + 144 * c9(0) ) +
507 c6(1) * ( 18 * c1(0) - 2 * c4(0) - 108 * c5(0) + 12 * c7(0) + 24 * c8(0) - 144 * c9(0) ) +
508 c7(1) * ( -4 * c1(0) - 18 * c3(0) - 2 * c4(0) + 24 * c5(0) - 12 * c6(0) - 4 * c8(0) + 16 * c9(0) ) +
509 c8(1) * ( 18 * c1(0) + 4 * c3(0) + 2 * c4(0) + 12 * c5(0) - 24 * c6(0) + 4 * c7(0) - 16 * c9(0) ) +
510 c9(1) * ( 24 * c1(0) - 24 * c3(0) - 144 * c5(0) + 144 * c6(0) - 16 * c7(0) + 16 * c8(0) )
513 c1(1) * ( -3 * c2(0) + 3 * c4(0) - 2 * c5(0) - 2 * c6(0) + 2 * c7(0) + 2 * c8(0) ) +
514 c2(1) * ( 3 * c1(0) + 3 * c4(0) - 18 * c5(0) - 18 * c7(0) + 4 * c8(0) - 24 * c9(0) ) +
515 c4(1) * ( -3 * c1(0) - 3 * c2(0) - 4 * c5(0) + 18 * c6(0) + 18 * c8(0) + 24 * c9(0) ) +
516 c5(1) * ( 2 * c1(0) + 18 * c2(0) + 4 * c4(0) + 12 * c6(0) - 24 * c7(0) + 4 * c8(0) - 16 * c9(0) ) +
517 c6(1) * ( 2 * c1(0) - 18 * c4(0) - 12 * c5(0) + 108 * c7(0) - 24 * c8(0) + 144 * c9(0) ) +
518 c7(1) * ( -2 * c1(0) + 18 * c2(0) + 24 * c5(0) - 108 * c6(0) + 12 * c8(0) - 144 * c9(0) ) +
519 c8(1) * ( -2 * c1(0) - 4 * c2(0) - 18 * c4(0) - 4 * c5(0) + 24 * c6(0) - 12 * c7(0) + 16 * c9(0) ) +
520 c9(1) * ( 24 * c2(0) - 24 * c4(0) + 16 * c5(0) - 144 * c6(0) + 144 * c7(0) - 16 * c8(0) )
523 c1(1) * ( -3 * c2(0) - 3 * c3(0) + 18 * c5(0) - 4 * c6(0) + 18 * c7(0) + 24 * c9(0) ) +
524 c2(1) * ( 3 * c1(0) - 3 * c3(0) + 2 * c5(0) - 2 * c6(0) - 2 * c7(0) + 2 * c8(0) ) +
525 c3(1) * ( 3 * c1(0) + 3 * c2(0) + 4 * c5(0) - 18 * c6(0) - 18 * c8(0) - 24 * c9(0) ) +
526 c5(1) * ( -18 * c1(0) - 2 * c2(0) - 4 * c3(0) - 4 * c6(0) + 24 * c7(0) - 12 * c8(0) + 16 * c9(0) ) +
527 c6(1) * ( 4 * c1(0) + 2 * c2(0) + 18 * c3(0) + 4 * c5(0) + 12 * c7(0) - 24 * c8(0) - 16 * c9(0) ) +
528 c7(1) * ( -18 * c1(0) + 2 * c2(0) - 24 * c5(0) - 12 * c6(0) + 108 * c8(0) + 144 * c9(0) ) +
529 c8(1) * ( -2 * c2(0) + 18 * c3(0) + 12 * c5(0) + 24 * c6(0) - 108 * c7(0) - 144 * c9(0) ) +
530 c9(1) * ( -24 * c1(0) + 24 * c3(0) - 16 * c5(0) + 16 * c6(0) - 144 * c7(0) + 144 * c8(0) )
533 c1(1) * ( 2 * c3(0) - 18 * c4(0) - 12 * c6(0) - 24 * c7(0) + 108 * c8(0) + 144 * c9(0) ) +
534 c2(1) * ( 18 * c3(0) - 2 * c4(0) - 108 * c6(0) + 24 * c7(0) + 12 * c8(0) - 144 * c9(0) ) +
535 c3(1) * ( -2 * c1(0) - 18 * c2(0) - 4 * c4(0) - 12 * c6(0) + 24 * c7(0) - 4 * c8(0) + 16 * c9(0) ) +
536 c4(1) * ( 18 * c1(0) + 2 * c2(0) + 4 * c3(0) + 4 * c6(0) - 24 * c7(0) + 12 * c8(0) - 16 * c9(0) ) +
537 c6(1) * ( 12 * c1(0) + 108 * c2(0) + 12 * c3(0) - 4 * c4(0) + 32 * c7(0) + 32 * c8(0) - 192 * c9(0) ) +
538 c7(1) * ( 24 * c1(0) - 24 * c2(0) - 24 * c3(0) + 24 * c4(0) - 32 * c6(0) + 32 * c8(0) ) +
539 c8(1) * ( -108 * c1(0) - 12 * c2(0) + 4 * c3(0) - 12 * c4(0) - 32 * c6(0) - 32 * c7(0) + 192 * c9(0) ) +
540 c9(1) * ( -144 * c1(0) + 144 * c2(0) - 16 * c3(0) + 16 * c4(0) + 192 * c6(0) - 192 * c8(0) )
543 c1(1) * ( 18 * c2(0) + 2 * c3(0) + 4 * c4(0) + 12 * c5(0) + 4 * c7(0) - 24 * c8(0) - 16 * c9(0) ) +
544 c2(1) * ( -18 * c1(0) + 2 * c4(0) + 108 * c5(0) - 12 * c7(0) - 24 * c8(0) + 144 * c9(0) ) +
545 c3(1) * ( -2 * c1(0) + 18 * c4(0) + 12 * c5(0) - 108 * c7(0) + 24 * c8(0) - 144 * c9(0) ) +
546 c4(1) * ( -4 * c1(0) - 2 * c2(0) - 18 * c3(0) - 4 * c5(0) - 12 * c7(0) + 24 * c8(0) + 16 * c9(0) ) +
547 c5(1) * ( -12 * c1(0) - 108 * c2(0) - 12 * c3(0) + 4 * c4(0) - 32 * c7(0) - 32 * c8(0) + 192 * c9(0) ) +
548 c8(1) * ( 24 * c1(0) + 24 * c2(0) - 24 * c3(0) - 24 * c4(0) + 32 * c5(0) - 32 * c7(0) ) +
549 c7(1) * ( -4 * c1(0) + 12 * c2(0) + 108 * c3(0) + 12 * c4(0) + 32 * c5(0) + 32 * c8(0) - 192 * c9(0) ) +
550 c9(1) * ( 16 * c1(0) - 144 * c2(0) + 144 * c3(0) - 16 * c4(0) - 192 * c5(0) + 192 * c7(0) )
553 c1(1) * ( -4 * c2(0) - 2 * c3(0) - 18 * c4(0) + 24 * c5(0) - 4 * c6(0) - 12 * c8(0) + 16 * c9(0) ) +
554 c2(1) * ( 4 * c1(0) + 18 * c3(0) + 2 * c4(0) - 24 * c5(0) + 12 * c6(0) + 4 * c8(0) - 16 * c9(0) ) +
555 c3(1) * ( 2 * c1(0) - 18 * c2(0) - 24 * c5(0) + 108 * c6(0) - 12 * c8(0) + 144 * c9(0) ) +
556 c4(1) * ( 18 * c1(0) - 2 * c2(0) + 24 * c5(0) + 12 * c6(0) - 108 * c8(0) - 144 * c9(0) ) +
557 c5(1) * ( -24 * c1(0) + 24 * c2(0) + 24 * c3(0) - 24 * c4(0) + 32 * c6(0) - 32 * c8(0) ) +
558 c6(1) * ( 4 * c1(0) - 12 * c2(0) - 108 * c3(0) - 12 * c4(0) - 32 * c5(0) - 32 * c8(0) + 192 * c9(0) ) +
559 c8(1) * ( 12 * c1(0) - 4 * c2(0) + 12 * c3(0) + 108 * c4(0) + 32 * c5(0) + 32 * c6(0) - 192 * c9(0) ) +
560 c9(1) * ( -16 * c1(0) + 16 * c2(0) - 144 * c3(0) + 144 * c4(0) - 192 * c6(0) + 192 * c8(0) )
563 c1(1) * ( 18 * c2(0) - 2 * c3(0) - 108 * c5(0) + 24 * c6(0) + 12 * c7(0) - 144 * c9(0) ) +
564 c2(1) * ( -18 * c1(0) - 4 * c3(0) - 2 * c4(0) - 12 * c5(0) + 24 * c6(0) - 4 * c7(0) + 16 * c9(0) ) +
565 c3(1) * ( 2 * c1(0) + 4 * c2(0) + 18 * c4(0) + 4 * c5(0) - 24 * c6(0) + 12 * c7(0) - 16 * c9(0) ) +
566 c4(1) * ( 2 * c2(0) - 18 * c3(0) - 12 * c5(0) - 24 * c6(0) + 108 * c7(0) + 144 * c9(0) ) +
567 c5(1) * ( 108 * c1(0) + 12 * c2(0) - 4 * c3(0) + 12 * c4(0) + 32 * c6(0) + 32 * c7(0) - 192 * c9(0) ) +
568 c6(1) * ( -24 * c1(0) - 24 * c2(0) + 24 * c3(0) + 24 * c4(0) - 32 * c5(0) + 32 * c7(0) ) +
569 c7(1) * ( -12 * c1(0) + 4 * c2(0) - 12 * c3(0) - 108 * c4(0) - 32 * c5(0) - 32 * c6(0) + 192 * c9(0) ) +
570 c9(1) * ( 144 * c1(0) - 16 * c2(0) + 16 * c3(0) - 144 * c4(0) + 192 * c5(0) - 192 * c7(0) )
573 c1(1) * ( 24 * c2(0) - 24 * c4(0) - 144 * c5(0) + 16 * c6(0) - 16 * c7(0) + 144 * c8(0) ) +
574 c2(1) * ( -24 * c1(0) + 24 * c3(0) + 144 * c5(0) - 144 * c6(0) + 16 * c7(0) - 16 * c8(0) ) +
575 c3(1) * ( -24 * c2(0) + 24 * c4(0) - 16 * c5(0) + 144 * c6(0) - 144 * c7(0) + 16 * c8(0) ) +
576 c4(1) * ( 24 * c1(0) - 24 * c3(0) + 16 * c5(0) - 16 * c6(0) + 144 * c7(0) - 144 * c8(0) ) +
577 c5(1) * ( 144 * c1(0) - 144 * c2(0) + 16 * c3(0) - 16 * c4(0) - 192 * c6(0) + 192 * c8(0) ) +
578 c6(1) * ( -16 * c1(0) + 144 * c2(0) - 144 * c3(0) + 16 * c4(0) + 192 * c5(0) - 192 * c7(0) ) +
579 c7(1) * ( 16 * c1(0) - 16 * c2(0) + 144 * c3(0) - 144 * c4(0) + 192 * c6(0) - 192 * c8(0) ) +
580 c8(1) * ( -144 * c1(0) + 16 * c2(0) - 16 * c3(0) + 144 * c4(0) - 192 * c5(0) + 192 * c7(0) ) )