From: Luca Heltai Date: Thu, 21 Dec 2017 10:32:33 +0000 (+0100) Subject: Addressed WB's comments, plus one test. X-Git-Tag: v9.0.0-rc1~583^2~11 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8c8439fda3d45754a8c7bbbd22700d2e434a0728;p=dealii.git Addressed WB's comments, plus one test. --- diff --git a/include/deal.II/base/quadrature_lib.h b/include/deal.II/base/quadrature_lib.h index f61fab5418..03a1916961 100644 --- a/include/deal.II/base/quadrature_lib.h +++ b/include/deal.II/base/quadrature_lib.h @@ -649,12 +649,20 @@ private: /** * Given an arbitrary quadrature formula, return one that chops the quadrature - * points above the principal diagonals. + * points above the hyper-plane defined by $\sum_i x_i = 1$). In other words, + * it extracts those quadrature points from the base formula that satisfy + * $\sum_i (\mathbf x_q)_i \le 1$." * * In general the resulting quadrature is not very useful, unless the * quadrature you started from has been constructed specifically to integrate * over triangles or tetrahedra. This class ensures that the resulting - * quadrature formula only has quadrature points in the reference simplex. + * quadrature formula only has quadrature points in the reference simplex or on + * its boundary. + * + * No transformation is applied to the weights. The weights referring to points + * that live outside the reference simplex are simply discarded. If you chop a + * quadrature formula that is good for both the lower and upper triangles + * separately, then the weights should add up to 1/2. * * @author Luca Heltai, 2017. */ @@ -677,10 +685,22 @@ public: * Both the quadrature point locations and the weights are transformed, so that you * can effectively use the resulting quadrature to integrate on the simplex. * + * The transformation is defined as + * \f[ + * x = v_0 + B \hat x + * \f] + * where the matrix $B$ is given by $B_{ij} = v[j][i]-v[0][i]$. + * + * The weights are scaled with the determinant of $B$. An assertion is thrown + * if the ordering of the vertices is such that the determinant of $B$ is + * negative (this means you attempted to construct a simplex with a negative + * area). + * * @param[in] vertices The vertices of the simplex you wish to integrate on * @return A quadrature object that can be used to integrate on the simplex */ - Quadrature affine_transformation(const std::array, dim+1> &vertices); + Quadrature + compute_affine_transformation(const std::array, dim+1> &vertices) const; }; diff --git a/source/base/quadrature_lib.cc b/source/base/quadrature_lib.cc index a430d1f4e7..522f180988 100644 --- a/source/base/quadrature_lib.cc +++ b/source/base/quadrature_lib.cc @@ -1358,7 +1358,7 @@ QSimplex::QSimplex(const Quadrature &quad) double r=0; for (unsigned int d=0; dquadrature_points.push_back(quad.point(i)); this->weights.push_back(quad.weight(i)); @@ -1370,7 +1370,7 @@ QSimplex::QSimplex(const Quadrature &quad) template Quadrature -QSimplex::affine_transformation(const std::array, dim+1>& vertices) +QSimplex::compute_affine_transformation(const std::array, dim+1>& vertices) const { std::vector > qp(this->size()); std::vector w(this->size()); @@ -1384,13 +1384,14 @@ QSimplex::affine_transformation(const std::array, dim+1>& vertic auto J = determinant(B); AssertThrow(J>0, ExcMessage("The provided vertices generate an inverted Simplex." - " Make sure the vertices are oriented lexicographically.")) + " Make sure the vertices are oriented correctly.")) for (unsigned int i=0; isize(); ++i) { qp[i] = Point(vertices[0]+B*this->point(i)); w[i] = J*this->weight(i); } + return Quadrature(qp, w); } diff --git a/tests/base/quadrature_simplex_01.cc b/tests/base/quadrature_simplex_01.cc index 1442381054..58e8bf3be8 100644 --- a/tests/base/quadrature_simplex_01.cc +++ b/tests/base/quadrature_simplex_01.cc @@ -13,17 +13,13 @@ // // --------------------------------------------------------------------- -// construct a simplex simplex quadrature, and check that we can -// get an affine transformation out of it. - +// construct a simplex quadrature, and check that we can get an affine +// transformation out of it. #include "../tests.h" - #include - #include - -using namespace dealii; +#include "simplex.h" template void test(int n) @@ -39,14 +35,7 @@ void test(int n) quad.get_weights().end(), 0.0) << std::endl << std::endl; - std::array, dim+1> v; - for (unsigned int i=0; i::unit_vector(i); - v[dim] += 2*v[i]; - } - - auto quad2 = quad.affine_transformation(v); + auto quad2 = quad.compute_affine_transformation(get_simplex()); for (auto p:quad2.get_points()) deallog << p << std::endl; diff --git a/tests/base/quadrature_simplex_01.output b/tests/base/quadrature_simplex_01.output index 18ea2a1baa..483ce17b11 100644 --- a/tests/base/quadrature_simplex_01.output +++ b/tests/base/quadrature_simplex_01.output @@ -14,17 +14,17 @@ DEAL::1.00000 DEAL:: DEAL::# Area: 1.00000 DEAL:: -DEAL::2.00000 -DEAL::2.20000 -DEAL::2.40000 -DEAL::2.60000 -DEAL::2.80000 DEAL::3.00000 DEAL::3.20000 DEAL::3.40000 DEAL::3.60000 DEAL::3.80000 DEAL::4.00000 +DEAL::4.20000 +DEAL::4.40000 +DEAL::4.60000 +DEAL::4.80000 +DEAL::5.00000 DEAL:: DEAL::# Area 2: 2.00000 DEAL:: @@ -98,74 +98,74 @@ DEAL::0.00000 1.00000 DEAL:: DEAL::# Area: 0.547500 DEAL:: -DEAL::2.00000 0.00000 -DEAL::1.80000 0.200000 -DEAL::1.60000 0.400000 -DEAL::1.40000 0.600000 -DEAL::1.20000 0.800000 -DEAL::1.00000 1.00000 -DEAL::0.800000 1.20000 -DEAL::0.600000 1.40000 -DEAL::0.400000 1.60000 -DEAL::0.200000 1.80000 -DEAL::0.00000 2.00000 -DEAL::2.20000 0.400000 -DEAL::2.00000 0.600000 -DEAL::1.80000 0.800000 -DEAL::1.60000 1.00000 -DEAL::1.40000 1.20000 -DEAL::1.20000 1.40000 -DEAL::1.00000 1.60000 -DEAL::0.800000 1.80000 -DEAL::0.600000 2.00000 -DEAL::0.400000 2.20000 -DEAL::2.40000 0.800000 -DEAL::2.20000 1.00000 -DEAL::2.00000 1.20000 -DEAL::1.80000 1.40000 -DEAL::1.60000 1.60000 -DEAL::1.40000 1.80000 -DEAL::1.20000 2.00000 -DEAL::1.00000 2.20000 -DEAL::0.800000 2.40000 -DEAL::2.60000 1.20000 -DEAL::2.40000 1.40000 -DEAL::2.20000 1.60000 -DEAL::2.00000 1.80000 -DEAL::1.80000 2.00000 -DEAL::1.60000 2.20000 -DEAL::1.40000 2.40000 -DEAL::1.20000 2.60000 -DEAL::2.80000 1.60000 -DEAL::2.60000 1.80000 -DEAL::2.40000 2.00000 -DEAL::2.20000 2.20000 -DEAL::2.00000 2.40000 -DEAL::1.80000 2.60000 -DEAL::1.60000 2.80000 -DEAL::3.00000 2.00000 -DEAL::2.80000 2.20000 -DEAL::2.60000 2.40000 -DEAL::2.40000 2.60000 -DEAL::2.20000 2.80000 -DEAL::2.00000 3.00000 -DEAL::3.20000 2.40000 -DEAL::3.00000 2.60000 -DEAL::2.80000 2.80000 -DEAL::2.60000 3.00000 -DEAL::2.40000 3.20000 -DEAL::3.40000 2.80000 -DEAL::3.20000 3.00000 -DEAL::3.00000 3.20000 -DEAL::2.80000 3.40000 -DEAL::3.60000 3.20000 -DEAL::3.40000 3.40000 -DEAL::3.20000 3.60000 -DEAL::3.80000 3.60000 -DEAL::3.60000 3.80000 -DEAL::4.00000 4.00000 +DEAL::4.00000 2.00000 +DEAL::3.90000 2.10000 +DEAL::3.80000 2.20000 +DEAL::3.70000 2.30000 +DEAL::3.60000 2.40000 +DEAL::3.50000 2.50000 +DEAL::3.40000 2.60000 +DEAL::3.30000 2.70000 +DEAL::3.20000 2.80000 +DEAL::3.10000 2.90000 +DEAL::3.00000 3.00000 +DEAL::3.80000 2.05000 +DEAL::3.70000 2.15000 +DEAL::3.60000 2.25000 +DEAL::3.50000 2.35000 +DEAL::3.40000 2.45000 +DEAL::3.30000 2.55000 +DEAL::3.20000 2.65000 +DEAL::3.10000 2.75000 +DEAL::3.00000 2.85000 +DEAL::2.90000 2.95000 +DEAL::3.60000 2.10000 +DEAL::3.50000 2.20000 +DEAL::3.40000 2.30000 +DEAL::3.30000 2.40000 +DEAL::3.20000 2.50000 +DEAL::3.10000 2.60000 +DEAL::3.00000 2.70000 +DEAL::2.90000 2.80000 +DEAL::2.80000 2.90000 +DEAL::3.40000 2.15000 +DEAL::3.30000 2.25000 +DEAL::3.20000 2.35000 +DEAL::3.10000 2.45000 +DEAL::3.00000 2.55000 +DEAL::2.90000 2.65000 +DEAL::2.80000 2.75000 +DEAL::2.70000 2.85000 +DEAL::3.20000 2.20000 +DEAL::3.10000 2.30000 +DEAL::3.00000 2.40000 +DEAL::2.90000 2.50000 +DEAL::2.80000 2.60000 +DEAL::2.70000 2.70000 +DEAL::2.60000 2.80000 +DEAL::3.00000 2.25000 +DEAL::2.90000 2.35000 +DEAL::2.80000 2.45000 +DEAL::2.70000 2.55000 +DEAL::2.60000 2.65000 +DEAL::2.50000 2.75000 +DEAL::2.80000 2.30000 +DEAL::2.70000 2.40000 +DEAL::2.60000 2.50000 +DEAL::2.50000 2.60000 +DEAL::2.40000 2.70000 +DEAL::2.60000 2.35000 +DEAL::2.50000 2.45000 +DEAL::2.40000 2.55000 +DEAL::2.30000 2.65000 +DEAL::2.40000 2.40000 +DEAL::2.30000 2.50000 +DEAL::2.20000 2.60000 +DEAL::2.20000 2.45000 +DEAL::2.10000 2.55000 +DEAL::2.00000 2.50000 DEAL:: -DEAL::# Area 2: -6.57000 +DEAL::# Area 2: 0.821250 DEAL:: DEAL::# dim = 3 DEAL::0.00000 0.00000 0.00000 @@ -457,292 +457,292 @@ DEAL::0.00000 0.00000 1.00000 DEAL:: DEAL::# Area: 0.194750 DEAL:: -DEAL::2.00000 0.00000 0.00000 -DEAL::1.80000 0.200000 0.00000 -DEAL::1.60000 0.400000 0.00000 -DEAL::1.40000 0.600000 0.00000 -DEAL::1.20000 0.800000 0.00000 -DEAL::1.00000 1.00000 0.00000 -DEAL::0.800000 1.20000 0.00000 -DEAL::0.600000 1.40000 0.00000 -DEAL::0.400000 1.60000 0.00000 -DEAL::0.200000 1.80000 0.00000 -DEAL::0.00000 2.00000 0.00000 -DEAL::1.80000 0.00000 0.200000 -DEAL::1.60000 0.200000 0.200000 -DEAL::1.40000 0.400000 0.200000 -DEAL::1.20000 0.600000 0.200000 -DEAL::1.00000 0.800000 0.200000 -DEAL::0.800000 1.00000 0.200000 -DEAL::0.600000 1.20000 0.200000 -DEAL::0.400000 1.40000 0.200000 -DEAL::0.200000 1.60000 0.200000 -DEAL::0.00000 1.80000 0.200000 -DEAL::1.60000 0.00000 0.400000 -DEAL::1.40000 0.200000 0.400000 -DEAL::1.20000 0.400000 0.400000 -DEAL::1.00000 0.600000 0.400000 -DEAL::0.800000 0.800000 0.400000 -DEAL::0.600000 1.00000 0.400000 -DEAL::0.400000 1.20000 0.400000 -DEAL::0.200000 1.40000 0.400000 -DEAL::0.00000 1.60000 0.400000 -DEAL::1.40000 0.00000 0.600000 -DEAL::1.20000 0.200000 0.600000 -DEAL::1.00000 0.400000 0.600000 -DEAL::0.800000 0.600000 0.600000 -DEAL::0.600000 0.800000 0.600000 -DEAL::0.400000 1.00000 0.600000 -DEAL::0.200000 1.20000 0.600000 -DEAL::0.00000 1.40000 0.600000 -DEAL::1.20000 0.00000 0.800000 -DEAL::1.00000 0.200000 0.800000 -DEAL::0.800000 0.400000 0.800000 -DEAL::0.600000 0.600000 0.800000 -DEAL::0.400000 0.800000 0.800000 -DEAL::0.200000 1.00000 0.800000 -DEAL::0.00000 1.20000 0.800000 -DEAL::1.00000 0.00000 1.00000 -DEAL::0.800000 0.200000 1.00000 -DEAL::0.600000 0.400000 1.00000 -DEAL::0.400000 0.600000 1.00000 -DEAL::0.200000 0.800000 1.00000 -DEAL::0.00000 1.00000 1.00000 -DEAL::0.800000 0.00000 1.20000 -DEAL::0.600000 0.200000 1.20000 -DEAL::0.400000 0.400000 1.20000 -DEAL::0.200000 0.600000 1.20000 -DEAL::0.00000 0.800000 1.20000 -DEAL::0.600000 0.00000 1.40000 -DEAL::0.400000 0.200000 1.40000 -DEAL::0.200000 0.400000 1.40000 -DEAL::0.00000 0.600000 1.40000 -DEAL::0.400000 0.00000 1.60000 -DEAL::0.200000 0.200000 1.60000 -DEAL::0.00000 0.400000 1.60000 -DEAL::0.200000 0.00000 1.80000 -DEAL::0.00000 0.200000 1.80000 -DEAL::0.00000 0.00000 2.00000 -DEAL::2.20000 0.400000 0.400000 -DEAL::2.00000 0.600000 0.400000 -DEAL::1.80000 0.800000 0.400000 -DEAL::1.60000 1.00000 0.400000 -DEAL::1.40000 1.20000 0.400000 -DEAL::1.20000 1.40000 0.400000 -DEAL::1.00000 1.60000 0.400000 -DEAL::0.800000 1.80000 0.400000 -DEAL::0.600000 2.00000 0.400000 -DEAL::0.400000 2.20000 0.400000 -DEAL::2.00000 0.400000 0.600000 -DEAL::1.80000 0.600000 0.600000 -DEAL::1.60000 0.800000 0.600000 -DEAL::1.40000 1.00000 0.600000 -DEAL::1.20000 1.20000 0.600000 -DEAL::1.00000 1.40000 0.600000 -DEAL::0.800000 1.60000 0.600000 -DEAL::0.600000 1.80000 0.600000 -DEAL::0.400000 2.00000 0.600000 -DEAL::1.80000 0.400000 0.800000 -DEAL::1.60000 0.600000 0.800000 -DEAL::1.40000 0.800000 0.800000 -DEAL::1.20000 1.00000 0.800000 -DEAL::1.00000 1.20000 0.800000 -DEAL::0.800000 1.40000 0.800000 -DEAL::0.600000 1.60000 0.800000 -DEAL::0.400000 1.80000 0.800000 -DEAL::1.60000 0.400000 1.00000 -DEAL::1.40000 0.600000 1.00000 -DEAL::1.20000 0.800000 1.00000 -DEAL::1.00000 1.00000 1.00000 -DEAL::0.800000 1.20000 1.00000 -DEAL::0.600000 1.40000 1.00000 -DEAL::0.400000 1.60000 1.00000 -DEAL::1.40000 0.400000 1.20000 -DEAL::1.20000 0.600000 1.20000 -DEAL::1.00000 0.800000 1.20000 -DEAL::0.800000 1.00000 1.20000 -DEAL::0.600000 1.20000 1.20000 -DEAL::0.400000 1.40000 1.20000 -DEAL::1.20000 0.400000 1.40000 -DEAL::1.00000 0.600000 1.40000 -DEAL::0.800000 0.800000 1.40000 -DEAL::0.600000 1.00000 1.40000 -DEAL::0.400000 1.20000 1.40000 -DEAL::1.00000 0.400000 1.60000 -DEAL::0.800000 0.600000 1.60000 -DEAL::0.600000 0.800000 1.60000 -DEAL::0.400000 1.00000 1.60000 -DEAL::0.800000 0.400000 1.80000 -DEAL::0.600000 0.600000 1.80000 -DEAL::0.400000 0.800000 1.80000 -DEAL::0.600000 0.400000 2.00000 -DEAL::0.400000 0.600000 2.00000 -DEAL::0.400000 0.400000 2.20000 -DEAL::2.40000 0.800000 0.800000 -DEAL::2.20000 1.00000 0.800000 -DEAL::2.00000 1.20000 0.800000 -DEAL::1.80000 1.40000 0.800000 -DEAL::1.60000 1.60000 0.800000 -DEAL::1.40000 1.80000 0.800000 -DEAL::1.20000 2.00000 0.800000 -DEAL::1.00000 2.20000 0.800000 -DEAL::0.800000 2.40000 0.800000 -DEAL::2.20000 0.800000 1.00000 -DEAL::2.00000 1.00000 1.00000 -DEAL::1.80000 1.20000 1.00000 -DEAL::1.60000 1.40000 1.00000 -DEAL::1.40000 1.60000 1.00000 -DEAL::1.20000 1.80000 1.00000 -DEAL::1.00000 2.00000 1.00000 -DEAL::0.800000 2.20000 1.00000 -DEAL::2.00000 0.800000 1.20000 -DEAL::1.80000 1.00000 1.20000 -DEAL::1.60000 1.20000 1.20000 -DEAL::1.40000 1.40000 1.20000 -DEAL::1.20000 1.60000 1.20000 -DEAL::1.00000 1.80000 1.20000 -DEAL::0.800000 2.00000 1.20000 -DEAL::1.80000 0.800000 1.40000 -DEAL::1.60000 1.00000 1.40000 -DEAL::1.40000 1.20000 1.40000 -DEAL::1.20000 1.40000 1.40000 -DEAL::1.00000 1.60000 1.40000 -DEAL::0.800000 1.80000 1.40000 -DEAL::1.60000 0.800000 1.60000 -DEAL::1.40000 1.00000 1.60000 -DEAL::1.20000 1.20000 1.60000 -DEAL::1.00000 1.40000 1.60000 -DEAL::0.800000 1.60000 1.60000 -DEAL::1.40000 0.800000 1.80000 -DEAL::1.20000 1.00000 1.80000 -DEAL::1.00000 1.20000 1.80000 -DEAL::0.800000 1.40000 1.80000 -DEAL::1.20000 0.800000 2.00000 -DEAL::1.00000 1.00000 2.00000 -DEAL::0.800000 1.20000 2.00000 -DEAL::1.00000 0.800000 2.20000 -DEAL::0.800000 1.00000 2.20000 -DEAL::0.800000 0.800000 2.40000 -DEAL::2.60000 1.20000 1.20000 -DEAL::2.40000 1.40000 1.20000 -DEAL::2.20000 1.60000 1.20000 -DEAL::2.00000 1.80000 1.20000 -DEAL::1.80000 2.00000 1.20000 -DEAL::1.60000 2.20000 1.20000 -DEAL::1.40000 2.40000 1.20000 -DEAL::1.20000 2.60000 1.20000 -DEAL::2.40000 1.20000 1.40000 -DEAL::2.20000 1.40000 1.40000 -DEAL::2.00000 1.60000 1.40000 -DEAL::1.80000 1.80000 1.40000 -DEAL::1.60000 2.00000 1.40000 -DEAL::1.40000 2.20000 1.40000 -DEAL::1.20000 2.40000 1.40000 -DEAL::2.20000 1.20000 1.60000 -DEAL::2.00000 1.40000 1.60000 -DEAL::1.80000 1.60000 1.60000 -DEAL::1.60000 1.80000 1.60000 -DEAL::1.40000 2.00000 1.60000 -DEAL::1.20000 2.20000 1.60000 -DEAL::2.00000 1.20000 1.80000 -DEAL::1.80000 1.40000 1.80000 -DEAL::1.60000 1.60000 1.80000 -DEAL::1.40000 1.80000 1.80000 -DEAL::1.20000 2.00000 1.80000 -DEAL::1.80000 1.20000 2.00000 -DEAL::1.60000 1.40000 2.00000 -DEAL::1.40000 1.60000 2.00000 -DEAL::1.20000 1.80000 2.00000 -DEAL::1.60000 1.20000 2.20000 -DEAL::1.40000 1.40000 2.20000 -DEAL::1.20000 1.60000 2.20000 -DEAL::1.40000 1.20000 2.40000 -DEAL::1.20000 1.40000 2.40000 -DEAL::1.20000 1.20000 2.60000 -DEAL::2.80000 1.60000 1.60000 -DEAL::2.60000 1.80000 1.60000 -DEAL::2.40000 2.00000 1.60000 -DEAL::2.20000 2.20000 1.60000 -DEAL::2.00000 2.40000 1.60000 -DEAL::1.80000 2.60000 1.60000 -DEAL::1.60000 2.80000 1.60000 -DEAL::2.60000 1.60000 1.80000 -DEAL::2.40000 1.80000 1.80000 -DEAL::2.20000 2.00000 1.80000 -DEAL::2.00000 2.20000 1.80000 -DEAL::1.80000 2.40000 1.80000 -DEAL::1.60000 2.60000 1.80000 -DEAL::2.40000 1.60000 2.00000 -DEAL::2.20000 1.80000 2.00000 -DEAL::2.00000 2.00000 2.00000 -DEAL::1.80000 2.20000 2.00000 -DEAL::1.60000 2.40000 2.00000 -DEAL::2.20000 1.60000 2.20000 -DEAL::2.00000 1.80000 2.20000 -DEAL::1.80000 2.00000 2.20000 -DEAL::1.60000 2.20000 2.20000 -DEAL::2.00000 1.60000 2.40000 -DEAL::1.80000 1.80000 2.40000 -DEAL::1.60000 2.00000 2.40000 -DEAL::1.80000 1.60000 2.60000 -DEAL::1.60000 1.80000 2.60000 -DEAL::1.60000 1.60000 2.80000 -DEAL::3.00000 2.00000 2.00000 -DEAL::2.80000 2.20000 2.00000 -DEAL::2.60000 2.40000 2.00000 -DEAL::2.40000 2.60000 2.00000 -DEAL::2.20000 2.80000 2.00000 -DEAL::2.00000 3.00000 2.00000 -DEAL::2.80000 2.00000 2.20000 -DEAL::2.60000 2.20000 2.20000 -DEAL::2.40000 2.40000 2.20000 -DEAL::2.20000 2.60000 2.20000 -DEAL::2.00000 2.80000 2.20000 -DEAL::2.60000 2.00000 2.40000 -DEAL::2.40000 2.20000 2.40000 -DEAL::2.20000 2.40000 2.40000 -DEAL::2.00000 2.60000 2.40000 -DEAL::2.40000 2.00000 2.60000 -DEAL::2.20000 2.20000 2.60000 -DEAL::2.00000 2.40000 2.60000 -DEAL::2.20000 2.00000 2.80000 -DEAL::2.00000 2.20000 2.80000 -DEAL::2.00000 2.00000 3.00000 -DEAL::3.20000 2.40000 2.40000 -DEAL::3.00000 2.60000 2.40000 -DEAL::2.80000 2.80000 2.40000 -DEAL::2.60000 3.00000 2.40000 -DEAL::2.40000 3.20000 2.40000 -DEAL::3.00000 2.40000 2.60000 -DEAL::2.80000 2.60000 2.60000 -DEAL::2.60000 2.80000 2.60000 -DEAL::2.40000 3.00000 2.60000 -DEAL::2.80000 2.40000 2.80000 -DEAL::2.60000 2.60000 2.80000 -DEAL::2.40000 2.80000 2.80000 -DEAL::2.60000 2.40000 3.00000 -DEAL::2.40000 2.60000 3.00000 -DEAL::2.40000 2.40000 3.20000 -DEAL::3.40000 2.80000 2.80000 -DEAL::3.20000 3.00000 2.80000 -DEAL::3.00000 3.20000 2.80000 -DEAL::2.80000 3.40000 2.80000 -DEAL::3.20000 2.80000 3.00000 -DEAL::3.00000 3.00000 3.00000 -DEAL::2.80000 3.20000 3.00000 -DEAL::3.00000 2.80000 3.20000 -DEAL::2.80000 3.00000 3.20000 -DEAL::2.80000 2.80000 3.40000 -DEAL::3.60000 3.20000 3.20000 -DEAL::3.40000 3.40000 3.20000 -DEAL::3.20000 3.60000 3.20000 -DEAL::3.40000 3.20000 3.40000 -DEAL::3.20000 3.40000 3.40000 -DEAL::3.20000 3.20000 3.60000 -DEAL::3.80000 3.60000 3.60000 -DEAL::3.60000 3.80000 3.60000 -DEAL::3.60000 3.60000 3.80000 -DEAL::4.00000 4.00000 4.00000 +DEAL::4.00000 2.00000 0.00000 +DEAL::3.90000 2.10000 0.00000 +DEAL::3.80000 2.20000 0.00000 +DEAL::3.70000 2.30000 0.00000 +DEAL::3.60000 2.40000 0.00000 +DEAL::3.50000 2.50000 0.00000 +DEAL::3.40000 2.60000 0.00000 +DEAL::3.30000 2.70000 0.00000 +DEAL::3.20000 2.80000 0.00000 +DEAL::3.10000 2.90000 0.00000 +DEAL::3.00000 3.00000 0.00000 +DEAL::3.80000 2.05000 0.00000 +DEAL::3.70000 2.15000 0.00000 +DEAL::3.60000 2.25000 0.00000 +DEAL::3.50000 2.35000 0.00000 +DEAL::3.40000 2.45000 0.00000 +DEAL::3.30000 2.55000 0.00000 +DEAL::3.20000 2.65000 0.00000 +DEAL::3.10000 2.75000 0.00000 +DEAL::3.00000 2.85000 0.00000 +DEAL::2.90000 2.95000 0.00000 +DEAL::3.60000 2.10000 0.00000 +DEAL::3.50000 2.20000 0.00000 +DEAL::3.40000 2.30000 0.00000 +DEAL::3.30000 2.40000 0.00000 +DEAL::3.20000 2.50000 0.00000 +DEAL::3.10000 2.60000 0.00000 +DEAL::3.00000 2.70000 0.00000 +DEAL::2.90000 2.80000 0.00000 +DEAL::2.80000 2.90000 0.00000 +DEAL::3.40000 2.15000 0.00000 +DEAL::3.30000 2.25000 0.00000 +DEAL::3.20000 2.35000 0.00000 +DEAL::3.10000 2.45000 0.00000 +DEAL::3.00000 2.55000 0.00000 +DEAL::2.90000 2.65000 0.00000 +DEAL::2.80000 2.75000 0.00000 +DEAL::2.70000 2.85000 0.00000 +DEAL::3.20000 2.20000 0.00000 +DEAL::3.10000 2.30000 0.00000 +DEAL::3.00000 2.40000 0.00000 +DEAL::2.90000 2.50000 0.00000 +DEAL::2.80000 2.60000 0.00000 +DEAL::2.70000 2.70000 0.00000 +DEAL::2.60000 2.80000 0.00000 +DEAL::3.00000 2.25000 0.00000 +DEAL::2.90000 2.35000 0.00000 +DEAL::2.80000 2.45000 0.00000 +DEAL::2.70000 2.55000 0.00000 +DEAL::2.60000 2.65000 0.00000 +DEAL::2.50000 2.75000 0.00000 +DEAL::2.80000 2.30000 0.00000 +DEAL::2.70000 2.40000 0.00000 +DEAL::2.60000 2.50000 0.00000 +DEAL::2.50000 2.60000 0.00000 +DEAL::2.40000 2.70000 0.00000 +DEAL::2.60000 2.35000 0.00000 +DEAL::2.50000 2.45000 0.00000 +DEAL::2.40000 2.55000 0.00000 +DEAL::2.30000 2.65000 0.00000 +DEAL::2.40000 2.40000 0.00000 +DEAL::2.30000 2.50000 0.00000 +DEAL::2.20000 2.60000 0.00000 +DEAL::2.20000 2.45000 0.00000 +DEAL::2.10000 2.55000 0.00000 +DEAL::2.00000 2.50000 0.00000 +DEAL::4.05000 2.10000 0.200000 +DEAL::3.95000 2.20000 0.200000 +DEAL::3.85000 2.30000 0.200000 +DEAL::3.75000 2.40000 0.200000 +DEAL::3.65000 2.50000 0.200000 +DEAL::3.55000 2.60000 0.200000 +DEAL::3.45000 2.70000 0.200000 +DEAL::3.35000 2.80000 0.200000 +DEAL::3.25000 2.90000 0.200000 +DEAL::3.15000 3.00000 0.200000 +DEAL::3.85000 2.15000 0.200000 +DEAL::3.75000 2.25000 0.200000 +DEAL::3.65000 2.35000 0.200000 +DEAL::3.55000 2.45000 0.200000 +DEAL::3.45000 2.55000 0.200000 +DEAL::3.35000 2.65000 0.200000 +DEAL::3.25000 2.75000 0.200000 +DEAL::3.15000 2.85000 0.200000 +DEAL::3.05000 2.95000 0.200000 +DEAL::3.65000 2.20000 0.200000 +DEAL::3.55000 2.30000 0.200000 +DEAL::3.45000 2.40000 0.200000 +DEAL::3.35000 2.50000 0.200000 +DEAL::3.25000 2.60000 0.200000 +DEAL::3.15000 2.70000 0.200000 +DEAL::3.05000 2.80000 0.200000 +DEAL::2.95000 2.90000 0.200000 +DEAL::3.45000 2.25000 0.200000 +DEAL::3.35000 2.35000 0.200000 +DEAL::3.25000 2.45000 0.200000 +DEAL::3.15000 2.55000 0.200000 +DEAL::3.05000 2.65000 0.200000 +DEAL::2.95000 2.75000 0.200000 +DEAL::2.85000 2.85000 0.200000 +DEAL::3.25000 2.30000 0.200000 +DEAL::3.15000 2.40000 0.200000 +DEAL::3.05000 2.50000 0.200000 +DEAL::2.95000 2.60000 0.200000 +DEAL::2.85000 2.70000 0.200000 +DEAL::2.75000 2.80000 0.200000 +DEAL::3.05000 2.35000 0.200000 +DEAL::2.95000 2.45000 0.200000 +DEAL::2.85000 2.55000 0.200000 +DEAL::2.75000 2.65000 0.200000 +DEAL::2.65000 2.75000 0.200000 +DEAL::2.85000 2.40000 0.200000 +DEAL::2.75000 2.50000 0.200000 +DEAL::2.65000 2.60000 0.200000 +DEAL::2.55000 2.70000 0.200000 +DEAL::2.65000 2.45000 0.200000 +DEAL::2.55000 2.55000 0.200000 +DEAL::2.45000 2.65000 0.200000 +DEAL::2.45000 2.50000 0.200000 +DEAL::2.35000 2.60000 0.200000 +DEAL::2.25000 2.55000 0.200000 +DEAL::4.10000 2.20000 0.400000 +DEAL::4.00000 2.30000 0.400000 +DEAL::3.90000 2.40000 0.400000 +DEAL::3.80000 2.50000 0.400000 +DEAL::3.70000 2.60000 0.400000 +DEAL::3.60000 2.70000 0.400000 +DEAL::3.50000 2.80000 0.400000 +DEAL::3.40000 2.90000 0.400000 +DEAL::3.30000 3.00000 0.400000 +DEAL::3.90000 2.25000 0.400000 +DEAL::3.80000 2.35000 0.400000 +DEAL::3.70000 2.45000 0.400000 +DEAL::3.60000 2.55000 0.400000 +DEAL::3.50000 2.65000 0.400000 +DEAL::3.40000 2.75000 0.400000 +DEAL::3.30000 2.85000 0.400000 +DEAL::3.20000 2.95000 0.400000 +DEAL::3.70000 2.30000 0.400000 +DEAL::3.60000 2.40000 0.400000 +DEAL::3.50000 2.50000 0.400000 +DEAL::3.40000 2.60000 0.400000 +DEAL::3.30000 2.70000 0.400000 +DEAL::3.20000 2.80000 0.400000 +DEAL::3.10000 2.90000 0.400000 +DEAL::3.50000 2.35000 0.400000 +DEAL::3.40000 2.45000 0.400000 +DEAL::3.30000 2.55000 0.400000 +DEAL::3.20000 2.65000 0.400000 +DEAL::3.10000 2.75000 0.400000 +DEAL::3.00000 2.85000 0.400000 +DEAL::3.30000 2.40000 0.400000 +DEAL::3.20000 2.50000 0.400000 +DEAL::3.10000 2.60000 0.400000 +DEAL::3.00000 2.70000 0.400000 +DEAL::2.90000 2.80000 0.400000 +DEAL::3.10000 2.45000 0.400000 +DEAL::3.00000 2.55000 0.400000 +DEAL::2.90000 2.65000 0.400000 +DEAL::2.80000 2.75000 0.400000 +DEAL::2.90000 2.50000 0.400000 +DEAL::2.80000 2.60000 0.400000 +DEAL::2.70000 2.70000 0.400000 +DEAL::2.70000 2.55000 0.400000 +DEAL::2.60000 2.65000 0.400000 +DEAL::2.50000 2.60000 0.400000 +DEAL::4.15000 2.30000 0.600000 +DEAL::4.05000 2.40000 0.600000 +DEAL::3.95000 2.50000 0.600000 +DEAL::3.85000 2.60000 0.600000 +DEAL::3.75000 2.70000 0.600000 +DEAL::3.65000 2.80000 0.600000 +DEAL::3.55000 2.90000 0.600000 +DEAL::3.45000 3.00000 0.600000 +DEAL::3.95000 2.35000 0.600000 +DEAL::3.85000 2.45000 0.600000 +DEAL::3.75000 2.55000 0.600000 +DEAL::3.65000 2.65000 0.600000 +DEAL::3.55000 2.75000 0.600000 +DEAL::3.45000 2.85000 0.600000 +DEAL::3.35000 2.95000 0.600000 +DEAL::3.75000 2.40000 0.600000 +DEAL::3.65000 2.50000 0.600000 +DEAL::3.55000 2.60000 0.600000 +DEAL::3.45000 2.70000 0.600000 +DEAL::3.35000 2.80000 0.600000 +DEAL::3.25000 2.90000 0.600000 +DEAL::3.55000 2.45000 0.600000 +DEAL::3.45000 2.55000 0.600000 +DEAL::3.35000 2.65000 0.600000 +DEAL::3.25000 2.75000 0.600000 +DEAL::3.15000 2.85000 0.600000 +DEAL::3.35000 2.50000 0.600000 +DEAL::3.25000 2.60000 0.600000 +DEAL::3.15000 2.70000 0.600000 +DEAL::3.05000 2.80000 0.600000 +DEAL::3.15000 2.55000 0.600000 +DEAL::3.05000 2.65000 0.600000 +DEAL::2.95000 2.75000 0.600000 +DEAL::2.95000 2.60000 0.600000 +DEAL::2.85000 2.70000 0.600000 +DEAL::2.75000 2.65000 0.600000 +DEAL::4.20000 2.40000 0.800000 +DEAL::4.10000 2.50000 0.800000 +DEAL::4.00000 2.60000 0.800000 +DEAL::3.90000 2.70000 0.800000 +DEAL::3.80000 2.80000 0.800000 +DEAL::3.70000 2.90000 0.800000 +DEAL::3.60000 3.00000 0.800000 +DEAL::4.00000 2.45000 0.800000 +DEAL::3.90000 2.55000 0.800000 +DEAL::3.80000 2.65000 0.800000 +DEAL::3.70000 2.75000 0.800000 +DEAL::3.60000 2.85000 0.800000 +DEAL::3.50000 2.95000 0.800000 +DEAL::3.80000 2.50000 0.800000 +DEAL::3.70000 2.60000 0.800000 +DEAL::3.60000 2.70000 0.800000 +DEAL::3.50000 2.80000 0.800000 +DEAL::3.40000 2.90000 0.800000 +DEAL::3.60000 2.55000 0.800000 +DEAL::3.50000 2.65000 0.800000 +DEAL::3.40000 2.75000 0.800000 +DEAL::3.30000 2.85000 0.800000 +DEAL::3.40000 2.60000 0.800000 +DEAL::3.30000 2.70000 0.800000 +DEAL::3.20000 2.80000 0.800000 +DEAL::3.20000 2.65000 0.800000 +DEAL::3.10000 2.75000 0.800000 +DEAL::3.00000 2.70000 0.800000 +DEAL::4.25000 2.50000 1.00000 +DEAL::4.15000 2.60000 1.00000 +DEAL::4.05000 2.70000 1.00000 +DEAL::3.95000 2.80000 1.00000 +DEAL::3.85000 2.90000 1.00000 +DEAL::3.75000 3.00000 1.00000 +DEAL::4.05000 2.55000 1.00000 +DEAL::3.95000 2.65000 1.00000 +DEAL::3.85000 2.75000 1.00000 +DEAL::3.75000 2.85000 1.00000 +DEAL::3.65000 2.95000 1.00000 +DEAL::3.85000 2.60000 1.00000 +DEAL::3.75000 2.70000 1.00000 +DEAL::3.65000 2.80000 1.00000 +DEAL::3.55000 2.90000 1.00000 +DEAL::3.65000 2.65000 1.00000 +DEAL::3.55000 2.75000 1.00000 +DEAL::3.45000 2.85000 1.00000 +DEAL::3.45000 2.70000 1.00000 +DEAL::3.35000 2.80000 1.00000 +DEAL::3.25000 2.75000 1.00000 +DEAL::4.30000 2.60000 1.20000 +DEAL::4.20000 2.70000 1.20000 +DEAL::4.10000 2.80000 1.20000 +DEAL::4.00000 2.90000 1.20000 +DEAL::3.90000 3.00000 1.20000 +DEAL::4.10000 2.65000 1.20000 +DEAL::4.00000 2.75000 1.20000 +DEAL::3.90000 2.85000 1.20000 +DEAL::3.80000 2.95000 1.20000 +DEAL::3.90000 2.70000 1.20000 +DEAL::3.80000 2.80000 1.20000 +DEAL::3.70000 2.90000 1.20000 +DEAL::3.70000 2.75000 1.20000 +DEAL::3.60000 2.85000 1.20000 +DEAL::3.50000 2.80000 1.20000 +DEAL::4.35000 2.70000 1.40000 +DEAL::4.25000 2.80000 1.40000 +DEAL::4.15000 2.90000 1.40000 +DEAL::4.05000 3.00000 1.40000 +DEAL::4.15000 2.75000 1.40000 +DEAL::4.05000 2.85000 1.40000 +DEAL::3.95000 2.95000 1.40000 +DEAL::3.95000 2.80000 1.40000 +DEAL::3.85000 2.90000 1.40000 +DEAL::3.75000 2.85000 1.40000 +DEAL::4.40000 2.80000 1.60000 +DEAL::4.30000 2.90000 1.60000 +DEAL::4.20000 3.00000 1.60000 +DEAL::4.20000 2.85000 1.60000 +DEAL::4.10000 2.95000 1.60000 +DEAL::4.00000 2.90000 1.60000 +DEAL::4.45000 2.90000 1.80000 +DEAL::4.35000 3.00000 1.80000 +DEAL::4.25000 2.95000 1.80000 +DEAL::4.50000 3.00000 2.00000 DEAL:: -DEAL::# Area 2: 7.79000 +DEAL::# Area 2: 0.584250 DEAL:: diff --git a/tests/base/quadrature_simplex_02.cc b/tests/base/quadrature_simplex_02.cc index 0db7e99461..cdb31611e2 100644 --- a/tests/base/quadrature_simplex_02.cc +++ b/tests/base/quadrature_simplex_02.cc @@ -13,17 +13,14 @@ // // --------------------------------------------------------------------- -// construct a simplex simplex quadrature, and check that we can -// get an affine transformation out of it. +// construct a simplex quadrature, and check that we can get an affine +// transformation out of it. #include "../tests.h" - #include - #include - -using namespace dealii; +#include "simplex.h" void test(int n) { @@ -38,14 +35,7 @@ void test(int n) quad.get_weights().end(), 0.0) << std::endl << std::endl; - std::array, dim+1> v = {{ - Point<2>(2,0), - Point<2>(5,4), - Point<2>(0,2) - } - }; - - auto quad2 = quad.affine_transformation(v); + auto quad2 = quad.compute_affine_transformation(get_simplex()); for (auto p:quad2.get_points()) deallog << p << std::endl; diff --git a/tests/base/quadrature_simplex_02.output b/tests/base/quadrature_simplex_02.output index bd22a01c53..46ca547e81 100644 --- a/tests/base/quadrature_simplex_02.output +++ b/tests/base/quadrature_simplex_02.output @@ -102,106 +102,106 @@ DEAL::0.0198229 0.967130 DEAL:: DEAL::# Area: 0.500000 DEAL:: -DEAL::2.03783 0.0516629 -DEAL::2.19563 0.267163 -DEAL::2.46479 0.634742 -DEAL::2.82146 1.12183 -DEAL::3.23395 1.68516 -DEAL::3.66562 2.27467 -DEAL::4.07812 2.83800 -DEAL::4.43479 3.32509 -DEAL::4.70395 3.69267 -DEAL::4.86175 3.90817 -DEAL::2.03287 0.0496781 -DEAL::2.16997 0.256899 -DEAL::2.40382 0.610356 -DEAL::2.71371 1.07873 -DEAL::3.07210 1.62042 -DEAL::3.44715 2.18729 -DEAL::3.80554 2.72897 -DEAL::4.11543 3.19734 -DEAL::4.34928 3.55080 -DEAL::4.48638 3.75802 -DEAL::2.02579 0.0468479 -DEAL::2.13338 0.242263 -DEAL::2.31689 0.575584 -DEAL::2.56007 1.01727 -DEAL::2.84131 1.52810 -DEAL::3.13562 2.06267 -DEAL::3.41686 2.57350 -DEAL::3.66004 3.01519 -DEAL::3.84355 3.34851 -DEAL::3.95114 3.54392 -DEAL::2.01808 0.0437610 -DEAL::2.09347 0.226300 -DEAL::2.22208 0.537658 -DEAL::2.39250 0.950245 -DEAL::2.58959 1.42741 -DEAL::2.79584 1.92676 -DEAL::2.99294 2.40393 -DEAL::3.16336 2.81652 -DEAL::3.29196 3.12787 -DEAL::3.36736 3.31041 -DEAL::2.01035 0.0406727 -DEAL::2.05355 0.210330 -DEAL::2.12722 0.499714 -DEAL::2.22484 0.883184 -DEAL::2.33775 1.32668 -DEAL::2.45590 1.79079 -DEAL::2.56881 2.23428 -DEAL::2.66643 2.61775 -DEAL::2.74011 2.90713 -DEAL::2.78330 3.07679 -DEAL::2.00269 0.0376077 -DEAL::2.01392 0.194480 -DEAL::2.03308 0.462057 -DEAL::2.05846 0.816630 -DEAL::2.08781 1.22670 -DEAL::2.11853 1.65584 -DEAL::2.14789 2.06591 -DEAL::2.17327 2.42048 -DEAL::2.19242 2.68806 -DEAL::2.20365 2.84493 -DEAL::1.99497 0.0345194 -DEAL::1.97400 0.178509 -DEAL::1.93822 0.424113 -DEAL::1.89081 0.749569 -DEAL::1.83597 1.12597 -DEAL::1.77859 1.51986 -DEAL::1.72376 1.89626 -DEAL::1.67635 2.22171 -DEAL::1.64057 2.46732 -DEAL::1.61960 2.61131 -DEAL::1.98725 0.0314326 -DEAL::1.93409 0.162547 -DEAL::1.84340 0.386188 -DEAL::1.72323 0.682540 -DEAL::1.58425 1.02528 -DEAL::1.43881 1.38395 -DEAL::1.29984 1.72669 -DEAL::1.17967 2.02304 -DEAL::1.08898 2.24668 -DEAL::1.03581 2.37779 -DEAL::1.98018 0.0286023 -DEAL::1.89750 0.147911 -DEAL::1.75647 0.351415 -DEAL::1.56959 0.621083 -DEAL::1.35346 0.932961 -DEAL::1.12728 1.25934 -DEAL::0.911155 1.57122 -DEAL::0.724276 1.84088 -DEAL::0.583248 2.04439 -DEAL::0.500568 2.16370 -DEAL::1.97522 0.0266176 -DEAL::1.87184 0.137647 -DEAL::1.69551 0.327029 -DEAL::1.46185 0.577985 -DEAL::1.19161 0.868220 -DEAL::0.908813 1.17195 -DEAL::0.638579 1.46219 -DEAL::0.404918 1.71314 -DEAL::0.228586 1.90252 -DEAL::0.125208 2.01355 +DEAL::3.98669 2.01292 +DEAL::3.93118 2.06679 +DEAL::3.83649 2.15869 +DEAL::3.71101 2.28046 +DEAL::3.56589 2.42129 +DEAL::3.41403 2.56867 +DEAL::3.26891 2.70950 +DEAL::3.14343 2.83127 +DEAL::3.04874 2.92317 +DEAL::2.99322 2.97704 +DEAL::3.98570 2.01242 +DEAL::3.92604 2.06422 +DEAL::3.82429 2.15259 +DEAL::3.68946 2.26968 +DEAL::3.53352 2.40510 +DEAL::3.37033 2.54682 +DEAL::3.21439 2.68224 +DEAL::3.07956 2.79934 +DEAL::2.97781 2.88770 +DEAL::2.91815 2.93951 +DEAL::3.98428 2.01171 +DEAL::3.91873 2.06057 +DEAL::3.80691 2.14390 +DEAL::3.65873 2.25432 +DEAL::3.48736 2.38202 +DEAL::3.30803 2.51567 +DEAL::3.13666 2.64337 +DEAL::2.98848 2.75380 +DEAL::2.87666 2.83713 +DEAL::2.81110 2.88598 +DEAL::3.98274 2.01094 +DEAL::3.91075 2.05658 +DEAL::3.78794 2.13441 +DEAL::3.62522 2.23756 +DEAL::3.43702 2.35685 +DEAL::3.24007 2.48169 +DEAL::3.05187 2.60098 +DEAL::2.88914 2.70413 +DEAL::2.76634 2.78197 +DEAL::2.69435 2.82760 +DEAL::3.98120 2.01017 +DEAL::3.90276 2.05258 +DEAL::3.76897 2.12493 +DEAL::3.59169 2.22080 +DEAL::3.38665 2.33167 +DEAL::3.17208 2.44770 +DEAL::2.96705 2.55857 +DEAL::2.78976 2.65444 +DEAL::2.65597 2.72678 +DEAL::2.57753 2.76920 +DEAL::3.97966 2.00940 +DEAL::3.89484 2.04862 +DEAL::3.75014 2.11551 +DEAL::3.55841 2.20416 +DEAL::3.33666 2.30668 +DEAL::3.10461 2.41396 +DEAL::2.88286 2.51648 +DEAL::2.69113 2.60512 +DEAL::2.54643 2.67201 +DEAL::2.46161 2.71123 +DEAL::3.97812 2.00863 +DEAL::3.88685 2.04463 +DEAL::3.73117 2.10603 +DEAL::3.52488 2.18739 +DEAL::3.28629 2.28149 +DEAL::3.03662 2.37997 +DEAL::2.79804 2.47406 +DEAL::2.59174 2.55543 +DEAL::2.43606 2.61683 +DEAL::2.34479 2.65283 +DEAL::3.97658 2.00786 +DEAL::3.87887 2.04064 +DEAL::3.71221 2.09655 +DEAL::3.49136 2.17063 +DEAL::3.23595 2.25632 +DEAL::2.96866 2.34599 +DEAL::2.71325 2.43167 +DEAL::2.49241 2.50576 +DEAL::2.32575 2.56167 +DEAL::2.22804 2.59445 +DEAL::3.97516 2.00715 +DEAL::3.87155 2.03698 +DEAL::3.69482 2.08785 +DEAL::3.46063 2.15527 +DEAL::3.18979 2.23324 +DEAL::2.90636 2.31483 +DEAL::2.63551 2.39280 +DEAL::2.40133 2.46022 +DEAL::2.22460 2.51110 +DEAL::2.12099 2.54092 +DEAL::3.97417 2.00665 +DEAL::3.86642 2.03441 +DEAL::3.68263 2.08176 +DEAL::3.43909 2.14450 +DEAL::3.15742 2.21706 +DEAL::2.86266 2.29299 +DEAL::2.58100 2.36555 +DEAL::2.33746 2.42829 +DEAL::2.15367 2.47563 +DEAL::2.04592 2.50339 DEAL:: -DEAL::# Area 2: 7.00000 +DEAL::# Area 2: 0.750000 DEAL:: diff --git a/tests/base/quadrature_simplex_03.cc b/tests/base/quadrature_simplex_03.cc new file mode 100644 index 0000000000..93fb2aee4d --- /dev/null +++ b/tests/base/quadrature_simplex_03.cc @@ -0,0 +1,55 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 1998 - 2017 by the deal.II authors +// +// This file is part of the deal.II library. +// +// The deal.II library is free software; you can use it, redistribute +// it, and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// The full text of the license can be found in the file LICENSE at +// the top level of the deal.II distribution. +// +// --------------------------------------------------------------------- + +// construct an anisotropic simplex quadrature, and check that we can +// get an affine transformation out of it. + + +#include "../tests.h" +#include +#include +#include "simplex.h" + +void test(int n) +{ + const unsigned int dim = 2; + + QTrianglePolar quad(QGauss<1>(10), QGauss<1>(5)); + + for (auto p:quad.get_points()) + deallog << p << std::endl; + + deallog << std::endl << "# Area: " << std::accumulate(quad.get_weights().begin(), + quad.get_weights().end(), + 0.0) << std::endl << std::endl; + + auto quad2 = quad.compute_affine_transformation(get_simplex<2>()); + + for (auto p:quad2.get_points()) + deallog << p << std::endl; + + + deallog << std::endl << "# Area 2: " << std::accumulate(quad2.get_weights().begin(), + quad2.get_weights().end(), + 0.0) << std::endl << std::endl; + +} + + +int main() +{ + initlog(); + test(10); +} diff --git a/tests/base/quadrature_simplex_03.output b/tests/base/quadrature_simplex_03.output new file mode 100644 index 0000000000..729dd518f8 --- /dev/null +++ b/tests/base/quadrature_simplex_03.output @@ -0,0 +1,107 @@ + +DEAL::0.0121498 0.000896899 +DEAL::0.0628302 0.00463811 +DEAL::0.149276 0.0110195 +DEAL::0.263827 0.0194756 +DEAL::0.396307 0.0292554 +DEAL::0.534947 0.0394897 +DEAL::0.667428 0.0492694 +DEAL::0.781979 0.0577256 +DEAL::0.868425 0.0641070 +DEAL::0.919105 0.0678482 +DEAL::0.00945935 0.00358739 +DEAL::0.0489169 0.0185514 +DEAL::0.116220 0.0440755 +DEAL::0.205404 0.0778981 +DEAL::0.308548 0.117015 +DEAL::0.416487 0.157950 +DEAL::0.519631 0.197066 +DEAL::0.608816 0.230889 +DEAL::0.676118 0.256413 +DEAL::0.715576 0.271377 +DEAL::0.00652337 0.00652337 +DEAL::0.0337342 0.0337342 +DEAL::0.0801476 0.0801476 +DEAL::0.141651 0.141651 +DEAL::0.212781 0.212781 +DEAL::0.287219 0.287219 +DEAL::0.358349 0.358349 +DEAL::0.419852 0.419852 +DEAL::0.466266 0.466266 +DEAL::0.493477 0.493477 +DEAL::0.00358739 0.00945935 +DEAL::0.0185514 0.0489169 +DEAL::0.0440755 0.116220 +DEAL::0.0778981 0.205404 +DEAL::0.117015 0.308548 +DEAL::0.157950 0.416487 +DEAL::0.197066 0.519631 +DEAL::0.230889 0.608816 +DEAL::0.256413 0.676118 +DEAL::0.271377 0.715576 +DEAL::0.000896899 0.0121498 +DEAL::0.00463811 0.0628302 +DEAL::0.0110195 0.149276 +DEAL::0.0194756 0.263827 +DEAL::0.0292554 0.396307 +DEAL::0.0394897 0.534947 +DEAL::0.0492694 0.667428 +DEAL::0.0577256 0.781979 +DEAL::0.0641070 0.868425 +DEAL::0.0678482 0.919105 +DEAL:: +DEAL::# Area: 0.499988 +DEAL:: +DEAL::3.98606 2.01260 +DEAL::3.92789 2.06515 +DEAL::3.82869 2.15479 +DEAL::3.69722 2.27356 +DEAL::3.54518 2.41094 +DEAL::3.38607 2.55469 +DEAL::3.23403 2.69206 +DEAL::3.10257 2.81084 +DEAL::3.00336 2.90048 +DEAL::2.94520 2.95303 +DEAL::3.98337 2.01125 +DEAL::3.91398 2.05819 +DEAL::3.79563 2.13826 +DEAL::3.63880 2.24435 +DEAL::3.45742 2.36706 +DEAL::3.26761 2.49546 +DEAL::3.08624 2.61816 +DEAL::2.92941 2.72426 +DEAL::2.81106 2.80433 +DEAL::2.74167 2.85126 +DEAL::3.98043 2.00979 +DEAL::3.89880 2.05060 +DEAL::3.75956 2.12022 +DEAL::3.57505 2.21248 +DEAL::3.36166 2.31917 +DEAL::3.13834 2.43083 +DEAL::2.92495 2.53752 +DEAL::2.74044 2.62978 +DEAL::2.60120 2.69940 +DEAL::2.51957 2.74021 +DEAL::3.97749 2.00832 +DEAL::3.88361 2.04301 +DEAL::3.72349 2.10219 +DEAL::3.51129 2.18060 +DEAL::3.26589 2.27129 +DEAL::3.00908 2.36619 +DEAL::2.76367 2.45688 +DEAL::2.55148 2.53530 +DEAL::2.39135 2.59447 +DEAL::2.29747 2.62917 +DEAL::3.97480 2.00697 +DEAL::3.86970 2.03605 +DEAL::3.69043 2.08566 +DEAL::3.45287 2.15139 +DEAL::3.17813 2.22741 +DEAL::2.89062 2.30696 +DEAL::2.61587 2.38298 +DEAL::2.37832 2.44872 +DEAL::2.19904 2.49832 +DEAL::2.09394 2.52740 +DEAL:: +DEAL::# Area 2: 0.749982 +DEAL:: diff --git a/tests/base/simplex.h b/tests/base/simplex.h new file mode 100644 index 0000000000..5eefe544fa --- /dev/null +++ b/tests/base/simplex.h @@ -0,0 +1,55 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2017 by the deal.II authors +// +// This file is part of the deal.II library. +// +// The deal.II library is free software; you can use it, redistribute +// it, and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// The full text of the license can be found in the file LICENSE at +// the top level of the deal.II distribution. +// +// --------------------------------------------------------------------- + +// construct a simplex quadrature, and check that we can get an affine +// transformation out of it. +#ifndef tests_base_simplex_h +#define tests_base_simplex_h + +#include "../tests.h" + +#include + +#include "simplex.h" + +#include + + +// Helper functions +template +std::array, dim+1> get_simplex(); + +template<> +std::array, 2> get_simplex() +{ + return {{Point<1>(3), Point<1>(5)}}; +} + + +template<> +std::array, 3> get_simplex() +{ + return {{Point<2>(4,2), Point<2>(3,3), Point<2>(2,2.5)}}; +} + + +template<> +std::array, 4> get_simplex() +{ + return {{Point<3>(4,2,0), Point<3>(3,3,0), Point<3>(2,2.5,0), Point<3>(4.5, 3, 2)}}; +} + + +#endif