32 const unsigned int n_components,
34 const Number *values_dofs_actual,
38 const auto &shape_data = shape_info.
data.front();
40 const std::size_t dofs_per_comp =
42 const std::size_t n_dofs_per_comp = shape_info.dofs_per_component_on_cell;
43 const int degree = fe_degree != -1 ? fe_degree : shape_data.fe_degree;
45 for (
unsigned int c = 0; c < n_components; ++c)
46 for (
int i = 0, count_p = 0, count_q = 0; i < (dim > 2 ? degree + 1 : 1);
49 for (
int j = 0; j < (dim > 1 ? degree + 1 - i : 1); ++j)
51 for (
int k = 0; k < degree + 1 - j - i; ++k, ++count_p, ++count_q)
52 values_dofs[c * dofs_per_comp + count_q] =
53 values_dofs_actual[c * n_dofs_per_comp + count_p];
54 for (
int k = degree + 1 - j - i; k < degree + 1; ++k, ++count_q)
55 values_dofs[c * dofs_per_comp + count_q] = Number();
57 for (
int j = degree + 1 - i; j < degree + 1; ++j)
58 for (
int k = 0; k < degree + 1; ++k, ++count_q)
59 values_dofs[c * dofs_per_comp + count_q] = Number();
68 const unsigned int n_components,
69 Number *values_dofs_actual,
70 const Number *values_dofs,
74 const auto &shape_data = shape_info.
data.front();
76 const unsigned int dofs_per_comp =
77 Utilities::fixed_power<dim>(shape_data.fe_degree + 1);
78 const std::size_t n_dofs_per_comp = shape_info.dofs_per_component_on_cell;
79 const int degree = fe_degree != -1 ? fe_degree : shape_data.fe_degree;
80 for (
unsigned int c = 0; c < n_components; ++c)
81 for (
int i = 0, count_p = 0, count_q = 0; i < (dim > 2 ? degree + 1 : 1);
84 for (
int j = 0; j < (dim > 1 ? degree + 1 - i : 1); ++j)
86 for (
int k = 0; k < degree + 1 - j - i; ++k, ++count_p, ++count_q)
87 values_dofs_actual[c * n_dofs_per_comp + count_p] =
88 values_dofs[c * dofs_per_comp + count_q];
91 count_q += i * (degree + 1);