virtual void interpolate (std::vector<double> &local_dofs,
const VectorSlice<const std::vector<std::vector<double> > > &values)
const;
+
+ /**
+ * Returns a list of constant modes of the element.
+ */
+ virtual Table<2,bool> get_constant_modes () const;
+
virtual std::size_t memory_consumption () const;
virtual FiniteElement<dim> *clone() const;
virtual void interpolate(
std::vector<double> &local_dofs,
const VectorSlice<const std::vector<std::vector<double> > > &values) const;
+
+ /**
+ * Returns a list of constant modes of the element. For this element, the
+ * list consists of true arguments for all components.
+ */
+ virtual Table<2,bool> get_constant_modes () const;
+
virtual std::size_t memory_consumption () const;
virtual FiniteElement<dim> *clone() const;
}
+
+template <int dim>
+Table<2,bool>
+FE_Nedelec<dim>::get_constant_modes() const
+{
+ Table<2,bool> constant_modes(dim, this->dofs_per_cell);
+ for (unsigned int d=0; d<dim; ++d)
+ for (unsigned int i=0; i<this->dofs_per_cell; ++i)
+ constant_modes(d,i) = true;
+ return constant_modes;
+}
+
+
template <int dim>
std::size_t
FE_Nedelec<dim>::memory_consumption () const
+template <int dim>
+Table<2,bool>
+FE_RaviartThomas<dim>::get_constant_modes() const
+{
+ Table<2,bool> constant_modes(dim, this->dofs_per_cell);
+ for (unsigned int d=0; d<dim; ++d)
+ for (unsigned int i=0; i<this->dofs_per_cell; ++i)
+ constant_modes(d,i) = true;
+ return constant_modes;
+}
+
+
+
//---------------------------------------------------------------------------
// Data field initialization
//---------------------------------------------------------------------------
}
+
template <int dim>
std::size_t
FE_RaviartThomas<dim>::memory_consumption () const