/**
* This function is a kind of generalization or modification of the very
- * first interpolate() function in the series. It interpolations a set of
- * functions onto the finite element space given by the DoFHandler argument
- * where the determination which function to use is made based on the
- * material id (see
+ * first interpolate() function in the series. It interpolates a set of
+ * functions onto the finite element space defined by the DoFHandler argument,
+ * where the determination which function to use on each cell is made
+ * based on the material id (see
* @ref GlossMaterialId)
* of each cell.
*
- * @param mapping - The mapping to use to determine the location of
- * support points at which the functions are to be evaluated.
- * @param dof_handler - DoFHandler initialized with Triangulation and
- * FiniteElement objects,
- * @param function_map - std::map reflecting the correspondence between
- * material ids and functions,
- * @param dst - global FE vector at the support points,
- * @param component_mask - mask of components that shall be interpolated
- *
- * @note If a material id of some group of cells is missed in @p
- * function_map, then @p dst will not be updated in the respective degrees
- * of freedom of the output vector For example, if @p dst was successfully
- * initialized to capture the degrees of freedom of the @p dof_handler of
- * the problem with all zeros in it, then those zeros which correspond to
- * the missed material ids will still remain in @p dst even after calling
+ * @param[in] mapping The mapping to use to determine the location of
+ * support points at which the functions are to be evaluated.
+ * @param[in] dof_handler DoFHandler initialized with Triangulation and
+ * FiniteElement objects and that defines the finite element space.
+ * @param[in] function_map A std::map reflecting the correspondence between
+ * material ids on those cells on which something should be interpolated,
+ * and the functions to be interpolated onto the finite element space.
+ * @param[out] dst The global finie element vector holding the
+ * output of the interpolated values.
+ * @param[in] component_mask A mask of components that shall be interpolated.
+ *
+ * @note If the algorithm encounters a cell whose material id is not listed
+ * in the given @p function_map, then @p dst will not be updated in the
+ * respective degrees of freedom of the output vector. For example, if
+ * @p dst was initialized to zero, then those zeros which correspond to
+ * the missed material ids will still remain in @p dst after calling
* this function.
*
* @note Degrees of freedom located on faces between cells of different
* material ids will get their value by that cell which was called last in
- * the respective loop over cells implemented in this function. Since this
- * process is kind of arbitrary, you cannot control it. However, if you want
- * to have control over the order in which cells are visited, let us take a
+ * the respective loop over cells implemented in this function. Since the
+ * order of cells is somewhat arbitrary, you cannot control it. However, if
+ * you want to have control over the order in which cells are visited, let us
+ * take a
* look at the following example: Let @p u be a variable of interest which
* is approximated by some CG finite element. Let @p 0, @p 1 and @p 2 be
* material ids of cells on the triangulation. Let 0: 0.0, 1: 1.0, 2: 2.0 be