23 #include <deal.II/grid/tria_iterator.templates.h>
45 template <
typename DoFHandlerType,
bool lda>
46 template <
class InputVector,
typename number>
49 const InputVector &values,
51 const unsigned int fe_index)
const
53 if (this->is_active())
58 if ((
dynamic_cast<DoFHandler<DoFHandlerType::dimension,
59 DoFHandlerType::space_dimension
> *>(
60 this->dof_handler) !=
nullptr) ||
64 (fe_index == this->active_fe_index()) ||
65 (fe_index == DoFHandlerType::default_fe_index))
66 this->get_dof_values(values, interpolated_values);
72 const unsigned int dofs_per_cell = this->get_fe().dofs_per_cell;
73 if (dofs_per_cell == 0)
75 interpolated_values = 0;
80 this->get_dof_values(values, tmp);
83 this->dof_handler->get_fe(fe_index).dofs_per_cell,
84 this->get_fe().dofs_per_cell);
85 this->dof_handler->get_fe(fe_index).get_interpolation_matrix(
86 this->get_fe(), interpolation);
87 interpolation.
vmult(interpolated_values, tmp);
103 DoFHandlerType::space_dimension
> *>(
104 this->dof_handler) !=
nullptr) ||
105 (fe_index != DoFHandlerType::default_fe_index),
107 "You cannot call this function on non-active cells "
108 "of hp::DoFHandler objects unless you provide an explicit "
109 "finite element index because they do not have naturally "
110 "associated finite element spaces associated: degrees "
111 "of freedom are only distributed on active cells for which "
112 "the active_fe_index has been set."));
115 this->get_dof_handler().get_fe(fe_index);
118 Assert(this->dof_handler !=
nullptr,
119 typename BaseClass::ExcInvalidObject());
120 Assert(interpolated_values.
size() == dofs_per_cell,
121 typename BaseClass::ExcVectorDoesNotMatch());
122 Assert(values.size() == this->dof_handler->n_dofs(),
123 typename BaseClass::ExcVectorDoesNotMatch());
136 interpolated_values = 0;
163 for (
unsigned int child = 0; child < this->n_children(); ++child)
169 this->child(child)->get_interpolated_dof_values(values,
177 for (
unsigned int i = 0; i < dofs_per_cell; ++i)
179 interpolated_values(i) += tmp2(i);
180 else if (tmp2(i) != number())
181 interpolated_values(i) = tmp2(i);
190 #include "dof_accessor_get.inst"