convert_generalized_support_point_values_to_nodal_values (const std::vector<Vector<double> > &support_point_values,
std::vector<double> &nodal_values) const;
- virtual void interpolate(std::vector<double> &local_dofs,
- const std::vector<double> &values) const DEAL_II_DEPRECATED;
-
- virtual void interpolate(std::vector<double> &local_dofs,
- const std::vector<Vector<double> > &values,
- const unsigned int offset = 0) const DEAL_II_DEPRECATED;
-
- virtual void interpolate(std::vector<double> &local_dofs,
- const VectorSlice<const std::vector<std::vector<double> > > &values) const DEAL_II_DEPRECATED;
-
/**
* Return the matrix interpolating from the given finite element to the
* present one. The size of the matrix is then @p dofs_per_cell times
-template <int dim, int spacedim>
-void
-FE_Q_DG0<dim,spacedim>::interpolate(std::vector<double> &local_dofs,
- const std::vector<double> &values) const
-{
- Assert (values.size() == this->unit_support_points.size(),
- ExcDimensionMismatch(values.size(),
- this->unit_support_points.size()));
- Assert (local_dofs.size() == this->dofs_per_cell,
- ExcDimensionMismatch(local_dofs.size(),this->dofs_per_cell));
- Assert (this->n_components() == 1,
- ExcDimensionMismatch(this->n_components(), 1));
-
- std::copy(values.begin(), values.end(), local_dofs.begin());
-
- // We don't need the discontinuous function for local interpolation
- local_dofs[local_dofs.size()-1] = 0.;
-}
-
-
-
-template <int dim, int spacedim>
-void
-FE_Q_DG0<dim,spacedim>::interpolate(std::vector<double> &local_dofs,
- const std::vector<Vector<double> > &values,
- const unsigned int offset) const
-{
- Assert (values.size() == this->unit_support_points.size(),
- ExcDimensionMismatch(values.size(),
- this->unit_support_points.size()));
- Assert (local_dofs.size() == this->dofs_per_cell,
- ExcDimensionMismatch(local_dofs.size(),this->dofs_per_cell));
- Assert (values[0].size() >= offset+this->n_components(),
- ExcDimensionMismatch(values[0].size(),offset+this->n_components()));
-
- for (unsigned int i=0; i<this->dofs_per_cell-1; ++i)
- {
- const std::pair<unsigned int, unsigned int> index
- = this->system_to_component_index(i);
- local_dofs[i] = values[i](offset+index.first);
- }
-
- // We don't need the discontinuous function for local interpolation
- local_dofs[local_dofs.size()-1] = 0.;
-}
-
-
-
-template <int dim, int spacedim>
-void
-FE_Q_DG0<dim,spacedim>::interpolate(
- std::vector<double> &local_dofs,
- const VectorSlice<const std::vector<std::vector<double> > > &values) const
-{
- Assert (values[0].size() == this->unit_support_points.size(),
- ExcDimensionMismatch(values.size(),
- this->unit_support_points.size()));
- Assert (local_dofs.size() == this->dofs_per_cell,
- ExcDimensionMismatch(local_dofs.size(),this->dofs_per_cell));
- Assert (values.size() == this->n_components(),
- ExcDimensionMismatch(values.size(), this->n_components()));
-
- for (unsigned int i=0; i<this->dofs_per_cell-1; ++i)
- {
- const std::pair<unsigned int, unsigned int> index
- = this->system_to_component_index(i);
- local_dofs[i] = values[index.first][i];
- }
-
- // We don't need the discontinuous function for local interpolation
- local_dofs[local_dofs.size()-1] = 0.;
-}
-
-
-
template <int dim, int spacedim>
void
FE_Q_DG0<dim,spacedim>::