11#ifndef PBAT_FEM_HEXAHEDRON_H
12#define PBAT_FEM_HEXAHEDRON_H
16#include "QuadratureRules.h"
47 static int constexpr kOrder = 1;
48 static int constexpr kDims = 3;
49 static int constexpr kNodes = 8;
50 static std::array<int, kNodes * kDims>
constexpr Coordinates =
51 {0,0,0,1,0,0,0,1,0,1,1,0,0,0,1,1,0,1,0,1,1,1,1,1};
52 static std::array<int, AffineBaseType::kNodes>
constexpr Vertices = {0,1,2,3,4,5,6,7};
53 static bool constexpr bHasConstantJacobian =
false;
55 template <
int PolynomialOrder, common::CFloatingPo
int TScalar = Scalar>
58 template <
class TDerived,
class TScalar =
typename TDerived::Scalar>
59 [[maybe_unused]]
static Eigen::Vector<TScalar, kNodes> N([[maybe_unused]] Eigen::DenseBase<TDerived>
const& X_)
61#include "pbat/warning/Push.h"
62#include "pbat/warning/SignConversion.h"
64 Eigen::Vector<TScalar, kNodes> Nm;
65 auto const X = X_.reshaped();
66 auto const a0 = X[0] - 1;
67 auto const a1 = X[1] - 1;
68 auto const a2 = X[2] - 1;
69 auto const a3 = a1*a2;
70 auto const a4 = a2*X[1];
71 auto const a5 = a1*X[2];
72 auto const a6 = X[1]*X[2];
82#include "pbat/warning/Pop.h"
85 template <
class TDerived,
class TScalar =
typename TDerived::Scalar>
86 [[maybe_unused]]
static Eigen::Matrix<TScalar, kNodes, kDims> GradN([[maybe_unused]] Eigen::DenseBase<TDerived>
const& X_)
88#include "pbat/warning/Push.h"
89#include "pbat/warning/SignConversion.h"
90 Eigen::Matrix<TScalar, kNodes, kDims> GNm;
91 TScalar* GNp = GNm.data();
92 [[maybe_unused]]
auto const X = X_.reshaped();
93 auto const a0 = X[2] - 1;
94 auto const a1 = X[1] - 1;
97 auto const a4 = X[1]*X[2];
98 auto const a5 = X[0] - 1;
100 auto const a7 = X[0]*X[2];
101 auto const a8 = X[0]*X[1];
127#include "pbat/warning/Pop.h"
136 static int constexpr kOrder = 2;
137 static int constexpr kDims = 3;
138 static int constexpr kNodes = 27;
139 static std::array<int, kNodes * kDims>
constexpr Coordinates =
140 {0,0,0,1,0,0,2,0,0,0,1,0,1,1,0,2,1,0,0,2,0,1,2,0,2,2,0,0,0,1,1,0,1,2,0,1,0,1,1,1,1,1,2,1,1,0,2,1,1,2,1,2,2,1,0,0,2,1,0,2,2,0,2,0,1,2,1,1,2,2,1,2,0,2,2,1,2,2,2,2,2};
141 static std::array<int, AffineBaseType::kNodes>
constexpr Vertices = {0,2,6,8,18,20,24,26};
142 static bool constexpr bHasConstantJacobian =
false;
144 template <
int PolynomialOrder, common::CFloatingPo
int TScalar = Scalar>
147 template <
class TDerived,
class TScalar =
typename TDerived::Scalar>
148 [[maybe_unused]]
static Eigen::Vector<TScalar, kNodes> N([[maybe_unused]] Eigen::DenseBase<TDerived>
const& X_)
150#include "pbat/warning/Push.h"
151#include "pbat/warning/SignConversion.h"
153 Eigen::Vector<TScalar, kNodes> Nm;
154 auto const X = X_.reshaped();
155 auto const a0 = 2*X[0] - 1;
156 auto const a1 = 2*X[1] - 1;
157 auto const a2 = 2*X[2] - 1;
158 auto const a3 = a0*a1*a2;
159 auto const a4 = X[0] - 1;
160 auto const a5 = X[1] - 1;
161 auto const a6 = X[2] - 1;
162 auto const a7 = a4*a5*a6;
163 auto const a8 = a2*a7;
164 auto const a9 = 4*a1;
165 auto const a10 = a3*a6;
166 auto const a11 = a5*X[0];
167 auto const a12 = a0*X[1];
168 auto const a13 = 4*a12;
169 auto const a14 = X[0]*X[1];
170 auto const a15 = 16*a14;
171 auto const a16 = a2*a6;
172 auto const a17 = a11*a13;
173 auto const a18 = a10*X[1];
174 auto const a19 = a4*a9;
175 auto const a20 = a14*a19;
176 auto const a21 = a7*X[2];
177 auto const a22 = a0*a9;
178 auto const a23 = 16*a21;
179 auto const a24 = a6*X[2];
180 auto const a25 = a11*a24;
181 auto const a26 = a3*X[2];
182 auto const a27 = a26*a4;
183 auto const a28 = a2*X[2];
184 auto const a29 = a11*a28;
195 Nm[10] = a1*a23*X[0];
198 Nm[13] = -64*a14*a21;
200 Nm[15] = -a12*a19*a24;
201 Nm[16] = a1*a15*a24*a4;
202 Nm[17] = -a14*a22*a24;
206 Nm[21] = -a13*a28*a4*a5;
207 Nm[22] = 16*a29*a4*X[1];
213#include "pbat/warning/Pop.h"
216 template <
class TDerived,
class TScalar =
typename TDerived::Scalar>
217 [[maybe_unused]]
static Eigen::Matrix<TScalar, kNodes, kDims> GradN([[maybe_unused]] Eigen::DenseBase<TDerived>
const& X_)
219#include "pbat/warning/Push.h"
220#include "pbat/warning/SignConversion.h"
221 Eigen::Matrix<TScalar, kNodes, kDims> GNm;
222 TScalar* GNp = GNm.data();
223 [[maybe_unused]]
auto const X = X_.reshaped();
224 auto const a0 = 4*X[1] - 2;
225 auto const a1 = X[0] - 1;
226 auto const a2 = 2*X[2];
227 auto const a3 = a2 - 1;
228 auto const a4 = X[1] - 1;
229 auto const a5 = X[2] - 1;
230 auto const a6 = a4*a5;
231 auto const a7 = a3*a6;
232 auto const a8 = a1*a7;
233 auto const a9 = 2*X[0];
234 auto const a10 = 2*X[1];
235 auto const a11 = a10 - 1;
236 auto const a12 = a11*(a9 - 1);
237 auto const a13 = a12*a7;
238 auto const a14 = 4 - 8*X[1];
239 auto const a15 = a7*X[0];
240 auto const a16 = a6*X[1];
241 auto const a17 = 8 - 16*X[2];
242 auto const a18 = a1*a17;
243 auto const a19 = 4 - 8*X[0];
244 auto const a20 = a19*X[1];
245 auto const a21 = a20*a7;
246 auto const a22 = 32*X[2] - 16;
247 auto const a23 = a16*a22;
248 auto const a24 = a17*X[0];
249 auto const a25 = a5*X[1];
250 auto const a26 = a25*a3;
251 auto const a27 = a1*a26;
252 auto const a28 = a12*a3;
253 auto const a29 = a25*a28;
254 auto const a30 = a26*X[0];
255 auto const a31 = 8 - 16*X[1];
256 auto const a32 = a6*X[2];
257 auto const a33 = a1*a32;
258 auto const a34 = a11*a19;
259 auto const a35 = a32*a34;
260 auto const a36 = 32*X[1];
261 auto const a37 = a36 - 16;
262 auto const a38 = a32*X[0];
263 auto const a39 = 32*X[0];
264 auto const a40 = a39 - 32;
265 auto const a41 = a16*X[2];
266 auto const a42 = a39 - 16;
267 auto const a43 = a41*a42;
268 auto const a44 = a25*X[2];
269 auto const a45 = a44*X[0];
270 auto const a46 = 64 - 64*X[0];
271 auto const a47 = a1*a44;
272 auto const a48 = a20*X[2];
273 auto const a49 = a11*a5;
274 auto const a50 = a48*a49;
275 auto const a51 = a4*X[2];
276 auto const a52 = a3*a51;
277 auto const a53 = a1*a52;
278 auto const a54 = a28*a51;
279 auto const a55 = a52*X[0];
280 auto const a56 = a51*X[1];
281 auto const a57 = a3*a48;
282 auto const a58 = a4*a57;
283 auto const a59 = a22*a56;
284 auto const a60 = X[1]*X[2];
285 auto const a61 = a3*a60;
286 auto const a62 = a1*a61;
287 auto const a63 = a28*a60;
288 auto const a64 = a61*X[0];
289 auto const a65 = 4*X[0] - 2;
290 auto const a66 = a1*a5;
291 auto const a67 = a28*a66;
292 auto const a68 = a6*X[0];
293 auto const a69 = a3*a66;
294 auto const a70 = a14*X[0];
295 auto const a71 = a69*a70;
296 auto const a72 = a5*X[0];
297 auto const a73 = a28*a72;
298 auto const a74 = a1*a22;
299 auto const a75 = a25*X[0];
300 auto const a76 = a20*a3;
301 auto const a77 = 8 - 16*X[0];
302 auto const a78 = a66*X[2];
303 auto const a79 = a34*a78;
304 auto const a80 = a37*X[0];
305 auto const a81 = a78*a80;
306 auto const a82 = a34*a72*X[2];
307 auto const a83 = a1*X[2];
308 auto const a84 = a28*a83;
309 auto const a85 = a51*X[0];
310 auto const a86 = a3*a70;
311 auto const a87 = a83*a86;
312 auto const a88 = a28*X[0];
313 auto const a89 = a88*X[2];
314 auto const a90 = a60*X[0];
315 auto const a91 = a12*a6;
316 auto const a92 = a1*a4;
317 auto const a93 = a28*a92;
318 auto const a94 = a1*a31;
319 auto const a95 = a86*a92;
320 auto const a96 = a4*a88;
321 auto const a97 = a16*a77;
322 auto const a98 = a76*a92;
323 auto const a99 = a4*X[0];
324 auto const a100 = a74*a99*X[1];
325 auto const a101 = a16*X[0];
326 auto const a102 = a76*a99;
327 auto const a103 = a10*a12;
328 auto const a104 = a1*X[1];
329 auto const a105 = a104*a28;
330 auto const a106 = a104*a86;
331 auto const a107 = a12*a9;
332 auto const a108 = a88*X[1];
333 auto const a109 = a1*a34;
334 auto const a110 = a1*a80;
335 auto const a111 = a1*a37;
336 auto const a112 = a1*a42;
337 auto const a113 = a56*X[0];
338 auto const a114 = a11*a48;
339 auto const a115 = a20*a49;
340 GNp[0] = a0*a8 + a13;
341 GNp[1] = a14*a15 + a14*a8;
342 GNp[2] = a0*a15 + a13;
343 GNp[3] = a16*a18 + a21;
344 GNp[4] = a1*a23 + a23*X[0];
345 GNp[5] = a16*a24 + a21;
346 GNp[6] = a0*a27 + a29;
347 GNp[7] = a14*a27 + a14*a30;
348 GNp[8] = a0*a30 + a29;
349 GNp[9] = a31*a33 + a35;
350 GNp[10] = a33*a37 + a37*a38;
351 GNp[11] = a31*a38 + a35;
352 GNp[12] = a40*a41 + a43;
353 GNp[13] = a41*a46 + a45*(64 - 64*X[1]);
354 GNp[14] = a43 + a45*(a36 - 32);
355 GNp[15] = a31*a47 + a50;
356 GNp[16] = a37*a45 + a37*a47;
357 GNp[17] = a31*a45 + a50;
358 GNp[18] = a0*a53 + a54;
359 GNp[19] = a14*a53 + a14*a55;
360 GNp[20] = a0*a55 + a54;
361 GNp[21] = a18*a56 + a58;
362 GNp[22] = a1*a59 + a59*X[0];
363 GNp[23] = a24*a56 + a58;
364 GNp[24] = a0*a62 + a63;
365 GNp[25] = a14*a62 + a14*a64;
366 GNp[26] = a0*a64 + a63;
367 GNp[27] = a65*a8 + a67;
368 GNp[28] = a18*a68 + a71;
369 GNp[29] = a15*a65 + a73;
370 GNp[30] = a19*a8 + a20*a69;
371 GNp[31] = a68*a74 + a74*a75;
372 GNp[32] = a15*a19 + a72*a76;
373 GNp[33] = a27*a65 + a67;
374 GNp[34] = a18*a75 + a71;
375 GNp[35] = a30*a65 + a73;
376 GNp[36] = a33*a77 + a79;
377 GNp[37] = a38*a40 + a81;
378 GNp[38] = a38*a77 + a82;
379 GNp[39] = a33*a42 + a42*a47;
380 GNp[40] = a38*a46 + a45*a46;
381 GNp[41] = a38*a42 + a42*a45;
382 GNp[42] = a47*a77 + a79;
383 GNp[43] = a40*a45 + a81;
384 GNp[44] = a45*a77 + a82;
385 GNp[45] = a53*a65 + a84;
386 GNp[46] = a18*a85 + a87;
387 GNp[47] = a55*a65 + a89;
388 GNp[48] = a1*a57 + a19*a53;
389 GNp[49] = a74*a85 + a74*a90;
390 GNp[50] = a19*a55 + a57*X[0];
391 GNp[51] = a62*a65 + a84;
392 GNp[52] = a18*a90 + a87;
393 GNp[53] = a64*a65 + a89;
394 GNp[54] = 2*a1*a91 + a93;
395 GNp[55] = a68*a94 + a95;
396 GNp[56] = a9*a91 + a96;
397 GNp[57] = a1*a97 + a98;
398 GNp[58] = a100 + a101*a40;
399 GNp[59] = a102 + a97*X[0];
400 GNp[60] = a103*a66 + a105;
401 GNp[61] = a106 + a75*a94;
402 GNp[62] = a107*a25 + a108;
403 GNp[63] = a109*a51 + a109*a6;
404 GNp[64] = a110*a51 + a111*a68;
405 GNp[65] = a34*a68 + a34*a85;
406 GNp[66] = a112*a16 + a112*a56;
407 GNp[67] = a101*a46 + a113*a46;
408 GNp[68] = a101*a42 + a113*a42;
409 GNp[69] = a1*a114 + a1*a115;
410 GNp[70] = a110*a60 + a111*a75;
411 GNp[71] = a114*X[0] + a115*X[0];
412 GNp[72] = a12*a2*a92 + a93;
413 GNp[73] = a85*a94 + a95;
414 GNp[74] = a107*a51 + a96;
415 GNp[75] = a1*a56*a77 + a98;
416 GNp[76] = a100 + a113*a40;
417 GNp[77] = a102 + a113*a77;
418 GNp[78] = a103*a83 + a105;
419 GNp[79] = a106 + a90*a94;
420 GNp[80] = a107*a60 + a108;
422#include "pbat/warning/Pop.h"
431 static int constexpr kOrder = 3;
432 static int constexpr kDims = 3;
433 static int constexpr kNodes = 64;
434 static std::array<int, kNodes * kDims>
constexpr Coordinates =
435 {0,0,0,1,0,0,2,0,0,3,0,0,0,1,0,1,1,0,2,1,0,3,1,0,0,2,0,1,2,0,2,2,0,3,2,0,0,3,0,1,3,0,2,3,0,3,3,0,0,0,1,1,0,1,2,0,1,3,0,1,0,1,1,1,1,1,2,1,1,3,1,1,0,2,1,1,2,1,2,2,1,3,2,1,0,3,1,1,3,1,2,3,1,3,3,1,0,0,2,1,0,2,2,0,2,3,0,2,0,1,2,1,1,2,2,1,2,3,1,2,0,2,2,1,2,2,2,2,2,3,2,2,0,3,2,1,3,2,2,3,2,3,3,2,0,0,3,1,0,3,2,0,3,3,0,3,0,1,3,1,1,3,2,1,3,3,1,3,0,2,3,1,2,3,2,2,3,3,2,3,0,3,3,1,3,3,2,3,3,3,3,3};
436 static std::array<int, AffineBaseType::kNodes>
constexpr Vertices = {0,3,12,15,48,51,60,63};
437 static bool constexpr bHasConstantJacobian =
false;
439 template <
int PolynomialOrder, common::CFloatingPo
int TScalar = Scalar>
442 template <
class TDerived,
class TScalar =
typename TDerived::Scalar>
443 [[maybe_unused]]
static Eigen::Vector<TScalar, kNodes> N([[maybe_unused]] Eigen::DenseBase<TDerived>
const& X_)
445#include "pbat/warning/Push.h"
446#include "pbat/warning/SignConversion.h"
448 Eigen::Vector<TScalar, kNodes> Nm;
449 auto const X = X_.reshaped();
450 auto const a0 = X[0] - 1;
451 auto const a1 = X[1] - 1;
452 auto const a2 = X[2] - 1;
453 auto const a3 = 3*X[0];
454 auto const a4 = a3 - 2;
455 auto const a5 = 3*X[1];
456 auto const a6 = a5 - 2;
457 auto const a7 = 3*X[2];
458 auto const a8 = a7 - 2;
459 auto const a9 = a0*a1*a2*a4*a6*a8;
460 auto const a10 = a7 - 1;
461 auto const a11 = a3 - 1;
462 auto const a12 = a5 - 1;
463 auto const a13 = a11*a12;
464 auto const a14 = a10*a13;
465 auto const a15 = (1.0/8.0)*a14;
466 auto const a16 = a10*a9;
467 auto const a17 = (9.0/8.0)*X[0];
468 auto const a18 = a12*a17;
469 auto const a19 = a6*a8;
470 auto const a20 = a19*a2;
471 auto const a21 = a17*a20;
472 auto const a22 = a0*a1;
473 auto const a23 = a14*a22;
474 auto const a24 = a1*a4;
475 auto const a25 = a20*X[0];
476 auto const a26 = a15*a25;
477 auto const a27 = a16*X[1];
478 auto const a28 = (9.0/8.0)*a11;
479 auto const a29 = (81.0/8.0)*X[0];
480 auto const a30 = a10*X[1];
481 auto const a31 = a11*a30;
482 auto const a32 = (81.0/8.0)*a22*a25;
483 auto const a33 = a21*a24;
484 auto const a34 = a4*X[1];
485 auto const a35 = (9.0/8.0)*a34;
486 auto const a36 = a2*a23;
487 auto const a37 = a36*a8;
488 auto const a38 = a2*a8;
489 auto const a39 = a22*a38;
490 auto const a40 = a30*a4;
491 auto const a41 = a12*a29;
492 auto const a42 = a40*a41;
493 auto const a43 = a29*X[1];
494 auto const a44 = a24*a38;
495 auto const a45 = a14*X[1];
496 auto const a46 = a17*a45;
497 auto const a47 = a0*a20;
498 auto const a48 = a15*a34;
499 auto const a49 = a18*a40;
500 auto const a50 = a9*X[2];
501 auto const a51 = a13*X[2];
502 auto const a52 = a50*X[1];
503 auto const a53 = (81.0/8.0)*a11;
504 auto const a54 = (729.0/8.0)*X[0];
505 auto const a55 = a25*X[2];
506 auto const a56 = a55*X[1];
507 auto const a57 = a34*a39;
508 auto const a58 = (81.0/8.0)*a51;
509 auto const a59 = a54*X[2];
510 auto const a60 = a12*a59;
511 auto const a61 = (81.0/8.0)*a34;
512 auto const a62 = a6*X[2];
513 auto const a63 = a4*a62;
514 auto const a64 = a2*a22;
515 auto const a65 = a63*a64;
516 auto const a66 = a29*a62;
517 auto const a67 = a2*a24;
518 auto const a68 = a14*a67;
519 auto const a69 = a17*a62;
520 auto const a70 = a40*a64;
521 auto const a71 = a59*a6;
522 auto const a72 = a43*X[2];
523 auto const a73 = a14*a2;
524 auto const a74 = a0*a62;
525 auto const a75 = a73*a74;
526 auto const a76 = a19*X[2];
527 auto const a77 = a15*a76;
528 auto const a78 = a22*a4;
529 auto const a79 = a17*a76;
530 auto const a80 = a22*a76;
531 auto const a81 = a40*a80;
532 auto const a82 = a8*X[2];
533 auto const a83 = a0*a76;
550 Nm[16] = (9.0/8.0)*a13*a50;
556 Nm[22] = -729.0/8.0*a11*a22*a56;
557 Nm[23] = a24*a53*a56;
560 Nm[26] = a39*a51*a54*X[1];
561 Nm[27] = -a43*a44*a51;
562 Nm[28] = -a35*a47*a51;
563 Nm[29] = a0*a12*a55*a61;
564 Nm[30] = -a0*a25*a58*X[1];
565 Nm[31] = a21*a34*a51;
566 Nm[32] = -9.0/8.0*a36*a63;
567 Nm[33] = a10*a41*a65;
570 Nm[36] = (81.0/8.0)*a31*a65;
572 Nm[38] = a31*a64*a71;
573 Nm[39] = -a31*a66*a67;
574 Nm[40] = -a36*a61*X[2];
576 Nm[42] = -a36*a59*X[1];
579 Nm[45] = -a2*a42*a74;
581 Nm[47] = -a34*a69*a73;
583 Nm[49] = -a10*a18*a76*a78;
585 Nm[51] = -a24*a77*X[0];
588 Nm[54] = -a29*a31*a80;
589 Nm[55] = a24*a31*a79;
590 Nm[56] = a23*a35*a82;
591 Nm[57] = -a22*a42*a82;
593 Nm[59] = -a24*a46*a82;
597 Nm[63] = a48*a76*X[0];
599#include "pbat/warning/Pop.h"
602 template <
class TDerived,
class TScalar =
typename TDerived::Scalar>
603 [[maybe_unused]]
static Eigen::Matrix<TScalar, kNodes, kDims> GradN([[maybe_unused]] Eigen::DenseBase<TDerived>
const& X_)
605#include "pbat/warning/Push.h"
606#include "pbat/warning/SignConversion.h"
607 Eigen::Matrix<TScalar, kNodes, kDims> GNm;
608 TScalar* GNp = GNm.data();
609 [[maybe_unused]]
auto const X = X_.reshaped();
610 auto const a0 = (9.0/8.0)*X[1] - 3.0/8.0;
612 auto const a2 = X[0] - 1;
613 auto const a3 = X[1] - 1;
614 auto const a4 = X[2] - 1;
615 auto const a5 = 3*X[2];
616 auto const a6 = a5 - 2;
617 auto const a7 = a3*a4*a6;
618 auto const a8 = 3*X[0];
619 auto const a9 = a8 - 2;
620 auto const a10 = a5 - 1;
621 auto const a11 = 3*X[1];
622 auto const a12 = a11 - 2;
623 auto const a13 = a10*a12;
624 auto const a14 = a13*a9;
625 auto const a15 = a14*a7;
626 auto const a16 = a15*a2;
627 auto const a17 = (3.0/8.0)*X[0] - 1.0/8.0;
628 auto const a18 = -a17;
629 auto const a19 = a13*a2;
630 auto const a20 = a18*a19;
631 auto const a21 = a11 - 1;
632 auto const a22 = a21*a7;
633 auto const a23 = 3*a22;
634 auto const a24 = a14*a18;
635 auto const a25 = (27.0/8.0)*X[1] - 9.0/8.0;
636 auto const a26 = a19*a25;
637 auto const a27 = a7*a8;
638 auto const a28 = a15*X[0];
639 auto const a29 = (81.0/8.0)*X[1] - 27.0/8.0;
640 auto const a30 = -a29;
641 auto const a31 = a7*X[0];
642 auto const a32 = a30*a31;
643 auto const a33 = (27.0/8.0)*X[0] - 9.0/8.0;
644 auto const a34 = -a33;
645 auto const a35 = a22*a34;
646 auto const a36 = a13*X[0];
647 auto const a37 = a17*a22*a8;
648 auto const a38 = a14*a17;
649 auto const a39 = a7*X[1];
650 auto const a40 = (81.0/8.0)*X[2] - 27.0/8.0;
651 auto const a41 = a12*a9;
652 auto const a42 = a2*a41;
653 auto const a43 = a40*a42;
654 auto const a44 = a19*a33;
655 auto const a45 = a11*a7;
656 auto const a46 = a15*X[1];
657 auto const a47 = a12*a31;
658 auto const a48 = (243.0/8.0)*X[2] - 81.0/8.0;
659 auto const a49 = -a48;
660 auto const a50 = a11*a2;
661 auto const a51 = a49*a50;
662 auto const a52 = a31*X[1];
663 auto const a53 = a41*a52;
664 auto const a54 = a42*a49;
665 auto const a55 = (729.0/8.0)*X[2] - 243.0/8.0;
666 auto const a56 = a2*a52;
667 auto const a57 = a55*a56;
668 auto const a58 = (243.0/8.0)*X[0];
669 auto const a59 = a58 - 81.0/8.0;
670 auto const a60 = a39*a59;
671 auto const a61 = -a40;
672 auto const a62 = a10*a9;
673 auto const a63 = a2*a39;
674 auto const a64 = a62*a63;
675 auto const a65 = a10*a50;
676 auto const a66 = a62*X[1];
677 auto const a67 = (243.0/8.0)*X[1];
678 auto const a68 = a67 - 81.0/8.0;
679 auto const a69 = a31*a68;
680 auto const a70 = a52*a62;
681 auto const a71 = (729.0/8.0)*X[1];
682 auto const a72 = a71 - 243.0/8.0;
683 auto const a73 = -a72;
684 auto const a74 = a10*a56;
685 auto const a75 = -a59;
686 auto const a76 = a22*a75;
687 auto const a77 = X[0]*X[1];
688 auto const a78 = a10*a77;
689 auto const a79 = a2*X[1];
690 auto const a80 = a10*a79;
691 auto const a81 = a22*a33;
692 auto const a82 = a11*X[0];
693 auto const a83 = a10*a82;
694 auto const a84 = a4*a6;
695 auto const a85 = a14*a84;
696 auto const a86 = a79*a85;
697 auto const a87 = a21*a84;
698 auto const a88 = a11*a87;
699 auto const a89 = a17*a19;
700 auto const a90 = a21*a38;
701 auto const a91 = a84*X[1];
702 auto const a92 = -a25;
703 auto const a93 = a19*X[0];
704 auto const a94 = a92*a93;
705 auto const a95 = a11*a84;
706 auto const a96 = a77*a85;
707 auto const a97 = a77*a84;
708 auto const a98 = a19*a29;
709 auto const a99 = a21*a91;
710 auto const a100 = a33*a99;
711 auto const a101 = a18*a36;
712 auto const a102 = a42*X[2];
713 auto const a103 = a102*a7;
714 auto const a104 = a2*a5;
715 auto const a105 = a104*a81;
716 auto const a106 = a41*X[2];
717 auto const a107 = -a68;
718 auto const a108 = a104*a107;
719 auto const a109 = a106*a31;
720 auto const a110 = a12*X[2];
721 auto const a111 = a110*a2;
722 auto const a112 = a111*a31;
723 auto const a113 = a22*a59;
724 auto const a114 = a110*X[0];
725 auto const a115 = a35*X[0];
726 auto const a116 = a115*a5;
727 auto const a117 = a45*a75;
728 auto const a118 = a106*a39;
729 auto const a119 = a58 - 243.0/8.0;
730 auto const a120 = -a119;
731 auto const a121 = (729.0/8.0)*X[0];
732 auto const a122 = a121 - 729.0/8.0;
733 auto const a123 = a11*a31;
734 auto const a124 = a110*a123;
735 auto const a125 = a106*a97;
736 auto const a126 = (2187.0/8.0)*X[0];
737 auto const a127 = a126 - 729.0/8.0;
738 auto const a128 = -a127;
739 auto const a129 = a110*a128;
740 auto const a130 = 2187.0/8.0 - a126;
741 auto const a131 = a130*a52;
742 auto const a132 = a9*X[2];
743 auto const a133 = a132*a63;
744 auto const a134 = a50*X[2];
745 auto const a135 = a132*X[1];
746 auto const a136 = (2187.0/8.0)*X[1] - 729.0/8.0;
747 auto const a137 = -a136;
748 auto const a138 = a137*a31;
749 auto const a139 = a132*a52;
750 auto const a140 = (6561.0/8.0)*X[1] - 2187.0/8.0;
751 auto const a141 = a56*X[2];
752 auto const a142 = a127*X[2];
753 auto const a143 = a142*a22;
754 auto const a144 = X[0]*X[2];
755 auto const a145 = a11*a144;
756 auto const a146 = a102*a91;
757 auto const a147 = a34*a87;
758 auto const a148 = a11*a111;
759 auto const a149 = a106*a34;
760 auto const a150 = a84*X[0];
761 auto const a151 = a150*a68;
762 auto const a152 = a79*a84;
763 auto const a153 = a114*a152;
764 auto const a154 = a21*a75;
765 auto const a155 = a110*a154;
766 auto const a156 = a33*a88;
767 auto const a157 = a3*a4;
768 auto const a158 = a14*a157;
769 auto const a159 = a158*X[2];
770 auto const a160 = a159*a2;
771 auto const a161 = a157*a19;
772 auto const a162 = a21*a34;
773 auto const a163 = a162*a5;
774 auto const a164 = a21*X[2];
775 auto const a165 = a164*a34;
776 auto const a166 = a161*X[0];
777 auto const a167 = a5*a68;
778 auto const a168 = a159*X[0];
779 auto const a169 = a73*X[2];
780 auto const a170 = a154*X[2];
781 auto const a171 = a157*a36;
782 auto const a172 = a21*a33;
783 auto const a173 = a172*a5;
784 auto const a174 = a164*a33;
785 auto const a175 = a102*X[1];
786 auto const a176 = a157*a175;
787 auto const a177 = a11*X[2];
788 auto const a178 = a177*a59;
789 auto const a179 = a159*X[1];
790 auto const a180 = 729.0/8.0 - 2187.0/8.0*X[2];
791 auto const a181 = a157*a180;
792 auto const a182 = a111*a82;
793 auto const a183 = a106*a77;
794 auto const a184 = a114*a79;
795 auto const a185 = a157*((6561.0/8.0)*X[2] - 2187.0/8.0);
796 auto const a186 = a142*X[1];
797 auto const a187 = -a55;
798 auto const a188 = a157*a183;
799 auto const a189 = a157*a66;
800 auto const a190 = a189*a2;
801 auto const a191 = a157*a170;
802 auto const a192 = a136*X[2];
803 auto const a193 = a157*a192;
804 auto const a194 = a2*X[0];
805 auto const a195 = a10*a194;
806 auto const a196 = a11*a195;
807 auto const a197 = a189*X[0];
808 auto const a198 = a157*a80;
809 auto const a199 = a144*a198;
810 auto const a200 = a128*a164;
811 auto const a201 = a157*a200;
812 auto const a202 = a72*X[2];
813 auto const a203 = a164*a59;
814 auto const a204 = a157*a203;
815 auto const a205 = a14*a4;
816 auto const a206 = a205*X[2];
817 auto const a207 = a206*a79;
818 auto const a208 = a164*a44;
819 auto const a209 = a11*a4;
820 auto const a210 = a205*X[1];
821 auto const a211 = a19*a4;
822 auto const a212 = a107*a144;
823 auto const a213 = a11*a212;
824 auto const a214 = a206*a77;
825 auto const a215 = a211*a77;
826 auto const a216 = a203*X[1];
827 auto const a217 = a36*a4;
828 auto const a218 = a11*a165;
829 auto const a219 = a3*a6;
830 auto const a220 = a219*X[2];
831 auto const a221 = a14*a220;
832 auto const a222 = a2*a221;
833 auto const a223 = a21*a219;
834 auto const a224 = a223*a5;
835 auto const a225 = a219*a5;
836 auto const a226 = a144*a219;
837 auto const a227 = a14*a92;
838 auto const a228 = a174*a219;
839 auto const a229 = a164*a219;
840 auto const a230 = a1*a14;
841 auto const a231 = a175*a219;
842 auto const a232 = a11*a220;
843 auto const a233 = a232*a34;
844 auto const a234 = a221*X[1];
845 auto const a235 = a219*X[0];
846 auto const a236 = a183*a219;
847 auto const a237 = a187*a219;
848 auto const a238 = a220*a75;
849 auto const a239 = a36*X[1];
850 auto const a240 = a19*X[1];
851 auto const a241 = a2*a66;
852 auto const a242 = a220*a241;
853 auto const a243 = a107*a226;
854 auto const a244 = a226*a66;
855 auto const a245 = a226*a80;
856 auto const a246 = a203*a219;
857 auto const a247 = a165*a219;
858 auto const a248 = a6*X[2];
859 auto const a249 = a248*a79;
860 auto const a250 = a11*a6;
861 auto const a251 = a164*a250;
862 auto const a252 = a6*X[1];
863 auto const a253 = a164*a24;
864 auto const a254 = a144*a6;
865 auto const a255 = a11*a254;
866 auto const a256 = a14*a25;
867 auto const a257 = a248*a77;
868 auto const a258 = a19*a257;
869 auto const a259 = a165*a6;
870 auto const a260 = a14*a257;
871 auto const a261 = a17*a251;
872 auto const a262 = (9.0/8.0)*X[0] - 3.0/8.0;
873 auto const a263 = -a262;
874 auto const a264 = a2*a62;
875 auto const a265 = a18*a264;
876 auto const a266 = a24*a87;
877 auto const a267 = a25*a264;
878 auto const a268 = a194*a85;
879 auto const a269 = (81.0/8.0)*X[0] - 27.0/8.0;
880 auto const a270 = -a269;
881 auto const a271 = a19*a31;
882 auto const a272 = a2*a35*a8;
883 auto const a273 = a31*a9;
884 auto const a274 = a19*a97;
885 auto const a275 = a121 - 243.0/8.0;
886 auto const a276 = -a275;
887 auto const a277 = a150*a154;
888 auto const a278 = a87*X[0];
889 auto const a279 = a278*a33;
890 auto const a280 = a62*X[0];
891 auto const a281 = a17*a264;
892 auto const a282 = a2*a90;
893 auto const a283 = a42*a97;
894 auto const a284 = a194*a62;
895 auto const a285 = a284*a92;
896 auto const a286 = a18*a280;
897 auto const a287 = a102*a33;
898 auto const a288 = a102*a107;
899 auto const a289 = a113*a194;
900 auto const a290 = a111*a59;
901 auto const a291 = a132*a2;
902 auto const a292 = a123*a132;
903 auto const a293 = a132*a152;
904 auto const a294 = a21*a59;
905 auto const a295 = a137*X[0];
906 auto const a296 = (6561.0/8.0)*X[0] - 2187.0/8.0;
907 auto const a297 = a21*X[0];
908 auto const a298 = a142*a297;
909 auto const a299 = a132*a154;
910 auto const a300 = a132*X[0];
911 auto const a301 = a11*a291;
912 auto const a302 = a194*a68;
913 auto const a303 = a11*a132;
914 auto const a304 = a157*a264;
915 auto const a305 = a2*a205;
916 auto const a306 = a102*X[0];
917 auto const a307 = a157*a306;
918 auto const a308 = a157*a284;
919 auto const a309 = a144*a305;
920 auto const a310 = a276*X[2];
921 auto const a311 = a195*a5;
922 auto const a312 = a154*a157;
923 auto const a313 = a211*X[0];
924 auto const a314 = a157*a280;
925 auto const a315 = a205*X[0];
926 auto const a316 = a194*a303;
927 auto const a317 = a102*a77;
928 auto const a318 = a317*a4;
929 auto const a319 = a142*a157;
930 auto const a320 = a157*a75;
931 auto const a321 = a241*a4;
932 auto const a322 = a300*a79;
933 auto const a323 = a192*X[0];
934 auto const a324 = a4*X[0];
935 auto const a325 = a200*a80;
936 auto const a326 = a275*X[2];
937 auto const a327 = a203*a66;
938 auto const a328 = a209*a264;
939 auto const a329 = a196*a203;
940 auto const a330 = a219*a306;
941 auto const a331 = a2*a254;
942 auto const a332 = a19*a226;
943 auto const a333 = a223*a33;
944 auto const a334 = a6*X[0];
945 auto const a335 = a14*a226;
946 auto const a336 = a14*a249;
947 auto const a337 = a194*a219;
948 auto const a338 = a317*a6;
949 auto const a339 = a11*a33;
950 auto const a340 = a107*a241;
951 auto const a341 = a2*a253;
952 auto const a342 = a2*a24;
953 auto const a343 = a157*a21;
954 auto const a344 = a31*a42;
955 auto const a345 = a158*a2;
956 auto const a346 = a223*a34;
957 auto const a347 = a39*a42;
958 auto const a348 = a14*a219;
959 auto const a349 = a33*a79;
960 auto const a350 = a157*a82;
961 auto const a351 = a219*a77;
962 auto const a352 = a12*a56;
963 auto const a353 = a19*a351;
964 auto const a354 = a34*a77;
965 auto const a355 = a56*a9;
966 auto const a356 = a11*a194;
967 auto const a357 = a235*a80;
968 auto const a358 = a219*a297;
969 auto const a359 = a358*a66;
970 auto const a360 = a17*a42;
971 auto const a361 = a6*a79;
972 auto const a362 = a334*a79;
973 auto const a363 = a12*a194;
974 auto const a364 = a209*a297;
975 auto const a365 = a21*a6;
976 auto const a366 = a365*a77;
977 auto const a367 = a18*a41;
978 auto const a368 = a157*a42;
979 auto const a369 = a157*a5;
980 auto const a370 = a369*a41;
981 auto const a371 = a297*a34;
982 auto const a372 = a102*a11;
983 auto const a373 = a106*a350;
984 auto const a374 = a184*a219;
985 auto const a375 = a157*a294;
986 auto const a376 = a219*a79;
987 auto const a377 = a132*a376;
988 auto const a378 = a11*a300;
989 auto const a379 = a34*a42;
990 auto const a380 = a12*a154;
991 auto const a381 = a297*a33;
992 auto const a382 = a14*a3;
993 auto const a383 = a2*a382;
994 auto const a384 = a170*a3;
995 auto const a385 = a59*a79;
996 auto const a386 = a382*X[2];
997 auto const a387 = a19*a77;
998 auto const a388 = a75*a77;
999 auto const a389 = a3*X[0];
1000 auto const a390 = a14*a79;
1001 auto const a391 = a205*a21;
1002 auto const a392 = a3*a5;
1003 auto const a393 = a297*a392;
1004 auto const a394 = a11*a3;
1005 GNp[0] = a1*a16 + a20*a23 + a22*a24;
1006 GNp[1] = a16*a25 + a25*a28 + a26*a27;
1007 GNp[2] = a19*a32 + a19*a35 + a35*a36;
1008 GNp[3] = a0*a28 + a13*a37 + a22*a38;
1009 GNp[4] = a33*a46 + a39*a43 + a44*a45;
1010 GNp[5] = a39*a54 + a47*a51 + a49*a53;
1011 GNp[6] = a12*a57 + a19*a60 + a36*a60;
1012 GNp[7] = a34*a36*a45 + a34*a46 + a53*a61;
1013 GNp[8] = a30*a64 + a35*a65 + a35*a66;
1014 GNp[9] = a64*a68 + a65*a69 + a68*a70;
1015 GNp[10] = a73*a74 + a76*a78 + a76*a80;
1016 GNp[11] = a29*a70 + a66*a81 + a81*a83;
1017 GNp[12] = a0*a86 + a88*a89 + a90*a91;
1018 GNp[13] = a86*a92 + a92*a96 + a94*a95;
1019 GNp[14] = a100*a36 + a44*a99 + a97*a98;
1020 GNp[15] = a1*a96 + a101*a88 + a24*a99;
1021 GNp[16] = a103*a29 + a105*a12 + a106*a81;
1022 GNp[17] = a103*a107 + a107*a109 + a108*a47;
1023 GNp[18] = a111*a113 + a112*a72 + a113*a114;
1024 GNp[19] = a106*a32 + a106*a35 + a116*a12;
1025 GNp[20] = a111*a117 + a118*a120 + a118*a75;
1026 GNp[21] = a118*a122 + a122*a124 + a125*(a71 - 729.0/8.0);
1027 GNp[22] = a110*a131 + a129*a52 + a129*a63;
1028 GNp[23] = a106*a60 + a124*a59 + a125*(a67 - 243.0/8.0);
1029 GNp[24] = a113*a134 + a113*a135 + a133*a72;
1030 GNp[25] = a133*a137 + a134*a138 + a137*a139;
1031 GNp[26] = a140*a141 + a143*a77 + a143*a79;
1032 GNp[27] = a135*a76 + a139*a73 + a145*a76;
1033 GNp[28] = a146*a30 + a147*a148 + a149*a99;
1034 GNp[29] = a125*a68 + a146*a68 + a148*a151;
1035 GNp[30] = a152*a155 + a153*a73 + a155*a97;
1036 GNp[31] = a100*a106 + a114*a156 + a125*a29;
1037 GNp[32] = a158*a165 + a160*a30 + a161*a163;
1038 GNp[33] = a160*a68 + a166*a167 + a168*a68;
1039 GNp[34] = a161*a170 + a166*a169 + a170*a171;
1040 GNp[35] = a158*a174 + a168*a29 + a171*a173;
1041 GNp[36] = a161*a178 + a176*a55 + a179*a59;
1042 GNp[37] = a176*a180 + a181*a182 + a181*a183;
1043 GNp[38] = a161*a186 + a171*a186 + a184*a185;
1044 GNp[39] = a171*a177*a75 + a179*a75 + a187*a188;
1045 GNp[40] = a169*a190 + a170*a189 + a191*a65;
1046 GNp[41] = a190*a192 + a192*a197 + a193*a196;
1047 GNp[42] = -a140*a199 + a198*a200 + a201*a78;
1048 GNp[43] = a189*a203 + a197*a202 + a204*a83;
1049 GNp[44] = a174*a210 + a207*a29 + a208*a209;
1050 GNp[45] = a107*a207 + a107*a214 + a211*a213;
1051 GNp[46] = a202*a215 + a211*a216 + a216*a217;
1052 GNp[47] = a165*a210 + a214*a30 + a217*a218;
1053 GNp[48] = a0*a222 + a220*a90 + a224*a89;
1054 GNp[49] = a222*a92 + a225*a94 + a226*a227;
1055 GNp[50] = a226*a98 + a228*a36 + a229*a44;
1056 GNp[51] = a101*a224 + a226*a230 + a229*a24;
1057 GNp[52] = a19*a233 + a231*a61 + a234*a34;
1058 GNp[53] = a148*a235*a48 + a231*a48 + a236*a48;
1059 GNp[54] = a184*a237 + a238*a239 + a238*a240;
1060 GNp[55] = a232*a33*a36 + a234*a33 + a236*a40;
1061 GNp[56] = a228*a65 + a228*a66 + a242*a29;
1062 GNp[57] = a107*a242 + a107*a244 + a243*a65;
1063 GNp[58] = a245*a72 + a246*a78 + a246*a80;
1064 GNp[59] = a244*a30 + a247*a66 + a247*a83;
1065 GNp[60] = a20*a251 + a230*a249 + a252*a253;
1066 GNp[61] = a249*a256 + a255*a26 + a256*a257;
1067 GNp[62] = a239*a259 + a240*a259 + a258*a30;
1068 GNp[63] = a0*a260 + a252*a90*X[2] + a261*a36;
1069 GNp[64] = a16*a263 + a2*a266 + a23*a265;
1070 GNp[65] = a25*a268 + a267*a27 + a31*a43;
1071 GNp[66] = a10*a272 + a147*a93 + a270*a271;
1072 GNp[67] = a150*a90 + a262*a28 + a37*a62;
1073 GNp[68] = a16*a33 + a264*a33*a45 + a33*a86;
1074 GNp[69] = a273*a51 + a31*a54 + a54*a97;
1075 GNp[70] = a271*a59 + a274*a59 + a31*a59*a65;
1076 GNp[71] = a123*a34*a62 + a28*a34 + a34*a96;
1077 GNp[72] = a147*a241 + a264*a35 + a270*a64;
1078 GNp[73] = a151*a241 + a264*a69 + a57*a9;
1079 GNp[74] = a195*a76 + a276*a74 + a277*a80;
1080 GNp[75] = a269*a70 + a279*a66 + a280*a81;
1081 GNp[76] = a262*a86 + a281*a88 + a282*a84;
1082 GNp[77] = a268*a92 + a283*a61 + a285*a95;
1083 GNp[78] = a156*a195 + a269*a274 + a278*a44;
1084 GNp[79] = a263*a96 + a266*X[0] + a286*a88;
1085 GNp[80] = a103*a269 + a105*a9 + a287*a87;
1086 GNp[81] = a108*a273 + a109*a120 + a150*a288;
1087 GNp[82] = a112*a275 + a278*a290 + a289*a5;
1088 GNp[83] = a109*a270 + a116*a9 + a149*a278;
1089 GNp[84] = a103*a75 + a117*a291 + a146*a75;
1090 GNp[85] = a109*a122 + a122*a125 + a122*a292;
1091 GNp[86] = a112*a128 + a128*a134*a31 + a128*a153;
1092 GNp[87] = a109*a59 + a125*a59 + a292*a59;
1093 GNp[88] = a113*a291 + a133*a275 + a293*a294;
1094 GNp[89] = a131*a132 + a138*a291 + a293*a295;
1095 GNp[90] = a141*a296 + a143*a194 + a152*a298;
1096 GNp[91] = a139*a276 + a299*a97 + a300*a76;
1097 GNp[92] = a102*a147 + a146*a270 + a147*a301;
1098 GNp[93] = a102*a151 + a119*a125 + a132*a302*a95;
1099 GNp[94] = a111*a277 + a153*a276 + a170*a194*a95;
1100 GNp[95] = a106*a279 + a125*a269 + a279*a303;
1101 GNp[96] = a160*a270 + a163*a304 + a165*a305;
1102 GNp[97] = a167*a308 + a307*a55 + a309*a68;
1103 GNp[98] = a166*a310 + a170*a313 + a311*a312;
1104 GNp[99] = a168*a269 + a173*a314 + a174*a315;
1105 GNp[100] = a160*a59 + a178*a304 + a207*a59;
1106 GNp[101] = a180*a318 + a181*a306 + a181*a316;
1107 GNp[102] = a142*a166 + a142*a215 + a196*a319;
1108 GNp[103] = a145*a320*a62 + a168*a75 + a214*a75;
1109 GNp[104] = a170*a321 + a190*a310 + a191*a264;
1110 GNp[105] = a185*a322 + a193*a284 + a321*a323;
1111 GNp[106] = a195*a201 - a199*a296 + a324*a325;
1112 GNp[107] = a197*a326 + a204*a280 + a324*a327;
1113 GNp[108] = a174*a305 + a174*a328 + a207*a269;
1114 GNp[109] = a107*a309 + a187*a318 + a212*a328;
1115 GNp[110] = a203*a313 + a215*a326 + a329*a4;
1116 GNp[111] = a165*a209*a280 + a165*a315 + a214*a270;
1117 GNp[112] = a222*a262 + a224*a281 + a248*a282;
1118 GNp[113] = a225*a285 + a227*a331 + a330*a61;
1119 GNp[114] = a208*a334 + a269*a332 + a311*a333;
1120 GNp[115] = a224*a286 + a253*a334 + a263*a335;
1121 GNp[116] = a222*a34 + a233*a264 + a336*a34;
1122 GNp[117] = a303*a337*a48 + a330*a48 + a338*a48;
1123 GNp[118] = a226*a65*a75 + a258*a75 + a332*a75;
1124 GNp[119] = a226*a339*a62 + a260*a33 + a33*a335;
1125 GNp[120] = a174*a241*a6 + a228*a264 + a242*a269;
1126 GNp[121] = a237*a322 + a243*a264 + a254*a340;
1127 GNp[122] = a195*a246 + a203*a334*a80 + a245*a275;
1128 GNp[123] = a244*a270 + a247*a280 + a259*a66*X[0];
1129 GNp[124] = a251*a265 + a263*a336 + a341*a6;
1130 GNp[125] = a255*a267 + a256*a331 + a257*a43;
1131 GNp[126] = a196*a259 + a258*a270 + a259*a93;
1132 GNp[127] = a254*a90 + a260*a262 + a261*a280;
1133 GNp[128] = a18*a23*a42 + a223*a342 + 3*a342*a343;
1134 GNp[129] = a25*a345*a8 + a256*a337 + a29*a344;
1135 GNp[130] = a12*a272 + a161*a162*a8 + a346*a93;
1136 GNp[131] = a157*a8*a90 + a235*a90 + a37*a41;
1137 GNp[132] = a269*a347 + a339*a345 + a348*a349;
1138 GNp[133] = a120*a53 + a350*a54 + a351*a54;
1139 GNp[134] = a11*a166*a59 + a275*a352 + a353*a59;
1140 GNp[135] = a158*a34*a82 + a270*a53 + a348*a354;
1141 GNp[136] = a11*a162*a304 + a241*a346 + a35*a50*a9;
1142 GNp[137] = a11*a308*a68 + a235*a241*a68 + a355*a72;
1143 GNp[138] = a154*a357 + a196*a312 + a356*a76;
1144 GNp[139] = a11*a172*a314 + a33*a359 + a81*a82*a9;
1145 GNp[140] = a209*a282 + a360*a88 + a361*a90;
1146 GNp[141] = a205*a356*a92 + a227*a362 + a283*a30;
1147 GNp[142] = a156*a363 + a364*a44 + a366*a44;
1148 GNp[143] = a11*a278*a367 + a24*a364 + a24*a366;
1149 GNp[144] = a173*a368 + a223*a287 + a42*a81;
1150 GNp[145] = a107*a344 + a107*a368*a5*X[0] + a235*a288;
1151 GNp[146] = a12*a289 + a290*a358 + a294*a363*a369;
1152 GNp[147] = a115*a41 + a149*a358 + a370*a371;
1153 GNp[148] = a231*a75 + a320*a372 + a347*a75;
1154 GNp[149] = a122*a236 + a122*a373 + a122*a53;
1155 GNp[150] = a128*a157*a182 + a128*a352 + a128*a374;
1156 GNp[151] = a236*a59 + a373*a59 + a53*a59;
1157 GNp[152] = a113*a79*a9 + a294*a377 + a301*a375;
1158 GNp[153] = a137*a157*a316 + a137*a355 + a295*a377;
1159 GNp[154] = a127*a22*a79*X[0] + a21*a319*a356 + a298*a376;
1160 GNp[155] = a299*a351 + a312*a378 + a76*a77*a9;
1161 GNp[156] = a102*a162*a209 + a175*a34*a365 + a379*a99;
1162 GNp[157] = a209*a306*a68 + a283*a68 + a338*a68;
1163 GNp[158] = a148*a154*a324 + a152*a380*X[0] + a154*a184*a6;
1164 GNp[159] = a106*a209*a381 + a172*a41*a97 + a183*a33*a365;
1165 GNp[160] = a162*a345 + a165*a383 + a343*a379*a5;
1166 GNp[161] = a144*a383*a68 + a158*a302 + a307*a72;
1167 GNp[162] = a154*a166 + a194*a369*a380 + a384*a93;
1168 GNp[163] = a158*a381 + a174*a382*X[0] + a370*a381;
1169 GNp[164] = a158*a385 + a176*a275 + a385*a386;
1170 GNp[165] = a130*a188 + a180*a3*a317 + a181*a42*a77;
1171 GNp[166] = a127*a161*a77 + a142*a3*a387 + a157*a184*a296;
1172 GNp[167] = a158*a388 + a188*a276 + a386*a388;
1173 GNp[168] = a154*a190 + a241*a384 + a301*a312;
1174 GNp[169] = a136*a190*X[0] + a140*a157*a322 + a241*a3*a323;
1175 GNp[170] = a128*a198*a297 + a201*a356 + a325*a389;
1176 GNp[171] = a197*a294 + a327*a389 + a375*a378;
1177 GNp[172] = a174*a390 + a209*a21*a287 + a349*a391;
1178 GNp[173] = a107*a315*a79 + a212*a390 + a318*a73;
1179 GNp[174] = a203*a387 + a215*a294 + a290*a364;
1180 GNp[175] = a14*a165*a77 + a149*a364 + a354*a391;
1181 GNp[176] = a219*a282 + a224*a360 + a282*a392;
1182 GNp[177] = a194*a227*a392 + a227*a337 + a30*a330;
1183 GNp[178] = a333*a363*a5 + a358*a44 + a393*a44;
1184 GNp[179] = a24*a358 + a24*a393 + a358*a367*a5;
1185 GNp[180] = a177*a34*a383 + a231*a270 + a34*a348*a79;
1186 GNp[181] = a119*a236 + a306*a394*a48 + a351*a42*a48;
1187 GNp[182] = a145*a19*a3*a75 + a276*a374 + a353*a75;
1188 GNp[183] = a145*a33*a382 + a236*a269 + a33*a348*a77;
1189 GNp[184] = a174*a264*a394 + a241*a333 + a301*a333;
1190 GNp[185] = a213*a264*a3 + a219*a322*a73 + a235*a340;
1191 GNp[186] = a246*a356 + a294*a357 + a3*a329;
1192 GNp[187] = a218*a280*a3 + a303*a34*a358 + a34*a359;
1193 GNp[188] = a11*a341 + a18*a365*a372 + a21*a24*a361;
1194 GNp[189] = a144*a256*a50 + a256*a362 + a29*a338;
1195 GNp[190] = a148*a371*a6 + a19*a354*a365 + a218*a93;
1196 GNp[191] = a106*a17*a250*a297 + a145*a90 + a6*a77*a90;
1198#include "pbat/warning/Pop.h"
Concepts for common types.
Finite Element Method (FEM)
Definition Concepts.h:19
typename detail::Hexahedron< Order > Hexahedron
Hexahedron finite element.
Definition Hexahedron.h:38
Math related functionality.
Definition Concepts.h:19
typename detail::GaussLegendreQuadrature< Dims, Order, TScalar > GaussLegendreQuadrature
Shifted Gauss-Legendre quadrature scheme over the unit box in dimensions .
Definition GaussQuadrature.h:66
The main namespace of the library.
Definition Aliases.h:15