9double p_0_basis_value_2d_single_0(
double x,
double y) {
17void p_0_basis_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
18result_0.resize(uv.rows(), 1);
21 for (Eigen::Index i = 0; i < uv.rows(); ++i)
22 result_0(i, 0) = p_0_basis_value_2d_single_0(uv(i, 0), uv(i, 1));
24 default: assert(
false);
27void p_0_basis_grad_value_2d_single_0(
double x,
double y,
double *
val) {
34void p_0_basis_grad_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
35val.resize(uv.rows(), 2);
39 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
40 p_0_basis_grad_value_2d_single_0(uv(i, 0), uv(i, 1), gradient);
41 val(i, 0) = gradient[0];
42 val(i, 1) = gradient[1];
45 default: assert(
false);
50void p_0_nodes_2d(Eigen::MatrixXd &res) {
51 res.resize(1, 2); res <<
520.33333333333333331, 0.33333333333333331;
56double p_1_basis_value_2d_single_0(
double x,
double y) {
62double p_1_basis_value_2d_single_1(
double x,
double y) {
68double p_1_basis_value_2d_single_2(
double x,
double y) {
76void p_1_basis_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
77result_0.resize(uv.rows(), 1);
80 for (Eigen::Index i = 0; i < uv.rows(); ++i)
81 result_0(i, 0) = p_1_basis_value_2d_single_0(uv(i, 0), uv(i, 1));
84 for (Eigen::Index i = 0; i < uv.rows(); ++i)
85 result_0(i, 0) = p_1_basis_value_2d_single_1(uv(i, 0), uv(i, 1));
88 for (Eigen::Index i = 0; i < uv.rows(); ++i)
89 result_0(i, 0) = p_1_basis_value_2d_single_2(uv(i, 0), uv(i, 1));
91 default: assert(
false);
94void p_1_basis_grad_value_2d_single_0(
double x,
double y,
double *
val) {
99void p_1_basis_grad_value_2d_single_1(
double x,
double y,
double *
val) {
104void p_1_basis_grad_value_2d_single_2(
double x,
double y,
double *
val) {
111void p_1_basis_grad_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
112val.resize(uv.rows(), 2);
116 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
117 p_1_basis_grad_value_2d_single_0(uv(i, 0), uv(i, 1), gradient);
118 val(i, 0) = gradient[0];
119 val(i, 1) = gradient[1];
123 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
124 p_1_basis_grad_value_2d_single_1(uv(i, 0), uv(i, 1), gradient);
125 val(i, 0) = gradient[0];
126 val(i, 1) = gradient[1];
130 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
131 p_1_basis_grad_value_2d_single_2(uv(i, 0), uv(i, 1), gradient);
132 val(i, 0) = gradient[0];
133 val(i, 1) = gradient[1];
136 default: assert(
false);
141void p_1_nodes_2d(Eigen::MatrixXd &res) {
142 res.resize(3, 2); res <<
149double p_2_basis_value_2d_single_0(
double x,
double y) {
151result = (
x +
y - 1)*(2*
x + 2*
y - 1);
155double p_2_basis_value_2d_single_1(
double x,
double y) {
161double p_2_basis_value_2d_single_2(
double x,
double y) {
167double p_2_basis_value_2d_single_3(
double x,
double y) {
169result = -4*
x*(
x +
y - 1);
173double p_2_basis_value_2d_single_4(
double x,
double y) {
179double p_2_basis_value_2d_single_5(
double x,
double y) {
181result = -4*
y*(
x +
y - 1);
187void p_2_basis_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
188result_0.resize(uv.rows(), 1);
191 for (Eigen::Index i = 0; i < uv.rows(); ++i)
192 result_0(i, 0) = p_2_basis_value_2d_single_0(uv(i, 0), uv(i, 1));
195 for (Eigen::Index i = 0; i < uv.rows(); ++i)
196 result_0(i, 0) = p_2_basis_value_2d_single_1(uv(i, 0), uv(i, 1));
199 for (Eigen::Index i = 0; i < uv.rows(); ++i)
200 result_0(i, 0) = p_2_basis_value_2d_single_2(uv(i, 0), uv(i, 1));
203 for (Eigen::Index i = 0; i < uv.rows(); ++i)
204 result_0(i, 0) = p_2_basis_value_2d_single_3(uv(i, 0), uv(i, 1));
207 for (Eigen::Index i = 0; i < uv.rows(); ++i)
208 result_0(i, 0) = p_2_basis_value_2d_single_4(uv(i, 0), uv(i, 1));
211 for (Eigen::Index i = 0; i < uv.rows(); ++i)
212 result_0(i, 0) = p_2_basis_value_2d_single_5(uv(i, 0), uv(i, 1));
214 default: assert(
false);
217void p_2_basis_grad_value_2d_single_0(
double x,
double y,
double *
val) {
218{
val[0] = 4*
x + 4*
y - 3;}
219{
val[1] = 4*
x + 4*
y - 3;}
222void p_2_basis_grad_value_2d_single_1(
double x,
double y,
double *
val) {
227void p_2_basis_grad_value_2d_single_2(
double x,
double y,
double *
val) {
232void p_2_basis_grad_value_2d_single_3(
double x,
double y,
double *
val) {
233{
val[0] = 4*(-2*
x -
y + 1);}
237void p_2_basis_grad_value_2d_single_4(
double x,
double y,
double *
val) {
242void p_2_basis_grad_value_2d_single_5(
double x,
double y,
double *
val) {
244{
val[1] = 4*(-
x - 2*
y + 1);}
249void p_2_basis_grad_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
250val.resize(uv.rows(), 2);
254 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
255 p_2_basis_grad_value_2d_single_0(uv(i, 0), uv(i, 1), gradient);
256 val(i, 0) = gradient[0];
257 val(i, 1) = gradient[1];
261 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
262 p_2_basis_grad_value_2d_single_1(uv(i, 0), uv(i, 1), gradient);
263 val(i, 0) = gradient[0];
264 val(i, 1) = gradient[1];
268 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
269 p_2_basis_grad_value_2d_single_2(uv(i, 0), uv(i, 1), gradient);
270 val(i, 0) = gradient[0];
271 val(i, 1) = gradient[1];
275 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
276 p_2_basis_grad_value_2d_single_3(uv(i, 0), uv(i, 1), gradient);
277 val(i, 0) = gradient[0];
278 val(i, 1) = gradient[1];
282 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
283 p_2_basis_grad_value_2d_single_4(uv(i, 0), uv(i, 1), gradient);
284 val(i, 0) = gradient[0];
285 val(i, 1) = gradient[1];
289 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
290 p_2_basis_grad_value_2d_single_5(uv(i, 0), uv(i, 1), gradient);
291 val(i, 0) = gradient[0];
292 val(i, 1) = gradient[1];
295 default: assert(
false);
300void p_2_nodes_2d(Eigen::MatrixXd &res) {
301 res.resize(6, 2); res <<
311double p_3_basis_value_2d_single_0(
double x,
double y) {
313double helper_0 = pow(
x, 2);
314double helper_1 = pow(
y, 2);
315result = -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;
319double p_3_basis_value_2d_single_1(
double x,
double y) {
321result = (1.0/2.0)*
x*(9*pow(
x, 2) - 9*
x + 2);
325double p_3_basis_value_2d_single_2(
double x,
double y) {
327result = (1.0/2.0)*
y*(9*pow(
y, 2) - 9*
y + 2);
331double p_3_basis_value_2d_single_3(
double x,
double y) {
333result = (9.0/2.0)*
x*(
x +
y - 1)*(3*
x + 3*
y - 2);
337double p_3_basis_value_2d_single_4(
double x,
double y) {
339result = -9.0/2.0*
x*(3*pow(
x, 2) + 3*
x*
y - 4*
x -
y + 1);
343double p_3_basis_value_2d_single_5(
double x,
double y) {
345result = (9.0/2.0)*
x*
y*(3*
x - 1);
349double p_3_basis_value_2d_single_6(
double x,
double y) {
351result = (9.0/2.0)*
x*
y*(3*
y - 1);
355double p_3_basis_value_2d_single_7(
double x,
double y) {
357result = -9.0/2.0*
y*(3*
x*
y -
x + 3*pow(
y, 2) - 4*
y + 1);
361double p_3_basis_value_2d_single_8(
double x,
double y) {
363result = (9.0/2.0)*
y*(
x +
y - 1)*(3*
x + 3*
y - 2);
367double p_3_basis_value_2d_single_9(
double x,
double y) {
369result = -27*
x*
y*(
x +
y - 1);
375void p_3_basis_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
376result_0.resize(uv.rows(), 1);
379 for (Eigen::Index i = 0; i < uv.rows(); ++i)
380 result_0(i, 0) = p_3_basis_value_2d_single_0(uv(i, 0), uv(i, 1));
383 for (Eigen::Index i = 0; i < uv.rows(); ++i)
384 result_0(i, 0) = p_3_basis_value_2d_single_1(uv(i, 0), uv(i, 1));
387 for (Eigen::Index i = 0; i < uv.rows(); ++i)
388 result_0(i, 0) = p_3_basis_value_2d_single_2(uv(i, 0), uv(i, 1));
391 for (Eigen::Index i = 0; i < uv.rows(); ++i)
392 result_0(i, 0) = p_3_basis_value_2d_single_3(uv(i, 0), uv(i, 1));
395 for (Eigen::Index i = 0; i < uv.rows(); ++i)
396 result_0(i, 0) = p_3_basis_value_2d_single_4(uv(i, 0), uv(i, 1));
399 for (Eigen::Index i = 0; i < uv.rows(); ++i)
400 result_0(i, 0) = p_3_basis_value_2d_single_5(uv(i, 0), uv(i, 1));
403 for (Eigen::Index i = 0; i < uv.rows(); ++i)
404 result_0(i, 0) = p_3_basis_value_2d_single_6(uv(i, 0), uv(i, 1));
407 for (Eigen::Index i = 0; i < uv.rows(); ++i)
408 result_0(i, 0) = p_3_basis_value_2d_single_7(uv(i, 0), uv(i, 1));
411 for (Eigen::Index i = 0; i < uv.rows(); ++i)
412 result_0(i, 0) = p_3_basis_value_2d_single_8(uv(i, 0), uv(i, 1));
415 for (Eigen::Index i = 0; i < uv.rows(); ++i)
416 result_0(i, 0) = p_3_basis_value_2d_single_9(uv(i, 0), uv(i, 1));
418 default: assert(
false);
421void p_3_basis_grad_value_2d_single_0(
double x,
double y,
double *
val) {
422{
val[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;}
423{
val[1] = -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;}
426void p_3_basis_grad_value_2d_single_1(
double x,
double y,
double *
val) {
427{
val[0] = (27.0/2.0)*pow(
x, 2) - 9*
x + 1;}
431void p_3_basis_grad_value_2d_single_2(
double x,
double y,
double *
val) {
433{
val[1] = (27.0/2.0)*pow(
y, 2) - 9*
y + 1;}
436void p_3_basis_grad_value_2d_single_3(
double x,
double y,
double *
val) {
437{
val[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);}
438{
val[1] = (9.0/2.0)*
x*(6*
x + 6*
y - 5);}
441void p_3_basis_grad_value_2d_single_4(
double x,
double y,
double *
val) {
442{
val[0] = 9*(-9.0/2.0*pow(
x, 2) - 3*
x*
y + 4*
x + (1.0/2.0)*
y - 1.0/2.0);}
443{
val[1] = -9.0/2.0*
x*(3*
x - 1);}
446void p_3_basis_grad_value_2d_single_5(
double x,
double y,
double *
val) {
447{
val[0] = (9.0/2.0)*
y*(6*
x - 1);}
448{
val[1] = (9.0/2.0)*
x*(3*
x - 1);}
451void p_3_basis_grad_value_2d_single_6(
double x,
double y,
double *
val) {
452{
val[0] = (9.0/2.0)*
y*(3*
y - 1);}
453{
val[1] = (9.0/2.0)*
x*(6*
y - 1);}
456void p_3_basis_grad_value_2d_single_7(
double x,
double y,
double *
val) {
457{
val[0] = -9.0/2.0*
y*(3*
y - 1);}
458{
val[1] = 9*(-3*
x*
y + (1.0/2.0)*
x - 9.0/2.0*pow(
y, 2) + 4*
y - 1.0/2.0);}
461void p_3_basis_grad_value_2d_single_8(
double x,
double y,
double *
val) {
462{
val[0] = (9.0/2.0)*
y*(6*
x + 6*
y - 5);}
463{
val[1] = 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);}
466void p_3_basis_grad_value_2d_single_9(
double x,
double y,
double *
val) {
467{
val[0] = -27*
y*(2*
x +
y - 1);}
468{
val[1] = -27*
x*(
x + 2*
y - 1);}
473void p_3_basis_grad_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
474val.resize(uv.rows(), 2);
478 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
479 p_3_basis_grad_value_2d_single_0(uv(i, 0), uv(i, 1), gradient);
480 val(i, 0) = gradient[0];
481 val(i, 1) = gradient[1];
485 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
486 p_3_basis_grad_value_2d_single_1(uv(i, 0), uv(i, 1), gradient);
487 val(i, 0) = gradient[0];
488 val(i, 1) = gradient[1];
492 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
493 p_3_basis_grad_value_2d_single_2(uv(i, 0), uv(i, 1), gradient);
494 val(i, 0) = gradient[0];
495 val(i, 1) = gradient[1];
499 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
500 p_3_basis_grad_value_2d_single_3(uv(i, 0), uv(i, 1), gradient);
501 val(i, 0) = gradient[0];
502 val(i, 1) = gradient[1];
506 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
507 p_3_basis_grad_value_2d_single_4(uv(i, 0), uv(i, 1), gradient);
508 val(i, 0) = gradient[0];
509 val(i, 1) = gradient[1];
513 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
514 p_3_basis_grad_value_2d_single_5(uv(i, 0), uv(i, 1), gradient);
515 val(i, 0) = gradient[0];
516 val(i, 1) = gradient[1];
520 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
521 p_3_basis_grad_value_2d_single_6(uv(i, 0), uv(i, 1), gradient);
522 val(i, 0) = gradient[0];
523 val(i, 1) = gradient[1];
527 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
528 p_3_basis_grad_value_2d_single_7(uv(i, 0), uv(i, 1), gradient);
529 val(i, 0) = gradient[0];
530 val(i, 1) = gradient[1];
534 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
535 p_3_basis_grad_value_2d_single_8(uv(i, 0), uv(i, 1), gradient);
536 val(i, 0) = gradient[0];
537 val(i, 1) = gradient[1];
541 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
542 p_3_basis_grad_value_2d_single_9(uv(i, 0), uv(i, 1), gradient);
543 val(i, 0) = gradient[0];
544 val(i, 1) = gradient[1];
547 default: assert(
false);
552void p_3_nodes_2d(Eigen::MatrixXd &res) {
553 res.resize(10, 2); res <<
567double p_4_basis_value_2d_single_0(
double x,
double y) {
569double helper_0 = pow(
x, 2);
570double helper_1 = pow(
x, 3);
571double helper_2 = pow(
y, 2);
572double helper_3 = pow(
y, 3);
573result = 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;
577double p_4_basis_value_2d_single_1(
double x,
double y) {
579result = (1.0/3.0)*
x*(32*pow(
x, 3) - 48*pow(
x, 2) + 22*
x - 3);
583double p_4_basis_value_2d_single_2(
double x,
double y) {
585result = (1.0/3.0)*
y*(32*pow(
y, 3) - 48*pow(
y, 2) + 22*
y - 3);
589double p_4_basis_value_2d_single_3(
double x,
double y) {
591double helper_0 = pow(
x, 2);
592double helper_1 = pow(
y, 2);
593result = -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);
597double p_4_basis_value_2d_single_4(
double x,
double y) {
599double helper_0 = 32*pow(
x, 2);
600double helper_1 = pow(
y, 2);
601result = 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);
605double p_4_basis_value_2d_single_5(
double x,
double y) {
607double helper_0 = pow(
x, 2);
608result = -16.0/3.0*
x*(8*helper_0*
y - 14*helper_0 + 8*pow(
x, 3) - 6*
x*
y + 7*
x +
y - 1);
612double p_4_basis_value_2d_single_6(
double x,
double y) {
614result = (16.0/3.0)*
x*
y*(8*pow(
x, 2) - 6*
x + 1);
618double p_4_basis_value_2d_single_7(
double x,
double y) {
620double helper_0 = 4*
x;
621result = helper_0*
y*(-helper_0 + 16*
x*
y - 4*
y + 1);
625double p_4_basis_value_2d_single_8(
double x,
double y) {
627result = (16.0/3.0)*
x*
y*(8*pow(
y, 2) - 6*
y + 1);
631double p_4_basis_value_2d_single_9(
double x,
double y) {
633double helper_0 = pow(
y, 2);
634result = -16.0/3.0*
y*(8*helper_0*
x - 14*helper_0 - 6*
x*
y +
x + 8*pow(
y, 3) + 7*
y - 1);
638double p_4_basis_value_2d_single_10(
double x,
double y) {
640double helper_0 = pow(
x, 2);
641double helper_1 = 32*pow(
y, 2);
642result = 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);
646double p_4_basis_value_2d_single_11(
double x,
double y) {
648double helper_0 = pow(
x, 2);
649double helper_1 = pow(
y, 2);
650result = -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);
654double p_4_basis_value_2d_single_12(
double x,
double y) {
656result = 32*
x*
y*(
x +
y - 1)*(4*
x + 4*
y - 3);
660double p_4_basis_value_2d_single_13(
double x,
double y) {
662result = -32*
x*
y*(4*
y - 1)*(
x +
y - 1);
666double p_4_basis_value_2d_single_14(
double x,
double y) {
668result = -32*
x*
y*(4*
x - 1)*(
x +
y - 1);
674void p_4_basis_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
675result_0.resize(uv.rows(), 1);
678 for (Eigen::Index i = 0; i < uv.rows(); ++i)
679 result_0(i, 0) = p_4_basis_value_2d_single_0(uv(i, 0), uv(i, 1));
682 for (Eigen::Index i = 0; i < uv.rows(); ++i)
683 result_0(i, 0) = p_4_basis_value_2d_single_1(uv(i, 0), uv(i, 1));
686 for (Eigen::Index i = 0; i < uv.rows(); ++i)
687 result_0(i, 0) = p_4_basis_value_2d_single_2(uv(i, 0), uv(i, 1));
690 for (Eigen::Index i = 0; i < uv.rows(); ++i)
691 result_0(i, 0) = p_4_basis_value_2d_single_3(uv(i, 0), uv(i, 1));
694 for (Eigen::Index i = 0; i < uv.rows(); ++i)
695 result_0(i, 0) = p_4_basis_value_2d_single_4(uv(i, 0), uv(i, 1));
698 for (Eigen::Index i = 0; i < uv.rows(); ++i)
699 result_0(i, 0) = p_4_basis_value_2d_single_5(uv(i, 0), uv(i, 1));
702 for (Eigen::Index i = 0; i < uv.rows(); ++i)
703 result_0(i, 0) = p_4_basis_value_2d_single_6(uv(i, 0), uv(i, 1));
706 for (Eigen::Index i = 0; i < uv.rows(); ++i)
707 result_0(i, 0) = p_4_basis_value_2d_single_7(uv(i, 0), uv(i, 1));
710 for (Eigen::Index i = 0; i < uv.rows(); ++i)
711 result_0(i, 0) = p_4_basis_value_2d_single_8(uv(i, 0), uv(i, 1));
714 for (Eigen::Index i = 0; i < uv.rows(); ++i)
715 result_0(i, 0) = p_4_basis_value_2d_single_9(uv(i, 0), uv(i, 1));
718 for (Eigen::Index i = 0; i < uv.rows(); ++i)
719 result_0(i, 0) = p_4_basis_value_2d_single_10(uv(i, 0), uv(i, 1));
722 for (Eigen::Index i = 0; i < uv.rows(); ++i)
723 result_0(i, 0) = p_4_basis_value_2d_single_11(uv(i, 0), uv(i, 1));
726 for (Eigen::Index i = 0; i < uv.rows(); ++i)
727 result_0(i, 0) = p_4_basis_value_2d_single_12(uv(i, 0), uv(i, 1));
730 for (Eigen::Index i = 0; i < uv.rows(); ++i)
731 result_0(i, 0) = p_4_basis_value_2d_single_13(uv(i, 0), uv(i, 1));
734 for (Eigen::Index i = 0; i < uv.rows(); ++i)
735 result_0(i, 0) = p_4_basis_value_2d_single_14(uv(i, 0), uv(i, 1));
737 default: assert(
false);
740void p_4_basis_grad_value_2d_single_0(
double x,
double y,
double *
val) {
741{
double helper_0 = pow(
x, 2);
742double helper_1 = pow(
y, 2);
743val[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;}
744{
double helper_0 = pow(
x, 2);
745double helper_1 = pow(
y, 2);
746val[1] = 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;}
749void p_4_basis_grad_value_2d_single_1(
double x,
double y,
double *
val) {
750{
val[0] = (128.0/3.0)*pow(
x, 3) - 48*pow(
x, 2) + (44.0/3.0)*
x - 1;}
754void p_4_basis_grad_value_2d_single_2(
double x,
double y,
double *
val) {
756{
val[1] = (128.0/3.0)*pow(
y, 3) - 48*pow(
y, 2) + (44.0/3.0)*
y - 1;}
759void p_4_basis_grad_value_2d_single_3(
double x,
double y,
double *
val) {
760{
double helper_0 = pow(
x, 2);
761double helper_1 = pow(
y, 2);
762val[0] = -384*helper_0*
y + 288*helper_0 - 256*helper_1*
x + 96*helper_1 - 512.0/3.0*pow(
x, 3) + 384*
x*
y - 416.0/3.0*
x - 128.0/3.0*pow(
y, 3) - 208.0/3.0*
y + 16;}
763{
val[1] = -16.0/3.0*
x*(24*pow(
x, 2) + 48*
x*
y - 36*
x + 24*pow(
y, 2) - 36*
y + 13);}
766void p_4_basis_grad_value_2d_single_4(
double x,
double y,
double *
val) {
767{
double helper_0 = 96*pow(
x, 2);
768double helper_1 = pow(
y, 2);
769val[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;}
770{
val[1] = 4*
x*(32*pow(
x, 2) + 32*
x*
y - 36*
x - 8*
y + 7);}
773void p_4_basis_grad_value_2d_single_5(
double x,
double y,
double *
val) {
774{
double helper_0 = pow(
x, 2);
775val[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;}
776{
val[1] = -16.0/3.0*
x*(8*pow(
x, 2) - 6*
x + 1);}
779void p_4_basis_grad_value_2d_single_6(
double x,
double y,
double *
val) {
780{
val[0] = (16.0/3.0)*
y*(24*pow(
x, 2) - 12*
x + 1);}
781{
val[1] = (16.0/3.0)*
x*(8*pow(
x, 2) - 6*
x + 1);}
784void p_4_basis_grad_value_2d_single_7(
double x,
double y,
double *
val) {
785{
double helper_0 = 4*
y;
786val[0] = helper_0*(-helper_0 + 32*
x*
y - 8*
x + 1);}
787{
double helper_0 = 4*
x;
788val[1] = helper_0*(-helper_0 + 32*
x*
y - 8*
y + 1);}
791void p_4_basis_grad_value_2d_single_8(
double x,
double y,
double *
val) {
792{
val[0] = (16.0/3.0)*
y*(8*pow(
y, 2) - 6*
y + 1);}
793{
val[1] = (16.0/3.0)*
x*(24*pow(
y, 2) - 12*
y + 1);}
796void p_4_basis_grad_value_2d_single_9(
double x,
double y,
double *
val) {
797{
val[0] = -16.0/3.0*
y*(8*pow(
y, 2) - 6*
y + 1);}
798{
double helper_0 = pow(
y, 2);
799val[1] = -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;}
802void p_4_basis_grad_value_2d_single_10(
double x,
double y,
double *
val) {
803{
val[0] = 4*
y*(32*
x*
y - 8*
x + 32*pow(
y, 2) - 36*
y + 7);}
804{
double helper_0 = pow(
x, 2);
805double helper_1 = 96*pow(
y, 2);
806val[1] = 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;}
809void p_4_basis_grad_value_2d_single_11(
double x,
double y,
double *
val) {
810{
val[0] = -16.0/3.0*
y*(24*pow(
x, 2) + 48*
x*
y - 36*
x + 24*pow(
y, 2) - 36*
y + 13);}
811{
double helper_0 = pow(
x, 2);
812double helper_1 = pow(
y, 2);
813val[1] = -256*helper_0*
y + 96*helper_0 - 384*helper_1*
x + 288*helper_1 - 128.0/3.0*pow(
x, 3) + 384*
x*
y - 208.0/3.0*
x - 512.0/3.0*pow(
y, 3) - 416.0/3.0*
y + 16;}
816void p_4_basis_grad_value_2d_single_12(
double x,
double y,
double *
val) {
817{
val[0] = 32*
y*(12*pow(
x, 2) + 16*
x*
y - 14*
x + 4*pow(
y, 2) - 7*
y + 3);}
818{
val[1] = 32*
x*(4*pow(
x, 2) + 16*
x*
y - 7*
x + 12*pow(
y, 2) - 14*
y + 3);}
821void p_4_basis_grad_value_2d_single_13(
double x,
double y,
double *
val) {
822{
val[0] = -32*
y*(4*
y - 1)*(2*
x +
y - 1);}
823{
val[1] = -32*
x*(8*
x*
y -
x + 12*pow(
y, 2) - 10*
y + 1);}
826void p_4_basis_grad_value_2d_single_14(
double x,
double y,
double *
val) {
827{
val[0] = -32*
y*(12*pow(
x, 2) + 8*
x*
y - 10*
x -
y + 1);}
828{
val[1] = -32*
x*(4*
x - 1)*(
x + 2*
y - 1);}
833void p_4_basis_grad_value_2d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
834val.resize(uv.rows(), 2);
838 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
839 p_4_basis_grad_value_2d_single_0(uv(i, 0), uv(i, 1), gradient);
840 val(i, 0) = gradient[0];
841 val(i, 1) = gradient[1];
845 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
846 p_4_basis_grad_value_2d_single_1(uv(i, 0), uv(i, 1), gradient);
847 val(i, 0) = gradient[0];
848 val(i, 1) = gradient[1];
852 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
853 p_4_basis_grad_value_2d_single_2(uv(i, 0), uv(i, 1), gradient);
854 val(i, 0) = gradient[0];
855 val(i, 1) = gradient[1];
859 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
860 p_4_basis_grad_value_2d_single_3(uv(i, 0), uv(i, 1), gradient);
861 val(i, 0) = gradient[0];
862 val(i, 1) = gradient[1];
866 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
867 p_4_basis_grad_value_2d_single_4(uv(i, 0), uv(i, 1), gradient);
868 val(i, 0) = gradient[0];
869 val(i, 1) = gradient[1];
873 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
874 p_4_basis_grad_value_2d_single_5(uv(i, 0), uv(i, 1), gradient);
875 val(i, 0) = gradient[0];
876 val(i, 1) = gradient[1];
880 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
881 p_4_basis_grad_value_2d_single_6(uv(i, 0), uv(i, 1), gradient);
882 val(i, 0) = gradient[0];
883 val(i, 1) = gradient[1];
887 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
888 p_4_basis_grad_value_2d_single_7(uv(i, 0), uv(i, 1), gradient);
889 val(i, 0) = gradient[0];
890 val(i, 1) = gradient[1];
894 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
895 p_4_basis_grad_value_2d_single_8(uv(i, 0), uv(i, 1), gradient);
896 val(i, 0) = gradient[0];
897 val(i, 1) = gradient[1];
901 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
902 p_4_basis_grad_value_2d_single_9(uv(i, 0), uv(i, 1), gradient);
903 val(i, 0) = gradient[0];
904 val(i, 1) = gradient[1];
908 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
909 p_4_basis_grad_value_2d_single_10(uv(i, 0), uv(i, 1), gradient);
910 val(i, 0) = gradient[0];
911 val(i, 1) = gradient[1];
915 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
916 p_4_basis_grad_value_2d_single_11(uv(i, 0), uv(i, 1), gradient);
917 val(i, 0) = gradient[0];
918 val(i, 1) = gradient[1];
922 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
923 p_4_basis_grad_value_2d_single_12(uv(i, 0), uv(i, 1), gradient);
924 val(i, 0) = gradient[0];
925 val(i, 1) = gradient[1];
929 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
930 p_4_basis_grad_value_2d_single_13(uv(i, 0), uv(i, 1), gradient);
931 val(i, 0) = gradient[0];
932 val(i, 1) = gradient[1];
936 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
937 p_4_basis_grad_value_2d_single_14(uv(i, 0), uv(i, 1), gradient);
938 val(i, 0) = gradient[0];
939 val(i, 1) = gradient[1];
942 default: assert(
false);
947void p_4_nodes_2d(Eigen::MatrixXd &res) {
948 res.resize(15, 2); res <<
971 case 0: p_0_nodes_2d(
val);
break;
972 case 1: p_1_nodes_2d(
val);
break;
973 case 2: p_2_nodes_2d(
val);
break;
974 case 3: p_3_nodes_2d(
val);
break;
975 case 4: p_4_nodes_2d(
val);
break;
978void p_basis_value_2d(
const bool bernstein,
const int p,
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
983 case 0: p_0_basis_value_2d(local_index, uv,
val);
break;
984 case 1: p_1_basis_value_2d(local_index, uv,
val);
break;
985 case 2: p_2_basis_value_2d(local_index, uv,
val);
break;
986 case 3: p_3_basis_value_2d(local_index, uv,
val);
break;
987 case 4: p_4_basis_value_2d(local_index, uv,
val);
break;
991void p_grad_basis_value_2d(
const bool bernstein,
const int p,
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
996 case 0: p_0_basis_grad_value_2d(local_index, uv,
val);
break;
997 case 1: p_1_basis_grad_value_2d(local_index, uv,
val);
break;
998 case 2: p_2_basis_grad_value_2d(local_index, uv,
val);
break;
999 case 3: p_3_basis_grad_value_2d(local_index, uv,
val);
break;
1000 case 4: p_4_basis_grad_value_2d(local_index, uv,
val);
break;
1005double p_0_basis_value_3d_single_0(
double x,
double y,
double z) {
1013void p_0_basis_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
1014result_0.resize(uv.rows(), 1);
1017 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1018 result_0(i, 0) = p_0_basis_value_3d_single_0(uv(i, 0), uv(i, 1), uv(i, 2));
1020 default: assert(
false);
1023void p_0_basis_grad_value_3d_single_0(
double x,
double y,
double z,
double *
val) {
1031void p_0_basis_grad_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
1032val.resize(uv.rows(), 3);
1036 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1037 p_0_basis_grad_value_3d_single_0(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1038 val(i, 0) = gradient[0];
1039 val(i, 1) = gradient[1];
1040 val(i, 2) = gradient[2];
1043 default: assert(
false);
1048void p_0_nodes_3d(Eigen::MatrixXd &res) {
1049 res.resize(1, 3); res <<
10500.33333333333333331, 0.33333333333333331, 0.33333333333333331;
1054double p_1_basis_value_3d_single_0(
double x,
double y,
double z) {
1056result = -
x -
y -
z + 1;
1060double p_1_basis_value_3d_single_1(
double x,
double y,
double z) {
1066double p_1_basis_value_3d_single_2(
double x,
double y,
double z) {
1072double p_1_basis_value_3d_single_3(
double x,
double y,
double z) {
1080void p_1_basis_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
1081result_0.resize(uv.rows(), 1);
1084 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1085 result_0(i, 0) = p_1_basis_value_3d_single_0(uv(i, 0), uv(i, 1), uv(i, 2));
1088 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1089 result_0(i, 0) = p_1_basis_value_3d_single_1(uv(i, 0), uv(i, 1), uv(i, 2));
1092 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1093 result_0(i, 0) = p_1_basis_value_3d_single_2(uv(i, 0), uv(i, 1), uv(i, 2));
1096 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1097 result_0(i, 0) = p_1_basis_value_3d_single_3(uv(i, 0), uv(i, 1), uv(i, 2));
1099 default: assert(
false);
1102void p_1_basis_grad_value_3d_single_0(
double x,
double y,
double z,
double *
val) {
1108void p_1_basis_grad_value_3d_single_1(
double x,
double y,
double z,
double *
val) {
1114void p_1_basis_grad_value_3d_single_2(
double x,
double y,
double z,
double *
val) {
1120void p_1_basis_grad_value_3d_single_3(
double x,
double y,
double z,
double *
val) {
1128void p_1_basis_grad_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
1129val.resize(uv.rows(), 3);
1133 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1134 p_1_basis_grad_value_3d_single_0(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1135 val(i, 0) = gradient[0];
1136 val(i, 1) = gradient[1];
1137 val(i, 2) = gradient[2];
1141 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1142 p_1_basis_grad_value_3d_single_1(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1143 val(i, 0) = gradient[0];
1144 val(i, 1) = gradient[1];
1145 val(i, 2) = gradient[2];
1149 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1150 p_1_basis_grad_value_3d_single_2(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1151 val(i, 0) = gradient[0];
1152 val(i, 1) = gradient[1];
1153 val(i, 2) = gradient[2];
1157 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1158 p_1_basis_grad_value_3d_single_3(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1159 val(i, 0) = gradient[0];
1160 val(i, 1) = gradient[1];
1161 val(i, 2) = gradient[2];
1164 default: assert(
false);
1169void p_1_nodes_3d(Eigen::MatrixXd &res) {
1170 res.resize(4, 3); res <<
1178double p_2_basis_value_3d_single_0(
double x,
double y,
double z) {
1180result = (
x +
y +
z - 1)*(2*
x + 2*
y + 2*
z - 1);
1184double p_2_basis_value_3d_single_1(
double x,
double y,
double z) {
1186result =
x*(2*
x - 1);
1190double p_2_basis_value_3d_single_2(
double x,
double y,
double z) {
1192result =
y*(2*
y - 1);
1196double p_2_basis_value_3d_single_3(
double x,
double y,
double z) {
1198result =
z*(2*
z - 1);
1202double p_2_basis_value_3d_single_4(
double x,
double y,
double z) {
1204result = -4*
x*(
x +
y +
z - 1);
1208double p_2_basis_value_3d_single_5(
double x,
double y,
double z) {
1214double p_2_basis_value_3d_single_6(
double x,
double y,
double z) {
1216result = -4*
y*(
x +
y +
z - 1);
1220double p_2_basis_value_3d_single_7(
double x,
double y,
double z) {
1222result = -4*
z*(
x +
y +
z - 1);
1226double p_2_basis_value_3d_single_8(
double x,
double y,
double z) {
1232double p_2_basis_value_3d_single_9(
double x,
double y,
double z) {
1240void p_2_basis_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
1241result_0.resize(uv.rows(), 1);
1244 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1245 result_0(i, 0) = p_2_basis_value_3d_single_0(uv(i, 0), uv(i, 1), uv(i, 2));
1248 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1249 result_0(i, 0) = p_2_basis_value_3d_single_1(uv(i, 0), uv(i, 1), uv(i, 2));
1252 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1253 result_0(i, 0) = p_2_basis_value_3d_single_2(uv(i, 0), uv(i, 1), uv(i, 2));
1256 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1257 result_0(i, 0) = p_2_basis_value_3d_single_3(uv(i, 0), uv(i, 1), uv(i, 2));
1260 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1261 result_0(i, 0) = p_2_basis_value_3d_single_4(uv(i, 0), uv(i, 1), uv(i, 2));
1264 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1265 result_0(i, 0) = p_2_basis_value_3d_single_5(uv(i, 0), uv(i, 1), uv(i, 2));
1268 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1269 result_0(i, 0) = p_2_basis_value_3d_single_6(uv(i, 0), uv(i, 1), uv(i, 2));
1272 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1273 result_0(i, 0) = p_2_basis_value_3d_single_7(uv(i, 0), uv(i, 1), uv(i, 2));
1276 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1277 result_0(i, 0) = p_2_basis_value_3d_single_8(uv(i, 0), uv(i, 1), uv(i, 2));
1280 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1281 result_0(i, 0) = p_2_basis_value_3d_single_9(uv(i, 0), uv(i, 1), uv(i, 2));
1283 default: assert(
false);
1286void p_2_basis_grad_value_3d_single_0(
double x,
double y,
double z,
double *
val) {
1287{
val[0] = 4*
x + 4*
y + 4*
z - 3;}
1288{
val[1] = 4*
x + 4*
y + 4*
z - 3;}
1289{
val[2] = 4*
x + 4*
y + 4*
z - 3;}
1292void p_2_basis_grad_value_3d_single_1(
double x,
double y,
double z,
double *
val) {
1298void p_2_basis_grad_value_3d_single_2(
double x,
double y,
double z,
double *
val) {
1304void p_2_basis_grad_value_3d_single_3(
double x,
double y,
double z,
double *
val) {
1310void p_2_basis_grad_value_3d_single_4(
double x,
double y,
double z,
double *
val) {
1311{
val[0] = 4*(-2*
x -
y -
z + 1);}
1316void p_2_basis_grad_value_3d_single_5(
double x,
double y,
double z,
double *
val) {
1322void p_2_basis_grad_value_3d_single_6(
double x,
double y,
double z,
double *
val) {
1324{
val[1] = 4*(-
x - 2*
y -
z + 1);}
1328void p_2_basis_grad_value_3d_single_7(
double x,
double y,
double z,
double *
val) {
1331{
val[2] = 4*(-
x -
y - 2*
z + 1);}
1334void p_2_basis_grad_value_3d_single_8(
double x,
double y,
double z,
double *
val) {
1340void p_2_basis_grad_value_3d_single_9(
double x,
double y,
double z,
double *
val) {
1348void p_2_basis_grad_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
1349val.resize(uv.rows(), 3);
1353 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1354 p_2_basis_grad_value_3d_single_0(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1355 val(i, 0) = gradient[0];
1356 val(i, 1) = gradient[1];
1357 val(i, 2) = gradient[2];
1361 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1362 p_2_basis_grad_value_3d_single_1(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1363 val(i, 0) = gradient[0];
1364 val(i, 1) = gradient[1];
1365 val(i, 2) = gradient[2];
1369 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1370 p_2_basis_grad_value_3d_single_2(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1371 val(i, 0) = gradient[0];
1372 val(i, 1) = gradient[1];
1373 val(i, 2) = gradient[2];
1377 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1378 p_2_basis_grad_value_3d_single_3(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1379 val(i, 0) = gradient[0];
1380 val(i, 1) = gradient[1];
1381 val(i, 2) = gradient[2];
1385 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1386 p_2_basis_grad_value_3d_single_4(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1387 val(i, 0) = gradient[0];
1388 val(i, 1) = gradient[1];
1389 val(i, 2) = gradient[2];
1393 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1394 p_2_basis_grad_value_3d_single_5(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1395 val(i, 0) = gradient[0];
1396 val(i, 1) = gradient[1];
1397 val(i, 2) = gradient[2];
1401 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1402 p_2_basis_grad_value_3d_single_6(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1403 val(i, 0) = gradient[0];
1404 val(i, 1) = gradient[1];
1405 val(i, 2) = gradient[2];
1409 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1410 p_2_basis_grad_value_3d_single_7(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1411 val(i, 0) = gradient[0];
1412 val(i, 1) = gradient[1];
1413 val(i, 2) = gradient[2];
1417 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1418 p_2_basis_grad_value_3d_single_8(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1419 val(i, 0) = gradient[0];
1420 val(i, 1) = gradient[1];
1421 val(i, 2) = gradient[2];
1425 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1426 p_2_basis_grad_value_3d_single_9(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1427 val(i, 0) = gradient[0];
1428 val(i, 1) = gradient[1];
1429 val(i, 2) = gradient[2];
1432 default: assert(
false);
1437void p_2_nodes_3d(Eigen::MatrixXd &res) {
1438 res.resize(10, 3); res <<
1452double p_3_basis_value_3d_single_0(
double x,
double y,
double z) {
1454double helper_0 = pow(
x, 2);
1455double helper_1 = pow(
y, 2);
1456double helper_2 = pow(
z, 2);
1457double helper_3 = (27.0/2.0)*
x;
1458double helper_4 = (27.0/2.0)*
y;
1459double helper_5 = (27.0/2.0)*
z;
1460result = -helper_0*helper_4 - helper_0*helper_5 + 9*helper_0 - helper_1*helper_3 - helper_1*helper_5 + 9*helper_1 - helper_2*helper_3 - helper_2*helper_4 + 9*helper_2 - 9.0/2.0*pow(
x, 3) - 27*
x*
y*
z + 18*
x*
y + 18*
x*
z - 11.0/2.0*
x - 9.0/2.0*pow(
y, 3) + 18*
y*
z - 11.0/2.0*
y - 9.0/2.0*pow(
z, 3) - 11.0/2.0*
z + 1;
1464double p_3_basis_value_3d_single_1(
double x,
double y,
double z) {
1466result = (1.0/2.0)*
x*(9*pow(
x, 2) - 9*
x + 2);
1470double p_3_basis_value_3d_single_2(
double x,
double y,
double z) {
1472result = (1.0/2.0)*
y*(9*pow(
y, 2) - 9*
y + 2);
1476double p_3_basis_value_3d_single_3(
double x,
double y,
double z) {
1478result = (1.0/2.0)*
z*(9*pow(
z, 2) - 9*
z + 2);
1482double p_3_basis_value_3d_single_4(
double x,
double y,
double z) {
1484result = (9.0/2.0)*
x*(
x +
y +
z - 1)*(3*
x + 3*
y + 3*
z - 2);
1488double p_3_basis_value_3d_single_5(
double x,
double y,
double z) {
1490double helper_0 = 3*
x;
1491result = -9.0/2.0*
x*(helper_0*
y + helper_0*
z + 3*pow(
x, 2) - 4*
x -
y -
z + 1);
1495double p_3_basis_value_3d_single_6(
double x,
double y,
double z) {
1497result = (9.0/2.0)*
x*
y*(3*
x - 1);
1501double p_3_basis_value_3d_single_7(
double x,
double y,
double z) {
1503result = (9.0/2.0)*
x*
y*(3*
y - 1);
1507double p_3_basis_value_3d_single_8(
double x,
double y,
double z) {
1509double helper_0 = 3*
y;
1510result = -9.0/2.0*
y*(helper_0*
x + helper_0*
z -
x + 3*pow(
y, 2) - 4*
y -
z + 1);
1514double p_3_basis_value_3d_single_9(
double x,
double y,
double z) {
1516result = (9.0/2.0)*
y*(
x +
y +
z - 1)*(3*
x + 3*
y + 3*
z - 2);
1520double p_3_basis_value_3d_single_10(
double x,
double y,
double z) {
1522result = (9.0/2.0)*
z*(
x +
y +
z - 1)*(3*
x + 3*
y + 3*
z - 2);
1526double p_3_basis_value_3d_single_11(
double x,
double y,
double z) {
1528double helper_0 = 3*
z;
1529result = -9.0/2.0*
z*(helper_0*
x + helper_0*
y -
x -
y + 3*pow(
z, 2) - 4*
z + 1);
1533double p_3_basis_value_3d_single_12(
double x,
double y,
double z) {
1535result = (9.0/2.0)*
x*
z*(3*
x - 1);
1539double p_3_basis_value_3d_single_13(
double x,
double y,
double z) {
1541result = (9.0/2.0)*
x*
z*(3*
z - 1);
1545double p_3_basis_value_3d_single_14(
double x,
double y,
double z) {
1547result = (9.0/2.0)*
y*
z*(3*
y - 1);
1551double p_3_basis_value_3d_single_15(
double x,
double y,
double z) {
1553result = (9.0/2.0)*
y*
z*(3*
z - 1);
1557double p_3_basis_value_3d_single_16(
double x,
double y,
double z) {
1559result = -27*
x*
y*(
x +
y +
z - 1);
1563double p_3_basis_value_3d_single_17(
double x,
double y,
double z) {
1565result = -27*
x*
z*(
x +
y +
z - 1);
1569double p_3_basis_value_3d_single_18(
double x,
double y,
double z) {
1575double p_3_basis_value_3d_single_19(
double x,
double y,
double z) {
1577result = -27*
y*
z*(
x +
y +
z - 1);
1583void p_3_basis_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
1584result_0.resize(uv.rows(), 1);
1587 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1588 result_0(i, 0) = p_3_basis_value_3d_single_0(uv(i, 0), uv(i, 1), uv(i, 2));
1591 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1592 result_0(i, 0) = p_3_basis_value_3d_single_1(uv(i, 0), uv(i, 1), uv(i, 2));
1595 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1596 result_0(i, 0) = p_3_basis_value_3d_single_2(uv(i, 0), uv(i, 1), uv(i, 2));
1599 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1600 result_0(i, 0) = p_3_basis_value_3d_single_3(uv(i, 0), uv(i, 1), uv(i, 2));
1603 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1604 result_0(i, 0) = p_3_basis_value_3d_single_4(uv(i, 0), uv(i, 1), uv(i, 2));
1607 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1608 result_0(i, 0) = p_3_basis_value_3d_single_5(uv(i, 0), uv(i, 1), uv(i, 2));
1611 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1612 result_0(i, 0) = p_3_basis_value_3d_single_6(uv(i, 0), uv(i, 1), uv(i, 2));
1615 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1616 result_0(i, 0) = p_3_basis_value_3d_single_7(uv(i, 0), uv(i, 1), uv(i, 2));
1619 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1620 result_0(i, 0) = p_3_basis_value_3d_single_8(uv(i, 0), uv(i, 1), uv(i, 2));
1623 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1624 result_0(i, 0) = p_3_basis_value_3d_single_9(uv(i, 0), uv(i, 1), uv(i, 2));
1627 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1628 result_0(i, 0) = p_3_basis_value_3d_single_10(uv(i, 0), uv(i, 1), uv(i, 2));
1631 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1632 result_0(i, 0) = p_3_basis_value_3d_single_11(uv(i, 0), uv(i, 1), uv(i, 2));
1635 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1636 result_0(i, 0) = p_3_basis_value_3d_single_12(uv(i, 0), uv(i, 1), uv(i, 2));
1639 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1640 result_0(i, 0) = p_3_basis_value_3d_single_13(uv(i, 0), uv(i, 1), uv(i, 2));
1643 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1644 result_0(i, 0) = p_3_basis_value_3d_single_14(uv(i, 0), uv(i, 1), uv(i, 2));
1647 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1648 result_0(i, 0) = p_3_basis_value_3d_single_15(uv(i, 0), uv(i, 1), uv(i, 2));
1651 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1652 result_0(i, 0) = p_3_basis_value_3d_single_16(uv(i, 0), uv(i, 1), uv(i, 2));
1655 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1656 result_0(i, 0) = p_3_basis_value_3d_single_17(uv(i, 0), uv(i, 1), uv(i, 2));
1659 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1660 result_0(i, 0) = p_3_basis_value_3d_single_18(uv(i, 0), uv(i, 1), uv(i, 2));
1663 for (Eigen::Index i = 0; i < uv.rows(); ++i)
1664 result_0(i, 0) = p_3_basis_value_3d_single_19(uv(i, 0), uv(i, 1), uv(i, 2));
1666 default: assert(
false);
1669void p_3_basis_grad_value_3d_single_0(
double x,
double y,
double z,
double *
val) {
1670{
double helper_0 = 27*
x;
1671val[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;}
1672{
double helper_0 = 27*
x;
1673val[1] = -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;}
1674{
double helper_0 = 27*
x;
1675val[2] = -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;}
1678void p_3_basis_grad_value_3d_single_1(
double x,
double y,
double z,
double *
val) {
1679{
val[0] = (27.0/2.0)*pow(
x, 2) - 9*
x + 1;}
1684void p_3_basis_grad_value_3d_single_2(
double x,
double y,
double z,
double *
val) {
1686{
val[1] = (27.0/2.0)*pow(
y, 2) - 9*
y + 1;}
1690void p_3_basis_grad_value_3d_single_3(
double x,
double y,
double z,
double *
val) {
1693{
val[2] = (27.0/2.0)*pow(
z, 2) - 9*
z + 1;}
1696void p_3_basis_grad_value_3d_single_4(
double x,
double y,
double z,
double *
val) {
1697{
double helper_0 = 6*
x;
1698val[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;}
1699{
val[1] = (9.0/2.0)*
x*(6*
x + 6*
y + 6*
z - 5);}
1700{
val[2] = (9.0/2.0)*
x*(6*
x + 6*
y + 6*
z - 5);}
1703void p_3_basis_grad_value_3d_single_5(
double x,
double y,
double z,
double *
val) {
1704{
double helper_0 = 3*
x;
1705val[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;}
1706{
val[1] = -9.0/2.0*
x*(3*
x - 1);}
1707{
val[2] = -9.0/2.0*
x*(3*
x - 1);}
1710void p_3_basis_grad_value_3d_single_6(
double x,
double y,
double z,
double *
val) {
1711{
val[0] = (9.0/2.0)*
y*(6*
x - 1);}
1712{
val[1] = (9.0/2.0)*
x*(3*
x - 1);}
1716void p_3_basis_grad_value_3d_single_7(
double x,
double y,
double z,
double *
val) {
1717{
val[0] = (9.0/2.0)*
y*(3*
y - 1);}
1718{
val[1] = (9.0/2.0)*
x*(6*
y - 1);}
1722void p_3_basis_grad_value_3d_single_8(
double x,
double y,
double z,
double *
val) {
1723{
val[0] = -9.0/2.0*
y*(3*
y - 1);}
1724{
double helper_0 = 3*
y;
1725val[1] = -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;}
1726{
val[2] = -9.0/2.0*
y*(3*
y - 1);}
1729void p_3_basis_grad_value_3d_single_9(
double x,
double y,
double z,
double *
val) {
1730{
val[0] = (9.0/2.0)*
y*(6*
x + 6*
y + 6*
z - 5);}
1731{
double helper_0 = 6*
y;
1732val[1] = 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;}
1733{
val[2] = (9.0/2.0)*
y*(6*
x + 6*
y + 6*
z - 5);}
1736void p_3_basis_grad_value_3d_single_10(
double x,
double y,
double z,
double *
val) {
1737{
val[0] = (9.0/2.0)*
z*(6*
x + 6*
y + 6*
z - 5);}
1738{
val[1] = (9.0/2.0)*
z*(6*
x + 6*
y + 6*
z - 5);}
1739{
double helper_0 = 6*
z;
1740val[2] = 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;}
1743void p_3_basis_grad_value_3d_single_11(
double x,
double y,
double z,
double *
val) {
1744{
val[0] = -9.0/2.0*
z*(3*
z - 1);}
1745{
val[1] = -9.0/2.0*
z*(3*
z - 1);}
1746{
double helper_0 = 3*
z;
1747val[2] = -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;}
1750void p_3_basis_grad_value_3d_single_12(
double x,
double y,
double z,
double *
val) {
1751{
val[0] = (9.0/2.0)*
z*(6*
x - 1);}
1753{
val[2] = (9.0/2.0)*
x*(3*
x - 1);}
1756void p_3_basis_grad_value_3d_single_13(
double x,
double y,
double z,
double *
val) {
1757{
val[0] = (9.0/2.0)*
z*(3*
z - 1);}
1759{
val[2] = (9.0/2.0)*
x*(6*
z - 1);}
1762void p_3_basis_grad_value_3d_single_14(
double x,
double y,
double z,
double *
val) {
1764{
val[1] = (9.0/2.0)*
z*(6*
y - 1);}
1765{
val[2] = (9.0/2.0)*
y*(3*
y - 1);}
1768void p_3_basis_grad_value_3d_single_15(
double x,
double y,
double z,
double *
val) {
1770{
val[1] = (9.0/2.0)*
z*(3*
z - 1);}
1771{
val[2] = (9.0/2.0)*
y*(6*
z - 1);}
1774void p_3_basis_grad_value_3d_single_16(
double x,
double y,
double z,
double *
val) {
1775{
val[0] = -27*
y*(2*
x +
y +
z - 1);}
1776{
val[1] = -27*
x*(
x + 2*
y +
z - 1);}
1780void p_3_basis_grad_value_3d_single_17(
double x,
double y,
double z,
double *
val) {
1781{
val[0] = -27*
z*(2*
x +
y +
z - 1);}
1783{
val[2] = -27*
x*(
x +
y + 2*
z - 1);}
1786void p_3_basis_grad_value_3d_single_18(
double x,
double y,
double z,
double *
val) {
1792void p_3_basis_grad_value_3d_single_19(
double x,
double y,
double z,
double *
val) {
1794{
val[1] = -27*
z*(
x + 2*
y +
z - 1);}
1795{
val[2] = -27*
y*(
x +
y + 2*
z - 1);}
1800void p_3_basis_grad_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
1801val.resize(uv.rows(), 3);
1805 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1806 p_3_basis_grad_value_3d_single_0(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1807 val(i, 0) = gradient[0];
1808 val(i, 1) = gradient[1];
1809 val(i, 2) = gradient[2];
1813 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1814 p_3_basis_grad_value_3d_single_1(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1815 val(i, 0) = gradient[0];
1816 val(i, 1) = gradient[1];
1817 val(i, 2) = gradient[2];
1821 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1822 p_3_basis_grad_value_3d_single_2(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1823 val(i, 0) = gradient[0];
1824 val(i, 1) = gradient[1];
1825 val(i, 2) = gradient[2];
1829 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1830 p_3_basis_grad_value_3d_single_3(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1831 val(i, 0) = gradient[0];
1832 val(i, 1) = gradient[1];
1833 val(i, 2) = gradient[2];
1837 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1838 p_3_basis_grad_value_3d_single_4(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1839 val(i, 0) = gradient[0];
1840 val(i, 1) = gradient[1];
1841 val(i, 2) = gradient[2];
1845 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1846 p_3_basis_grad_value_3d_single_5(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1847 val(i, 0) = gradient[0];
1848 val(i, 1) = gradient[1];
1849 val(i, 2) = gradient[2];
1853 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1854 p_3_basis_grad_value_3d_single_6(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1855 val(i, 0) = gradient[0];
1856 val(i, 1) = gradient[1];
1857 val(i, 2) = gradient[2];
1861 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1862 p_3_basis_grad_value_3d_single_7(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1863 val(i, 0) = gradient[0];
1864 val(i, 1) = gradient[1];
1865 val(i, 2) = gradient[2];
1869 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1870 p_3_basis_grad_value_3d_single_8(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1871 val(i, 0) = gradient[0];
1872 val(i, 1) = gradient[1];
1873 val(i, 2) = gradient[2];
1877 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1878 p_3_basis_grad_value_3d_single_9(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1879 val(i, 0) = gradient[0];
1880 val(i, 1) = gradient[1];
1881 val(i, 2) = gradient[2];
1885 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1886 p_3_basis_grad_value_3d_single_10(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1887 val(i, 0) = gradient[0];
1888 val(i, 1) = gradient[1];
1889 val(i, 2) = gradient[2];
1893 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1894 p_3_basis_grad_value_3d_single_11(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1895 val(i, 0) = gradient[0];
1896 val(i, 1) = gradient[1];
1897 val(i, 2) = gradient[2];
1901 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1902 p_3_basis_grad_value_3d_single_12(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1903 val(i, 0) = gradient[0];
1904 val(i, 1) = gradient[1];
1905 val(i, 2) = gradient[2];
1909 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1910 p_3_basis_grad_value_3d_single_13(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1911 val(i, 0) = gradient[0];
1912 val(i, 1) = gradient[1];
1913 val(i, 2) = gradient[2];
1917 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1918 p_3_basis_grad_value_3d_single_14(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1919 val(i, 0) = gradient[0];
1920 val(i, 1) = gradient[1];
1921 val(i, 2) = gradient[2];
1925 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1926 p_3_basis_grad_value_3d_single_15(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1927 val(i, 0) = gradient[0];
1928 val(i, 1) = gradient[1];
1929 val(i, 2) = gradient[2];
1933 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1934 p_3_basis_grad_value_3d_single_16(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1935 val(i, 0) = gradient[0];
1936 val(i, 1) = gradient[1];
1937 val(i, 2) = gradient[2];
1941 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1942 p_3_basis_grad_value_3d_single_17(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1943 val(i, 0) = gradient[0];
1944 val(i, 1) = gradient[1];
1945 val(i, 2) = gradient[2];
1949 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1950 p_3_basis_grad_value_3d_single_18(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1951 val(i, 0) = gradient[0];
1952 val(i, 1) = gradient[1];
1953 val(i, 2) = gradient[2];
1957 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
1958 p_3_basis_grad_value_3d_single_19(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
1959 val(i, 0) = gradient[0];
1960 val(i, 1) = gradient[1];
1961 val(i, 2) = gradient[2];
1964 default: assert(
false);
1969void p_3_nodes_3d(Eigen::MatrixXd &res) {
1970 res.resize(20, 3); res <<
19891.0/3.0, 1.0/3.0, 1.0/3.0,
1994double p_4_basis_value_3d_single_0(
double x,
double y,
double z) {
1996double helper_0 =
x +
y +
z - 1;
1997double helper_1 =
x*
y;
1998double helper_2 = pow(
y, 2);
1999double helper_3 = 9*
x;
2000double helper_4 = pow(
z, 2);
2001double helper_5 = pow(
x, 2);
2002double helper_6 = 9*
y;
2003double helper_7 = 9*
z;
2004double helper_8 = 26*helper_0;
2005double helper_9 = helper_8*
z;
2006double helper_10 = 13*pow(helper_0, 2);
2007double helper_11 = 13*helper_0;
2008result = (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));
2012double p_4_basis_value_3d_single_1(
double x,
double y,
double z) {
2014result = (1.0/3.0)*
x*(32*pow(
x, 3) - 48*pow(
x, 2) + 22*
x - 3);
2018double p_4_basis_value_3d_single_2(
double x,
double y,
double z) {
2020result = (1.0/3.0)*
y*(32*pow(
y, 3) - 48*pow(
y, 2) + 22*
y - 3);
2024double p_4_basis_value_3d_single_3(
double x,
double y,
double z) {
2026result = (1.0/3.0)*
z*(32*pow(
z, 3) - 48*pow(
z, 2) + 22*
z - 3);
2030double p_4_basis_value_3d_single_4(
double x,
double y,
double z) {
2032double helper_0 = 36*
x;
2033double helper_1 =
y*
z;
2034double helper_2 = pow(
x, 2);
2035double helper_3 = pow(
y, 2);
2036double helper_4 = pow(
z, 2);
2037double helper_5 = 24*
x;
2038double helper_6 = 24*
y;
2039double helper_7 = 24*
z;
2040result = -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);
2044double p_4_basis_value_3d_single_5(
double x,
double y,
double z) {
2046double helper_0 = 2*
y;
2047double helper_1 = 2*
z;
2048double helper_2 =
x +
y +
z - 1;
2049double helper_3 = helper_2*
x;
2050result = 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));
2054double p_4_basis_value_3d_single_6(
double x,
double y,
double z) {
2056double helper_0 = 6*
x;
2057double helper_1 = pow(
x, 2);
2058double helper_2 = 8*helper_1;
2059result = -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);
2063double p_4_basis_value_3d_single_7(
double x,
double y,
double z) {
2065result = (16.0/3.0)*
x*
y*(8*pow(
x, 2) - 6*
x + 1);
2069double p_4_basis_value_3d_single_8(
double x,
double y,
double z) {
2071double helper_0 = 4*
x;
2072result = helper_0*
y*(-helper_0 + 16*
x*
y - 4*
y + 1);
2076double p_4_basis_value_3d_single_9(
double x,
double y,
double z) {
2078result = (16.0/3.0)*
x*
y*(8*pow(
y, 2) - 6*
y + 1);
2082double p_4_basis_value_3d_single_10(
double x,
double y,
double z) {
2084double helper_0 = 6*
y;
2085double helper_1 = pow(
y, 2);
2086double helper_2 = 8*helper_1;
2087result = -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);
2091double p_4_basis_value_3d_single_11(
double x,
double y,
double z) {
2093double helper_0 = 2*
y;
2094double helper_1 = 2*
x;
2095double helper_2 =
x +
y +
z - 1;
2096double helper_3 = helper_2*
y;
2097result = -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));
2101double p_4_basis_value_3d_single_12(
double x,
double y,
double z) {
2103double helper_0 = 36*
x;
2104double helper_1 =
y*
z;
2105double helper_2 = pow(
x, 2);
2106double helper_3 = pow(
y, 2);
2107double helper_4 = pow(
z, 2);
2108double helper_5 = 24*
x;
2109double helper_6 = 24*
y;
2110double helper_7 = 24*
z;
2111result = -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);
2115double p_4_basis_value_3d_single_13(
double x,
double y,
double z) {
2117double helper_0 = 36*
x;
2118double helper_1 =
y*
z;
2119double helper_2 = pow(
x, 2);
2120double helper_3 = pow(
y, 2);
2121double helper_4 = pow(
z, 2);
2122double helper_5 = 24*
x;
2123double helper_6 = 24*
y;
2124double helper_7 = 24*
z;
2125result = -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);
2129double p_4_basis_value_3d_single_14(
double x,
double y,
double z) {
2131double helper_0 = 2*
x;
2132double helper_1 = 2*
z;
2133double helper_2 =
x +
y +
z - 1;
2134double helper_3 = helper_2*
z;
2135result = -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));
2139double p_4_basis_value_3d_single_15(
double x,
double y,
double z) {
2141double helper_0 = 6*
z;
2142double helper_1 = pow(
z, 2);
2143double helper_2 = 8*helper_1;
2144result = -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);
2148double p_4_basis_value_3d_single_16(
double x,
double y,
double z) {
2150result = (16.0/3.0)*
x*
z*(8*pow(
x, 2) - 6*
x + 1);
2154double p_4_basis_value_3d_single_17(
double x,
double y,
double z) {
2156double helper_0 = 4*
x;
2157result = helper_0*
z*(-helper_0 + 16*
x*
z - 4*
z + 1);
2161double p_4_basis_value_3d_single_18(
double x,
double y,
double z) {
2163result = (16.0/3.0)*
x*
z*(8*pow(
z, 2) - 6*
z + 1);
2167double p_4_basis_value_3d_single_19(
double x,
double y,
double z) {
2169result = (16.0/3.0)*
y*
z*(8*pow(
y, 2) - 6*
y + 1);
2173double p_4_basis_value_3d_single_20(
double x,
double y,
double z) {
2175double helper_0 = 4*
y;
2176result = helper_0*
z*(-helper_0 + 16*
y*
z - 4*
z + 1);
2180double p_4_basis_value_3d_single_21(
double x,
double y,
double z) {
2182result = (16.0/3.0)*
y*
z*(8*pow(
z, 2) - 6*
z + 1);
2186double p_4_basis_value_3d_single_22(
double x,
double y,
double z) {
2188result = 32*
x*
y*(
x +
y +
z - 1)*(4*
x + 4*
y + 4*
z - 3);
2192double p_4_basis_value_3d_single_23(
double x,
double y,
double z) {
2194result = -32*
x*
y*(4*
y - 1)*(
x +
y +
z - 1);
2198double p_4_basis_value_3d_single_24(
double x,
double y,
double z) {
2200result = -32*
x*
y*(4*
x - 1)*(
x +
y +
z - 1);
2204double p_4_basis_value_3d_single_25(
double x,
double y,
double z) {
2206result = 32*
x*
z*(
x +
y +
z - 1)*(4*
x + 4*
y + 4*
z - 3);
2210double p_4_basis_value_3d_single_26(
double x,
double y,
double z) {
2212result = -32*
x*
z*(4*
z - 1)*(
x +
y +
z - 1);
2216double p_4_basis_value_3d_single_27(
double x,
double y,
double z) {
2218result = -32*
x*
z*(4*
x - 1)*(
x +
y +
z - 1);
2222double p_4_basis_value_3d_single_28(
double x,
double y,
double z) {
2224result = 32*
x*
y*
z*(4*
x - 1);
2228double p_4_basis_value_3d_single_29(
double x,
double y,
double z) {
2230result = 32*
x*
y*
z*(4*
z - 1);
2234double p_4_basis_value_3d_single_30(
double x,
double y,
double z) {
2236result = 32*
x*
y*
z*(4*
y - 1);
2240double p_4_basis_value_3d_single_31(
double x,
double y,
double z) {
2242result = -32*
y*
z*(4*
y - 1)*(
x +
y +
z - 1);
2246double p_4_basis_value_3d_single_32(
double x,
double y,
double z) {
2248result = -32*
y*
z*(4*
z - 1)*(
x +
y +
z - 1);
2252double p_4_basis_value_3d_single_33(
double x,
double y,
double z) {
2254result = 32*
y*
z*(
x +
y +
z - 1)*(4*
x + 4*
y + 4*
z - 3);
2258double p_4_basis_value_3d_single_34(
double x,
double y,
double z) {
2260result = -256*
x*
y*
z*(
x +
y +
z - 1);
2266void p_4_basis_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &result_0){
2267result_0.resize(uv.rows(), 1);
2270 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2271 result_0(i, 0) = p_4_basis_value_3d_single_0(uv(i, 0), uv(i, 1), uv(i, 2));
2274 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2275 result_0(i, 0) = p_4_basis_value_3d_single_1(uv(i, 0), uv(i, 1), uv(i, 2));
2278 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2279 result_0(i, 0) = p_4_basis_value_3d_single_2(uv(i, 0), uv(i, 1), uv(i, 2));
2282 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2283 result_0(i, 0) = p_4_basis_value_3d_single_3(uv(i, 0), uv(i, 1), uv(i, 2));
2286 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2287 result_0(i, 0) = p_4_basis_value_3d_single_4(uv(i, 0), uv(i, 1), uv(i, 2));
2290 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2291 result_0(i, 0) = p_4_basis_value_3d_single_5(uv(i, 0), uv(i, 1), uv(i, 2));
2294 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2295 result_0(i, 0) = p_4_basis_value_3d_single_6(uv(i, 0), uv(i, 1), uv(i, 2));
2298 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2299 result_0(i, 0) = p_4_basis_value_3d_single_7(uv(i, 0), uv(i, 1), uv(i, 2));
2302 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2303 result_0(i, 0) = p_4_basis_value_3d_single_8(uv(i, 0), uv(i, 1), uv(i, 2));
2306 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2307 result_0(i, 0) = p_4_basis_value_3d_single_9(uv(i, 0), uv(i, 1), uv(i, 2));
2310 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2311 result_0(i, 0) = p_4_basis_value_3d_single_10(uv(i, 0), uv(i, 1), uv(i, 2));
2314 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2315 result_0(i, 0) = p_4_basis_value_3d_single_11(uv(i, 0), uv(i, 1), uv(i, 2));
2318 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2319 result_0(i, 0) = p_4_basis_value_3d_single_12(uv(i, 0), uv(i, 1), uv(i, 2));
2322 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2323 result_0(i, 0) = p_4_basis_value_3d_single_13(uv(i, 0), uv(i, 1), uv(i, 2));
2326 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2327 result_0(i, 0) = p_4_basis_value_3d_single_14(uv(i, 0), uv(i, 1), uv(i, 2));
2330 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2331 result_0(i, 0) = p_4_basis_value_3d_single_15(uv(i, 0), uv(i, 1), uv(i, 2));
2334 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2335 result_0(i, 0) = p_4_basis_value_3d_single_16(uv(i, 0), uv(i, 1), uv(i, 2));
2338 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2339 result_0(i, 0) = p_4_basis_value_3d_single_17(uv(i, 0), uv(i, 1), uv(i, 2));
2342 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2343 result_0(i, 0) = p_4_basis_value_3d_single_18(uv(i, 0), uv(i, 1), uv(i, 2));
2346 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2347 result_0(i, 0) = p_4_basis_value_3d_single_19(uv(i, 0), uv(i, 1), uv(i, 2));
2350 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2351 result_0(i, 0) = p_4_basis_value_3d_single_20(uv(i, 0), uv(i, 1), uv(i, 2));
2354 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2355 result_0(i, 0) = p_4_basis_value_3d_single_21(uv(i, 0), uv(i, 1), uv(i, 2));
2358 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2359 result_0(i, 0) = p_4_basis_value_3d_single_22(uv(i, 0), uv(i, 1), uv(i, 2));
2362 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2363 result_0(i, 0) = p_4_basis_value_3d_single_23(uv(i, 0), uv(i, 1), uv(i, 2));
2366 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2367 result_0(i, 0) = p_4_basis_value_3d_single_24(uv(i, 0), uv(i, 1), uv(i, 2));
2370 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2371 result_0(i, 0) = p_4_basis_value_3d_single_25(uv(i, 0), uv(i, 1), uv(i, 2));
2374 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2375 result_0(i, 0) = p_4_basis_value_3d_single_26(uv(i, 0), uv(i, 1), uv(i, 2));
2378 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2379 result_0(i, 0) = p_4_basis_value_3d_single_27(uv(i, 0), uv(i, 1), uv(i, 2));
2382 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2383 result_0(i, 0) = p_4_basis_value_3d_single_28(uv(i, 0), uv(i, 1), uv(i, 2));
2386 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2387 result_0(i, 0) = p_4_basis_value_3d_single_29(uv(i, 0), uv(i, 1), uv(i, 2));
2390 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2391 result_0(i, 0) = p_4_basis_value_3d_single_30(uv(i, 0), uv(i, 1), uv(i, 2));
2394 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2395 result_0(i, 0) = p_4_basis_value_3d_single_31(uv(i, 0), uv(i, 1), uv(i, 2));
2398 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2399 result_0(i, 0) = p_4_basis_value_3d_single_32(uv(i, 0), uv(i, 1), uv(i, 2));
2402 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2403 result_0(i, 0) = p_4_basis_value_3d_single_33(uv(i, 0), uv(i, 1), uv(i, 2));
2406 for (Eigen::Index i = 0; i < uv.rows(); ++i)
2407 result_0(i, 0) = p_4_basis_value_3d_single_34(uv(i, 0), uv(i, 1), uv(i, 2));
2409 default: assert(
false);
2412void p_4_basis_grad_value_3d_single_0(
double x,
double y,
double z,
double *
val) {
2413{
double helper_0 = 160*
x;
2414double helper_1 =
y*
z;
2415double helper_2 = pow(
x, 2);
2416double helper_3 = pow(
y, 2);
2417double helper_4 = pow(
z, 2);
2418double helper_5 = 128*
x;
2419double helper_6 = 128*
y;
2420double helper_7 = 128*
z;
2421val[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;}
2422{
double helper_0 = 160*
x;
2423double helper_1 =
y*
z;
2424double helper_2 = pow(
x, 2);
2425double helper_3 = pow(
y, 2);
2426double helper_4 = pow(
z, 2);
2427double helper_5 = 128*
x;
2428double helper_6 = 128*
y;
2429double helper_7 = 128*
z;
2430val[1] = -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;}
2431{
double helper_0 = 160*
x;
2432double helper_1 =
y*
z;
2433double helper_2 = pow(
x, 2);
2434double helper_3 = pow(
y, 2);
2435double helper_4 = pow(
z, 2);
2436double helper_5 = 128*
x;
2437double helper_6 = 128*
y;
2438double helper_7 = 128*
z;
2439val[2] = -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;}
2442void p_4_basis_grad_value_3d_single_1(
double x,
double y,
double z,
double *
val) {
2443{
val[0] = (128.0/3.0)*pow(
x, 3) - 48*pow(
x, 2) + (44.0/3.0)*
x - 1;}
2448void p_4_basis_grad_value_3d_single_2(
double x,
double y,
double z,
double *
val) {
2450{
val[1] = (128.0/3.0)*pow(
y, 3) - 48*pow(
y, 2) + (44.0/3.0)*
y - 1;}
2454void p_4_basis_grad_value_3d_single_3(
double x,
double y,
double z,
double *
val) {
2457{
val[2] = (128.0/3.0)*pow(
z, 3) - 48*pow(
z, 2) + (44.0/3.0)*
z - 1;}
2460void p_4_basis_grad_value_3d_single_4(
double x,
double y,
double z,
double *
val) {
2461{
double helper_0 = pow(
x, 2);
2462double helper_1 = pow(
y, 2);
2463double helper_2 = pow(
z, 2);
2464double helper_3 = 16*
x;
2465double helper_4 = 24*helper_0;
2466val[0] = 288*helper_0 - 16*helper_1*helper_3 - 128*helper_1*
z + 96*helper_1 - 16*helper_2*helper_3 - 128*helper_2*
y + 96*helper_2 - 16*helper_4*
y - 16*helper_4*
z - 512.0/3.0*pow(
x, 3) - 512*
x*
y*
z + 384*
x*
y + 384*
x*
z - 416.0/3.0*
x - 128.0/3.0*pow(
y, 3) + 192*
y*
z - 208.0/3.0*
y - 128.0/3.0*pow(
z, 3) - 208.0/3.0*
z + 16;}
2467{
double helper_0 = 48*
x;
2468val[1] = -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);}
2469{
double helper_0 = 48*
x;
2470val[2] = -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);}
2473void p_4_basis_grad_value_3d_single_5(
double x,
double y,
double z,
double *
val) {
2474{
double helper_0 = 72*
x;
2475double helper_1 =
y*
z;
2476double helper_2 = 96*pow(
x, 2);
2477double helper_3 = pow(
y, 2);
2478double helper_4 = pow(
z, 2);
2479double helper_5 = 32*
x;
2480val[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;}
2481{
double helper_0 = 32*
x;
2482val[1] = 4*
x*(helper_0*
y + helper_0*
z + 32*pow(
x, 2) - 36*
x - 8*
y - 8*
z + 7);}
2483{
double helper_0 = 32*
x;
2484val[2] = 4*
x*(helper_0*
y + helper_0*
z + 32*pow(
x, 2) - 36*
x - 8*
y - 8*
z + 7);}
2487void p_4_basis_grad_value_3d_single_6(
double x,
double y,
double z,
double *
val) {
2488{
double helper_0 = pow(
x, 2);
2489double helper_1 = 8*helper_0;
2490val[0] = 224*helper_0 - 16*helper_1*
y - 16*helper_1*
z - 512.0/3.0*pow(
x, 3) + 64*
x*
y + 64*
x*
z - 224.0/3.0*
x - 16.0/3.0*
y - 16.0/3.0*
z + 16.0/3.0;}
2491{
val[1] = -16.0/3.0*
x*(8*pow(
x, 2) - 6*
x + 1);}
2492{
val[2] = -16.0/3.0*
x*(8*pow(
x, 2) - 6*
x + 1);}
2495void p_4_basis_grad_value_3d_single_7(
double x,
double y,
double z,
double *
val) {
2496{
val[0] = (16.0/3.0)*
y*(24*pow(
x, 2) - 12*
x + 1);}
2497{
val[1] = (16.0/3.0)*
x*(8*pow(
x, 2) - 6*
x + 1);}
2501void p_4_basis_grad_value_3d_single_8(
double x,
double y,
double z,
double *
val) {
2502{
double helper_0 = 4*
y;
2503val[0] = helper_0*(-helper_0 + 32*
x*
y - 8*
x + 1);}
2504{
double helper_0 = 4*
x;
2505val[1] = helper_0*(-helper_0 + 32*
x*
y - 8*
y + 1);}
2509void p_4_basis_grad_value_3d_single_9(
double x,
double y,
double z,
double *
val) {
2510{
val[0] = (16.0/3.0)*
y*(8*pow(
y, 2) - 6*
y + 1);}
2511{
val[1] = (16.0/3.0)*
x*(24*pow(
y, 2) - 12*
y + 1);}
2515void p_4_basis_grad_value_3d_single_10(
double x,
double y,
double z,
double *
val) {
2516{
val[0] = -16.0/3.0*
y*(8*pow(
y, 2) - 6*
y + 1);}
2517{
double helper_0 = pow(
y, 2);
2518double helper_1 = 8*helper_0;
2519val[1] = 224*helper_0 - 16*helper_1*
x - 16*helper_1*
z + 64*
x*
y - 16.0/3.0*
x - 512.0/3.0*pow(
y, 3) + 64*
y*
z - 224.0/3.0*
y - 16.0/3.0*
z + 16.0/3.0;}
2520{
val[2] = -16.0/3.0*
y*(8*pow(
y, 2) - 6*
y + 1);}
2523void p_4_basis_grad_value_3d_single_11(
double x,
double y,
double z,
double *
val) {
2524{
double helper_0 = 32*
y;
2525val[0] = 4*
y*(helper_0*
x + helper_0*
z - 8*
x + 32*pow(
y, 2) - 36*
y - 8*
z + 7);}
2526{
double helper_0 = 72*
y;
2527double helper_1 =
x*
z;
2528double helper_2 = pow(
x, 2);
2529double helper_3 = 96*pow(
y, 2);
2530double helper_4 = pow(
z, 2);
2531double helper_5 = 32*
y;
2532val[1] = -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;}
2533{
double helper_0 = 32*
y;
2534val[2] = 4*
y*(helper_0*
x + helper_0*
z - 8*
x + 32*pow(
y, 2) - 36*
y - 8*
z + 7);}
2537void p_4_basis_grad_value_3d_single_12(
double x,
double y,
double z,
double *
val) {
2538{
double helper_0 = 48*
x;
2539val[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);}
2540{
double helper_0 = pow(
x, 2);
2541double helper_1 = pow(
y, 2);
2542double helper_2 = pow(
z, 2);
2543double helper_3 = 24*helper_1;
2544double helper_4 = 16*
y;
2545val[1] = -16*helper_0*helper_4 - 128*helper_0*
z + 96*helper_0 + 288*helper_1 - 16*helper_2*helper_4 - 128*helper_2*
x + 96*helper_2 - 16*helper_3*
x - 16*helper_3*
z - 128.0/3.0*pow(
x, 3) - 512*
x*
y*
z + 384*
x*
y + 192*
x*
z - 208.0/3.0*
x - 512.0/3.0*pow(
y, 3) + 384*
y*
z - 416.0/3.0*
y - 128.0/3.0*pow(
z, 3) - 208.0/3.0*
z + 16;}
2546{
double helper_0 = 48*
x;
2547val[2] = -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);}
2550void p_4_basis_grad_value_3d_single_13(
double x,
double y,
double z,
double *
val) {
2551{
double helper_0 = 48*
x;
2552val[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);}
2553{
double helper_0 = 48*
x;
2554val[1] = -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);}
2555{
double helper_0 = pow(
x, 2);
2556double helper_1 = pow(
y, 2);
2557double helper_2 = pow(
z, 2);
2558double helper_3 = 24*helper_2;
2559double helper_4 = 16*
z;
2560val[2] = -16*helper_0*helper_4 - 128*helper_0*
y + 96*helper_0 - 16*helper_1*helper_4 - 128*helper_1*
x + 96*helper_1 + 288*helper_2 - 16*helper_3*
x - 16*helper_3*
y - 128.0/3.0*pow(
x, 3) - 512*
x*
y*
z + 192*
x*
y + 384*
x*
z - 208.0/3.0*
x - 128.0/3.0*pow(
y, 3) + 384*
y*
z - 208.0/3.0*
y - 512.0/3.0*pow(
z, 3) - 416.0/3.0*
z + 16;}
2563void p_4_basis_grad_value_3d_single_14(
double x,
double y,
double z,
double *
val) {
2564{
double helper_0 = 32*
z;
2565val[0] = 4*
z*(helper_0*
x + helper_0*
y - 8*
x - 8*
y + 32*pow(
z, 2) - 36*
z + 7);}
2566{
double helper_0 = 32*
z;
2567val[1] = 4*
z*(helper_0*
x + helper_0*
y - 8*
x - 8*
y + 32*pow(
z, 2) - 36*
z + 7);}
2568{
double helper_0 =
x*
y;
2569double helper_1 = 72*
z;
2570double helper_2 = pow(
x, 2);
2571double helper_3 = pow(
y, 2);
2572double helper_4 = 96*pow(
z, 2);
2573double helper_5 = 32*
z;
2574val[2] = 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;}
2577void p_4_basis_grad_value_3d_single_15(
double x,
double y,
double z,
double *
val) {
2578{
val[0] = -16.0/3.0*
z*(8*pow(
z, 2) - 6*
z + 1);}
2579{
val[1] = -16.0/3.0*
z*(8*pow(
z, 2) - 6*
z + 1);}
2580{
double helper_0 = pow(
z, 2);
2581double helper_1 = 8*helper_0;
2582val[2] = 224*helper_0 - 16*helper_1*
x - 16*helper_1*
y + 64*
x*
z - 16.0/3.0*
x + 64*
y*
z - 16.0/3.0*
y - 512.0/3.0*pow(
z, 3) - 224.0/3.0*
z + 16.0/3.0;}
2585void p_4_basis_grad_value_3d_single_16(
double x,
double y,
double z,
double *
val) {
2586{
val[0] = (16.0/3.0)*
z*(24*pow(
x, 2) - 12*
x + 1);}
2588{
val[2] = (16.0/3.0)*
x*(8*pow(
x, 2) - 6*
x + 1);}
2591void p_4_basis_grad_value_3d_single_17(
double x,
double y,
double z,
double *
val) {
2592{
double helper_0 = 4*
z;
2593val[0] = helper_0*(-helper_0 + 32*
x*
z - 8*
x + 1);}
2595{
double helper_0 = 4*
x;
2596val[2] = helper_0*(-helper_0 + 32*
x*
z - 8*
z + 1);}
2599void p_4_basis_grad_value_3d_single_18(
double x,
double y,
double z,
double *
val) {
2600{
val[0] = (16.0/3.0)*
z*(8*pow(
z, 2) - 6*
z + 1);}
2602{
val[2] = (16.0/3.0)*
x*(24*pow(
z, 2) - 12*
z + 1);}
2605void p_4_basis_grad_value_3d_single_19(
double x,
double y,
double z,
double *
val) {
2607{
val[1] = (16.0/3.0)*
z*(24*pow(
y, 2) - 12*
y + 1);}
2608{
val[2] = (16.0/3.0)*
y*(8*pow(
y, 2) - 6*
y + 1);}
2611void p_4_basis_grad_value_3d_single_20(
double x,
double y,
double z,
double *
val) {
2613{
double helper_0 = 4*
z;
2614val[1] = helper_0*(-helper_0 + 32*
y*
z - 8*
y + 1);}
2615{
double helper_0 = 4*
y;
2616val[2] = helper_0*(-helper_0 + 32*
y*
z - 8*
z + 1);}
2619void p_4_basis_grad_value_3d_single_21(
double x,
double y,
double z,
double *
val) {
2621{
val[1] = (16.0/3.0)*
z*(8*pow(
z, 2) - 6*
z + 1);}
2622{
val[2] = (16.0/3.0)*
y*(24*pow(
z, 2) - 12*
z + 1);}
2625void p_4_basis_grad_value_3d_single_22(
double x,
double y,
double z,
double *
val) {
2626{
double helper_0 =
x +
y +
z - 1;
2627double helper_1 = 4*
x;
2628double helper_2 = helper_1 + 4*
y + 4*
z - 3;
2629val[0] = 32*
y*(helper_0*helper_1 + helper_0*helper_2 + helper_2*
x);}
2630{
double helper_0 =
x +
y +
z - 1;
2631double helper_1 = 4*
y;
2632double helper_2 = helper_1 + 4*
x + 4*
z - 3;
2633val[1] = 32*
x*(helper_0*helper_1 + helper_0*helper_2 + helper_2*
y);}
2634{
val[2] = 32*
x*
y*(8*
x + 8*
y + 8*
z - 7);}
2637void p_4_basis_grad_value_3d_single_23(
double x,
double y,
double z,
double *
val) {
2638{
val[0] = -32*
y*(4*
y - 1)*(2*
x +
y +
z - 1);}
2639{
double helper_0 = 8*
y;
2640val[1] = -32*
x*(helper_0*
x + helper_0*
z -
x + 12*pow(
y, 2) - 10*
y -
z + 1);}
2641{
val[2] = -32*
x*
y*(4*
y - 1);}
2644void p_4_basis_grad_value_3d_single_24(
double x,
double y,
double z,
double *
val) {
2645{
double helper_0 = 8*
x;
2646val[0] = -32*
y*(helper_0*
y + helper_0*
z + 12*pow(
x, 2) - 10*
x -
y -
z + 1);}
2647{
val[1] = -32*
x*(4*
x - 1)*(
x + 2*
y +
z - 1);}
2648{
val[2] = -32*
x*
y*(4*
x - 1);}
2651void p_4_basis_grad_value_3d_single_25(
double x,
double y,
double z,
double *
val) {
2652{
double helper_0 =
x +
y +
z - 1;
2653double helper_1 = 4*
x;
2654double helper_2 = helper_1 + 4*
y + 4*
z - 3;
2655val[0] = 32*
z*(helper_0*helper_1 + helper_0*helper_2 + helper_2*
x);}
2656{
val[1] = 32*
x*
z*(8*
x + 8*
y + 8*
z - 7);}
2657{
double helper_0 =
x +
y +
z - 1;
2658double helper_1 = 4*
z;
2659double helper_2 = helper_1 + 4*
x + 4*
y - 3;
2660val[2] = 32*
x*(helper_0*helper_1 + helper_0*helper_2 + helper_2*
z);}
2663void p_4_basis_grad_value_3d_single_26(
double x,
double y,
double z,
double *
val) {
2664{
val[0] = -32*
z*(4*
z - 1)*(2*
x +
y +
z - 1);}
2665{
val[1] = -32*
x*
z*(4*
z - 1);}
2666{
double helper_0 = 8*
z;
2667val[2] = -32*
x*(helper_0*
x + helper_0*
y -
x -
y + 12*pow(
z, 2) - 10*
z + 1);}
2670void p_4_basis_grad_value_3d_single_27(
double x,
double y,
double z,
double *
val) {
2671{
double helper_0 = 8*
x;
2672val[0] = -32*
z*(helper_0*
y + helper_0*
z + 12*pow(
x, 2) - 10*
x -
y -
z + 1);}
2673{
val[1] = -32*
x*
z*(4*
x - 1);}
2674{
val[2] = -32*
x*(4*
x - 1)*(
x +
y + 2*
z - 1);}
2677void p_4_basis_grad_value_3d_single_28(
double x,
double y,
double z,
double *
val) {
2678{
val[0] = 32*
y*
z*(8*
x - 1);}
2679{
val[1] = 32*
x*
z*(4*
x - 1);}
2680{
val[2] = 32*
x*
y*(4*
x - 1);}
2683void p_4_basis_grad_value_3d_single_29(
double x,
double y,
double z,
double *
val) {
2684{
val[0] = 32*
y*
z*(4*
z - 1);}
2685{
val[1] = 32*
x*
z*(4*
z - 1);}
2686{
val[2] = 32*
x*
y*(8*
z - 1);}
2689void p_4_basis_grad_value_3d_single_30(
double x,
double y,
double z,
double *
val) {
2690{
val[0] = 32*
y*
z*(4*
y - 1);}
2691{
val[1] = 32*
x*
z*(8*
y - 1);}
2692{
val[2] = 32*
x*
y*(4*
y - 1);}
2695void p_4_basis_grad_value_3d_single_31(
double x,
double y,
double z,
double *
val) {
2696{
val[0] = -32*
y*
z*(4*
y - 1);}
2697{
double helper_0 = 8*
y;
2698val[1] = -32*
z*(helper_0*
x + helper_0*
z -
x + 12*pow(
y, 2) - 10*
y -
z + 1);}
2699{
val[2] = -32*
y*(4*
y - 1)*(
x +
y + 2*
z - 1);}
2702void p_4_basis_grad_value_3d_single_32(
double x,
double y,
double z,
double *
val) {
2703{
val[0] = -32*
y*
z*(4*
z - 1);}
2704{
val[1] = -32*
z*(4*
z - 1)*(
x + 2*
y +
z - 1);}
2705{
double helper_0 = 8*
z;
2706val[2] = -32*
y*(helper_0*
x + helper_0*
y -
x -
y + 12*pow(
z, 2) - 10*
z + 1);}
2709void p_4_basis_grad_value_3d_single_33(
double x,
double y,
double z,
double *
val) {
2710{
val[0] = 32*
y*
z*(8*
x + 8*
y + 8*
z - 7);}
2711{
double helper_0 =
x +
y +
z - 1;
2712double helper_1 = 4*
y;
2713double helper_2 = helper_1 + 4*
x + 4*
z - 3;
2714val[1] = 32*
z*(helper_0*helper_1 + helper_0*helper_2 + helper_2*
y);}
2715{
double helper_0 =
x +
y +
z - 1;
2716double helper_1 = 4*
z;
2717double helper_2 = helper_1 + 4*
x + 4*
y - 3;
2718val[2] = 32*
y*(helper_0*helper_1 + helper_0*helper_2 + helper_2*
z);}
2721void p_4_basis_grad_value_3d_single_34(
double x,
double y,
double z,
double *
val) {
2722{
val[0] = -256*
y*
z*(2*
x +
y +
z - 1);}
2723{
val[1] = -256*
x*
z*(
x + 2*
y +
z - 1);}
2724{
val[2] = -256*
x*
y*(
x +
y + 2*
z - 1);}
2729void p_4_basis_grad_value_3d(
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
2730val.resize(uv.rows(), 3);
2734 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2735 p_4_basis_grad_value_3d_single_0(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2736 val(i, 0) = gradient[0];
2737 val(i, 1) = gradient[1];
2738 val(i, 2) = gradient[2];
2742 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2743 p_4_basis_grad_value_3d_single_1(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2744 val(i, 0) = gradient[0];
2745 val(i, 1) = gradient[1];
2746 val(i, 2) = gradient[2];
2750 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2751 p_4_basis_grad_value_3d_single_2(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2752 val(i, 0) = gradient[0];
2753 val(i, 1) = gradient[1];
2754 val(i, 2) = gradient[2];
2758 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2759 p_4_basis_grad_value_3d_single_3(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2760 val(i, 0) = gradient[0];
2761 val(i, 1) = gradient[1];
2762 val(i, 2) = gradient[2];
2766 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2767 p_4_basis_grad_value_3d_single_4(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2768 val(i, 0) = gradient[0];
2769 val(i, 1) = gradient[1];
2770 val(i, 2) = gradient[2];
2774 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2775 p_4_basis_grad_value_3d_single_5(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2776 val(i, 0) = gradient[0];
2777 val(i, 1) = gradient[1];
2778 val(i, 2) = gradient[2];
2782 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2783 p_4_basis_grad_value_3d_single_6(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2784 val(i, 0) = gradient[0];
2785 val(i, 1) = gradient[1];
2786 val(i, 2) = gradient[2];
2790 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2791 p_4_basis_grad_value_3d_single_7(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2792 val(i, 0) = gradient[0];
2793 val(i, 1) = gradient[1];
2794 val(i, 2) = gradient[2];
2798 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2799 p_4_basis_grad_value_3d_single_8(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2800 val(i, 0) = gradient[0];
2801 val(i, 1) = gradient[1];
2802 val(i, 2) = gradient[2];
2806 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2807 p_4_basis_grad_value_3d_single_9(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2808 val(i, 0) = gradient[0];
2809 val(i, 1) = gradient[1];
2810 val(i, 2) = gradient[2];
2814 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2815 p_4_basis_grad_value_3d_single_10(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2816 val(i, 0) = gradient[0];
2817 val(i, 1) = gradient[1];
2818 val(i, 2) = gradient[2];
2822 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2823 p_4_basis_grad_value_3d_single_11(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2824 val(i, 0) = gradient[0];
2825 val(i, 1) = gradient[1];
2826 val(i, 2) = gradient[2];
2830 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2831 p_4_basis_grad_value_3d_single_12(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2832 val(i, 0) = gradient[0];
2833 val(i, 1) = gradient[1];
2834 val(i, 2) = gradient[2];
2838 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2839 p_4_basis_grad_value_3d_single_13(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2840 val(i, 0) = gradient[0];
2841 val(i, 1) = gradient[1];
2842 val(i, 2) = gradient[2];
2846 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2847 p_4_basis_grad_value_3d_single_14(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2848 val(i, 0) = gradient[0];
2849 val(i, 1) = gradient[1];
2850 val(i, 2) = gradient[2];
2854 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2855 p_4_basis_grad_value_3d_single_15(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2856 val(i, 0) = gradient[0];
2857 val(i, 1) = gradient[1];
2858 val(i, 2) = gradient[2];
2862 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2863 p_4_basis_grad_value_3d_single_16(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2864 val(i, 0) = gradient[0];
2865 val(i, 1) = gradient[1];
2866 val(i, 2) = gradient[2];
2870 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2871 p_4_basis_grad_value_3d_single_17(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2872 val(i, 0) = gradient[0];
2873 val(i, 1) = gradient[1];
2874 val(i, 2) = gradient[2];
2878 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2879 p_4_basis_grad_value_3d_single_18(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2880 val(i, 0) = gradient[0];
2881 val(i, 1) = gradient[1];
2882 val(i, 2) = gradient[2];
2886 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2887 p_4_basis_grad_value_3d_single_19(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2888 val(i, 0) = gradient[0];
2889 val(i, 1) = gradient[1];
2890 val(i, 2) = gradient[2];
2894 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2895 p_4_basis_grad_value_3d_single_20(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2896 val(i, 0) = gradient[0];
2897 val(i, 1) = gradient[1];
2898 val(i, 2) = gradient[2];
2902 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2903 p_4_basis_grad_value_3d_single_21(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2904 val(i, 0) = gradient[0];
2905 val(i, 1) = gradient[1];
2906 val(i, 2) = gradient[2];
2910 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2911 p_4_basis_grad_value_3d_single_22(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2912 val(i, 0) = gradient[0];
2913 val(i, 1) = gradient[1];
2914 val(i, 2) = gradient[2];
2918 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2919 p_4_basis_grad_value_3d_single_23(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2920 val(i, 0) = gradient[0];
2921 val(i, 1) = gradient[1];
2922 val(i, 2) = gradient[2];
2926 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2927 p_4_basis_grad_value_3d_single_24(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2928 val(i, 0) = gradient[0];
2929 val(i, 1) = gradient[1];
2930 val(i, 2) = gradient[2];
2934 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2935 p_4_basis_grad_value_3d_single_25(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2936 val(i, 0) = gradient[0];
2937 val(i, 1) = gradient[1];
2938 val(i, 2) = gradient[2];
2942 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2943 p_4_basis_grad_value_3d_single_26(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2944 val(i, 0) = gradient[0];
2945 val(i, 1) = gradient[1];
2946 val(i, 2) = gradient[2];
2950 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2951 p_4_basis_grad_value_3d_single_27(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2952 val(i, 0) = gradient[0];
2953 val(i, 1) = gradient[1];
2954 val(i, 2) = gradient[2];
2958 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2959 p_4_basis_grad_value_3d_single_28(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2960 val(i, 0) = gradient[0];
2961 val(i, 1) = gradient[1];
2962 val(i, 2) = gradient[2];
2966 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2967 p_4_basis_grad_value_3d_single_29(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2968 val(i, 0) = gradient[0];
2969 val(i, 1) = gradient[1];
2970 val(i, 2) = gradient[2];
2974 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2975 p_4_basis_grad_value_3d_single_30(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2976 val(i, 0) = gradient[0];
2977 val(i, 1) = gradient[1];
2978 val(i, 2) = gradient[2];
2982 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2983 p_4_basis_grad_value_3d_single_31(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2984 val(i, 0) = gradient[0];
2985 val(i, 1) = gradient[1];
2986 val(i, 2) = gradient[2];
2990 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2991 p_4_basis_grad_value_3d_single_32(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
2992 val(i, 0) = gradient[0];
2993 val(i, 1) = gradient[1];
2994 val(i, 2) = gradient[2];
2998 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
2999 p_4_basis_grad_value_3d_single_33(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
3000 val(i, 0) = gradient[0];
3001 val(i, 1) = gradient[1];
3002 val(i, 2) = gradient[2];
3006 for (Eigen::Index i = 0; i < uv.rows(); ++i) {
3007 p_4_basis_grad_value_3d_single_34(uv(i, 0), uv(i, 1), uv(i, 2), gradient);
3008 val(i, 0) = gradient[0];
3009 val(i, 1) = gradient[1];
3010 val(i, 2) = gradient[2];
3013 default: assert(
false);
3018void p_4_nodes_3d(Eigen::MatrixXd &res) {
3019 res.resize(35, 3); res <<
30481.0/2.0, 1.0/4.0, 1.0/4.0,
30491.0/4.0, 1.0/4.0, 1.0/2.0,
30501.0/4.0, 1.0/2.0, 1.0/4.0,
30541.0/4.0, 1.0/4.0, 1.0/4.0;
3062 case 0: p_0_nodes_3d(
val);
break;
3063 case 1: p_1_nodes_3d(
val);
break;
3064 case 2: p_2_nodes_3d(
val);
break;
3065 case 3: p_3_nodes_3d(
val);
break;
3066 case 4: p_4_nodes_3d(
val);
break;
3069void p_basis_value_3d(
const bool bernstein,
const int p,
const int local_index,
const Eigen::MatrixXd &uv, Eigen::MatrixXd &
val){
3074 case 0: p_0_basis_value_3d(local_index, uv,
val);
break;
3075 case 1: p_1_basis_value_3d(local_index, uv,
val);
break;
3076 case 2: p_2_basis_value_3d(local_index, uv,
val);
break;
3077 case 3: p_3_basis_value_3d(local_index, uv,
val);
break;
3078 case 4: p_4_basis_value_3d(local_index, uv,
val);
break;
3087 case 0: p_0_basis_grad_value_3d(local_index, uv,
val);
break;
3088 case 1: p_1_basis_grad_value_3d(local_index, uv,
val);
break;
3089 case 2: p_2_basis_grad_value_3d(local_index, uv,
val);
break;
3090 case 3: p_3_basis_grad_value_3d(local_index, uv,
val);
break;
3091 case 4: p_4_basis_grad_value_3d(local_index, uv,
val);
break;
void b_basis_value_3d(const int b, const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &val)
void p_grad_basis_value_2d(const bool bernstein, const int p, const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &val)
void p_n_nodes_3d(const int p, 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_grad_basis_value_3d(const bool bernstein, 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 b_grad_basis_value_3d(const int b, const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &val)
void p_n_basis_value_3d(const int p, const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &val)
void b_basis_value_2d(const int b, 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 bool bernstein, const int p, const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &val)
void b_grad_basis_value_2d(const int b, const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &val)
void p_n_nodes_2d(const int p, Eigen::MatrixXd &val)
void p_basis_value_2d(const bool bernstein, const int p, const int local_index, const Eigen::MatrixXd &uv, Eigen::MatrixXd &val)