63 (this->dof_handler->hp_capability_enabled ==
false &&
68 if (this->is_active())
73 if ((this->dof_handler->hp_capability_enabled ==
false) ||
77 (fe_index == this->active_fe_index()) ||
79 this->get_dof_values(values,
80 interpolated_values.
begin(),
81 interpolated_values.
end());
87 const unsigned int dofs_per_cell = this->get_fe().n_dofs_per_cell();
88 if (dofs_per_cell == 0)
90 std::fill(interpolated_values.
begin(),
91 interpolated_values.
end(),
97 tmp(interpolated_values.
size());
98 this->get_dof_values(values, dof_values);
101 this->dof_handler->get_fe(fe_index).n_dofs_per_cell(),
102 this->get_fe().n_dofs_per_cell());
103 this->dof_handler->get_fe(fe_index).get_interpolation_matrix(
104 this->get_fe(), interpolation);
105 interpolation.
vmult(tmp, dof_values);
106 std::copy(tmp.
begin(), tmp.
end(), interpolated_values.
begin());
121 Assert((this->dof_handler->hp_capability_enabled ==
false) ||
124 "You cannot call this function on non-active cells "
125 "of DoFHandler objects unless you provide an explicit "
126 "finite element index because they do not have naturally "
127 "associated finite element spaces associated: degrees "
128 "of freedom are only distributed on active cells for which "
129 "the active FE index has been set."));
132 this->get_dof_handler().get_fe(fe_index);
135 Assert(this->dof_handler !=
nullptr,
136 typename BaseClass::ExcInvalidObject());
137 Assert(interpolated_values.
size() == dofs_per_cell,
138 typename BaseClass::ExcVectorDoesNotMatch());
139 Assert(values.size() == this->dof_handler->n_dofs(),
140 typename BaseClass::ExcVectorDoesNotMatch());
152 std::fill(interpolated_values.
begin(),
153 interpolated_values.
end(),
181 for (
unsigned int child = 0; child < this->n_children(); ++child)
187 this->child(child)->get_interpolated_dof_values(values,
195 for (
unsigned int i = 0; i < dofs_per_cell; ++i)
197 interpolated_values[i] += tmp2(i);
198 else if (tmp2(i) != Number())
199 interpolated_values[i] = tmp2(i);