virtual double shape_value(const unsigned int i,
const Point< dim > &p) const;
+ /**
+ * @name Transfer matrices
+ * @{
+ */
+
+ /**
+ * Projection from a fine grid space onto a coarse grid space.
+ *
+ * This function only makes sense when all child elements are also enriched
+ * using the same function(s) as the parent element.
+ */
+ virtual const FullMatrix<double> &
+ get_restriction_matrix (const unsigned int child,
+ const RefinementCase<dim> &refinement_case=RefinementCase<dim>::isotropic_refinement) const;
+
+ /**
+ * Embedding matrix between grids.
+ *
+ * This function only makes sense when all child elements are also enriched
+ * using the same function(s) as the parent element.
+ */
+ virtual const FullMatrix<double> &
+ get_prolongation_matrix (const unsigned int child,
+ const RefinementCase<dim> &refinement_case=RefinementCase<dim>::isotropic_refinement) const;
+
+ //@}
/**
* @name Functions to support hp
}
}
+template <int dim, int spacedim>
+const FullMatrix<double> &
+FE_Enriched<dim,spacedim>::get_prolongation_matrix (const unsigned int child,
+ const RefinementCase<dim> &refinement_case) const
+{
+ return fe_system.get_prolongation_matrix(child, refinement_case);
+}
+
+
+template <int dim, int spacedim>
+const FullMatrix<double> &
+FE_Enriched<dim,spacedim>::get_restriction_matrix (const unsigned int child,
+ const RefinementCase<dim> &refinement_case) const
+{
+ return fe_system.get_restriction_matrix(child, refinement_case);
+}
+
+
/* ----------------------- FESystem::InternalData ------------------- */