From 3a36221eaf12e6cacc941d56fafdbb09f6eb04a4 Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Sat, 24 Feb 2018 13:46:29 -0700 Subject: [PATCH] Update a comment on ComponentMask. --- include/deal.II/fe/component_mask.h | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/include/deal.II/fe/component_mask.h b/include/deal.II/fe/component_mask.h index 7bad6dface..e07ef660dd 100644 --- a/include/deal.II/fe/component_mask.h +++ b/include/deal.II/fe/component_mask.h @@ -35,10 +35,23 @@ DEAL_II_NAMESPACE_OPEN * components, and one can use operator[] to query whether a * particular component has been selected. * + * @note A "mask" represents a data structure with @p true and @p false + * entries that is generally used to enable or disable an operation + * for a particular vector component. By this definition, disabled + * vector components still exist -- they are simply not touched. As + * a consequence, when you apply a component mask for interpolating + * boundary values (to choose just one example) of a problem with + * $C$ vector components, the input argument that describes the + * boundary values will still have to provide $C$ components even + * if the mask says that we only want to interpolate a subset of + * these components onto the finite element space. In other words, + * a component mask does not represent a reduction operation; + * it represents a selection. + * * Objects of this kind are used in many places where one wants to restrict * operations to a certain subset of components, e.g. in - * DoFTools::make_zero_boundary_values or - * VectorTools::interpolate_boundary_values. These objects can either be + * DoFTools::make_zero_boundary_values() or + * VectorTools::interpolate_boundary_values(). These objects can either be * created by hand, or, simpler, by asking the finite element to generate a * component mask from certain selected components using code such as this * where we create a mask that only denotes the velocity components of a -- 2.39.5