From abe29bff139e9d420d95d7f23943084192da0baf Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Tue, 27 Feb 2018 11:10:36 -0700 Subject: [PATCH] Minor edits to the documentation of AnisotropicPolynomials. --- .../deal.II/base/tensor_product_polynomials.h | 48 ++++++++++++------- 1 file changed, 31 insertions(+), 17 deletions(-) diff --git a/include/deal.II/base/tensor_product_polynomials.h b/include/deal.II/base/tensor_product_polynomials.h index 597adeaf30..385f33f656 100644 --- a/include/deal.II/base/tensor_product_polynomials.h +++ b/include/deal.II/base/tensor_product_polynomials.h @@ -226,18 +226,27 @@ protected: /** * Anisotropic tensor product of given polynomials. * - * Given one-dimensional polynomials Px1, Px2, ... in - * x-direction, Py1, Py2, ... in y-direction, and so on, - * this class generates polynomials of the form Qijk(x,y,z) = - * Pxi(x)Pyj(y)Pzk(z). If the base polynomials are mutually orthogonal on - * the interval $[-1,1]$ or $[0,d]$, then the tensor product polynomials are - * orthogonal on $[-1,1]^d$ or $[0,1]^d$, respectively. + * Given one-dimensional polynomials $P^x_1(x), P^x_2(x), \ldots$ in + * $x$-direction, $P^y_1(y), P^y_2(y), \ldots$ in $y$-direction, and + * so on, this class generates polynomials of the form $Q_{ijk}(x,y,z) + * = P^x_i(x)P^y_j(y)P^z_k(z)$. (With obvious generalization if @p dim + * is in fact only 2. If @p dim is in fact only 1, then the result is + * simply the same set of one-dimensional polynomials passed to the + * constructor.) * - * Indexing is as follows: the order of dim-dimensional polynomials is - * x-coordinates running fastest, then y-coordinate, etc. The first few - * polynomials are thus Px1(x)Py1(y), Px2(x)Py1(y), - * Px3(x)Py1(y), ..., Px1(x)Py2(y), Px2(x)Py2(y), - * Px3(x)Py2(y), ..., and likewise in 3d. + * If the elements of each set of base polynomials are mutually + * orthogonal on the interval $[-1,1]$ or $[0,1]$, then the tensor + * product polynomials are orthogonal on $[-1,1]^d$ or $[0,1]^d$, + * respectively. + * + * The resulting @p dim-dimensional tensor product polynomials are + * ordered as follows: We iterate over the $x$ coordinates running + * fastest, then the $y$ coordinate, etc. For example, for @p dim==2, + * the first few polynomials are thus + * $P^x_1(x)P^y_1(y)$, + * $P^x_2(x)P^y_1(y)$, $P^x_3(x)P^y_1(y)$, ..., + * $P^x_1(x)P^y_2(y)$, $P^x_2(x)P^y_2(y)$, + * $P^x_3(x)P^y_2(y)$, etc. * * @author Wolfgang Bangerth 2003 */ @@ -246,13 +255,18 @@ class AnisotropicPolynomials { public: /** - * Constructor. pols is a table of one-dimensional polynomials. The - * number of rows in this table should be equal to the space dimension, with - * the elements of each row giving the polynomials that shall be used in - * this particular coordinate direction. These polynomials may vary between - * coordinates, as well as their number. + * Constructor. @p base_polynomials is a table of one-dimensional + * polynomials. The number of rows in this table (the first index + * when indexing into @p base_polynomials) needs to be equal to the + * space dimension, with the elements of each row (i.e., the second + * index) giving the polynomials that shall be used in this + * particular coordinate direction. + * + * Since we want to build anisotropic polynomials, the @p dim + * sets of polynomials passed in as arguments may of course be + * different, and may also vary in number. */ - AnisotropicPolynomials (const std::vector > > &pols); + AnisotropicPolynomials (const std::vector > > &base_polynomials); /** * Compute the value and the first and second derivatives of each tensor -- 2.39.5