9 void p_0_basis_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0)
12 auto x = uv.col(0).array();
13 auto y = uv.col(1).array();
15 result_0.resize(
x.size(), 1);
27 void p_0_basis_grad_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val)
30 auto x = uv.col(0).array();
31 auto y = uv.col(1).array();
33 val.resize(uv.rows(), uv.cols());
34 Eigen::ArrayXd result_0(uv.rows());
41 val.col(0) = result_0;
45 val.col(1) = result_0;
54 void p_0_nodes_2d(Eigen::MatrixXd &res)
57 res << 0.33333333333333331, 0.33333333333333331;
60 void p_1_basis_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0)
63 auto x = uv.col(0).array();
64 auto y = uv.col(1).array();
70 result_0 = -
x -
y + 1;
87 void p_1_basis_grad_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val)
90 auto x = uv.col(0).array();
91 auto y = uv.col(1).array();
93 val.resize(uv.rows(), uv.cols());
94 Eigen::ArrayXd result_0(uv.rows());
100 result_0.setConstant(-1);
101 val.col(0) = result_0;
104 result_0.setConstant(-1);
105 val.col(1) = result_0;
113 val.col(0) = result_0;
117 val.col(1) = result_0;
125 val.col(0) = result_0;
129 val.col(1) = result_0;
138 void p_1_nodes_2d(Eigen::MatrixXd &res)
146 void p_2_basis_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0)
149 auto x = uv.col(0).array();
150 auto y = uv.col(1).array();
156 result_0 = (
x +
y - 1) * (2 *
x + 2 *
y - 1);
161 result_0 =
x * (2 *
x - 1);
166 result_0 =
y * (2 *
y - 1);
171 result_0 = -4 *
x * (
x +
y - 1);
176 result_0 = 4 *
x *
y;
181 result_0 = -4 *
y * (
x +
y - 1);
188 void p_2_basis_grad_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val)
191 auto x = uv.col(0).array();
192 auto y = uv.col(1).array();
194 val.resize(uv.rows(), uv.cols());
195 Eigen::ArrayXd result_0(uv.rows());
201 result_0 = 4 *
x + 4 *
y - 3;
202 val.col(0) = result_0;
205 result_0 = 4 *
x + 4 *
y - 3;
206 val.col(1) = result_0;
213 result_0 = 4 *
x - 1;
214 val.col(0) = result_0;
218 val.col(1) = result_0;
226 val.col(0) = result_0;
229 result_0 = 4 *
y - 1;
230 val.col(1) = result_0;
237 result_0 = 4 * (-2 *
x -
y + 1);
238 val.col(0) = result_0;
242 val.col(1) = result_0;
250 val.col(0) = result_0;
254 val.col(1) = result_0;
262 val.col(0) = result_0;
265 result_0 = 4 * (-
x - 2 *
y + 1);
266 val.col(1) = result_0;
275 void p_2_nodes_2d(Eigen::MatrixXd &res)
282 1.0 / 2.0, 1.0 / 2.0,
286 void p_3_basis_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0)
289 auto x = uv.col(0).array();
290 auto y = uv.col(1).array();
296 const auto helper_0 = pow(
x, 2);
297 const auto helper_1 = pow(
y, 2);
298 result_0 = -27.0 / 2.0 * helper_0 *
y + 9 * helper_0 - 27.0 / 2.0 * helper_1 *
x + 9 * helper_1 - 9.0 / 2.0 * pow(
x, 3) + 18 *
x *
y - 11.0 / 2.0 *
x - 9.0 / 2.0 * pow(
y, 3) - 11.0 / 2.0 *
y + 1;
303 result_0 = (1.0 / 2.0) *
x * (9 * pow(
x, 2) - 9 *
x + 2);
308 result_0 = (1.0 / 2.0) *
y * (9 * pow(
y, 2) - 9 *
y + 2);
313 result_0 = (9.0 / 2.0) *
x * (
x +
y - 1) * (3 *
x + 3 *
y - 2);
318 result_0 = -9.0 / 2.0 *
x * (3 * pow(
x, 2) + 3 *
x *
y - 4 *
x -
y + 1);
323 result_0 = (9.0 / 2.0) *
x *
y * (3 *
x - 1);
328 result_0 = (9.0 / 2.0) *
x *
y * (3 *
y - 1);
333 result_0 = -9.0 / 2.0 *
y * (3 *
x *
y -
x + 3 * pow(
y, 2) - 4 *
y + 1);
338 result_0 = (9.0 / 2.0) *
y * (
x +
y - 1) * (3 *
x + 3 *
y - 2);
343 result_0 = -27 *
x *
y * (
x +
y - 1);
350 void p_3_basis_grad_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val)
353 auto x = uv.col(0).array();
354 auto y = uv.col(1).array();
356 val.resize(uv.rows(), uv.cols());
357 Eigen::ArrayXd result_0(uv.rows());
363 result_0 = -27.0 / 2.0 * pow(
x, 2) - 27 *
x *
y + 18 *
x - 27.0 / 2.0 * pow(
y, 2) + 18 *
y - 11.0 / 2.0;
364 val.col(0) = result_0;
367 result_0 = -27.0 / 2.0 * pow(
x, 2) - 27 *
x *
y + 18 *
x - 27.0 / 2.0 * pow(
y, 2) + 18 *
y - 11.0 / 2.0;
368 val.col(1) = result_0;
375 result_0 = (27.0 / 2.0) * pow(
x, 2) - 9 *
x + 1;
376 val.col(0) = result_0;
380 val.col(1) = result_0;
388 val.col(0) = result_0;
391 result_0 = (27.0 / 2.0) * pow(
y, 2) - 9 *
y + 1;
392 val.col(1) = result_0;
399 result_0 = 9 * ((9.0 / 2.0) * pow(
x, 2) + 6 *
x *
y - 5 *
x + (3.0 / 2.0) * pow(
y, 2) - 5.0 / 2.0 *
y + 1);
400 val.col(0) = result_0;
403 result_0 = (9.0 / 2.0) *
x * (6 *
x + 6 *
y - 5);
404 val.col(1) = result_0;
411 result_0 = 9 * (-9.0 / 2.0 * pow(
x, 2) - 3 *
x *
y + 4 *
x + (1.0 / 2.0) *
y - 1.0 / 2.0);
412 val.col(0) = result_0;
415 result_0 = -9.0 / 2.0 *
x * (3 *
x - 1);
416 val.col(1) = result_0;
423 result_0 = (9.0 / 2.0) *
y * (6 *
x - 1);
424 val.col(0) = result_0;
427 result_0 = (9.0 / 2.0) *
x * (3 *
x - 1);
428 val.col(1) = result_0;
435 result_0 = (9.0 / 2.0) *
y * (3 *
y - 1);
436 val.col(0) = result_0;
439 result_0 = (9.0 / 2.0) *
x * (6 *
y - 1);
440 val.col(1) = result_0;
447 result_0 = -9.0 / 2.0 *
y * (3 *
y - 1);
448 val.col(0) = result_0;
451 result_0 = 9 * (-3 *
x *
y + (1.0 / 2.0) *
x - 9.0 / 2.0 * pow(
y, 2) + 4 *
y - 1.0 / 2.0);
452 val.col(1) = result_0;
459 result_0 = (9.0 / 2.0) *
y * (6 *
x + 6 *
y - 5);
460 val.col(0) = result_0;
463 result_0 = 9 * ((3.0 / 2.0) * pow(
x, 2) + 6 *
x *
y - 5.0 / 2.0 *
x + (9.0 / 2.0) * pow(
y, 2) - 5 *
y + 1);
464 val.col(1) = result_0;
471 result_0 = -27 *
y * (2 *
x +
y - 1);
472 val.col(0) = result_0;
475 result_0 = -27 *
x * (
x + 2 *
y - 1);
476 val.col(1) = result_0;
485 void p_3_nodes_2d(Eigen::MatrixXd &res)
493 2.0 / 3.0, 1.0 / 3.0,
494 1.0 / 3.0, 2.0 / 3.0,
497 1.0 / 3.0, 1.0 / 3.0;
500 void p_4_basis_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0)
503 auto x = uv.col(0).array();
504 auto y = uv.col(1).array();
510 const auto helper_0 = pow(
x, 2);
511 const auto helper_1 = pow(
x, 3);
512 const auto helper_2 = pow(
y, 2);
513 const auto helper_3 = pow(
y, 3);
514 result_0 = 64 * helper_0 * helper_2 - 80 * helper_0 *
y + (70.0 / 3.0) * helper_0 + (128.0 / 3.0) * helper_1 *
y - 80.0 / 3.0 * helper_1 - 80 * helper_2 *
x + (70.0 / 3.0) * helper_2 + (128.0 / 3.0) * helper_3 *
x - 80.0 / 3.0 * helper_3 + (32.0 / 3.0) * pow(
x, 4) + (140.0 / 3.0) *
x *
y - 25.0 / 3.0 *
x + (32.0 / 3.0) * pow(
y, 4) - 25.0 / 3.0 *
y + 1;
519 result_0 = (1.0 / 3.0) *
x * (32 * pow(
x, 3) - 48 * pow(
x, 2) + 22 *
x - 3);
524 result_0 = (1.0 / 3.0) *
y * (32 * pow(
y, 3) - 48 * pow(
y, 2) + 22 *
y - 3);
529 const auto helper_0 = pow(
x, 2);
530 const auto helper_1 = pow(
y, 2);
531 result_0 = -16.0 / 3.0 *
x * (24 * helper_0 *
y - 18 * helper_0 + 24 * helper_1 *
x - 18 * helper_1 + 8 * pow(
x, 3) - 36 *
x *
y + 13 *
x + 8 * pow(
y, 3) + 13 *
y - 3);
536 const auto helper_0 = 32 * pow(
x, 2);
537 const auto helper_1 = pow(
y, 2);
538 result_0 = 4 *
x * (helper_0 *
y - helper_0 + 16 * helper_1 *
x - 4 * helper_1 + 16 * pow(
x, 3) - 36 *
x *
y + 19 *
x + 7 *
y - 3);
543 const auto helper_0 = pow(
x, 2);
544 result_0 = -16.0 / 3.0 *
x * (8 * helper_0 *
y - 14 * helper_0 + 8 * pow(
x, 3) - 6 *
x *
y + 7 *
x +
y - 1);
549 result_0 = (16.0 / 3.0) *
x *
y * (8 * pow(
x, 2) - 6 *
x + 1);
554 const auto helper_0 = 4 *
x;
555 result_0 = helper_0 *
y * (-helper_0 + 16 *
x *
y - 4 *
y + 1);
560 result_0 = (16.0 / 3.0) *
x *
y * (8 * pow(
y, 2) - 6 *
y + 1);
565 const auto helper_0 = pow(
y, 2);
566 result_0 = -16.0 / 3.0 *
y * (8 * helper_0 *
x - 14 * helper_0 - 6 *
x *
y +
x + 8 * pow(
y, 3) + 7 *
y - 1);
571 const auto helper_0 = pow(
x, 2);
572 const auto helper_1 = 32 * pow(
y, 2);
573 result_0 = 4 *
y * (16 * helper_0 *
y - 4 * helper_0 + helper_1 *
x - helper_1 - 36 *
x *
y + 7 *
x + 16 * pow(
y, 3) + 19 *
y - 3);
578 const auto helper_0 = pow(
x, 2);
579 const auto helper_1 = pow(
y, 2);
580 result_0 = -16.0 / 3.0 *
y * (24 * helper_0 *
y - 18 * helper_0 + 24 * helper_1 *
x - 18 * helper_1 + 8 * pow(
x, 3) - 36 *
x *
y + 13 *
x + 8 * pow(
y, 3) + 13 *
y - 3);
585 result_0 = 32 *
x *
y * (
x +
y - 1) * (4 *
x + 4 *
y - 3);
590 result_0 = -32 *
x *
y * (4 *
y - 1) * (
x +
y - 1);
595 result_0 = -32 *
x *
y * (4 *
x - 1) * (
x +
y - 1);
602 void p_4_basis_grad_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val)
605 auto x = uv.col(0).array();
606 auto y = uv.col(1).array();
608 val.resize(uv.rows(), uv.cols());
609 Eigen::ArrayXd result_0(uv.rows());
615 const auto helper_0 = pow(
x, 2);
616 const auto helper_1 = pow(
y, 2);
617 result_0 = 128 * helper_0 *
y - 80 * helper_0 + 128 * helper_1 *
x - 80 * helper_1 + (128.0 / 3.0) * pow(
x, 3) - 160 *
x *
y + (140.0 / 3.0) *
x + (128.0 / 3.0) * pow(
y, 3) + (140.0 / 3.0) *
y - 25.0 / 3.0;
618 val.col(0) = result_0;
621 const auto helper_0 = pow(
x, 2);
622 const auto helper_1 = pow(
y, 2);
623 result_0 = 128 * helper_0 *
y - 80 * helper_0 + 128 * helper_1 *
x - 80 * helper_1 + (128.0 / 3.0) * pow(
x, 3) - 160 *
x *
y + (140.0 / 3.0) *
x + (128.0 / 3.0) * pow(
y, 3) + (140.0 / 3.0) *
y - 25.0 / 3.0;
624 val.col(1) = result_0;
631 result_0 = (128.0 / 3.0) * pow(
x, 3) - 48 * pow(
x, 2) + (44.0 / 3.0) *
x - 1;
632 val.col(0) = result_0;
636 val.col(1) = result_0;
644 val.col(0) = result_0;
647 result_0 = (128.0 / 3.0) * pow(
y, 3) - 48 * pow(
y, 2) + (44.0 / 3.0) *
y - 1;
648 val.col(1) = result_0;
655 const auto helper_0 = 24 *
y;
656 const auto helper_1 = pow(
x, 2);
657 const auto helper_2 = pow(
y, 2);
658 result_0 = -16 * helper_0 * helper_1 + 16 * helper_0 *
x + 288 * helper_1 - 256 * helper_2 *
x + 96 * helper_2 - 512.0 / 3.0 * pow(
x, 3) - 416.0 / 3.0 *
x - 128.0 / 3.0 * pow(
y, 3) - 208.0 / 3.0 *
y + 16;
659 val.col(0) = result_0;
662 result_0 = -16.0 / 3.0 *
x * (24 * pow(
x, 2) + 48 *
x *
y - 36 *
x + 24 * pow(
y, 2) - 36 *
y + 13);
663 val.col(1) = result_0;
670 const auto helper_0 = 96 * pow(
x, 2);
671 const auto helper_1 = pow(
y, 2);
672 result_0 = 4 * helper_0 *
y - 4 * helper_0 + 128 * helper_1 *
x - 16 * helper_1 + 256 * pow(
x, 3) - 288 *
x *
y + 152 *
x + 28 *
y - 12;
673 val.col(0) = result_0;
676 result_0 = 4 *
x * (32 * pow(
x, 2) + 32 *
x *
y - 36 *
x - 8 *
y + 7);
677 val.col(1) = result_0;
684 const auto helper_0 = pow(
x, 2);
685 result_0 = -128 * helper_0 *
y + 224 * helper_0 - 512.0 / 3.0 * pow(
x, 3) + 64 *
x *
y - 224.0 / 3.0 *
x - 16.0 / 3.0 *
y + 16.0 / 3.0;
686 val.col(0) = result_0;
689 result_0 = -16.0 / 3.0 *
x * (8 * pow(
x, 2) - 6 *
x + 1);
690 val.col(1) = result_0;
697 result_0 = (16.0 / 3.0) *
y * (24 * pow(
x, 2) - 12 *
x + 1);
698 val.col(0) = result_0;
701 result_0 = (16.0 / 3.0) *
x * (8 * pow(
x, 2) - 6 *
x + 1);
702 val.col(1) = result_0;
709 const auto helper_0 = 4 *
y;
710 result_0 = helper_0 * (-helper_0 + 32 *
x *
y - 8 *
x + 1);
711 val.col(0) = result_0;
714 const auto helper_0 = 4 *
x;
715 result_0 = helper_0 * (-helper_0 + 32 *
x *
y - 8 *
y + 1);
716 val.col(1) = result_0;
723 result_0 = (16.0 / 3.0) *
y * (8 * pow(
y, 2) - 6 *
y + 1);
724 val.col(0) = result_0;
727 result_0 = (16.0 / 3.0) *
x * (24 * pow(
y, 2) - 12 *
y + 1);
728 val.col(1) = result_0;
735 result_0 = -16.0 / 3.0 *
y * (8 * pow(
y, 2) - 6 *
y + 1);
736 val.col(0) = result_0;
739 const auto helper_0 = pow(
y, 2);
740 result_0 = -128 * helper_0 *
x + 224 * helper_0 + 64 *
x *
y - 16.0 / 3.0 *
x - 512.0 / 3.0 * pow(
y, 3) - 224.0 / 3.0 *
y + 16.0 / 3.0;
741 val.col(1) = result_0;
748 result_0 = 4 *
y * (32 *
x *
y - 8 *
x + 32 * pow(
y, 2) - 36 *
y + 7);
749 val.col(0) = result_0;
752 const auto helper_0 = pow(
x, 2);
753 const auto helper_1 = 96 * pow(
y, 2);
754 result_0 = 128 * helper_0 *
y - 16 * helper_0 + 4 * helper_1 *
x - 4 * helper_1 - 288 *
x *
y + 28 *
x + 256 * pow(
y, 3) + 152 *
y - 12;
755 val.col(1) = result_0;
762 result_0 = -16.0 / 3.0 *
y * (24 * pow(
x, 2) + 48 *
x *
y - 36 *
x + 24 * pow(
y, 2) - 36 *
y + 13);
763 val.col(0) = result_0;
766 const auto helper_0 = 24 *
x;
767 const auto helper_1 = pow(
x, 2);
768 const auto helper_2 = pow(
y, 2);
769 result_0 = -16 * helper_0 * helper_2 + 16 * helper_0 *
y - 256 * helper_1 *
y + 96 * helper_1 + 288 * helper_2 - 128.0 / 3.0 * pow(
x, 3) - 208.0 / 3.0 *
x - 512.0 / 3.0 * pow(
y, 3) - 416.0 / 3.0 *
y + 16;
770 val.col(1) = result_0;
777 result_0 = 32 *
y * (12 * pow(
x, 2) + 16 *
x *
y - 14 *
x + 4 * pow(
y, 2) - 7 *
y + 3);
778 val.col(0) = result_0;
781 result_0 = 32 *
x * (4 * pow(
x, 2) + 16 *
x *
y - 7 *
x + 12 * pow(
y, 2) - 14 *
y + 3);
782 val.col(1) = result_0;
789 result_0 = -32 *
y * (8 *
x *
y - 2 *
x + 4 * pow(
y, 2) - 5 *
y + 1);
790 val.col(0) = result_0;
793 result_0 = -32 *
x * (8 *
x *
y -
x + 12 * pow(
y, 2) - 10 *
y + 1);
794 val.col(1) = result_0;
801 result_0 = -32 *
y * (12 * pow(
x, 2) + 8 *
x *
y - 10 *
x -
y + 1);
802 val.col(0) = result_0;
805 result_0 = -32 *
x * (4 * pow(
x, 2) + 8 *
x *
y - 5 *
x - 2 *
y + 1);
806 val.col(1) = result_0;
815 void p_4_nodes_2d(Eigen::MatrixXd &res)
824 3.0 / 4.0, 1.0 / 4.0,
825 1.0 / 2.0, 1.0 / 2.0,
826 1.0 / 4.0, 3.0 / 4.0,
830 1.0 / 4.0, 1.0 / 4.0,
831 1.0 / 4.0, 1.0 / 2.0,
832 1.0 / 2.0, 1.0 / 4.0;
860 void p_basis_value_2d(
const int p,
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val)
865 p_0_basis_value_2d(local_index, uv,
val);
868 p_1_basis_value_2d(local_index, uv,
val);
871 p_2_basis_value_2d(local_index, uv,
val);
874 p_3_basis_value_2d(local_index, uv,
val);
877 p_4_basis_value_2d(local_index, uv,
val);
889 p_0_basis_grad_value_2d(local_index, uv,
val);
892 p_1_basis_grad_value_2d(local_index, uv,
val);
895 p_2_basis_grad_value_2d(local_index, uv,
val);
898 p_3_basis_grad_value_2d(local_index, uv,
val);
901 p_4_basis_grad_value_2d(local_index, uv,
val);
910 void p_0_basis_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0)
913 auto x = uv.col(0).array();
914 auto y = uv.col(1).array();
915 auto z = uv.col(2).array();
917 result_0.resize(
x.size(), 1);
929 void p_0_basis_grad_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val)
932 auto x = uv.col(0).array();
933 auto y = uv.col(1).array();
934 auto z = uv.col(2).array();
936 val.resize(uv.rows(), uv.cols());
937 Eigen::ArrayXd result_0(uv.rows());
944 val.col(0) = result_0;
948 val.col(1) = result_0;
952 val.col(2) = result_0;
961 void p_0_nodes_3d(Eigen::MatrixXd &res)
964 res << 0.33333333333333331, 0.33333333333333331, 0.33333333333333331;
967 void p_1_basis_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0)
970 auto x = uv.col(0).array();
971 auto y = uv.col(1).array();
972 auto z = uv.col(2).array();
978 result_0 = -
x -
y -
z + 1;
1000 void p_1_basis_grad_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val)
1003 auto x = uv.col(0).array();
1004 auto y = uv.col(1).array();
1005 auto z = uv.col(2).array();
1007 val.resize(uv.rows(), uv.cols());
1008 Eigen::ArrayXd result_0(uv.rows());
1009 switch (local_index)
1014 result_0.setConstant(-1);
1015 val.col(0) = result_0;
1018 result_0.setConstant(-1);
1019 val.col(1) = result_0;
1022 result_0.setConstant(-1);
1023 val.col(2) = result_0;
1031 val.col(0) = result_0;
1035 val.col(1) = result_0;
1039 val.col(2) = result_0;
1047 val.col(0) = result_0;
1051 val.col(1) = result_0;
1055 val.col(2) = result_0;
1063 val.col(0) = result_0;
1067 val.col(1) = result_0;
1071 val.col(2) = result_0;
1080 void p_1_nodes_3d(Eigen::MatrixXd &res)
1089 void p_2_basis_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0)
1092 auto x = uv.col(0).array();
1093 auto y = uv.col(1).array();
1094 auto z = uv.col(2).array();
1096 switch (local_index)
1100 result_0 = (
x +
y +
z - 1) * (2 *
x + 2 *
y + 2 *
z - 1);
1105 result_0 =
x * (2 *
x - 1);
1110 result_0 =
y * (2 *
y - 1);
1115 result_0 =
z * (2 *
z - 1);
1120 result_0 = -4 *
x * (
x +
y +
z - 1);
1125 result_0 = 4 *
x *
y;
1130 result_0 = -4 *
y * (
x +
y +
z - 1);
1135 result_0 = -4 *
z * (
x +
y +
z - 1);
1140 result_0 = 4 *
x *
z;
1145 result_0 = 4 *
y *
z;
1152 void p_2_basis_grad_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val)
1155 auto x = uv.col(0).array();
1156 auto y = uv.col(1).array();
1157 auto z = uv.col(2).array();
1159 val.resize(uv.rows(), uv.cols());
1160 Eigen::ArrayXd result_0(uv.rows());
1161 switch (local_index)
1166 result_0 = 4 *
x + 4 *
y + 4 *
z - 3;
1167 val.col(0) = result_0;
1170 result_0 = 4 *
x + 4 *
y + 4 *
z - 3;
1171 val.col(1) = result_0;
1174 result_0 = 4 *
x + 4 *
y + 4 *
z - 3;
1175 val.col(2) = result_0;
1182 result_0 = 4 *
x - 1;
1183 val.col(0) = result_0;
1187 val.col(1) = result_0;
1191 val.col(2) = result_0;
1199 val.col(0) = result_0;
1202 result_0 = 4 *
y - 1;
1203 val.col(1) = result_0;
1207 val.col(2) = result_0;
1215 val.col(0) = result_0;
1219 val.col(1) = result_0;
1222 result_0 = 4 *
z - 1;
1223 val.col(2) = result_0;
1230 result_0 = 4 * (-2 *
x -
y -
z + 1);
1231 val.col(0) = result_0;
1235 val.col(1) = result_0;
1239 val.col(2) = result_0;
1247 val.col(0) = result_0;
1251 val.col(1) = result_0;
1255 val.col(2) = result_0;
1263 val.col(0) = result_0;
1266 result_0 = 4 * (-
x - 2 *
y -
z + 1);
1267 val.col(1) = result_0;
1271 val.col(2) = result_0;
1279 val.col(0) = result_0;
1283 val.col(1) = result_0;
1286 result_0 = 4 * (-
x -
y - 2 *
z + 1);
1287 val.col(2) = result_0;
1295 val.col(0) = result_0;
1299 val.col(1) = result_0;
1303 val.col(2) = result_0;
1311 val.col(0) = result_0;
1315 val.col(1) = result_0;
1319 val.col(2) = result_0;
1328 void p_2_nodes_3d(Eigen::MatrixXd &res)
1336 1.0 / 2.0, 1.0 / 2.0, 0,
1339 1.0 / 2.0, 0, 1.0 / 2.0,
1340 0, 1.0 / 2.0, 1.0 / 2.0;
1343 void p_3_basis_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0)
1346 auto x = uv.col(0).array();
1347 auto y = uv.col(1).array();
1348 auto z = uv.col(2).array();
1350 switch (local_index)
1354 const auto helper_0 = 18 *
x;
1355 const auto helper_1 =
y *
z;
1356 const auto helper_2 = pow(
x, 2);
1357 const auto helper_3 = pow(
y, 2);
1358 const auto helper_4 = pow(
z, 2);
1359 const auto helper_5 = (27.0 / 2.0) *
x;
1360 const auto helper_6 = (27.0 / 2.0) *
y;
1361 const auto helper_7 = (27.0 / 2.0) *
z;
1362 result_0 = helper_0 *
y + helper_0 *
z - 27 * helper_1 *
x + 18 * helper_1 - helper_2 * helper_6 - helper_2 * helper_7 + 9 * helper_2 - helper_3 * helper_5 - helper_3 * helper_7 + 9 * helper_3 - helper_4 * helper_5 - helper_4 * helper_6 + 9 * helper_4 - 9.0 / 2.0 * pow(
x, 3) - 11.0 / 2.0 *
x - 9.0 / 2.0 * pow(
y, 3) - 11.0 / 2.0 *
y - 9.0 / 2.0 * pow(
z, 3) - 11.0 / 2.0 *
z + 1;
1367 result_0 = (1.0 / 2.0) *
x * (9 * pow(
x, 2) - 9 *
x + 2);
1372 result_0 = (1.0 / 2.0) *
y * (9 * pow(
y, 2) - 9 *
y + 2);
1377 result_0 = (1.0 / 2.0) *
z * (9 * pow(
z, 2) - 9 *
z + 2);
1382 result_0 = (9.0 / 2.0) *
x * (
x +
y +
z - 1) * (3 *
x + 3 *
y + 3 *
z - 2);
1387 const auto helper_0 = 3 *
x;
1388 result_0 = -9.0 / 2.0 *
x * (helper_0 *
y + helper_0 *
z + 3 * pow(
x, 2) - 4 *
x -
y -
z + 1);
1393 result_0 = (9.0 / 2.0) *
x *
y * (3 *
x - 1);
1398 result_0 = (9.0 / 2.0) *
x *
y * (3 *
y - 1);
1403 const auto helper_0 = 3 *
y;
1404 result_0 = -9.0 / 2.0 *
y * (helper_0 *
x + helper_0 *
z -
x + 3 * pow(
y, 2) - 4 *
y -
z + 1);
1409 result_0 = (9.0 / 2.0) *
y * (
x +
y +
z - 1) * (3 *
x + 3 *
y + 3 *
z - 2);
1414 result_0 = (9.0 / 2.0) *
z * (
x +
y +
z - 1) * (3 *
x + 3 *
y + 3 *
z - 2);
1419 const auto helper_0 = 3 *
z;
1420 result_0 = -9.0 / 2.0 *
z * (helper_0 *
x + helper_0 *
y -
x -
y + 3 * pow(
z, 2) - 4 *
z + 1);
1425 result_0 = (9.0 / 2.0) *
x *
z * (3 *
x - 1);
1430 result_0 = (9.0 / 2.0) *
x *
z * (3 *
z - 1);
1435 result_0 = (9.0 / 2.0) *
y *
z * (3 *
y - 1);
1440 result_0 = (9.0 / 2.0) *
y *
z * (3 *
z - 1);
1445 result_0 = -27 *
x *
y * (
x +
y +
z - 1);
1450 result_0 = -27 *
x *
z * (
x +
y +
z - 1);
1455 result_0 = 27 *
x *
y *
z;
1460 result_0 = -27 *
y *
z * (
x +
y +
z - 1);
1467 void p_3_basis_grad_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val)
1470 auto x = uv.col(0).array();
1471 auto y = uv.col(1).array();
1472 auto z = uv.col(2).array();
1474 val.resize(uv.rows(), uv.cols());
1475 Eigen::ArrayXd result_0(uv.rows());
1476 switch (local_index)
1481 const auto helper_0 = 27 *
x;
1482 result_0 = -helper_0 *
y - helper_0 *
z - 27.0 / 2.0 * pow(
x, 2) + 18 *
x - 27.0 / 2.0 * pow(
y, 2) - 27 *
y *
z + 18 *
y - 27.0 / 2.0 * pow(
z, 2) + 18 *
z - 11.0 / 2.0;
1483 val.col(0) = result_0;
1486 const auto helper_0 = 27 *
x;
1487 result_0 = -helper_0 *
y - helper_0 *
z - 27.0 / 2.0 * pow(
x, 2) + 18 *
x - 27.0 / 2.0 * pow(
y, 2) - 27 *
y *
z + 18 *
y - 27.0 / 2.0 * pow(
z, 2) + 18 *
z - 11.0 / 2.0;
1488 val.col(1) = result_0;
1491 const auto helper_0 = 27 *
x;
1492 result_0 = -helper_0 *
y - helper_0 *
z - 27.0 / 2.0 * pow(
x, 2) + 18 *
x - 27.0 / 2.0 * pow(
y, 2) - 27 *
y *
z + 18 *
y - 27.0 / 2.0 * pow(
z, 2) + 18 *
z - 11.0 / 2.0;
1493 val.col(2) = result_0;
1500 result_0 = (27.0 / 2.0) * pow(
x, 2) - 9 *
x + 1;
1501 val.col(0) = result_0;
1505 val.col(1) = result_0;
1509 val.col(2) = result_0;
1517 val.col(0) = result_0;
1520 result_0 = (27.0 / 2.0) * pow(
y, 2) - 9 *
y + 1;
1521 val.col(1) = result_0;
1525 val.col(2) = result_0;
1533 val.col(0) = result_0;
1537 val.col(1) = result_0;
1540 result_0 = (27.0 / 2.0) * pow(
z, 2) - 9 *
z + 1;
1541 val.col(2) = result_0;
1548 const auto helper_0 = 6 *
x;
1549 result_0 = 9 * helper_0 *
y + 9 * helper_0 *
z + (81.0 / 2.0) * pow(
x, 2) - 45 *
x + (27.0 / 2.0) * pow(
y, 2) + 27 *
y *
z - 45.0 / 2.0 *
y + (27.0 / 2.0) * pow(
z, 2) - 45.0 / 2.0 *
z + 9;
1550 val.col(0) = result_0;
1553 result_0 = (9.0 / 2.0) *
x * (6 *
x + 6 *
y + 6 *
z - 5);
1554 val.col(1) = result_0;
1557 result_0 = (9.0 / 2.0) *
x * (6 *
x + 6 *
y + 6 *
z - 5);
1558 val.col(2) = result_0;
1565 const auto helper_0 = 3 *
x;
1566 result_0 = -9 * helper_0 *
y - 9 * helper_0 *
z - 81.0 / 2.0 * pow(
x, 2) + 36 *
x + (9.0 / 2.0) *
y + (9.0 / 2.0) *
z - 9.0 / 2.0;
1567 val.col(0) = result_0;
1570 result_0 = -9.0 / 2.0 *
x * (3 *
x - 1);
1571 val.col(1) = result_0;
1574 result_0 = -9.0 / 2.0 *
x * (3 *
x - 1);
1575 val.col(2) = result_0;
1582 result_0 = (9.0 / 2.0) *
y * (6 *
x - 1);
1583 val.col(0) = result_0;
1586 result_0 = (9.0 / 2.0) *
x * (3 *
x - 1);
1587 val.col(1) = result_0;
1591 val.col(2) = result_0;
1598 result_0 = (9.0 / 2.0) *
y * (3 *
y - 1);
1599 val.col(0) = result_0;
1602 result_0 = (9.0 / 2.0) *
x * (6 *
y - 1);
1603 val.col(1) = result_0;
1607 val.col(2) = result_0;
1614 result_0 = -9.0 / 2.0 *
y * (3 *
y - 1);
1615 val.col(0) = result_0;
1618 const auto helper_0 = 3 *
y;
1619 result_0 = -9 * helper_0 *
x - 9 * helper_0 *
z + (9.0 / 2.0) *
x - 81.0 / 2.0 * pow(
y, 2) + 36 *
y + (9.0 / 2.0) *
z - 9.0 / 2.0;
1620 val.col(1) = result_0;
1623 result_0 = -9.0 / 2.0 *
y * (3 *
y - 1);
1624 val.col(2) = result_0;
1631 result_0 = (9.0 / 2.0) *
y * (6 *
x + 6 *
y + 6 *
z - 5);
1632 val.col(0) = result_0;
1635 const auto helper_0 = 6 *
y;
1636 result_0 = 9 * helper_0 *
x + 9 * helper_0 *
z + (27.0 / 2.0) * pow(
x, 2) + 27 *
x *
z - 45.0 / 2.0 *
x + (81.0 / 2.0) * pow(
y, 2) - 45 *
y + (27.0 / 2.0) * pow(
z, 2) - 45.0 / 2.0 *
z + 9;
1637 val.col(1) = result_0;
1640 result_0 = (9.0 / 2.0) *
y * (6 *
x + 6 *
y + 6 *
z - 5);
1641 val.col(2) = result_0;
1648 result_0 = (9.0 / 2.0) *
z * (6 *
x + 6 *
y + 6 *
z - 5);
1649 val.col(0) = result_0;
1652 result_0 = (9.0 / 2.0) *
z * (6 *
x + 6 *
y + 6 *
z - 5);
1653 val.col(1) = result_0;
1656 const auto helper_0 = 6 *
z;
1657 result_0 = 9 * helper_0 *
x + 9 * helper_0 *
y + (27.0 / 2.0) * pow(
x, 2) + 27 *
x *
y - 45.0 / 2.0 *
x + (27.0 / 2.0) * pow(
y, 2) - 45.0 / 2.0 *
y + (81.0 / 2.0) * pow(
z, 2) - 45 *
z + 9;
1658 val.col(2) = result_0;
1665 result_0 = -9.0 / 2.0 *
z * (3 *
z - 1);
1666 val.col(0) = result_0;
1669 result_0 = -9.0 / 2.0 *
z * (3 *
z - 1);
1670 val.col(1) = result_0;
1673 const auto helper_0 = 3 *
z;
1674 result_0 = -9 * helper_0 *
x - 9 * helper_0 *
y + (9.0 / 2.0) *
x + (9.0 / 2.0) *
y - 81.0 / 2.0 * pow(
z, 2) + 36 *
z - 9.0 / 2.0;
1675 val.col(2) = result_0;
1682 result_0 = (9.0 / 2.0) *
z * (6 *
x - 1);
1683 val.col(0) = result_0;
1687 val.col(1) = result_0;
1690 result_0 = (9.0 / 2.0) *
x * (3 *
x - 1);
1691 val.col(2) = result_0;
1698 result_0 = (9.0 / 2.0) *
z * (3 *
z - 1);
1699 val.col(0) = result_0;
1703 val.col(1) = result_0;
1706 result_0 = (9.0 / 2.0) *
x * (6 *
z - 1);
1707 val.col(2) = result_0;
1715 val.col(0) = result_0;
1718 result_0 = (9.0 / 2.0) *
z * (6 *
y - 1);
1719 val.col(1) = result_0;
1722 result_0 = (9.0 / 2.0) *
y * (3 *
y - 1);
1723 val.col(2) = result_0;
1731 val.col(0) = result_0;
1734 result_0 = (9.0 / 2.0) *
z * (3 *
z - 1);
1735 val.col(1) = result_0;
1738 result_0 = (9.0 / 2.0) *
y * (6 *
z - 1);
1739 val.col(2) = result_0;
1746 result_0 = -27 *
y * (2 *
x +
y +
z - 1);
1747 val.col(0) = result_0;
1750 result_0 = -27 *
x * (
x + 2 *
y +
z - 1);
1751 val.col(1) = result_0;
1754 result_0 = -27 *
x *
y;
1755 val.col(2) = result_0;
1762 result_0 = -27 *
z * (2 *
x +
y +
z - 1);
1763 val.col(0) = result_0;
1766 result_0 = -27 *
x *
z;
1767 val.col(1) = result_0;
1770 result_0 = -27 *
x * (
x +
y + 2 *
z - 1);
1771 val.col(2) = result_0;
1778 result_0 = 27 *
y *
z;
1779 val.col(0) = result_0;
1782 result_0 = 27 *
x *
z;
1783 val.col(1) = result_0;
1786 result_0 = 27 *
x *
y;
1787 val.col(2) = result_0;
1794 result_0 = -27 *
y *
z;
1795 val.col(0) = result_0;
1798 result_0 = -27 *
z * (
x + 2 *
y +
z - 1);
1799 val.col(1) = result_0;
1802 result_0 = -27 *
y * (
x +
y + 2 *
z - 1);
1803 val.col(2) = result_0;
1812 void p_3_nodes_3d(Eigen::MatrixXd &res)
1821 2.0 / 3.0, 1.0 / 3.0, 0,
1822 1.0 / 3.0, 2.0 / 3.0, 0,
1827 2.0 / 3.0, 0, 1.0 / 3.0,
1828 1.0 / 3.0, 0, 2.0 / 3.0,
1829 0, 2.0 / 3.0, 1.0 / 3.0,
1830 0, 1.0 / 3.0, 2.0 / 3.0,
1831 1.0 / 3.0, 1.0 / 3.0, 0,
1832 1.0 / 3.0, 0, 1.0 / 3.0,
1833 1.0 / 3.0, 1.0 / 3.0, 1.0 / 3.0,
1834 0, 1.0 / 3.0, 1.0 / 3.0;
1837 void p_4_basis_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0)
1840 auto x = uv.col(0).array();
1841 auto y = uv.col(1).array();
1842 auto z = uv.col(2).array();
1844 switch (local_index)
1848 const auto helper_0 =
x +
y +
z - 1;
1849 const auto helper_1 =
x *
y;
1850 const auto helper_2 = pow(
y, 2);
1851 const auto helper_3 = 9 *
x;
1852 const auto helper_4 = pow(
z, 2);
1853 const auto helper_5 = pow(
x, 2);
1854 const auto helper_6 = 9 *
y;
1855 const auto helper_7 = 9 *
z;
1856 const auto helper_8 = 26 * helper_0;
1857 const auto helper_9 = helper_8 *
z;
1858 const auto helper_10 = 13 * pow(helper_0, 2);
1859 const auto helper_11 = 13 * helper_0;
1860 result_0 = (1.0 / 3.0) * helper_0 * (3 * pow(helper_0, 3) + helper_1 * helper_8 + 18 * helper_1 *
z + helper_10 *
x + helper_10 *
y + helper_10 *
z + helper_11 * helper_2 + helper_11 * helper_4 + helper_11 * helper_5 + helper_2 * helper_3 + helper_2 * helper_7 + helper_3 * helper_4 + helper_4 * helper_6 + helper_5 * helper_6 + helper_5 * helper_7 + helper_9 *
x + helper_9 *
y + 3 * pow(
x, 3) + 3 * pow(
y, 3) + 3 * pow(
z, 3));
1865 result_0 = (1.0 / 3.0) *
x * (32 * pow(
x, 3) - 48 * pow(
x, 2) + 22 *
x - 3);
1870 result_0 = (1.0 / 3.0) *
y * (32 * pow(
y, 3) - 48 * pow(
y, 2) + 22 *
y - 3);
1875 result_0 = (1.0 / 3.0) *
z * (32 * pow(
z, 3) - 48 * pow(
z, 2) + 22 *
z - 3);
1880 const auto helper_0 = 36 *
x;
1881 const auto helper_1 =
y *
z;
1882 const auto helper_2 = pow(
x, 2);
1883 const auto helper_3 = pow(
y, 2);
1884 const auto helper_4 = pow(
z, 2);
1885 const auto helper_5 = 24 *
x;
1886 const auto helper_6 = 24 *
y;
1887 const auto helper_7 = 24 *
z;
1888 result_0 = -16.0 / 3.0 *
x * (-helper_0 *
y - helper_0 *
z + 48 * helper_1 *
x - 36 * helper_1 + helper_2 * helper_6 + helper_2 * helper_7 - 18 * helper_2 + helper_3 * helper_5 + helper_3 * helper_7 - 18 * helper_3 + helper_4 * helper_5 + helper_4 * helper_6 - 18 * helper_4 + 8 * pow(
x, 3) + 13 *
x + 8 * pow(
y, 3) + 13 *
y + 8 * pow(
z, 3) + 13 *
z - 3);
1893 const auto helper_0 = 2 *
y;
1894 const auto helper_1 = 2 *
z;
1895 const auto helper_2 =
x +
y +
z - 1;
1896 const auto helper_3 = helper_2 *
x;
1897 result_0 = 4 * helper_3 * (-helper_0 * helper_2 + helper_0 *
x - helper_0 *
z - helper_1 * helper_2 + helper_1 *
x + 3 * pow(helper_2, 2) + 10 * helper_3 + 3 * pow(
x, 2) - pow(
y, 2) - pow(
z, 2));
1902 const auto helper_0 = 6 *
x;
1903 const auto helper_1 = pow(
x, 2);
1904 const auto helper_2 = 8 * helper_1;
1905 result_0 = -16.0 / 3.0 *
x * (-helper_0 *
y - helper_0 *
z - 14 * helper_1 + helper_2 *
y + helper_2 *
z + 8 * pow(
x, 3) + 7 *
x +
y +
z - 1);
1910 result_0 = (16.0 / 3.0) *
x *
y * (8 * pow(
x, 2) - 6 *
x + 1);
1915 const auto helper_0 = 4 *
x;
1916 result_0 = helper_0 *
y * (-helper_0 + 16 *
x *
y - 4 *
y + 1);
1921 result_0 = (16.0 / 3.0) *
x *
y * (8 * pow(
y, 2) - 6 *
y + 1);
1926 const auto helper_0 = 6 *
y;
1927 const auto helper_1 = pow(
y, 2);
1928 const auto helper_2 = 8 * helper_1;
1929 result_0 = -16.0 / 3.0 *
y * (-helper_0 *
x - helper_0 *
z - 14 * helper_1 + helper_2 *
x + helper_2 *
z +
x + 8 * pow(
y, 3) + 7 *
y +
z - 1);
1934 const auto helper_0 = 2 *
y;
1935 const auto helper_1 = 2 *
x;
1936 const auto helper_2 =
x +
y +
z - 1;
1937 const auto helper_3 = helper_2 *
y;
1938 result_0 = -4 * helper_3 * (-helper_0 *
x - helper_0 *
z + helper_1 * helper_2 + helper_1 *
z - 3 * pow(helper_2, 2) + 2 * helper_2 *
z - 10 * helper_3 + pow(
x, 2) - 3 * pow(
y, 2) + pow(
z, 2));
1943 const auto helper_0 = 36 *
x;
1944 const auto helper_1 =
y *
z;
1945 const auto helper_2 = pow(
x, 2);
1946 const auto helper_3 = pow(
y, 2);
1947 const auto helper_4 = pow(
z, 2);
1948 const auto helper_5 = 24 *
x;
1949 const auto helper_6 = 24 *
y;
1950 const auto helper_7 = 24 *
z;
1951 result_0 = -16.0 / 3.0 *
y * (-helper_0 *
y - helper_0 *
z + 48 * helper_1 *
x - 36 * helper_1 + helper_2 * helper_6 + helper_2 * helper_7 - 18 * helper_2 + helper_3 * helper_5 + helper_3 * helper_7 - 18 * helper_3 + helper_4 * helper_5 + helper_4 * helper_6 - 18 * helper_4 + 8 * pow(
x, 3) + 13 *
x + 8 * pow(
y, 3) + 13 *
y + 8 * pow(
z, 3) + 13 *
z - 3);
1956 const auto helper_0 = 36 *
x;
1957 const auto helper_1 =
y *
z;
1958 const auto helper_2 = pow(
x, 2);
1959 const auto helper_3 = pow(
y, 2);
1960 const auto helper_4 = pow(
z, 2);
1961 const auto helper_5 = 24 *
x;
1962 const auto helper_6 = 24 *
y;
1963 const auto helper_7 = 24 *
z;
1964 result_0 = -16.0 / 3.0 *
z * (-helper_0 *
y - helper_0 *
z + 48 * helper_1 *
x - 36 * helper_1 + helper_2 * helper_6 + helper_2 * helper_7 - 18 * helper_2 + helper_3 * helper_5 + helper_3 * helper_7 - 18 * helper_3 + helper_4 * helper_5 + helper_4 * helper_6 - 18 * helper_4 + 8 * pow(
x, 3) + 13 *
x + 8 * pow(
y, 3) + 13 *
y + 8 * pow(
z, 3) + 13 *
z - 3);
1969 const auto helper_0 = 2 *
x;
1970 const auto helper_1 = 2 *
z;
1971 const auto helper_2 =
x +
y +
z - 1;
1972 const auto helper_3 = helper_2 *
z;
1973 result_0 = -4 * helper_3 * (helper_0 * helper_2 + helper_0 *
y - helper_1 *
x - helper_1 *
y - 3 * pow(helper_2, 2) + 2 * helper_2 *
y - 10 * helper_3 + pow(
x, 2) + pow(
y, 2) - 3 * pow(
z, 2));
1978 const auto helper_0 = 6 *
z;
1979 const auto helper_1 = pow(
z, 2);
1980 const auto helper_2 = 8 * helper_1;
1981 result_0 = -16.0 / 3.0 *
z * (-helper_0 *
x - helper_0 *
y - 14 * helper_1 + helper_2 *
x + helper_2 *
y +
x +
y + 8 * pow(
z, 3) + 7 *
z - 1);
1986 result_0 = (16.0 / 3.0) *
x *
z * (8 * pow(
x, 2) - 6 *
x + 1);
1991 const auto helper_0 = 4 *
x;
1992 result_0 = helper_0 *
z * (-helper_0 + 16 *
x *
z - 4 *
z + 1);
1997 result_0 = (16.0 / 3.0) *
x *
z * (8 * pow(
z, 2) - 6 *
z + 1);
2002 result_0 = (16.0 / 3.0) *
y *
z * (8 * pow(
y, 2) - 6 *
y + 1);
2007 const auto helper_0 = 4 *
y;
2008 result_0 = helper_0 *
z * (-helper_0 + 16 *
y *
z - 4 *
z + 1);
2013 result_0 = (16.0 / 3.0) *
y *
z * (8 * pow(
z, 2) - 6 *
z + 1);
2018 result_0 = 32 *
x *
y * (
x +
y +
z - 1) * (4 *
x + 4 *
y + 4 *
z - 3);
2023 result_0 = -32 *
x *
y * (4 *
y - 1) * (
x +
y +
z - 1);
2028 result_0 = -32 *
x *
y * (4 *
x - 1) * (
x +
y +
z - 1);
2033 result_0 = 32 *
x *
z * (
x +
y +
z - 1) * (4 *
x + 4 *
y + 4 *
z - 3);
2038 result_0 = -32 *
x *
z * (4 *
z - 1) * (
x +
y +
z - 1);
2043 result_0 = -32 *
x *
z * (4 *
x - 1) * (
x +
y +
z - 1);
2048 result_0 = 32 *
x *
y *
z * (4 *
x - 1);
2053 result_0 = 32 *
x *
y *
z * (4 *
z - 1);
2058 result_0 = 32 *
x *
y *
z * (4 *
y - 1);
2063 result_0 = -32 *
y *
z * (4 *
y - 1) * (
x +
y +
z - 1);
2068 result_0 = -32 *
y *
z * (4 *
z - 1) * (
x +
y +
z - 1);
2073 result_0 = 32 *
y *
z * (
x +
y +
z - 1) * (4 *
x + 4 *
y + 4 *
z - 3);
2078 result_0 = -256 *
x *
y *
z * (
x +
y +
z - 1);
2085 void p_4_basis_grad_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val)
2088 auto x = uv.col(0).array();
2089 auto y = uv.col(1).array();
2090 auto z = uv.col(2).array();
2092 val.resize(uv.rows(), uv.cols());
2093 Eigen::ArrayXd result_0(uv.rows());
2094 switch (local_index)
2099 const auto helper_0 = 160 *
x;
2100 const auto helper_1 =
y *
z;
2101 const auto helper_2 = pow(
x, 2);
2102 const auto helper_3 = pow(
y, 2);
2103 const auto helper_4 = pow(
z, 2);
2104 const auto helper_5 = 128 *
x;
2105 const auto helper_6 = 128 *
y;
2106 const auto helper_7 = 128 *
z;
2107 result_0 = -helper_0 *
y - helper_0 *
z + 256 * helper_1 *
x - 160 * helper_1 + helper_2 * helper_6 + helper_2 * helper_7 - 80 * helper_2 + helper_3 * helper_5 + helper_3 * helper_7 - 80 * helper_3 + helper_4 * helper_5 + helper_4 * helper_6 - 80 * helper_4 + (128.0 / 3.0) * pow(
x, 3) + (140.0 / 3.0) *
x + (128.0 / 3.0) * pow(
y, 3) + (140.0 / 3.0) *
y + (128.0 / 3.0) * pow(
z, 3) + (140.0 / 3.0) *
z - 25.0 / 3.0;
2108 val.col(0) = result_0;
2111 const auto helper_0 = 160 *
x;
2112 const auto helper_1 =
y *
z;
2113 const auto helper_2 = pow(
x, 2);
2114 const auto helper_3 = pow(
y, 2);
2115 const auto helper_4 = pow(
z, 2);
2116 const auto helper_5 = 128 *
x;
2117 const auto helper_6 = 128 *
y;
2118 const auto helper_7 = 128 *
z;
2119 result_0 = -helper_0 *
y - helper_0 *
z + 256 * helper_1 *
x - 160 * helper_1 + helper_2 * helper_6 + helper_2 * helper_7 - 80 * helper_2 + helper_3 * helper_5 + helper_3 * helper_7 - 80 * helper_3 + helper_4 * helper_5 + helper_4 * helper_6 - 80 * helper_4 + (128.0 / 3.0) * pow(
x, 3) + (140.0 / 3.0) *
x + (128.0 / 3.0) * pow(
y, 3) + (140.0 / 3.0) *
y + (128.0 / 3.0) * pow(
z, 3) + (140.0 / 3.0) *
z - 25.0 / 3.0;
2120 val.col(1) = result_0;
2123 const auto helper_0 = 160 *
x;
2124 const auto helper_1 =
y *
z;
2125 const auto helper_2 = pow(
x, 2);
2126 const auto helper_3 = pow(
y, 2);
2127 const auto helper_4 = pow(
z, 2);
2128 const auto helper_5 = 128 *
x;
2129 const auto helper_6 = 128 *
y;
2130 const auto helper_7 = 128 *
z;
2131 result_0 = -helper_0 *
y - helper_0 *
z + 256 * helper_1 *
x - 160 * helper_1 + helper_2 * helper_6 + helper_2 * helper_7 - 80 * helper_2 + helper_3 * helper_5 + helper_3 * helper_7 - 80 * helper_3 + helper_4 * helper_5 + helper_4 * helper_6 - 80 * helper_4 + (128.0 / 3.0) * pow(
x, 3) + (140.0 / 3.0) *
x + (128.0 / 3.0) * pow(
y, 3) + (140.0 / 3.0) *
y + (128.0 / 3.0) * pow(
z, 3) + (140.0 / 3.0) *
z - 25.0 / 3.0;
2132 val.col(2) = result_0;
2139 result_0 = (128.0 / 3.0) * pow(
x, 3) - 48 * pow(
x, 2) + (44.0 / 3.0) *
x - 1;
2140 val.col(0) = result_0;
2144 val.col(1) = result_0;
2148 val.col(2) = result_0;
2156 val.col(0) = result_0;
2159 result_0 = (128.0 / 3.0) * pow(
y, 3) - 48 * pow(
y, 2) + (44.0 / 3.0) *
y - 1;
2160 val.col(1) = result_0;
2164 val.col(2) = result_0;
2172 val.col(0) = result_0;
2176 val.col(1) = result_0;
2179 result_0 = (128.0 / 3.0) * pow(
z, 3) - 48 * pow(
z, 2) + (44.0 / 3.0) *
z - 1;
2180 val.col(2) = result_0;
2187 const auto helper_0 = 24 *
x;
2188 const auto helper_1 =
y *
z;
2189 const auto helper_2 = pow(
x, 2);
2190 const auto helper_3 = pow(
y, 2);
2191 const auto helper_4 = pow(
z, 2);
2192 const auto helper_5 = 16 *
x;
2193 const auto helper_6 = 24 * helper_2;
2194 result_0 = 16 * helper_0 *
y + 16 * helper_0 *
z - 512 * helper_1 *
x + 192 * helper_1 + 288 * helper_2 - 16 * helper_3 * helper_5 - 128 * helper_3 *
z + 96 * helper_3 - 16 * helper_4 * helper_5 - 128 * helper_4 *
y + 96 * helper_4 - 16 * helper_6 *
y - 16 * helper_6 *
z - 512.0 / 3.0 * pow(
x, 3) - 416.0 / 3.0 *
x - 128.0 / 3.0 * pow(
y, 3) - 208.0 / 3.0 *
y - 128.0 / 3.0 * pow(
z, 3) - 208.0 / 3.0 *
z + 16;
2195 val.col(0) = result_0;
2198 const auto helper_0 = 48 *
x;
2199 result_0 = -16.0 / 3.0 *
x * (helper_0 *
y + helper_0 *
z + 24 * pow(
x, 2) - 36 *
x + 24 * pow(
y, 2) + 48 *
y *
z - 36 *
y + 24 * pow(
z, 2) - 36 *
z + 13);
2200 val.col(1) = result_0;
2203 const auto helper_0 = 48 *
x;
2204 result_0 = -16.0 / 3.0 *
x * (helper_0 *
y + helper_0 *
z + 24 * pow(
x, 2) - 36 *
x + 24 * pow(
y, 2) + 48 *
y *
z - 36 *
y + 24 * pow(
z, 2) - 36 *
z + 13);
2205 val.col(2) = result_0;
2212 const auto helper_0 = 72 *
x;
2213 const auto helper_1 =
y *
z;
2214 const auto helper_2 = 96 * pow(
x, 2);
2215 const auto helper_3 = pow(
y, 2);
2216 const auto helper_4 = pow(
z, 2);
2217 const auto helper_5 = 32 *
x;
2218 result_0 = -4 * helper_0 *
y - 4 * helper_0 *
z + 256 * helper_1 *
x - 32 * helper_1 + 4 * helper_2 *
y + 4 * helper_2 *
z - 4 * helper_2 + 4 * helper_3 * helper_5 - 16 * helper_3 + 4 * helper_4 * helper_5 - 16 * helper_4 + 256 * pow(
x, 3) + 152 *
x + 28 *
y + 28 *
z - 12;
2219 val.col(0) = result_0;
2222 const auto helper_0 = 32 *
x;
2223 result_0 = 4 *
x * (helper_0 *
y + helper_0 *
z + 32 * pow(
x, 2) - 36 *
x - 8 *
y - 8 *
z + 7);
2224 val.col(1) = result_0;
2227 const auto helper_0 = 32 *
x;
2228 result_0 = 4 *
x * (helper_0 *
y + helper_0 *
z + 32 * pow(
x, 2) - 36 *
x - 8 *
y - 8 *
z + 7);
2229 val.col(2) = result_0;
2236 const auto helper_0 = 4 *
x;
2237 const auto helper_1 = pow(
x, 2);
2238 const auto helper_2 = 8 * helper_1;
2239 result_0 = 16 * helper_0 *
y + 16 * helper_0 *
z + 224 * helper_1 - 16 * helper_2 *
y - 16 * helper_2 *
z - 512.0 / 3.0 * pow(
x, 3) - 224.0 / 3.0 *
x - 16.0 / 3.0 *
y - 16.0 / 3.0 *
z + 16.0 / 3.0;
2240 val.col(0) = result_0;
2243 result_0 = -16.0 / 3.0 *
x * (8 * pow(
x, 2) - 6 *
x + 1);
2244 val.col(1) = result_0;
2247 result_0 = -16.0 / 3.0 *
x * (8 * pow(
x, 2) - 6 *
x + 1);
2248 val.col(2) = result_0;
2255 result_0 = (16.0 / 3.0) *
y * (24 * pow(
x, 2) - 12 *
x + 1);
2256 val.col(0) = result_0;
2259 result_0 = (16.0 / 3.0) *
x * (8 * pow(
x, 2) - 6 *
x + 1);
2260 val.col(1) = result_0;
2264 val.col(2) = result_0;
2271 const auto helper_0 = 4 *
y;
2272 result_0 = helper_0 * (-helper_0 + 32 *
x *
y - 8 *
x + 1);
2273 val.col(0) = result_0;
2276 const auto helper_0 = 4 *
x;
2277 result_0 = helper_0 * (-helper_0 + 32 *
x *
y - 8 *
y + 1);
2278 val.col(1) = result_0;
2282 val.col(2) = result_0;
2289 result_0 = (16.0 / 3.0) *
y * (8 * pow(
y, 2) - 6 *
y + 1);
2290 val.col(0) = result_0;
2293 result_0 = (16.0 / 3.0) *
x * (24 * pow(
y, 2) - 12 *
y + 1);
2294 val.col(1) = result_0;
2298 val.col(2) = result_0;
2305 result_0 = -16.0 / 3.0 *
y * (8 * pow(
y, 2) - 6 *
y + 1);
2306 val.col(0) = result_0;
2309 const auto helper_0 = 4 *
y;
2310 const auto helper_1 = pow(
y, 2);
2311 const auto helper_2 = 8 * helper_1;
2312 result_0 = 16 * helper_0 *
x + 16 * helper_0 *
z + 224 * helper_1 - 16 * helper_2 *
x - 16 * helper_2 *
z - 16.0 / 3.0 *
x - 512.0 / 3.0 * pow(
y, 3) - 224.0 / 3.0 *
y - 16.0 / 3.0 *
z + 16.0 / 3.0;
2313 val.col(1) = result_0;
2316 result_0 = -16.0 / 3.0 *
y * (8 * pow(
y, 2) - 6 *
y + 1);
2317 val.col(2) = result_0;
2324 const auto helper_0 = 32 *
y;
2325 result_0 = 4 *
y * (helper_0 *
x + helper_0 *
z - 8 *
x + 32 * pow(
y, 2) - 36 *
y - 8 *
z + 7);
2326 val.col(0) = result_0;
2329 const auto helper_0 = 72 *
y;
2330 const auto helper_1 =
x *
z;
2331 const auto helper_2 = pow(
x, 2);
2332 const auto helper_3 = 96 * pow(
y, 2);
2333 const auto helper_4 = pow(
z, 2);
2334 const auto helper_5 = 32 *
y;
2335 result_0 = -4 * helper_0 *
x - 4 * helper_0 *
z + 256 * helper_1 *
y - 32 * helper_1 + 4 * helper_2 * helper_5 - 16 * helper_2 + 4 * helper_3 *
x + 4 * helper_3 *
z - 4 * helper_3 + 4 * helper_4 * helper_5 - 16 * helper_4 + 28 *
x + 256 * pow(
y, 3) + 152 *
y + 28 *
z - 12;
2336 val.col(1) = result_0;
2339 const auto helper_0 = 32 *
y;
2340 result_0 = 4 *
y * (helper_0 *
x + helper_0 *
z - 8 *
x + 32 * pow(
y, 2) - 36 *
y - 8 *
z + 7);
2341 val.col(2) = result_0;
2348 const auto helper_0 = 48 *
x;
2349 result_0 = -16.0 / 3.0 *
y * (helper_0 *
y + helper_0 *
z + 24 * pow(
x, 2) - 36 *
x + 24 * pow(
y, 2) + 48 *
y *
z - 36 *
y + 24 * pow(
z, 2) - 36 *
z + 13);
2350 val.col(0) = result_0;
2353 const auto helper_0 = 24 *
y;
2354 const auto helper_1 =
x *
z;
2355 const auto helper_2 = pow(
x, 2);
2356 const auto helper_3 = pow(
y, 2);
2357 const auto helper_4 = pow(
z, 2);
2358 const auto helper_5 = 24 * helper_3;
2359 const auto helper_6 = 16 *
y;
2360 result_0 = 16 * helper_0 *
x + 16 * helper_0 *
z - 512 * helper_1 *
y + 192 * helper_1 - 16 * helper_2 * helper_6 - 128 * helper_2 *
z + 96 * helper_2 + 288 * helper_3 - 16 * helper_4 * helper_6 - 128 * helper_4 *
x + 96 * helper_4 - 16 * helper_5 *
x - 16 * helper_5 *
z - 128.0 / 3.0 * pow(
x, 3) - 208.0 / 3.0 *
x - 512.0 / 3.0 * pow(
y, 3) - 416.0 / 3.0 *
y - 128.0 / 3.0 * pow(
z, 3) - 208.0 / 3.0 *
z + 16;
2361 val.col(1) = result_0;
2364 const auto helper_0 = 48 *
x;
2365 result_0 = -16.0 / 3.0 *
y * (helper_0 *
y + helper_0 *
z + 24 * pow(
x, 2) - 36 *
x + 24 * pow(
y, 2) + 48 *
y *
z - 36 *
y + 24 * pow(
z, 2) - 36 *
z + 13);
2366 val.col(2) = result_0;
2373 const auto helper_0 = 48 *
x;
2374 result_0 = -16.0 / 3.0 *
z * (helper_0 *
y + helper_0 *
z + 24 * pow(
x, 2) - 36 *
x + 24 * pow(
y, 2) + 48 *
y *
z - 36 *
y + 24 * pow(
z, 2) - 36 *
z + 13);
2375 val.col(0) = result_0;
2378 const auto helper_0 = 48 *
x;
2379 result_0 = -16.0 / 3.0 *
z * (helper_0 *
y + helper_0 *
z + 24 * pow(
x, 2) - 36 *
x + 24 * pow(
y, 2) + 48 *
y *
z - 36 *
y + 24 * pow(
z, 2) - 36 *
z + 13);
2380 val.col(1) = result_0;
2383 const auto helper_0 =
x *
y;
2384 const auto helper_1 = 24 *
z;
2385 const auto helper_2 = pow(
x, 2);
2386 const auto helper_3 = pow(
y, 2);
2387 const auto helper_4 = pow(
z, 2);
2388 const auto helper_5 = 24 * helper_4;
2389 const auto helper_6 = 16 *
z;
2390 result_0 = -512 * helper_0 *
z + 192 * helper_0 + 16 * helper_1 *
x + 16 * helper_1 *
y - 16 * helper_2 * helper_6 - 128 * helper_2 *
y + 96 * helper_2 - 16 * helper_3 * helper_6 - 128 * helper_3 *
x + 96 * helper_3 + 288 * helper_4 - 16 * helper_5 *
x - 16 * helper_5 *
y - 128.0 / 3.0 * pow(
x, 3) - 208.0 / 3.0 *
x - 128.0 / 3.0 * pow(
y, 3) - 208.0 / 3.0 *
y - 512.0 / 3.0 * pow(
z, 3) - 416.0 / 3.0 *
z + 16;
2391 val.col(2) = result_0;
2398 const auto helper_0 = 32 *
z;
2399 result_0 = 4 *
z * (helper_0 *
x + helper_0 *
y - 8 *
x - 8 *
y + 32 * pow(
z, 2) - 36 *
z + 7);
2400 val.col(0) = result_0;
2403 const auto helper_0 = 32 *
z;
2404 result_0 = 4 *
z * (helper_0 *
x + helper_0 *
y - 8 *
x - 8 *
y + 32 * pow(
z, 2) - 36 *
z + 7);
2405 val.col(1) = result_0;
2408 const auto helper_0 =
x *
y;
2409 const auto helper_1 = 72 *
z;
2410 const auto helper_2 = pow(
x, 2);
2411 const auto helper_3 = pow(
y, 2);
2412 const auto helper_4 = 96 * pow(
z, 2);
2413 const auto helper_5 = 32 *
z;
2414 result_0 = 256 * helper_0 *
z - 32 * helper_0 - 4 * helper_1 *
x - 4 * helper_1 *
y + 4 * helper_2 * helper_5 - 16 * helper_2 + 4 * helper_3 * helper_5 - 16 * helper_3 + 4 * helper_4 *
x + 4 * helper_4 *
y - 4 * helper_4 + 28 *
x + 28 *
y + 256 * pow(
z, 3) + 152 *
z - 12;
2415 val.col(2) = result_0;
2422 result_0 = -16.0 / 3.0 *
z * (8 * pow(
z, 2) - 6 *
z + 1);
2423 val.col(0) = result_0;
2426 result_0 = -16.0 / 3.0 *
z * (8 * pow(
z, 2) - 6 *
z + 1);
2427 val.col(1) = result_0;
2430 const auto helper_0 = 4 *
z;
2431 const auto helper_1 = pow(
z, 2);
2432 const auto helper_2 = 8 * helper_1;
2433 result_0 = 16 * helper_0 *
x + 16 * helper_0 *
y + 224 * helper_1 - 16 * helper_2 *
x - 16 * helper_2 *
y - 16.0 / 3.0 *
x - 16.0 / 3.0 *
y - 512.0 / 3.0 * pow(
z, 3) - 224.0 / 3.0 *
z + 16.0 / 3.0;
2434 val.col(2) = result_0;
2441 result_0 = (16.0 / 3.0) *
z * (24 * pow(
x, 2) - 12 *
x + 1);
2442 val.col(0) = result_0;
2446 val.col(1) = result_0;
2449 result_0 = (16.0 / 3.0) *
x * (8 * pow(
x, 2) - 6 *
x + 1);
2450 val.col(2) = result_0;
2457 const auto helper_0 = 4 *
z;
2458 result_0 = helper_0 * (-helper_0 + 32 *
x *
z - 8 *
x + 1);
2459 val.col(0) = result_0;
2463 val.col(1) = result_0;
2466 const auto helper_0 = 4 *
x;
2467 result_0 = helper_0 * (-helper_0 + 32 *
x *
z - 8 *
z + 1);
2468 val.col(2) = result_0;
2475 result_0 = (16.0 / 3.0) *
z * (8 * pow(
z, 2) - 6 *
z + 1);
2476 val.col(0) = result_0;
2480 val.col(1) = result_0;
2483 result_0 = (16.0 / 3.0) *
x * (24 * pow(
z, 2) - 12 *
z + 1);
2484 val.col(2) = result_0;
2492 val.col(0) = result_0;
2495 result_0 = (16.0 / 3.0) *
z * (24 * pow(
y, 2) - 12 *
y + 1);
2496 val.col(1) = result_0;
2499 result_0 = (16.0 / 3.0) *
y * (8 * pow(
y, 2) - 6 *
y + 1);
2500 val.col(2) = result_0;
2508 val.col(0) = result_0;
2511 const auto helper_0 = 4 *
z;
2512 result_0 = helper_0 * (-helper_0 + 32 *
y *
z - 8 *
y + 1);
2513 val.col(1) = result_0;
2516 const auto helper_0 = 4 *
y;
2517 result_0 = helper_0 * (-helper_0 + 32 *
y *
z - 8 *
z + 1);
2518 val.col(2) = result_0;
2526 val.col(0) = result_0;
2529 result_0 = (16.0 / 3.0) *
z * (8 * pow(
z, 2) - 6 *
z + 1);
2530 val.col(1) = result_0;
2533 result_0 = (16.0 / 3.0) *
y * (24 * pow(
z, 2) - 12 *
z + 1);
2534 val.col(2) = result_0;
2541 const auto helper_0 = 16 *
x;
2542 result_0 = 32 *
y * (helper_0 *
y + helper_0 *
z + 12 * pow(
x, 2) - 14 *
x + 4 * pow(
y, 2) + 8 *
y *
z - 7 *
y + 4 * pow(
z, 2) - 7 *
z + 3);
2543 val.col(0) = result_0;
2546 const auto helper_0 = 16 *
y;
2547 result_0 = 32 *
x * (helper_0 *
x + helper_0 *
z + 4 * pow(
x, 2) + 8 *
x *
z - 7 *
x + 12 * pow(
y, 2) - 14 *
y + 4 * pow(
z, 2) - 7 *
z + 3);
2548 val.col(1) = result_0;
2551 result_0 = 32 *
x *
y * (8 *
x + 8 *
y + 8 *
z - 7);
2552 val.col(2) = result_0;
2559 result_0 = -32 *
y * (8 *
x *
y - 2 *
x + 4 * pow(
y, 2) + 4 *
y *
z - 5 *
y -
z + 1);
2560 val.col(0) = result_0;
2563 const auto helper_0 = 8 *
y;
2564 result_0 = -32 *
x * (helper_0 *
x + helper_0 *
z -
x + 12 * pow(
y, 2) - 10 *
y -
z + 1);
2565 val.col(1) = result_0;
2568 result_0 = -32 *
x *
y * (4 *
y - 1);
2569 val.col(2) = result_0;
2576 const auto helper_0 = 8 *
x;
2577 result_0 = -32 *
y * (helper_0 *
y + helper_0 *
z + 12 * pow(
x, 2) - 10 *
x -
y -
z + 1);
2578 val.col(0) = result_0;
2581 result_0 = -32 *
x * (4 * pow(
x, 2) + 8 *
x *
y + 4 *
x *
z - 5 *
x - 2 *
y -
z + 1);
2582 val.col(1) = result_0;
2585 result_0 = -32 *
x *
y * (4 *
x - 1);
2586 val.col(2) = result_0;
2593 const auto helper_0 = 16 *
x;
2594 result_0 = 32 *
z * (helper_0 *
y + helper_0 *
z + 12 * pow(
x, 2) - 14 *
x + 4 * pow(
y, 2) + 8 *
y *
z - 7 *
y + 4 * pow(
z, 2) - 7 *
z + 3);
2595 val.col(0) = result_0;
2598 result_0 = 32 *
x *
z * (8 *
x + 8 *
y + 8 *
z - 7);
2599 val.col(1) = result_0;
2602 const auto helper_0 = 16 *
z;
2603 result_0 = 32 *
x * (helper_0 *
x + helper_0 *
y + 4 * pow(
x, 2) + 8 *
x *
y - 7 *
x + 4 * pow(
y, 2) - 7 *
y + 12 * pow(
z, 2) - 14 *
z + 3);
2604 val.col(2) = result_0;
2611 result_0 = -32 *
z * (8 *
x *
z - 2 *
x + 4 *
y *
z -
y + 4 * pow(
z, 2) - 5 *
z + 1);
2612 val.col(0) = result_0;
2615 result_0 = -32 *
x *
z * (4 *
z - 1);
2616 val.col(1) = result_0;
2619 const auto helper_0 = 8 *
z;
2620 result_0 = -32 *
x * (helper_0 *
x + helper_0 *
y -
x -
y + 12 * pow(
z, 2) - 10 *
z + 1);
2621 val.col(2) = result_0;
2628 const auto helper_0 = 8 *
x;
2629 result_0 = -32 *
z * (helper_0 *
y + helper_0 *
z + 12 * pow(
x, 2) - 10 *
x -
y -
z + 1);
2630 val.col(0) = result_0;
2633 result_0 = -32 *
x *
z * (4 *
x - 1);
2634 val.col(1) = result_0;
2637 result_0 = -32 *
x * (4 * pow(
x, 2) + 4 *
x *
y + 8 *
x *
z - 5 *
x -
y - 2 *
z + 1);
2638 val.col(2) = result_0;
2645 result_0 = 32 *
y *
z * (8 *
x - 1);
2646 val.col(0) = result_0;
2649 result_0 = 32 *
x *
z * (4 *
x - 1);
2650 val.col(1) = result_0;
2653 result_0 = 32 *
x *
y * (4 *
x - 1);
2654 val.col(2) = result_0;
2661 result_0 = 32 *
y *
z * (4 *
z - 1);
2662 val.col(0) = result_0;
2665 result_0 = 32 *
x *
z * (4 *
z - 1);
2666 val.col(1) = result_0;
2669 result_0 = 32 *
x *
y * (8 *
z - 1);
2670 val.col(2) = result_0;
2677 result_0 = 32 *
y *
z * (4 *
y - 1);
2678 val.col(0) = result_0;
2681 result_0 = 32 *
x *
z * (8 *
y - 1);
2682 val.col(1) = result_0;
2685 result_0 = 32 *
x *
y * (4 *
y - 1);
2686 val.col(2) = result_0;
2693 result_0 = -32 *
y *
z * (4 *
y - 1);
2694 val.col(0) = result_0;
2697 const auto helper_0 = 8 *
y;
2698 result_0 = -32 *
z * (helper_0 *
x + helper_0 *
z -
x + 12 * pow(
y, 2) - 10 *
y -
z + 1);
2699 val.col(1) = result_0;
2702 result_0 = -32 *
y * (4 *
x *
y -
x + 4 * pow(
y, 2) + 8 *
y *
z - 5 *
y - 2 *
z + 1);
2703 val.col(2) = result_0;
2710 result_0 = -32 *
y *
z * (4 *
z - 1);
2711 val.col(0) = result_0;
2714 result_0 = -32 *
z * (4 *
x *
z -
x + 8 *
y *
z - 2 *
y + 4 * pow(
z, 2) - 5 *
z + 1);
2715 val.col(1) = result_0;
2718 const auto helper_0 = 8 *
z;
2719 result_0 = -32 *
y * (helper_0 *
x + helper_0 *
y -
x -
y + 12 * pow(
z, 2) - 10 *
z + 1);
2720 val.col(2) = result_0;
2727 result_0 = 32 *
y *
z * (8 *
x + 8 *
y + 8 *
z - 7);
2728 val.col(0) = result_0;
2731 const auto helper_0 = 16 *
y;
2732 result_0 = 32 *
z * (helper_0 *
x + helper_0 *
z + 4 * pow(
x, 2) + 8 *
x *
z - 7 *
x + 12 * pow(
y, 2) - 14 *
y + 4 * pow(
z, 2) - 7 *
z + 3);
2733 val.col(1) = result_0;
2736 const auto helper_0 = 16 *
z;
2737 result_0 = 32 *
y * (helper_0 *
x + helper_0 *
y + 4 * pow(
x, 2) + 8 *
x *
y - 7 *
x + 4 * pow(
y, 2) - 7 *
y + 12 * pow(
z, 2) - 14 *
z + 3);
2738 val.col(2) = result_0;
2745 result_0 = -256 *
y *
z * (2 *
x +
y +
z - 1);
2746 val.col(0) = result_0;
2749 result_0 = -256 *
x *
z * (
x + 2 *
y +
z - 1);
2750 val.col(1) = result_0;
2753 result_0 = -256 *
x *
y * (
x +
y + 2 *
z - 1);
2754 val.col(2) = result_0;
2763 void p_4_nodes_3d(Eigen::MatrixXd &res)
2773 3.0 / 4.0, 1.0 / 4.0, 0,
2774 1.0 / 2.0, 1.0 / 2.0, 0,
2775 1.0 / 4.0, 3.0 / 4.0, 0,
2782 3.0 / 4.0, 0, 1.0 / 4.0,
2783 1.0 / 2.0, 0, 1.0 / 2.0,
2784 1.0 / 4.0, 0, 3.0 / 4.0,
2785 0, 3.0 / 4.0, 1.0 / 4.0,
2786 0, 1.0 / 2.0, 1.0 / 2.0,
2787 0, 1.0 / 4.0, 3.0 / 4.0,
2788 1.0 / 4.0, 1.0 / 4.0, 0,
2789 1.0 / 4.0, 1.0 / 2.0, 0,
2790 1.0 / 2.0, 1.0 / 4.0, 0,
2791 1.0 / 4.0, 0, 1.0 / 4.0,
2792 1.0 / 4.0, 0, 1.0 / 2.0,
2793 1.0 / 2.0, 0, 1.0 / 4.0,
2794 1.0 / 2.0, 1.0 / 4.0, 1.0 / 4.0,
2795 1.0 / 4.0, 1.0 / 4.0, 1.0 / 2.0,
2796 1.0 / 4.0, 1.0 / 2.0, 1.0 / 4.0,
2797 0, 1.0 / 2.0, 1.0 / 4.0,
2798 0, 1.0 / 4.0, 1.0 / 2.0,
2799 0, 1.0 / 4.0, 1.0 / 4.0,
2800 1.0 / 4.0, 1.0 / 4.0, 1.0 / 4.0;
2833 p_0_basis_value_3d(local_index, uv,
val);
2836 p_1_basis_value_3d(local_index, uv,
val);
2839 p_2_basis_value_3d(local_index, uv,
val);
2842 p_3_basis_value_3d(local_index, uv,
val);
2845 p_4_basis_value_3d(local_index, uv,
val);
2857 p_0_basis_grad_value_3d(local_index, uv,
val);
2860 p_1_basis_grad_value_3d(local_index, uv,
val);
2863 p_2_basis_grad_value_3d(local_index, uv,
val);
2866 p_3_basis_grad_value_3d(local_index, uv,
val);
2869 p_4_basis_grad_value_3d(local_index, uv,
val);
void p_n_nodes_3d(const int p, Eigen::MatrixXd &val)
void p_grad_basis_value_2d(const int p, const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &val)
void p_n_basis_grad_value_2d(const int p, const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &val)
void p_n_basis_grad_value_3d(const int p, const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &val)
void p_nodes_2d(const int p, Eigen::MatrixXd &val)
void p_nodes_3d(const int p, Eigen::MatrixXd &val)
void p_n_basis_value_3d(const int p, const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &val)
void p_grad_basis_value_3d(const int p, const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &val)
void p_n_basis_value_2d(const int p, const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &val)
void p_basis_value_3d(const int p, const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &val)
void p_basis_value_2d(const int p, const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &val)
void p_n_nodes_2d(const int p, Eigen::MatrixXd &val)