61 Assert(values.size() == this->n() || values.empty(),
63 Assert(grads.size() == this->n() || grads.empty(),
65 Assert(grad_grads.size() == this->n() || grad_grads.empty(),
67 Assert(third_derivatives.size() == this->n() || third_derivatives.empty(),
69 Assert(fourth_derivatives.size() == this->n() || fourth_derivatives.empty(),
73 (void)third_derivatives;
75 (void)fourth_derivatives;
82 const unsigned int n_basis = polynomial_space.n();
83 const unsigned int my_degree = this->degree();
84 std::vector<double> unit_point_values((values.empty()) ? 0 : n_basis);
85 std::vector<Tensor<1, dim>> unit_point_grads((grads.empty()) ? 0 : n_basis);
86 std::vector<Tensor<2, dim>> unit_point_grad_grads(
87 (grad_grads.empty()) ? 0 : n_basis);
88 std::vector<Tensor<3, dim>> empty_vector_of_3rd_order_tensors;
89 std::vector<Tensor<4, dim>> empty_vector_of_4th_order_tensors;
95 polynomial_space.evaluate(unit_point,
98 unit_point_grad_grads,
99 empty_vector_of_3rd_order_tensors,
100 empty_vector_of_4th_order_tensors);
104 if (values.size() > 0)
105 for (
unsigned int i = 0; i < unit_point_values.size(); ++i)
106 values[i][0] = unit_point_values[i];
108 if (grads.size() > 0)
109 for (
unsigned int i = 0; i < unit_point_grads.size(); ++i)
110 grads[i][0][0] = unit_point_grads[i][0];
112 if (grad_grads.size() > 0)
113 for (
unsigned int i = 0; i < unit_point_grad_grads.size(); ++i)
114 grad_grads[i][0][0][0] = unit_point_grad_grads[i][0][0];
121 polynomial_space.evaluate(unit_point,
124 unit_point_grad_grads,
125 empty_vector_of_3rd_order_tensors,
126 empty_vector_of_4th_order_tensors);
135 p[0] = unit_point[1];
136 p[1] = unit_point[0];
138 std::vector<double> p_values((values.empty()) ? 0 : n_basis);
139 std::vector<Tensor<1, dim>> p_grads((grads.empty()) ? 0 : n_basis);
140 std::vector<Tensor<2, dim>> p_grad_grads(
141 (grad_grads.empty()) ? 0 : n_basis);
143 polynomial_space.evaluate(p,
147 empty_vector_of_3rd_order_tensors,
148 empty_vector_of_4th_order_tensors);
152 if (values.size() > 0)
154 for (
unsigned int i = 0; i <= my_degree; ++i)
155 for (
unsigned int j = 0; j < 2; ++j)
157 values[i + j * (my_degree + 1)][0] = 0.0;
158 values[i + j * (my_degree + 1)][1] =
159 p_values[i + j * (my_degree + 1)];
160 values[i + (j + 2) * (my_degree + 1)][0] =
161 unit_point_values[i + j * (my_degree + 1)];
162 values[i + (j + 2) * (my_degree + 1)][1] = 0.0;
166 for (
unsigned int i = 0; i <= my_degree; ++i)
167 for (
unsigned int j = 0; j < my_degree; ++j)
172 unit_point_values[i + (j + 2) * (my_degree + 1)];
176 values[i + (j + my_degree +
178 (my_degree + 1)][0] = 0.0;
179 values[i + (j + my_degree +
181 (my_degree + 1)][1] =
182 p_values[i + (j + 2) * (my_degree + 1)];
186 if (grads.size() > 0)
188 for (
unsigned int i = 0; i <= my_degree; ++i)
189 for (
unsigned int j = 0; j < 2; ++j)
191 for (
unsigned int k = 0; k < dim; ++k)
193 grads[i + j * (my_degree + 1)][0][k] = 0.0;
194 grads[i + (j + 2) * (my_degree + 1)][0][k] =
195 unit_point_grads[i + j * (my_degree + 1)][k];
196 grads[i + (j + 2) * (my_degree + 1)][1][k] = 0.0;
199 grads[i + j * (my_degree + 1)][1][0] =
200 p_grads[i + j * (my_degree + 1)][1];
201 grads[i + j * (my_degree + 1)][1][1] =
202 p_grads[i + j * (my_degree + 1)][0];
206 for (
unsigned int i = 0; i <= my_degree; ++i)
207 for (
unsigned int j = 0; j < my_degree; ++j)
209 for (
unsigned int k = 0; k < dim; ++k)
214 unit_point_grads[i + (j + 2) * (my_degree + 1)][k];
219 grads[i + (j + my_degree +
221 (my_degree + 1)][0][k] = 0.0;
224 grads[i + (j + my_degree +
226 (my_degree + 1)][1][0] =
227 p_grads[i + (j + 2) * (my_degree + 1)][1];
228 grads[i + (j + my_degree +
230 (my_degree + 1)][1][1] =
231 p_grads[i + (j + 2) * (my_degree + 1)][0];
235 if (grad_grads.size() > 0)
237 for (
unsigned int i = 0; i <= my_degree; ++i)
238 for (
unsigned int j = 0; j < 2; ++j)
240 for (
unsigned int k = 0; k < dim; ++k)
241 for (
unsigned int l = 0; l < dim; ++l)
243 grad_grads[i + j * (my_degree + 1)][0][k][l] = 0.0;
244 grad_grads[i + (j + 2) * (my_degree + 1)][0][k][l] =
245 unit_point_grad_grads[i + j * (my_degree + 1)][k]
247 grad_grads[i + (j + 2) * (my_degree + 1)][1][k][l] =
251 grad_grads[i + j * (my_degree + 1)][1][0][0] =
252 p_grad_grads[i + j * (my_degree + 1)][1][1];
253 grad_grads[i + j * (my_degree + 1)][1][0][1] =
254 p_grad_grads[i + j * (my_degree + 1)][1][0];
255 grad_grads[i + j * (my_degree + 1)][1][1][0] =
256 p_grad_grads[i + j * (my_degree + 1)][0][1];
257 grad_grads[i + j * (my_degree + 1)][1][1][1] =
258 p_grad_grads[i + j * (my_degree + 1)][0][0];
262 for (
unsigned int i = 0; i <= my_degree; ++i)
263 for (
unsigned int j = 0; j < my_degree; ++j)
265 for (
unsigned int k = 0; k < dim; ++k)
266 for (
unsigned int l = 0; l < dim; ++l)
271 [k][l] = unit_point_grad_grads
272 [i + (j + 2) * (my_degree + 1)][k][l];
277 grad_grads[i + (j + my_degree +
279 (my_degree + 1)][0][k][l] = 0.0;
282 grad_grads[i + (j + my_degree +
284 (my_degree + 1)][1][0][0] =
285 p_grad_grads[i + (j + 2) * (my_degree + 1)][1][1];
286 grad_grads[i + (j + my_degree +
288 (my_degree + 1)][1][0][1] =
289 p_grad_grads[i + (j + 2) * (my_degree + 1)][1][0];
290 grad_grads[i + (j + my_degree +
292 (my_degree + 1)][1][1][0] =
293 p_grad_grads[i + (j + 2) * (my_degree + 1)][0][1];
294 grad_grads[i + (j + my_degree +
296 (my_degree + 1)][1][1][1] =
297 p_grad_grads[i + (j + 2) * (my_degree + 1)][0][0];
306 polynomial_space.evaluate(unit_point,
309 unit_point_grad_grads,
310 empty_vector_of_3rd_order_tensors,
311 empty_vector_of_4th_order_tensors);
320 std::vector<double> p1_values((values.empty()) ? 0 : n_basis);
321 std::vector<Tensor<1, dim>> p1_grads((grads.empty()) ? 0 : n_basis);
322 std::vector<Tensor<2, dim>> p1_grad_grads(
323 (grad_grads.empty()) ? 0 : n_basis);
324 std::vector<double> p2_values((values.empty()) ? 0 : n_basis);
325 std::vector<Tensor<1, dim>> p2_grads((grads.empty()) ? 0 : n_basis);
326 std::vector<Tensor<2, dim>> p2_grad_grads(
327 (grad_grads.empty()) ? 0 : n_basis);
329 p1[0] = unit_point[1];
330 p1[1] = unit_point[2];
331 p1[2] = unit_point[0];
332 polynomial_space.evaluate(p1,
336 empty_vector_of_3rd_order_tensors,
337 empty_vector_of_4th_order_tensors);
338 p2[0] = unit_point[2];
339 p2[1] = unit_point[0];
340 p2[2] = unit_point[1];
341 polynomial_space.evaluate(p2,
345 empty_vector_of_3rd_order_tensors,
346 empty_vector_of_4th_order_tensors);
350 if (values.size() > 0)
352 for (
unsigned int i = 0; i <= my_degree; ++i)
354 for (
unsigned int j = 0; j < 2; ++j)
356 for (
unsigned int k = 0; k < 2; ++k)
358 for (
unsigned int l = 0; l < 2; ++l)
360 values[i + (j + 4 * k) * (my_degree + 1)][2 * l] =
362 values[i + (j + 4 * k + 2) * (my_degree + 1)]
364 values[i + (j + 2 * (k + 4)) * (my_degree + 1)]
368 values[i + (j + 4 * k + 2) * (my_degree + 1)][0] =
369 unit_point_values[i + (j + k * (my_degree + 2)) *
371 values[i + (j + 2 * (k + 4)) * (my_degree + 1)][2] =
372 p2_values[i + (j + k * (my_degree + 2)) *
376 values[i + j * (my_degree + 1)][1] =
377 p1_values[i + j * (my_degree + 1) * (my_degree + 2)];
380 values[i + 4 * (my_degree + 1)][1] =
381 p1_values[i + my_degree + 1];
382 values[i + 5 * (my_degree + 1)][1] =
383 p1_values[i + (my_degree + 1) * (my_degree + 3)];
387 for (
unsigned int i = 0; i <= my_degree; ++i)
388 for (
unsigned int j = 0; j < my_degree; ++j)
390 for (
unsigned int k = 0; k < my_degree; ++k)
392 for (
unsigned int l = 0; l < 2; ++l)
418 (my_degree + 1)][l] = 0.0;
427 unit_point_values[i +
428 (j + (k + 2) * (my_degree + 2) +
438 p1_values[i + ((j + 2) * (my_degree + 2) + k + 2) *
446 (my_degree + 1)][2] =
447 p2_values[i + (j + (k + 2) * (my_degree + 2) + 2) *
451 for (
unsigned int k = 0; k < 2; ++k)
453 for (
unsigned int l = 0; l < 2; ++l)
455 for (
unsigned int m = 0; m < 2; ++m)
459 (2 * (k + 2 * l) + 1) * my_degree +
461 (my_degree + 1)][m + l] = 0.0;
463 2 * (k + 2 * (l + 1)) *
471 values[(i + 2 * k * (my_degree + 1) +
476 values[i + (j + (2 * k + 9) * my_degree +
478 (my_degree + 1)][2 * l] = 0.0;
481 values[(i + 2 * k * (my_degree + 1) +
485 p1_values[i + (j + k * (my_degree + 2) + 2) *
487 values[i + (j + (2 * k + 1) * my_degree +
489 (my_degree + 1)][2] =
490 p2_values[i + ((j + 2) * (my_degree + 2) + k) *
492 values[(i + 2 * (k + 2) * (my_degree + 1) +
496 p2_values[i + (j + k * (my_degree + 2) + 2) *
498 values[i + (j + (2 * k + 5) * my_degree +
500 (my_degree + 1)][0] =
501 unit_point_values[i +
502 ((j + 2) * (my_degree + 2) + k) *
504 values[(i + 2 * (k + 4) * (my_degree + 1) +
508 unit_point_values[i +
509 (j + k * (my_degree + 2) + 2) *
511 values[i + (j + (2 * k + 9) * my_degree +
513 (my_degree + 1)][1] =
514 p1_values[i + ((j + 2) * (my_degree + 2) + k) *
520 if (grads.size() > 0)
522 for (
unsigned int i = 0; i <= my_degree; ++i)
524 for (
unsigned int j = 0; j < 2; ++j)
526 for (
unsigned int k = 0; k < 2; ++k)
528 for (
unsigned int l = 0; l < 2; ++l)
529 for (
unsigned int m = 0; m < dim; ++m)
531 grads[i + (j + 4 * k) * (my_degree + 1)][2 * l]
533 grads[i + (j + 4 * k + 2) * (my_degree + 1)]
535 grads[i + (j + 2 * (k + 4)) * (my_degree + 1)]
539 for (
unsigned int l = 0; l < dim; ++l)
540 grads[i + (j + 4 * k + 2) * (my_degree + 1)][0][l] =
541 unit_point_grads[i + (j + k * (my_degree + 2)) *
544 grads[i + (j + 2 * (k + 4)) * (my_degree + 1)][2][0] =
545 p2_grads[i + (j + k * (my_degree + 2)) *
547 grads[i + (j + 2 * (k + 4)) * (my_degree + 1)][2][1] =
548 p2_grads[i + (j + k * (my_degree + 2)) *
550 grads[i + (j + 2 * (k + 4)) * (my_degree + 1)][2][2] =
551 p2_grads[i + (j + k * (my_degree + 2)) *
555 grads[i + j * (my_degree + 1)][1][0] =
556 p1_grads[i + j * (my_degree + 1) * (my_degree + 2)][2];
557 grads[i + j * (my_degree + 1)][1][1] =
558 p1_grads[i + j * (my_degree + 1) * (my_degree + 2)][0];
559 grads[i + j * (my_degree + 1)][1][2] =
560 p1_grads[i + j * (my_degree + 1) * (my_degree + 2)][1];
563 grads[i + 4 * (my_degree + 1)][1][0] =
564 p1_grads[i + my_degree + 1][2];
565 grads[i + 4 * (my_degree + 1)][1][1] =
566 p1_grads[i + my_degree + 1][0];
567 grads[i + 4 * (my_degree + 1)][1][2] =
568 p1_grads[i + my_degree + 1][1];
569 grads[i + 5 * (my_degree + 1)][1][0] =
570 p1_grads[i + (my_degree + 1) * (my_degree + 3)][2];
571 grads[i + 5 * (my_degree + 1)][1][1] =
572 p1_grads[i + (my_degree + 1) * (my_degree + 3)][0];
573 grads[i + 5 * (my_degree + 1)][1][2] =
574 p1_grads[i + (my_degree + 1) * (my_degree + 3)][1];
578 for (
unsigned int i = 0; i <= my_degree; ++i)
579 for (
unsigned int j = 0; j < my_degree; ++j)
581 for (
unsigned int k = 0; k < my_degree; ++k)
583 for (
unsigned int l = 0; l < dim; ++l)
585 for (
unsigned int m = 0; m < 2; ++m)
614 (my_degree + 1)][m][l] = 0.0;
624 [l] = unit_point_grads
625 [i + (j + (k + 2) * (my_degree + 2) + 2) *
636 p1_grads[i + ((j + 2) * (my_degree + 2) + k + 2) *
645 p1_grads[i + ((j + 2) * (my_degree + 2) + k + 2) *
654 p1_grads[i + ((j + 2) * (my_degree + 2) + k + 2) *
662 (my_degree + 1)][2][0] =
663 p2_grads[i + (j + (k + 2) * (my_degree + 2) + 2) *
671 (my_degree + 1)][2][1] =
672 p2_grads[i + (j + (k + 2) * (my_degree + 2) + 2) *
680 (my_degree + 1)][2][2] =
681 p2_grads[i + (j + (k + 2) * (my_degree + 2) + 2) *
685 for (
unsigned int k = 0; k < 2; ++k)
687 for (
unsigned int l = 0; l < 2; ++l)
688 for (
unsigned int m = 0; m < dim; ++m)
690 for (
unsigned int n = 0; n < 2; ++n)
694 (2 * (k + 2 * l) + 1) * my_degree +
696 (my_degree + 1)][n + l][m] = 0.0;
698 2 * (k + 2 * (l + 1)) *
706 grads[(i + 2 * k * (my_degree + 1) +
711 grads[i + (j + (2 * k + 9) * my_degree +
713 (my_degree + 1)][2 * l][m] = 0.0;
716 for (
unsigned int l = 0; l < dim; ++l)
718 grads[i + (j + (2 * k + 5) * my_degree +
720 (my_degree + 1)][0][l] =
722 ((j + 2) * (my_degree + 2) +
725 grads[(i + 2 * (k + 4) * (my_degree + 1) +
731 (j + k * (my_degree + 2) + 2) *
735 grads[(i + 2 * k * (my_degree + 1) +
739 p1_grads[i + (j + k * (my_degree + 2) + 2) *
741 grads[(i + 2 * k * (my_degree + 1) +
745 p1_grads[i + (j + k * (my_degree + 2) + 2) *
747 grads[(i + 2 * k * (my_degree + 1) +
751 p1_grads[i + (j + k * (my_degree + 2) + 2) *
753 grads[i + (j + (2 * k + 1) * my_degree +
755 (my_degree + 1)][2][0] =
756 p2_grads[i + ((j + 2) * (my_degree + 2) + k) *
758 grads[i + (j + (2 * k + 1) * my_degree +
760 (my_degree + 1)][2][1] =
761 p2_grads[i + ((j + 2) * (my_degree + 2) + k) *
763 grads[i + (j + (2 * k + 1) * my_degree +
765 (my_degree + 1)][2][2] =
766 p2_grads[i + ((j + 2) * (my_degree + 2) + k) *
768 grads[(i + 2 * (k + 2) * (my_degree + 1) +
772 p2_grads[i + (j + k * (my_degree + 2) + 2) *
774 grads[(i + 2 * (k + 2) * (my_degree + 1) +
778 p2_grads[i + (j + k * (my_degree + 2) + 2) *
780 grads[(i + 2 * (k + 2) * (my_degree + 1) +
784 p2_grads[i + (j + k * (my_degree + 2) + 2) *
786 grads[i + (j + (2 * k + 9) * my_degree +
788 (my_degree + 1)][1][0] =
789 p1_grads[i + ((j + 2) * (my_degree + 2) + k) *
791 grads[i + (j + (2 * k + 9) * my_degree +
793 (my_degree + 1)][1][1] =
794 p1_grads[i + ((j + 2) * (my_degree + 2) + k) *
796 grads[i + (j + (2 * k + 9) * my_degree +
798 (my_degree + 1)][1][2] =
799 p1_grads[i + ((j + 2) * (my_degree + 2) + k) *
805 if (grad_grads.size() > 0)
807 for (
unsigned int i = 0; i <= my_degree; ++i)
809 for (
unsigned int j = 0; j < 2; ++j)
811 for (
unsigned int k = 0; k < 2; ++k)
813 for (
unsigned int l = 0; l < dim; ++l)
814 for (
unsigned int m = 0; m < dim; ++m)
816 for (
unsigned int n = 0; n < 2; ++n)
819 (j + 4 * k) * (my_degree + 1)]
821 grad_grads[i + (j + 4 * k + 2) *
822 (my_degree + 1)][n + 1][l]
824 grad_grads[i + (j + 2 * (k + 4)) *
825 (my_degree + 1)][n][l][m] =
829 grad_grads[i + (j + 4 * k + 2) *
830 (my_degree + 1)][0][l][m] =
831 unit_point_grad_grads
832 [i + (j + k * (my_degree + 2)) *
833 (my_degree + 1)][l][m];
836 grad_grads[i + (j + 2 * (k + 4)) *
837 (my_degree + 1)][2][0][0] =
838 p2_grad_grads[i + (j + k * (my_degree + 2)) *
839 (my_degree + 1)][1][1];
840 grad_grads[i + (j + 2 * (k + 4)) *
841 (my_degree + 1)][2][0][1] =
842 p2_grad_grads[i + (j + k * (my_degree + 2)) *
843 (my_degree + 1)][1][2];
844 grad_grads[i + (j + 2 * (k + 4)) *
845 (my_degree + 1)][2][0][2] =
846 p2_grad_grads[i + (j + k * (my_degree + 2)) *
847 (my_degree + 1)][1][0];
848 grad_grads[i + (j + 2 * (k + 4)) *
849 (my_degree + 1)][2][1][0] =
850 p2_grad_grads[i + (j + k * (my_degree + 2)) *
851 (my_degree + 1)][2][1];
852 grad_grads[i + (j + 2 * (k + 4)) *
853 (my_degree + 1)][2][1][1] =
854 p2_grad_grads[i + (j + k * (my_degree + 2)) *
855 (my_degree + 1)][2][2];
856 grad_grads[i + (j + 2 * (k + 4)) *
857 (my_degree + 1)][2][1][2] =
858 p2_grad_grads[i + (j + k * (my_degree + 2)) *
859 (my_degree + 1)][2][0];
860 grad_grads[i + (j + 2 * (k + 4)) *
861 (my_degree + 1)][2][2][0] =
862 p2_grad_grads[i + (j + k * (my_degree + 2)) *
863 (my_degree + 1)][0][1];
864 grad_grads[i + (j + 2 * (k + 4)) *
865 (my_degree + 1)][2][2][1] =
866 p2_grad_grads[i + (j + k * (my_degree + 2)) *
867 (my_degree + 1)][0][2];
868 grad_grads[i + (j + 2 * (k + 4)) *
869 (my_degree + 1)][2][2][2] =
870 p2_grad_grads[i + (j + k * (my_degree + 2)) *
871 (my_degree + 1)][0][0];
874 grad_grads[i + j * (my_degree + 1)][1][0][0] =
875 p1_grad_grads[i + j * (my_degree + 1) * (my_degree + 2)]
877 grad_grads[i + j * (my_degree + 1)][1][0][1] =
878 p1_grad_grads[i + j * (my_degree + 1) * (my_degree + 2)]
880 grad_grads[i + j * (my_degree + 1)][1][0][2] =
881 p1_grad_grads[i + j * (my_degree + 1) * (my_degree + 2)]
883 grad_grads[i + j * (my_degree + 1)][1][1][0] =
884 p1_grad_grads[i + j * (my_degree + 1) * (my_degree + 2)]
886 grad_grads[i + j * (my_degree + 1)][1][1][1] =
887 p1_grad_grads[i + j * (my_degree + 1) * (my_degree + 2)]
889 grad_grads[i + j * (my_degree + 1)][1][1][2] =
890 p1_grad_grads[i + j * (my_degree + 1) * (my_degree + 2)]
892 grad_grads[i + j * (my_degree + 1)][1][2][0] =
893 p1_grad_grads[i + j * (my_degree + 1) * (my_degree + 2)]
895 grad_grads[i + j * (my_degree + 1)][1][2][1] =
896 p1_grad_grads[i + j * (my_degree + 1) * (my_degree + 2)]
898 grad_grads[i + j * (my_degree + 1)][1][2][2] =
899 p1_grad_grads[i + j * (my_degree + 1) * (my_degree + 2)]
903 grad_grads[i + 4 * (my_degree + 1)][1][0][0] =
904 p1_grad_grads[i + my_degree + 1][2][2];
905 grad_grads[i + 4 * (my_degree + 1)][1][0][1] =
906 p1_grad_grads[i + my_degree + 1][2][0];
907 grad_grads[i + 4 * (my_degree + 1)][1][0][2] =
908 p1_grad_grads[i + my_degree + 1][2][1];
909 grad_grads[i + 4 * (my_degree + 1)][1][1][0] =
910 p1_grad_grads[i + my_degree + 1][0][2];
911 grad_grads[i + 4 * (my_degree + 1)][1][1][1] =
912 p1_grad_grads[i + my_degree + 1][0][0];
913 grad_grads[i + 4 * (my_degree + 1)][1][1][2] =
914 p1_grad_grads[i + my_degree + 1][0][1];
915 grad_grads[i + 4 * (my_degree + 1)][1][2][0] =
916 p1_grad_grads[i + my_degree + 1][1][2];
917 grad_grads[i + 4 * (my_degree + 1)][1][2][1] =
918 p1_grad_grads[i + my_degree + 1][1][0];
919 grad_grads[i + 4 * (my_degree + 1)][1][2][2] =
920 p1_grad_grads[i + my_degree + 1][1][1];
921 grad_grads[i + 5 * (my_degree + 1)][1][0][0] =
922 p1_grad_grads[i + (my_degree + 1) * (my_degree + 3)][2][2];
923 grad_grads[i + 5 * (my_degree + 1)][1][0][1] =
924 p1_grad_grads[i + (my_degree + 1) * (my_degree + 3)][2][0];
925 grad_grads[i + 5 * (my_degree + 1)][1][0][2] =
926 p1_grad_grads[i + (my_degree + 1) * (my_degree + 3)][2][1];
927 grad_grads[i + 5 * (my_degree + 1)][1][1][0] =
928 p1_grad_grads[i + (my_degree + 1) * (my_degree + 3)][0][2];
929 grad_grads[i + 5 * (my_degree + 1)][1][1][1] =
930 p1_grad_grads[i + (my_degree + 1) * (my_degree + 3)][0][0];
931 grad_grads[i + 5 * (my_degree + 1)][1][1][2] =
932 p1_grad_grads[i + (my_degree + 1) * (my_degree + 3)][0][1];
933 grad_grads[i + 5 * (my_degree + 1)][1][2][0] =
934 p1_grad_grads[i + (my_degree + 1) * (my_degree + 3)][1][2];
935 grad_grads[i + 5 * (my_degree + 1)][1][2][1] =
936 p1_grad_grads[i + (my_degree + 1) * (my_degree + 3)][1][0];
937 grad_grads[i + 5 * (my_degree + 1)][1][2][2] =
938 p1_grad_grads[i + (my_degree + 1) * (my_degree + 3)][1][1];
942 for (
unsigned int i = 0; i <= my_degree; ++i)
943 for (
unsigned int j = 0; j < my_degree; ++j)
945 for (
unsigned int k = 0; k < my_degree; ++k)
947 for (
unsigned int l = 0; l < dim; ++l)
948 for (
unsigned int m = 0; m < dim; ++m)
950 for (
unsigned int n = 0; n < 2; ++n)
975 dim>::faces_per_cell +
979 (my_degree + 1)][n][l][m] = 0.0;
990 [m] = unit_point_grad_grads
991 [i + (j + (k + 2) * (my_degree + 2) + 2) *
992 (my_degree + 1)][l][m];
1003 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k +
1005 (my_degree + 1)][2][2];
1014 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k +
1016 (my_degree + 1)][2][0];
1025 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k +
1027 (my_degree + 1)][2][1];
1036 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k +
1038 (my_degree + 1)][0][2];
1047 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k +
1049 (my_degree + 1)][0][0];
1058 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k +
1060 (my_degree + 1)][0][1];
1069 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k +
1071 (my_degree + 1)][1][2];
1080 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k +
1082 (my_degree + 1)][1][0];
1091 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k +
1093 (my_degree + 1)][1][1];
1101 (my_degree + 1)][2][0][0] =
1103 (j + (k + 2) * (my_degree + 2) + 2) *
1104 (my_degree + 1)][1][1];
1112 (my_degree + 1)][2][0][1] =
1114 (j + (k + 2) * (my_degree + 2) + 2) *
1115 (my_degree + 1)][1][2];
1123 (my_degree + 1)][2][0][2] =
1125 (j + (k + 2) * (my_degree + 2) + 2) *
1126 (my_degree + 1)][1][0];
1134 (my_degree + 1)][2][1][0] =
1136 (j + (k + 2) * (my_degree + 2) + 2) *
1137 (my_degree + 1)][2][1];
1145 (my_degree + 1)][2][1][1] =
1147 (j + (k + 2) * (my_degree + 2) + 2) *
1148 (my_degree + 1)][2][2];
1156 (my_degree + 1)][2][1][2] =
1158 (j + (k + 2) * (my_degree + 2) + 2) *
1159 (my_degree + 1)][2][0];
1167 (my_degree + 1)][2][2][0] =
1169 (j + (k + 2) * (my_degree + 2) + 2) *
1170 (my_degree + 1)][0][1];
1178 (my_degree + 1)][2][2][1] =
1180 (j + (k + 2) * (my_degree + 2) + 2) *
1181 (my_degree + 1)][0][2];
1189 (my_degree + 1)][2][2][2] =
1191 (j + (k + 2) * (my_degree + 2) + 2) *
1192 (my_degree + 1)][0][0];
1195 for (
unsigned int k = 0; k < 2; ++k)
1197 for (
unsigned int l = 0; l < dim; ++l)
1198 for (
unsigned int m = 0; m < dim; ++m)
1200 for (
unsigned int n = 0; n < 2; ++n)
1202 for (
unsigned int o = 0; o < 2; ++o)
1207 (2 * (k + 2 * n) + 1) * my_degree +
1209 (my_degree + 1)][o + n][l][m] =
1213 2 * (k + 2 * (n + 1)) *
1219 [o + k][l][m] = 0.0;
1223 [(i + 2 * k * (my_degree + 1) +
1227 [2 * n][l][m] = 0.0;
1229 [i + (j + (2 * k + 9) * my_degree +
1231 (my_degree + 1)][2 * n][l][m] =
1236 (j + (2 * k + 5) * my_degree +
1238 (my_degree + 1)][0][l][m] =
1239 unit_point_grad_grads
1240 [i + ((j + 2) * (my_degree + 2) + k) *
1241 (my_degree + 1)][l][m];
1242 grad_grads[(i + 2 * (k + 4) * (my_degree + 1) +
1247 [l][m] = unit_point_grad_grads
1248 [i + (j + k * (my_degree + 2) + 2) *
1249 (my_degree + 1)][l][m];
1253 [(i + 2 * k * (my_degree + 1) +
1257 p1_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1258 (my_degree + 1)][2][2];
1260 [(i + 2 * k * (my_degree + 1) +
1264 p1_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1265 (my_degree + 1)][2][0];
1267 [(i + 2 * k * (my_degree + 1) +
1271 p1_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1272 (my_degree + 1)][2][1];
1274 [(i + 2 * k * (my_degree + 1) +
1278 p1_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1279 (my_degree + 1)][0][2];
1281 [(i + 2 * k * (my_degree + 1) +
1285 p1_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1286 (my_degree + 1)][0][0];
1288 [(i + 2 * k * (my_degree + 1) +
1292 p1_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1293 (my_degree + 1)][0][1];
1295 [(i + 2 * k * (my_degree + 1) +
1299 p1_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1300 (my_degree + 1)][1][2];
1302 [(i + 2 * k * (my_degree + 1) +
1306 p1_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1307 (my_degree + 1)][1][0];
1309 [(i + 2 * k * (my_degree + 1) +
1313 p1_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1314 (my_degree + 1)][1][1];
1315 grad_grads[i + (j + (2 * k + 1) * my_degree +
1317 (my_degree + 1)][2][0][0] =
1318 p2_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1319 (my_degree + 1)][1][1];
1320 grad_grads[i + (j + (2 * k + 1) * my_degree +
1322 (my_degree + 1)][2][0][1] =
1323 p2_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1324 (my_degree + 1)][1][2];
1325 grad_grads[i + (j + (2 * k + 1) * my_degree +
1327 (my_degree + 1)][2][0][2] =
1328 p2_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1329 (my_degree + 1)][1][0];
1330 grad_grads[i + (j + (2 * k + 1) * my_degree +
1332 (my_degree + 1)][2][1][0] =
1333 p2_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1334 (my_degree + 1)][2][1];
1335 grad_grads[i + (j + (2 * k + 1) * my_degree +
1337 (my_degree + 1)][2][1][1] =
1338 p2_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1339 (my_degree + 1)][2][2];
1340 grad_grads[i + (j + (2 * k + 1) * my_degree +
1342 (my_degree + 1)][2][1][2] =
1343 p2_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1344 (my_degree + 1)][2][0];
1345 grad_grads[i + (j + (2 * k + 1) * my_degree +
1347 (my_degree + 1)][2][2][0] =
1348 p2_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1349 (my_degree + 1)][0][1];
1350 grad_grads[i + (j + (2 * k + 1) * my_degree +
1352 (my_degree + 1)][2][2][1] =
1353 p2_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1354 (my_degree + 1)][0][2];
1355 grad_grads[i + (j + (2 * k + 1) * my_degree +
1357 (my_degree + 1)][2][2][2] =
1358 p2_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1359 (my_degree + 1)][0][0];
1361 [(i + 2 * (k + 2) * (my_degree + 1) +
1365 p2_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1366 (my_degree + 1)][1][1];
1368 [(i + 2 * (k + 2) * (my_degree + 1) +
1372 p2_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1373 (my_degree + 1)][1][2];
1375 [(i + 2 * (k + 2) * (my_degree + 1) +
1379 p2_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1380 (my_degree + 1)][1][0];
1382 [(i + 2 * (k + 2) * (my_degree + 1) +
1386 p2_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1387 (my_degree + 1)][2][1];
1389 [(i + 2 * (k + 2) * (my_degree + 1) +
1393 p2_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1394 (my_degree + 1)][2][2];
1396 [(i + 2 * (k + 2) * (my_degree + 1) +
1400 p2_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1401 (my_degree + 1)][2][0];
1403 [(i + 2 * (k + 2) * (my_degree + 1) +
1407 p2_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1408 (my_degree + 1)][0][1];
1410 [(i + 2 * (k + 2) * (my_degree + 1) +
1414 p2_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1415 (my_degree + 1)][0][2];
1417 [(i + 2 * (k + 2) * (my_degree + 1) +
1421 p2_grad_grads[i + (j + k * (my_degree + 2) + 2) *
1422 (my_degree + 1)][0][0];
1423 grad_grads[i + (j + (2 * k + 9) * my_degree +
1425 (my_degree + 1)][1][0][0] =
1426 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1427 (my_degree + 1)][2][2];
1428 grad_grads[i + (j + (2 * k + 9) * my_degree +
1430 (my_degree + 1)][1][0][1] =
1431 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1432 (my_degree + 1)][2][0];
1433 grad_grads[i + (j + (2 * k + 9) * my_degree +
1435 (my_degree + 1)][1][0][2] =
1436 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1437 (my_degree + 1)][2][1];
1438 grad_grads[i + (j + (2 * k + 9) * my_degree +
1440 (my_degree + 1)][1][1][0] =
1441 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1442 (my_degree + 1)][0][2];
1443 grad_grads[i + (j + (2 * k + 9) * my_degree +
1445 (my_degree + 1)][1][1][1] =
1446 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1447 (my_degree + 1)][0][0];
1448 grad_grads[i + (j + (2 * k + 9) * my_degree +
1450 (my_degree + 1)][1][1][2] =
1451 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1452 (my_degree + 1)][0][1];
1453 grad_grads[i + (j + (2 * k + 9) * my_degree +
1455 (my_degree + 1)][1][2][0] =
1456 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1457 (my_degree + 1)][1][2];
1458 grad_grads[i + (j + (2 * k + 9) * my_degree +
1460 (my_degree + 1)][1][2][1] =
1461 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1462 (my_degree + 1)][1][0];
1463 grad_grads[i + (j + (2 * k + 9) * my_degree +
1465 (my_degree + 1)][1][2][2] =
1466 p1_grad_grads[i + ((j + 2) * (my_degree + 2) + k) *
1467 (my_degree + 1)][1][1];