59 Assert(values.size() == this->n() || values.empty(),
61 Assert(grads.size() == this->n() || grads.empty(),
63 Assert(grad_grads.size() == this->n() || grad_grads.empty(),
65 Assert(third_derivatives.size() == this->n() || third_derivatives.empty(),
67 Assert(fourth_derivatives.size() == this->n() || fourth_derivatives.empty(),
71 (void)third_derivatives;
73 (void)fourth_derivatives;
80 const unsigned int n_basis = polynomial_space.n();
81 const unsigned int my_degree = this->degree();
82 std::vector<double> unit_point_values((values.empty()) ? 0 : n_basis);
83 std::vector<Tensor<1, dim>> unit_point_grads((grads.empty()) ? 0 : n_basis);
84 std::vector<Tensor<2, dim>> unit_point_grad_grads(
85 (grad_grads.empty()) ? 0 : n_basis);
86 std::vector<Tensor<3, dim>> empty_vector_of_3rd_order_tensors;
87 std::vector<Tensor<4, dim>> empty_vector_of_4th_order_tensors;
93 polynomial_space.evaluate(unit_point,
96 unit_point_grad_grads,
97 empty_vector_of_3rd_order_tensors,
98 empty_vector_of_4th_order_tensors);
102 if (values.size() > 0)
103 for (
unsigned int i = 0; i < unit_point_values.size(); ++i)
104 values[i][0] = unit_point_values[i];
106 if (grads.size() > 0)
107 for (
unsigned int i = 0; i < unit_point_grads.size(); ++i)
108 grads[i][0][0] = unit_point_grads[i][0];
110 if (grad_grads.size() > 0)
111 for (
unsigned int i = 0; i < unit_point_grad_grads.size(); ++i)
112 grad_grads[i][0][0][0] = unit_point_grad_grads[i][0][0];
119 polynomial_space.evaluate(unit_point,
122 unit_point_grad_grads,
123 empty_vector_of_3rd_order_tensors,
124 empty_vector_of_4th_order_tensors);
133 p[0] = unit_point[1];
134 p[1] = unit_point[0];
136 std::vector<double> p_values((values.empty()) ? 0 : n_basis);
137 std::vector<Tensor<1, dim>> p_grads((grads.empty()) ? 0 : n_basis);
138 std::vector<Tensor<2, dim>> p_grad_grads(
139 (grad_grads.empty()) ? 0 : n_basis);
141 polynomial_space.evaluate(p,
145 empty_vector_of_3rd_order_tensors,
146 empty_vector_of_4th_order_tensors);
150 if (values.size() > 0)
152 for (
unsigned int i = 0; i <= my_degree; ++i)
153 for (
unsigned int j = 0; j < 2; ++j)
155 values[i + j * (my_degree + 1)][0] = 0.0;
156 values[i + j * (my_degree + 1)][1] =
157 p_values[i + j * (my_degree + 1)];
158 values[i + (j + 2) * (my_degree + 1)][0] =
159 unit_point_values[i + j * (my_degree + 1)];
160 values[i + (j + 2) * (my_degree + 1)][1] = 0.0;
164 for (
unsigned int i = 0; i <= my_degree; ++i)
165 for (
unsigned int j = 0; j < my_degree; ++j)
170 unit_point_values[i + (j + 2) * (my_degree + 1)];
174 values[i + (j + my_degree +
176 (my_degree + 1)][0] = 0.0;
177 values[i + (j + my_degree +
179 (my_degree + 1)][1] =
180 p_values[i + (j + 2) * (my_degree + 1)];
184 if (grads.size() > 0)
186 for (
unsigned int i = 0; i <= my_degree; ++i)
187 for (
unsigned int j = 0; j < 2; ++j)
189 for (
unsigned int k = 0; k < dim; ++k)
191 grads[i + j * (my_degree + 1)][0][k] = 0.0;
192 grads[i + (j + 2) * (my_degree + 1)][0][k] =
193 unit_point_grads[i + j * (my_degree + 1)][k];
194 grads[i + (j + 2) * (my_degree + 1)][1][k] = 0.0;
197 grads[i + j * (my_degree + 1)][1][0] =
198 p_grads[i + j * (my_degree + 1)][1];
199 grads[i + j * (my_degree + 1)][1][1] =
200 p_grads[i + j * (my_degree + 1)][0];
204 for (
unsigned int i = 0; i <= my_degree; ++i)
205 for (
unsigned int j = 0; j < my_degree; ++j)
207 for (
unsigned int k = 0; k < dim; ++k)
212 unit_point_grads[i + (j + 2) * (my_degree + 1)][k];
217 grads[i + (j + my_degree +
219 (my_degree + 1)][0][k] = 0.0;
222 grads[i + (j + my_degree +
224 (my_degree + 1)][1][0] =
225 p_grads[i + (j + 2) * (my_degree + 1)][1];
226 grads[i + (j + my_degree +
228 (my_degree + 1)][1][1] =
229 p_grads[i + (j + 2) * (my_degree + 1)][0];
233 if (grad_grads.size() > 0)
235 for (
unsigned int i = 0; i <= my_degree; ++i)
236 for (
unsigned int j = 0; j < 2; ++j)
238 for (
unsigned int k = 0; k < dim; ++k)
239 for (
unsigned int l = 0; l < dim; ++l)
241 grad_grads[i + j * (my_degree + 1)][0][k][l] = 0.0;
242 grad_grads[i + (j + 2) * (my_degree + 1)][0][k][l] =
243 unit_point_grad_grads[i + j * (my_degree + 1)][k]
245 grad_grads[i + (j + 2) * (my_degree + 1)][1][k][l] =
249 grad_grads[i + j * (my_degree + 1)][1][0][0] =
250 p_grad_grads[i + j * (my_degree + 1)][1][1];
251 grad_grads[i + j * (my_degree + 1)][1][0][1] =
252 p_grad_grads[i + j * (my_degree + 1)][1][0];
253 grad_grads[i + j * (my_degree + 1)][1][1][0] =
254 p_grad_grads[i + j * (my_degree + 1)][0][1];
255 grad_grads[i + j * (my_degree + 1)][1][1][1] =
256 p_grad_grads[i + j * (my_degree + 1)][0][0];
260 for (
unsigned int i = 0; i <= my_degree; ++i)
261 for (
unsigned int j = 0; j < my_degree; ++j)
263 for (
unsigned int k = 0; k < dim; ++k)
264 for (
unsigned int l = 0; l < dim; ++l)
269 [k][l] = unit_point_grad_grads
270 [i + (j + 2) * (my_degree + 1)][k][l];
275 grad_grads[i + (j + my_degree +
277 (my_degree + 1)][0][k][l] = 0.0;
280 grad_grads[i + (j + my_degree +
282 (my_degree + 1)][1][0][0] =
283 p_grad_grads[i + (j + 2) * (my_degree + 1)][1][1];
284 grad_grads[i + (j + my_degree +
286 (my_degree + 1)][1][0][1] =
287 p_grad_grads[i + (j + 2) * (my_degree + 1)][1][0];
288 grad_grads[i + (j + my_degree +
290 (my_degree + 1)][1][1][0] =
291 p_grad_grads[i + (j + 2) * (my_degree + 1)][0][1];
292 grad_grads[i + (j + my_degree +
294 (my_degree + 1)][1][1][1] =
295 p_grad_grads[i + (j + 2) * (my_degree + 1)][0][0];
304 polynomial_space.evaluate(unit_point,
307 unit_point_grad_grads,
308 empty_vector_of_3rd_order_tensors,
309 empty_vector_of_4th_order_tensors);
318 std::vector<double> p1_values((values.empty()) ? 0 : n_basis);
319 std::vector<Tensor<1, dim>> p1_grads((grads.empty()) ? 0 : n_basis);
320 std::vector<Tensor<2, dim>> p1_grad_grads(
321 (grad_grads.empty()) ? 0 : n_basis);
322 std::vector<double> p2_values((values.empty()) ? 0 : n_basis);
323 std::vector<Tensor<1, dim>> p2_grads((grads.empty()) ? 0 : n_basis);
324 std::vector<Tensor<2, dim>> p2_grad_grads(
325 (grad_grads.empty()) ? 0 : n_basis);
327 p1[0] = unit_point[1];
328 p1[1] = unit_point[2];
329 p1[2] = unit_point[0];
330 polynomial_space.evaluate(p1,
334 empty_vector_of_3rd_order_tensors,
335 empty_vector_of_4th_order_tensors);
336 p2[0] = unit_point[2];
337 p2[1] = unit_point[0];
338 p2[2] = unit_point[1];
339 polynomial_space.evaluate(p2,
343 empty_vector_of_3rd_order_tensors,
344 empty_vector_of_4th_order_tensors);
348 if (values.size() > 0)
350 for (
unsigned int i = 0; i <= my_degree; ++i)
352 for (
unsigned int j = 0; j < 2; ++j)
354 for (
unsigned int k = 0; k < 2; ++k)
356 for (
unsigned int l = 0; l < 2; ++l)
358 values[i + (j + 4 * k) * (my_degree + 1)][2 * l] =
360 values[i + (j + 4 * k + 2) * (my_degree + 1)]
362 values[i + (j + 2 * (k + 4)) * (my_degree + 1)]
366 values[i + (j + 4 * k + 2) * (my_degree + 1)][0] =
367 unit_point_values[i + (j + k * (my_degree + 2)) *
369 values[i + (j + 2 * (k + 4)) * (my_degree + 1)][2] =
370 p2_values[i + (j + k * (my_degree + 2)) *
374 values[i + j * (my_degree + 1)][1] =
375 p1_values[i + j * (my_degree + 1) * (my_degree + 2)];
378 values[i + 4 * (my_degree + 1)][1] =
379 p1_values[i + my_degree + 1];
380 values[i + 5 * (my_degree + 1)][1] =
381 p1_values[i + (my_degree + 1) * (my_degree + 3)];
385 for (
unsigned int i = 0; i <= my_degree; ++i)
386 for (
unsigned int j = 0; j < my_degree; ++j)
388 for (
unsigned int k = 0; k < my_degree; ++k)
390 for (
unsigned int l = 0; l < 2; ++l)
416 (my_degree + 1)][l] = 0.0;
425 unit_point_values[i +
426 (j + (k + 2) * (my_degree + 2) +
436 p1_values[i + ((j + 2) * (my_degree + 2) + k + 2) *
444 (my_degree + 1)][2] =
445 p2_values[i + (j + (k + 2) * (my_degree + 2) + 2) *
449 for (
unsigned int k = 0; k < 2; ++k)
451 for (
unsigned int l = 0; l < 2; ++l)
453 for (
unsigned int m = 0; m < 2; ++m)
457 (2 * (k + 2 * l) + 1) * my_degree +
459 (my_degree + 1)][m + l] = 0.0;
461 2 * (k + 2 * (l + 1)) *
469 values[(i + 2 * k * (my_degree + 1) +
474 values[i + (j + (2 * k + 9) * my_degree +
476 (my_degree + 1)][2 * l] = 0.0;
479 values[(i + 2 * k * (my_degree + 1) +
483 p1_values[i + (j + k * (my_degree + 2) + 2) *
485 values[i + (j + (2 * k + 1) * my_degree +
487 (my_degree + 1)][2] =
488 p2_values[i + ((j + 2) * (my_degree + 2) + k) *
490 values[(i + 2 * (k + 2) * (my_degree + 1) +
494 p2_values[i + (j + k * (my_degree + 2) + 2) *
496 values[i + (j + (2 * k + 5) * my_degree +
498 (my_degree + 1)][0] =
499 unit_point_values[i +
500 ((j + 2) * (my_degree + 2) + k) *
502 values[(i + 2 * (k + 4) * (my_degree + 1) +
506 unit_point_values[i +
507 (j + k * (my_degree + 2) + 2) *
509 values[i + (j + (2 * k + 9) * my_degree +
511 (my_degree + 1)][1] =
512 p1_values[i + ((j + 2) * (my_degree + 2) + k) *
518 if (grads.size() > 0)
520 for (
unsigned int i = 0; i <= my_degree; ++i)
522 for (
unsigned int j = 0; j < 2; ++j)
524 for (
unsigned int k = 0; k < 2; ++k)
526 for (
unsigned int l = 0; l < 2; ++l)
527 for (
unsigned int m = 0; m < dim; ++m)
529 grads[i + (j + 4 * k) * (my_degree + 1)][2 * l]
531 grads[i + (j + 4 * k + 2) * (my_degree + 1)]
533 grads[i + (j + 2 * (k + 4)) * (my_degree + 1)]
537 for (
unsigned int l = 0; l < dim; ++l)
538 grads[i + (j + 4 * k + 2) * (my_degree + 1)][0][l] =
539 unit_point_grads[i + (j + k * (my_degree + 2)) *
542 grads[i + (j + 2 * (k + 4)) * (my_degree + 1)][2][0] =
543 p2_grads[i + (j + k * (my_degree + 2)) *
545 grads[i + (j + 2 * (k + 4)) * (my_degree + 1)][2][1] =
546 p2_grads[i + (j + k * (my_degree + 2)) *
548 grads[i + (j + 2 * (k + 4)) * (my_degree + 1)][2][2] =
549 p2_grads[i + (j + k * (my_degree + 2)) *
553 grads[i + j * (my_degree + 1)][1][0] =
554 p1_grads[i + j * (my_degree + 1) * (my_degree + 2)][2];
555 grads[i + j * (my_degree + 1)][1][1] =
556 p1_grads[i + j * (my_degree + 1) * (my_degree + 2)][0];
557 grads[i + j * (my_degree + 1)][1][2] =
558 p1_grads[i + j * (my_degree + 1) * (my_degree + 2)][1];
561 grads[i + 4 * (my_degree + 1)][1][0] =
562 p1_grads[i + my_degree + 1][2];
563 grads[i + 4 * (my_degree + 1)][1][1] =
564 p1_grads[i + my_degree + 1][0];
565 grads[i + 4 * (my_degree + 1)][1][2] =
566 p1_grads[i + my_degree + 1][1];
567 grads[i + 5 * (my_degree + 1)][1][0] =
568 p1_grads[i + (my_degree + 1) * (my_degree + 3)][2];
569 grads[i + 5 * (my_degree + 1)][1][1] =
570 p1_grads[i + (my_degree + 1) * (my_degree + 3)][0];
571 grads[i + 5 * (my_degree + 1)][1][2] =
572 p1_grads[i + (my_degree + 1) * (my_degree + 3)][1];
576 for (
unsigned int i = 0; i <= my_degree; ++i)
577 for (
unsigned int j = 0; j < my_degree; ++j)
579 for (
unsigned int k = 0; k < my_degree; ++k)
581 for (
unsigned int l = 0; l < dim; ++l)
583 for (
unsigned int m = 0; m < 2; ++m)
612 (my_degree + 1)][m][l] = 0.0;
622 [l] = unit_point_grads
623 [i + (j + (k + 2) * (my_degree + 2) + 2) *
634 p1_grads[i + ((j + 2) * (my_degree + 2) + k + 2) *
643 p1_grads[i + ((j + 2) * (my_degree + 2) + k + 2) *
652 p1_grads[i + ((j + 2) * (my_degree + 2) + k + 2) *
660 (my_degree + 1)][2][0] =
661 p2_grads[i + (j + (k + 2) * (my_degree + 2) + 2) *
669 (my_degree + 1)][2][1] =
670 p2_grads[i + (j + (k + 2) * (my_degree + 2) + 2) *
678 (my_degree + 1)][2][2] =
679 p2_grads[i + (j + (k + 2) * (my_degree + 2) + 2) *
683 for (
unsigned int k = 0; k < 2; ++k)
685 for (
unsigned int l = 0; l < 2; ++l)
686 for (
unsigned int m = 0; m < dim; ++m)
688 for (
unsigned int n = 0; n < 2; ++n)
692 (2 * (k + 2 * l) + 1) * my_degree +
694 (my_degree + 1)][n + l][m] = 0.0;
696 2 * (k + 2 * (l + 1)) *
704 grads[(i + 2 * k * (my_degree + 1) +
709 grads[i + (j + (2 * k + 9) * my_degree +
711 (my_degree + 1)][2 * l][m] = 0.0;
714 for (
unsigned int l = 0; l < dim; ++l)
716 grads[i + (j + (2 * k + 5) * my_degree +
718 (my_degree + 1)][0][l] =
720 ((j + 2) * (my_degree + 2) +
723 grads[(i + 2 * (k + 4) * (my_degree + 1) +
729 (j + k * (my_degree + 2) + 2) *
733 grads[(i + 2 * k * (my_degree + 1) +
737 p1_grads[i + (j + k * (my_degree + 2) + 2) *
739 grads[(i + 2 * k * (my_degree + 1) +
743 p1_grads[i + (j + k * (my_degree + 2) + 2) *
745 grads[(i + 2 * k * (my_degree + 1) +
749 p1_grads[i + (j + k * (my_degree + 2) + 2) *
751 grads[i + (j + (2 * k + 1) * my_degree +
753 (my_degree + 1)][2][0] =
754 p2_grads[i + ((j + 2) * (my_degree + 2) + k) *
756 grads[i + (j + (2 * k + 1) * my_degree +
758 (my_degree + 1)][2][1] =
759 p2_grads[i + ((j + 2) * (my_degree + 2) + k) *
761 grads[i + (j + (2 * k + 1) * my_degree +
763 (my_degree + 1)][2][2] =
764 p2_grads[i + ((j + 2) * (my_degree + 2) + k) *
766 grads[(i + 2 * (k + 2) * (my_degree + 1) +
770 p2_grads[i + (j + k * (my_degree + 2) + 2) *
772 grads[(i + 2 * (k + 2) * (my_degree + 1) +
776 p2_grads[i + (j + k * (my_degree + 2) + 2) *
778 grads[(i + 2 * (k + 2) * (my_degree + 1) +
782 p2_grads[i + (j + k * (my_degree + 2) + 2) *
784 grads[i + (j + (2 * k + 9) * my_degree +
786 (my_degree + 1)][1][0] =
787 p1_grads[i + ((j + 2) * (my_degree + 2) + k) *
789 grads[i + (j + (2 * k + 9) * my_degree +
791 (my_degree + 1)][1][1] =
792 p1_grads[i + ((j + 2) * (my_degree + 2) + k) *
794 grads[i + (j + (2 * k + 9) * my_degree +
796 (my_degree + 1)][1][2] =
797 p1_grads[i + ((j + 2) * (my_degree + 2) + k) *
803 if (grad_grads.size() > 0)
805 for (
unsigned int i = 0; i <= my_degree; ++i)
807 for (
unsigned int j = 0; j < 2; ++j)
809 for (
unsigned int k = 0; k < 2; ++k)
811 for (
unsigned int l = 0; l < dim; ++l)
812 for (
unsigned int m = 0; m < dim; ++m)
814 for (
unsigned int n = 0; n < 2; ++n)
817 (j + 4 * k) * (my_degree + 1)]
819 grad_grads[i + (j + 4 * k + 2) *
820 (my_degree + 1)][n + 1][l]
822 grad_grads[i + (j + 2 * (k + 4)) *
823 (my_degree + 1)][n][l][m] =
827 grad_grads[i + (j + 4 * k + 2) *
828 (my_degree + 1)][0][l][m] =
829 unit_point_grad_grads
830 [i + (j + k * (my_degree + 2)) *
831 (my_degree + 1)][l][m];
834 grad_grads[i + (j + 2 * (k + 4)) *
835 (my_degree + 1)][2][0][0] =
836 p2_grad_grads[i + (j + k * (my_degree + 2)) *
837 (my_degree + 1)][1][1];
838 grad_grads[i + (j + 2 * (k + 4)) *
839 (my_degree + 1)][2][0][1] =
840 p2_grad_grads[i + (j + k * (my_degree + 2)) *
841 (my_degree + 1)][1][2];
842 grad_grads[i + (j + 2 * (k + 4)) *
843 (my_degree + 1)][2][0][2] =
844 p2_grad_grads[i + (j + k * (my_degree + 2)) *
845 (my_degree + 1)][1][0];
846 grad_grads[i + (j + 2 * (k + 4)) *
847 (my_degree + 1)][2][1][0] =
848 p2_grad_grads[i + (j + k * (my_degree + 2)) *
849 (my_degree + 1)][2][1];
850 grad_grads[i + (j + 2 * (k + 4)) *
851 (my_degree + 1)][2][1][1] =
852 p2_grad_grads[i + (j + k * (my_degree + 2)) *
853 (my_degree + 1)][2][2];
854 grad_grads[i + (j + 2 * (k + 4)) *
855 (my_degree + 1)][2][1][2] =
856 p2_grad_grads[i + (j + k * (my_degree + 2)) *
857 (my_degree + 1)][2][0];
858 grad_grads[i + (j + 2 * (k + 4)) *
859 (my_degree + 1)][2][2][0] =
860 p2_grad_grads[i + (j + k * (my_degree + 2)) *
861 (my_degree + 1)][0][1];
862 grad_grads[i + (j + 2 * (k + 4)) *
863 (my_degree + 1)][2][2][1] =
864 p2_grad_grads[i + (j + k * (my_degree + 2)) *
865 (my_degree + 1)][0][2];
866 grad_grads[i + (j + 2 * (k + 4)) *
867 (my_degree + 1)][2][2][2] =
868 p2_grad_grads[i + (j + k * (my_degree + 2)) *
869 (my_degree + 1)][0][0];
872 grad_grads[i + j * (my_degree + 1)][1][0][0] =
873 p1_grad_grads[i + j * (my_degree + 1) * (my_degree + 2)]
875 grad_grads[i + j * (my_degree + 1)][1][0][1] =
876 p1_grad_grads[i + j * (my_degree + 1) * (my_degree + 2)]
878 grad_grads[i + j * (my_degree + 1)][1][0][2] =
879 p1_grad_grads[i + j * (my_degree + 1) * (my_degree + 2)]
881 grad_grads[i + j * (my_degree + 1)][1][1][0] =
882 p1_grad_grads[i + j * (my_degree + 1) * (my_degree + 2)]
884 grad_grads[i + j * (my_degree + 1)][1][1][1] =
885 p1_grad_grads[i + j * (my_degree + 1) * (my_degree + 2)]
887 grad_grads[i + j * (my_degree + 1)][1][1][2] =
888 p1_grad_grads[i + j * (my_degree + 1) * (my_degree + 2)]
890 grad_grads[i + j * (my_degree + 1)][1][2][0] =
891 p1_grad_grads[i + j * (my_degree + 1) * (my_degree + 2)]
893 grad_grads[i + j * (my_degree + 1)][1][2][1] =
894 p1_grad_grads[i + j * (my_degree + 1) * (my_degree + 2)]
896 grad_grads[i + j * (my_degree + 1)][1][2][2] =
897 p1_grad_grads[i + j * (my_degree + 1) * (my_degree + 2)]
901 grad_grads[i + 4 * (my_degree + 1)][1][0][0] =
902 p1_grad_grads[i + my_degree + 1][2][2];
903 grad_grads[i + 4 * (my_degree + 1)][1][0][1] =
904 p1_grad_grads[i + my_degree + 1][2][0];
905 grad_grads[i + 4 * (my_degree + 1)][1][0][2] =
906 p1_grad_grads[i + my_degree + 1][2][1];
907 grad_grads[i + 4 * (my_degree + 1)][1][1][0] =
908 p1_grad_grads[i + my_degree + 1][0][2];
909 grad_grads[i + 4 * (my_degree + 1)][1][1][1] =
910 p1_grad_grads[i + my_degree + 1][0][0];
911 grad_grads[i + 4 * (my_degree + 1)][1][1][2] =
912 p1_grad_grads[i + my_degree + 1][0][1];
913 grad_grads[i + 4 * (my_degree + 1)][1][2][0] =
914 p1_grad_grads[i + my_degree + 1][1][2];
915 grad_grads[i + 4 * (my_degree + 1)][1][2][1] =
916 p1_grad_grads[i + my_degree + 1][1][0];
917 grad_grads[i + 4 * (my_degree + 1)][1][2][2] =
918 p1_grad_grads[i + my_degree + 1][1][1];
919 grad_grads[i + 5 * (my_degree + 1)][1][0][0] =
920 p1_grad_grads[i + (my_degree + 1) * (my_degree + 3)][2][2];
921 grad_grads[i + 5 * (my_degree + 1)][1][0][1] =
922 p1_grad_grads[i + (my_degree + 1) * (my_degree + 3)][2][0];
923 grad_grads[i + 5 * (my_degree + 1)][1][0][2] =
924 p1_grad_grads[i + (my_degree + 1) * (my_degree + 3)][2][1];
925 grad_grads[i + 5 * (my_degree + 1)][1][1][0] =
926 p1_grad_grads[i + (my_degree + 1) * (my_degree + 3)][0][2];
927 grad_grads[i + 5 * (my_degree + 1)][1][1][1] =
928 p1_grad_grads[i + (my_degree + 1) * (my_degree + 3)][0][0];
929 grad_grads[i + 5 * (my_degree + 1)][1][1][2] =
930 p1_grad_grads[i + (my_degree + 1) * (my_degree + 3)][0][1];
931 grad_grads[i + 5 * (my_degree + 1)][1][2][0] =
932 p1_grad_grads[i + (my_degree + 1) * (my_degree + 3)][1][2];
933 grad_grads[i + 5 * (my_degree + 1)][1][2][1] =
934 p1_grad_grads[i + (my_degree + 1) * (my_degree + 3)][1][0];
935 grad_grads[i + 5 * (my_degree + 1)][1][2][2] =
936 p1_grad_grads[i + (my_degree + 1) * (my_degree + 3)][1][1];
940 for (
unsigned int i = 0; i <= my_degree; ++i)
941 for (
unsigned int j = 0; j < my_degree; ++j)
943 for (
unsigned int k = 0; k < my_degree; ++k)
945 for (
unsigned int l = 0; l < dim; ++l)
946 for (
unsigned int m = 0; m < dim; ++m)
948 for (
unsigned int n = 0; n < 2; ++n)
973 dim>::faces_per_cell +
977 (my_degree + 1)][n][l][m] = 0.0;
988 [m] = unit_point_grad_grads
989 [i + (j + (k + 2) * (my_degree + 2) + 2) *
990 (my_degree + 1)][l][m];
1001 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k +
1003 (my_degree + 1)][2][2];
1012 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k +
1014 (my_degree + 1)][2][0];
1023 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k +
1025 (my_degree + 1)][2][1];
1034 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k +
1036 (my_degree + 1)][0][2];
1045 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k +
1047 (my_degree + 1)][0][0];
1056 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k +
1058 (my_degree + 1)][0][1];
1067 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k +
1069 (my_degree + 1)][1][2];
1078 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k +
1080 (my_degree + 1)][1][0];
1089 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k +
1091 (my_degree + 1)][1][1];
1099 (my_degree + 1)][2][0][0] =
1101 (j + (k + 2) * (my_degree + 2) + 2) *
1102 (my_degree + 1)][1][1];
1110 (my_degree + 1)][2][0][1] =
1112 (j + (k + 2) * (my_degree + 2) + 2) *
1113 (my_degree + 1)][1][2];
1121 (my_degree + 1)][2][0][2] =
1123 (j + (k + 2) * (my_degree + 2) + 2) *
1124 (my_degree + 1)][1][0];
1132 (my_degree + 1)][2][1][0] =
1134 (j + (k + 2) * (my_degree + 2) + 2) *
1135 (my_degree + 1)][2][1];
1143 (my_degree + 1)][2][1][1] =
1145 (j + (k + 2) * (my_degree + 2) + 2) *
1146 (my_degree + 1)][2][2];
1154 (my_degree + 1)][2][1][2] =
1156 (j + (k + 2) * (my_degree + 2) + 2) *
1157 (my_degree + 1)][2][0];
1165 (my_degree + 1)][2][2][0] =
1167 (j + (k + 2) * (my_degree + 2) + 2) *
1168 (my_degree + 1)][0][1];
1176 (my_degree + 1)][2][2][1] =
1178 (j + (k + 2) * (my_degree + 2) + 2) *
1179 (my_degree + 1)][0][2];
1187 (my_degree + 1)][2][2][2] =
1189 (j + (k + 2) * (my_degree + 2) + 2) *
1190 (my_degree + 1)][0][0];
1193 for (
unsigned int k = 0; k < 2; ++k)
1195 for (
unsigned int l = 0; l < dim; ++l)
1196 for (
unsigned int m = 0; m < dim; ++m)
1198 for (
unsigned int n = 0; n < 2; ++n)
1200 for (
unsigned int o = 0; o < 2; ++o)
1205 (2 * (k + 2 * n) + 1) * my_degree +
1207 (my_degree + 1)][o + n][l][m] =
1211 2 * (k + 2 * (n + 1)) *
1217 [o + k][l][m] = 0.0;
1221 [(i + 2 * k * (my_degree + 1) +
1225 [2 * n][l][m] = 0.0;
1227 [i + (j + (2 * k + 9) * my_degree +
1229 (my_degree + 1)][2 * n][l][m] =
1234 (j + (2 * k + 5) * my_degree +
1236 (my_degree + 1)][0][l][m] =
1237 unit_point_grad_grads
1238 [i + ((j + 2) * (my_degree + 2) + k) *
1239 (my_degree + 1)][l][m];
1240 grad_grads[(i + 2 * (k + 4) * (my_degree + 1) +
1245 [l][m] = unit_point_grad_grads
1246 [i + (j + k * (my_degree + 2) + 2) *
1247 (my_degree + 1)][l][m];
1251 [(i + 2 * k * (my_degree + 1) +
1255 p1_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1256 (my_degree + 1)][2][2];
1258 [(i + 2 * k * (my_degree + 1) +
1262 p1_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1263 (my_degree + 1)][2][0];
1265 [(i + 2 * k * (my_degree + 1) +
1269 p1_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1270 (my_degree + 1)][2][1];
1272 [(i + 2 * k * (my_degree + 1) +
1276 p1_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1277 (my_degree + 1)][0][2];
1279 [(i + 2 * k * (my_degree + 1) +
1283 p1_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1284 (my_degree + 1)][0][0];
1286 [(i + 2 * k * (my_degree + 1) +
1290 p1_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1291 (my_degree + 1)][0][1];
1293 [(i + 2 * k * (my_degree + 1) +
1297 p1_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1298 (my_degree + 1)][1][2];
1300 [(i + 2 * k * (my_degree + 1) +
1304 p1_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1305 (my_degree + 1)][1][0];
1307 [(i + 2 * k * (my_degree + 1) +
1311 p1_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1312 (my_degree + 1)][1][1];
1313 grad_grads[i + (j + (2 * k + 1) * my_degree +
1315 (my_degree + 1)][2][0][0] =
1316 p2_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1317 (my_degree + 1)][1][1];
1318 grad_grads[i + (j + (2 * k + 1) * my_degree +
1320 (my_degree + 1)][2][0][1] =
1321 p2_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1322 (my_degree + 1)][1][2];
1323 grad_grads[i + (j + (2 * k + 1) * my_degree +
1325 (my_degree + 1)][2][0][2] =
1326 p2_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1327 (my_degree + 1)][1][0];
1328 grad_grads[i + (j + (2 * k + 1) * my_degree +
1330 (my_degree + 1)][2][1][0] =
1331 p2_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1332 (my_degree + 1)][2][1];
1333 grad_grads[i + (j + (2 * k + 1) * my_degree +
1335 (my_degree + 1)][2][1][1] =
1336 p2_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1337 (my_degree + 1)][2][2];
1338 grad_grads[i + (j + (2 * k + 1) * my_degree +
1340 (my_degree + 1)][2][1][2] =
1341 p2_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1342 (my_degree + 1)][2][0];
1343 grad_grads[i + (j + (2 * k + 1) * my_degree +
1345 (my_degree + 1)][2][2][0] =
1346 p2_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1347 (my_degree + 1)][0][1];
1348 grad_grads[i + (j + (2 * k + 1) * my_degree +
1350 (my_degree + 1)][2][2][1] =
1351 p2_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1352 (my_degree + 1)][0][2];
1353 grad_grads[i + (j + (2 * k + 1) * my_degree +
1355 (my_degree + 1)][2][2][2] =
1356 p2_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1357 (my_degree + 1)][0][0];
1359 [(i + 2 * (k + 2) * (my_degree + 1) +
1363 p2_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1364 (my_degree + 1)][1][1];
1366 [(i + 2 * (k + 2) * (my_degree + 1) +
1370 p2_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1371 (my_degree + 1)][1][2];
1373 [(i + 2 * (k + 2) * (my_degree + 1) +
1377 p2_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1378 (my_degree + 1)][1][0];
1380 [(i + 2 * (k + 2) * (my_degree + 1) +
1384 p2_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1385 (my_degree + 1)][2][1];
1387 [(i + 2 * (k + 2) * (my_degree + 1) +
1391 p2_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1392 (my_degree + 1)][2][2];
1394 [(i + 2 * (k + 2) * (my_degree + 1) +
1398 p2_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1399 (my_degree + 1)][2][0];
1401 [(i + 2 * (k + 2) * (my_degree + 1) +
1405 p2_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1406 (my_degree + 1)][0][1];
1408 [(i + 2 * (k + 2) * (my_degree + 1) +
1412 p2_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1413 (my_degree + 1)][0][2];
1415 [(i + 2 * (k + 2) * (my_degree + 1) +
1419 p2_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1420 (my_degree + 1)][0][0];
1421 grad_grads[i + (j + (2 * k + 9) * my_degree +
1423 (my_degree + 1)][1][0][0] =
1424 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1425 (my_degree + 1)][2][2];
1426 grad_grads[i + (j + (2 * k + 9) * my_degree +
1428 (my_degree + 1)][1][0][1] =
1429 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1430 (my_degree + 1)][2][0];
1431 grad_grads[i + (j + (2 * k + 9) * my_degree +
1433 (my_degree + 1)][1][0][2] =
1434 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1435 (my_degree + 1)][2][1];
1436 grad_grads[i + (j + (2 * k + 9) * my_degree +
1438 (my_degree + 1)][1][1][0] =
1439 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1440 (my_degree + 1)][0][2];
1441 grad_grads[i + (j + (2 * k + 9) * my_degree +
1443 (my_degree + 1)][1][1][1] =
1444 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1445 (my_degree + 1)][0][0];
1446 grad_grads[i + (j + (2 * k + 9) * my_degree +
1448 (my_degree + 1)][1][1][2] =
1449 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1450 (my_degree + 1)][0][1];
1451 grad_grads[i + (j + (2 * k + 9) * my_degree +
1453 (my_degree + 1)][1][2][0] =
1454 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1455 (my_degree + 1)][1][2];
1456 grad_grads[i + (j + (2 * k + 9) * my_degree +
1458 (my_degree + 1)][1][2][1] =
1459 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1460 (my_degree + 1)][1][0];
1461 grad_grads[i + (j + (2 * k + 9) * my_degree +
1463 (my_degree + 1)][1][2][2] =
1464 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1465 (my_degree + 1)][1][1];