template <int dim, int spacedim>
void build_matrices (const DoFHandler<dim,spacedim> &mg_dof);
+ /**
+ * Prolongate a vector from level <tt>to_level-1</tt> to level
+ * <tt>to_level</tt> using the embedding matrices of the underlying finite
+ * element. The previous content of <tt>dst</tt> is overwritten.
+ *
+ * @arg src is a vector with as many elements as there are degrees of
+ * freedom on the coarser level involved.
+ *
+ * @arg dst has as many elements as there are degrees of freedom on the
+ * finer level.
+ */
virtual void prolongate (const unsigned int to_level,
VectorType &dst,
const VectorType &src) const;
+ /**
+ * Restrict a vector from level <tt>from_level</tt> to level
+ * <tt>from_level-1</tt> using the transpose operation of the @p prolongate
+ * method. If the region covered by cells on level <tt>from_level</tt> is
+ * smaller than that of level <tt>from_level-1</tt> (local refinement), then
+ * some degrees of freedom in <tt>dst</tt> are active and will not be
+ * altered. For the other degrees of freedom, the result of the restriction
+ * is added.
+ *
+ * @arg src is a vector with as many elements as there are degrees of
+ * freedom on the finer level involved.
+ *
+ * @arg dst has as many elements as there are degrees of freedom on the
+ * coarser level.
+ */
virtual void restrict_and_add (const unsigned int from_level,
VectorType &dst,
const VectorType &src) const;