From: Wolfgang Bangerth Date: Fri, 19 Apr 2024 19:27:28 +0000 (-0600) Subject: Explain the term 'restriction' in FiniteElement. X-Git-Tag: v9.6.0-rc1~360^2 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a8d40697bb622516c0de52e3db9682e831e04323;p=dealii.git Explain the term 'restriction' in FiniteElement. --- diff --git a/include/deal.II/fe/fe.h b/include/deal.II/fe/fe.h index f55dbcf96b..1ca72ee06a 100644 --- a/include/deal.II/fe/fe.h +++ b/include/deal.II/fe/fe.h @@ -1040,6 +1040,21 @@ public: * FiniteElement::ExcProjectionVoid. You can check whether this would happen * by first calling the restriction_is_implemented() or the * isotropic_restriction_is_implemented() function. + * + * @note The term "restriction" is also used in the definition of multigrid + * methods, but in a different context. For the current function, we are + * interested in the interpolation of a finite element function from + * child cells to the parent cell, and this results in a situation where + * you have a function that is constant on a fine mesh, the function + * "restricted" to the coarse mesh will also be constant and have the same + * value. In contrast, in the multigrid context, the restriction operation + * is applied to residual (rather than solution) vectors, and is usually + * chosen as the transpose of the prolongation operation. For the multigrid + * restriction operation, one would consequently not typically expect + * that it maps a constant function to a constant function. In other words, + * the *meaning* of the term "restriction" in the current context and in + * the multigrid context is quite different, and the two should not + * be confused. */ virtual const FullMatrix & get_restriction_matrix(const unsigned int child,