40template <
int dim,
int spacedim,
bool lda>
41template <
typename Number>
54template <
int dim,
int spacedim,
bool lda>
55template <
typename Number>
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()) ||
80 interpolated_values.
begin(),
81 interpolated_values.
end());
90 std::fill(interpolated_values.
begin(),
91 interpolated_values.
end(),
97 tmp(interpolated_values.
size());
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());
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."));
139 Assert(values.size() == this->dof_handler->n_dofs(),
152 std::fill(interpolated_values.
begin(),
153 interpolated_values.
end(),
187 this->
child(
child)->get_interpolated_dof_values(values,
197 interpolated_values[i] += tmp2(i);
198 else if (tmp2(i) != Number())
199 interpolated_values[i] = tmp2(i);
208#include "dofs/dof_accessor_get.inst"
ArrayView< std::remove_reference_t< typename std::iterator_traits< Iterator >::reference >, MemorySpaceType > make_array_view(const Iterator begin, const Iterator end)
const DoFHandler< dim, spacedim > & get_dof_handler() const
DoFHandler< dim, spacedim > * dof_handler
void get_dof_values(const InputVector &values, Vector< number > &local_values) const
const FiniteElement< dimension_, space_dimension_ > & get_fe() const
TriaIterator< DoFCellAccessor< dimension_, space_dimension_, level_dof_access > > child(const unsigned int i) const
void get_interpolated_dof_values(const ReadVector< Number > &values, ArrayView< Number > interpolated_values, const types::fe_index fe_index=numbers::invalid_fe_index) const
static const types::fe_index default_fe_index
unsigned int n_dofs_per_cell() const
virtual const FullMatrix< double > & get_restriction_matrix(const unsigned int child, const RefinementCase< dim > &refinement_case=RefinementCase< dim >::isotropic_refinement) const
bool restriction_is_additive(const unsigned int index) const
void vmult(Vector< number2 > &w, const Vector< number2 > &v, const bool adding=false) const
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
#define Assert(cond, exc)
static ::ExceptionBase & ExcInvalidObject()
static ::ExceptionBase & ExcVectorDoesNotMatch()
static ::ExceptionBase & ExcMessage(std::string arg1)
constexpr types::fe_index invalid_fe_index
unsigned short int fe_index
* const unsigned int dofs_per_cell