34 const unsigned int n_components,
36 const Number *values_dofs_actual,
40 const auto &shape_data = shape_info.
data.front();
42 const std::size_t dofs_per_comp =
44 const std::size_t n_dofs_per_comp = shape_info.dofs_per_component_on_cell;
45 const int degree = fe_degree != -1 ? fe_degree : shape_data.fe_degree;
47 for (
unsigned int c = 0; c < n_components; ++c)
48 for (
int i = 0, count_p = 0, count_q = 0; i < (dim > 2 ? degree + 1 : 1);
51 for (
int j = 0; j < (dim > 1 ? degree + 1 - i : 1); ++j)
53 for (
int k = 0; k < degree + 1 - j - i; ++k, ++count_p, ++count_q)
54 values_dofs[c * dofs_per_comp + count_q] =
55 values_dofs_actual[c * n_dofs_per_comp + count_p];
56 for (
int k = degree + 1 - j - i; k < degree + 1; ++k, ++count_q)
57 values_dofs[c * dofs_per_comp + count_q] = Number();
59 for (
int j = degree + 1 - i; j < degree + 1; ++j)
60 for (
int k = 0; k < degree + 1; ++k, ++count_q)
61 values_dofs[c * dofs_per_comp + count_q] = Number();
70 const unsigned int n_components,
71 Number *values_dofs_actual,
72 const Number *values_dofs,
76 const auto &shape_data = shape_info.
data.front();
78 const unsigned int dofs_per_comp =
79 Utilities::fixed_power<dim>(shape_data.fe_degree + 1);
80 const std::size_t n_dofs_per_comp = shape_info.dofs_per_component_on_cell;
81 const int degree = fe_degree != -1 ? fe_degree : shape_data.fe_degree;
82 for (
unsigned int c = 0; c < n_components; ++c)
83 for (
int i = 0, count_p = 0, count_q = 0; i < (dim > 2 ? degree + 1 : 1);
86 for (
int j = 0; j < (dim > 1 ? degree + 1 - i : 1); ++j)
88 for (
int k = 0; k < degree + 1 - j - i; ++k, ++count_p, ++count_q)
89 values_dofs_actual[c * n_dofs_per_comp + count_p] =
90 values_dofs[c * dofs_per_comp + count_q];
93 count_q += i * (degree + 1);