]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Update documentation of Quadrature. 14917/head
authorWolfgang Bangerth <bangerth@colostate.edu>
Sun, 19 Mar 2023 22:52:03 +0000 (16:52 -0600)
committerWolfgang Bangerth <bangerth@colostate.edu>
Sun, 19 Mar 2023 22:52:03 +0000 (16:52 -0600)
include/deal.II/base/quadrature.h

index d1013e76b955299a9ef0cb422b48b6294872047f..7388d3686352cf8669b165e342572e1c7bc0e528 100644 (file)
@@ -34,12 +34,27 @@ DEAL_II_NAMESPACE_OPEN
  */
 
 /**
- * Base class for quadrature formulae in arbitrary dimensions. This class
- * stores quadrature points and weights in the coordinate system of
+ * Base class for quadrature formulae in arbitrary dimensions.
+ * [Quadrature](https://en.wikipedia.org/wiki/Numerical_integration)
+ * is a means to approximate an integral by evaluating the integrand
+ * at specific points $\mathbf x_q$ and summing the point values with
+ * specific weights $w_q$; that is, quadrature computes
+ * @f{align*}{
+ *   \int_K f(\mathbf x) \; dx
+ *   \approx
+ *   \sum_{q=0,\ldots,Q-1} f(\mathbf x_q) w_q.
+ * @f}
+ *
+ * This class stores quadrature points $\mathbf x_q$ and weights $w_q$
+ * for concrete "quadrature formulas" when $K$ (the domain we integrate
+ * over) is a reference cell. That is, points and weights are expressed
+ * in the coordinate system of
  * a reference cell (see the ReferenceCell class) and as such serves to
  * represent quadrature points and weights on the unit line segment
  * $[0,1]$ in 1d, on the unit square or unit triangle in 2d, as well as
  * the unit tetrahedron, cube, pyramid, and wedge reference cells in 3d.
+ * Integration over concrete cells is done by coordinate transformation
+ * to the reference cell represented by the current class.
  *
  * There are a number of derived classes, denoting concrete integration
  * formulae. Their names are prefixed by <tt>Q</tt>. Refer to the list of
@@ -74,15 +89,34 @@ DEAL_II_NAMESPACE_OPEN
  * in each space direction, but they are still only of <tt>(m+1)</tt>st order.
  *
  *
- * <h3>Implementation details</h3>
+ * <h3>Tensor product quadrature</h3>
  *
- * Most integration formulae in more than one space dimension are tensor
+ * At least for hypercube reference cells (i.e., squares and cubes),
+ * most integration formulae in more than one space dimension are tensor
  * products of quadrature formulae in one space dimension, or more generally
  * the tensor product of a formula in <tt>(dim-1)</tt> dimensions and one in
  * one dimension. There is a special constructor to generate a quadrature
  * formula from two others.  For example, the QGauss@<dim@> formulae include
  * <i>N<sup>dim</sup></i> quadrature points in <tt>dim</tt> dimensions, where
  * $N$ is the constructor parameter of QGauss.
+ *
+ *
+ * <h3>Other uses of this class</h3>
+ *
+ * Quadrature objects are used in a number of places within deal.II where
+ * integration is performed, most notably via the FEValues and related classes.
+ * Some of these classes are also used in contexts where no integrals
+ * are involved, but where functions need to be evaluated at specific
+ * points, for example to evaluate the solution at individual points
+ * or to create graphical output. Examples are the implementation of
+ * VectorTools::point_value() and the DataOut and related classes (in
+ * particular in connection with the DataPostprocessor class). In
+ * such contexts, one often creates specific "Quadrature" objects in
+ * which the "quadrature points" are simply the points (in the coordinate
+ * system of the reference cell) at which one wants to evaluate the
+ * solution. In these kinds of cases, the weights stored by the current
+ * class are not used and the name "quadrature object" is interpreted
+ * as "list of evaluation points".
  */
 template <int dim>
 class Quadrature : public Subscriptor

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.