]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Documentation update 4668/head
authorDaniel Arndt <daniel.arndt@iwr.uni-heidelberg.de>
Mon, 31 Jul 2017 20:40:33 +0000 (22:40 +0200)
committerDaniel Arndt <daniel.arndt@iwr.uni-heidelberg.de>
Tue, 1 Aug 2017 09:21:47 +0000 (11:21 +0200)
doc/news/changes/minor/20170726DanielArndt-1
include/deal.II/base/quadrature.h
source/base/quadrature.cc
source/base/quadrature_lib.cc

index 843b8ec9a5bcd17af1f5da3f315d482c8f2513e4..387af957a0d81512e73cbc46b84f9b65260a22e0 100644 (file)
@@ -1,6 +1,6 @@
-New: The Quadrature class has a new boolean is_tensor_product_flag
-to indicate if the represented quadrature formula is in fact a
-tensor product of 1D formulas. The corresponding 1D objects
-can be queried using Quadrature::get_tensor_basis().
+New: Quadrature::is_tensor_product() returns if the corresponding quadrature
+formula can be represented as a tensor product and the quadrature points are 
+sorted lexicographically. The corresponding 1D objects can be queried using 
+Quadrature::get_tensor_basis().
 <br>
 (Daniel Arndt, 2017/07/26)
index 50d578fbb00a55de82117ac5651939fcd4851539..20d0b0b65a93353f7fcd74c76a2efbee27c2f26d 100644 (file)
@@ -225,7 +225,8 @@ public:
 
   /**
    * This function returns true if the quadrature object is a tensor product
-   * of one-dimensional formulas.
+   * of one-dimensional formulas and the quadrature points are sorted
+   * lexicographically.
    */
   bool is_tensor_product() const;
 
@@ -254,7 +255,8 @@ protected:
    * Indicates if this object represents quadrature formula that is a tensor
    * product of one-dimensional formulas.
    * This flag is set if dim==1 or the constructors taking a Quadrature<1>
-   * (and possibly a Quadrature<dim-1> object) is called.
+   * (and possibly a Quadrature<dim-1> object) is called. This implies
+   * that the quadrature points are sorted lexicographically.
    */
   bool is_tensor_product_flag;
 
index 98aa8bada22623e74bfe71f0e2dc1175745d7829..898b8fd6de497b2d1c7ab0c3c3c40890ec67f906 100644 (file)
@@ -349,7 +349,7 @@ Quadrature<1>::get_tensor_basis () const
           ExcMessage("This function only makes sense if "
                      "this object represents a tensor product!"));
 
-  return std::array<Quadrature<1>, 1> {*this};
+  return std::array<Quadrature<1>, 1> {{*this}};
 }
 
 
@@ -397,7 +397,7 @@ QAnisotropic<2>::QAnisotropic(const Quadrature<1> &qx,
       }
   Assert (k==this->size(), ExcInternalError());
   this->is_tensor_product_flag = true;
-  const std::array<Quadrature<1>, 2> q_array = {qx, qy};
+  const std::array<Quadrature<1>, 2> q_array {{qx, qy}};
   this->tensor_basis = std_cxx14::make_unique<std::array<Quadrature<1>, 2>>(q_array);
 }
 
@@ -432,7 +432,7 @@ QAnisotropic<3>::QAnisotropic(const Quadrature<1> &qx,
         }
   Assert (k==this->size(), ExcInternalError());
   this->is_tensor_product_flag = true;
-  const std::array<Quadrature<1>, 3> q_array = {qx, qy, qz};
+  const std::array<Quadrature<1>, 3> q_array {{qx, qy, qz}};
   this->tensor_basis = std_cxx14::make_unique<std::array<Quadrature<1>, 3>>(q_array);
 }
 
index afc11887f480cae5df56f0b02213ef19bb36e7d7..eb7f8de966697f51b488e0a9be791598e6cb0403 100644 (file)
@@ -939,6 +939,13 @@ QSorted<dim>::QSorted(const Quadrature<dim> &quad) :
                       std::placeholders::_1,
                       std::placeholders::_2));
 
+  // At this point, the variable is_tensor_product_flag is set
+  // to the respective value of the given Quadrature in the base
+  // class copy constructor.
+  // We only call a quadrature formula 'tensor product'
+  // if the quadrature points are also sorted lexicographically.
+  // In particular, any reordering destroys that property
+  // and we might need to modify the variable accordingly.
   for (unsigned int i=0; i<quad.size(); ++i)
     {
       this->weights[i]           = quad.weight(permutation[i]);

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.