From 867a3d870eb31e2c1e547e5782e24e4e24dfdfea Mon Sep 17 00:00:00 2001 From: Luca Heltai Date: Thu, 21 Dec 2017 00:57:26 +0100 Subject: [PATCH] QSimplex --- doc/news/changes/minor/20171221LucaHeltai | 3 + include/deal.II/base/quadrature_lib.h | 37 ++ source/base/quadrature_lib.cc | 52 ++ tests/base/quadrature_simplex_01.cc | 69 ++ tests/base/quadrature_simplex_01.output | 748 ++++++++++++++++++++++ 5 files changed, 909 insertions(+) create mode 100644 doc/news/changes/minor/20171221LucaHeltai create mode 100644 tests/base/quadrature_simplex_01.cc create mode 100644 tests/base/quadrature_simplex_01.output diff --git a/doc/news/changes/minor/20171221LucaHeltai b/doc/news/changes/minor/20171221LucaHeltai new file mode 100644 index 0000000000..a785488185 --- /dev/null +++ b/doc/news/changes/minor/20171221LucaHeltai @@ -0,0 +1,3 @@ +New: Added QSimplex class to perform quadratures on reference simplices, and on their affine transformations. +
+(Luca Heltai, 2017/12/21) diff --git a/include/deal.II/base/quadrature_lib.h b/include/deal.II/base/quadrature_lib.h index 3c938fc5ed..9e8bf23a43 100644 --- a/include/deal.II/base/quadrature_lib.h +++ b/include/deal.II/base/quadrature_lib.h @@ -647,6 +647,43 @@ private: }; +/** + * Given an arbitrary quadrature formula, return one that chops the quadrature + * points above the principal diagonals. + * + * 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. + * + * @author Luca Heltai, 2017. + */ +template +class QSimplex : public Quadrature +{ +public: + /** + * Construct a quadrature that only contains the points that are in the lower + * left reference simplex. + * + * @param[in] quad The input quadrature. + */ + QSimplex(const Quadrature &quad); + + /** + * Return an affine transformation of this quadrature, that can be used to integrate + * on the simplex identified by `vertices`. + * + * Both the quadrature point locations and the weights are transformed, so that you + * can effectively use the resulting quadrature to integrate on the simplex. + * + * @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); + +}; + /*@}*/ /* -------------- declaration of explicit specializations ------------- */ diff --git a/source/base/quadrature_lib.cc b/source/base/quadrature_lib.cc index 64cdcba450..9c0393b435 100644 --- a/source/base/quadrature_lib.cc +++ b/source/base/quadrature_lib.cc @@ -1345,6 +1345,54 @@ QGaussLobattoChebyshev::QGaussLobattoChebyshev (const unsigned int n) Quadrature (QGaussLobattoChebyshev<1>(n)) {} + + +template +QSimplex::QSimplex(const Quadrature &quad) +{ + std::vector > qpoints; + std::vector weights; + + for (unsigned int i=0; iquadrature_points.push_back(quad.point(i)); + this->weights.push_back(quad.weight(i)); + } + } +} + + + +template +Quadrature +QSimplex::affine_transformation(const std::array, dim+1>& vertices) +{ + std::vector > qp(this->size()); + std::vector w(this->size()); + + unsigned int i=0; + Tensor<2,dim> B; + for (unsigned int d=0; dsize(); ++i) + { + qp[i] = Point(vertices[0]+B*this->point(i)); + w[i] = J*this->weight(i); + } + return Quadrature(qp, w); +} + + + // explicit specialization // note that 1d formulae are specialized by implementation above template class QGauss<2>; @@ -1383,4 +1431,8 @@ template class QGaussLobattoChebyshev<1>; template class QGaussLobattoChebyshev<2>; template class QGaussLobattoChebyshev<3>; +template class QSimplex<1>; +template class QSimplex<2>; +template class QSimplex<3>; + DEAL_II_NAMESPACE_CLOSE diff --git a/tests/base/quadrature_simplex_01.cc b/tests/base/quadrature_simplex_01.cc new file mode 100644 index 0000000000..1442381054 --- /dev/null +++ b/tests/base/quadrature_simplex_01.cc @@ -0,0 +1,69 @@ +// --------------------------------------------------------------------- +// +// 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 a simplex simplex quadrature, and check that we can +// get an affine transformation out of it. + + +#include "../tests.h" + +#include + +#include + +using namespace dealii; + +template +void test(int n) +{ + QSimplex quad(QIterated(QTrapez<1>(), n)); + + deallog << "# dim = " << dim << std::endl; + + 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; + + 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); + + 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<1>(10); + test<2>(10); + test<3>(10); +} diff --git a/tests/base/quadrature_simplex_01.output b/tests/base/quadrature_simplex_01.output new file mode 100644 index 0000000000..18ea2a1baa --- /dev/null +++ b/tests/base/quadrature_simplex_01.output @@ -0,0 +1,748 @@ + +DEAL::# dim = 1 +DEAL::0.00000 +DEAL::0.100000 +DEAL::0.200000 +DEAL::0.300000 +DEAL::0.400000 +DEAL::0.500000 +DEAL::0.600000 +DEAL::0.700000 +DEAL::0.800000 +DEAL::0.900000 +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:: +DEAL::# Area 2: 2.00000 +DEAL:: +DEAL::# dim = 2 +DEAL::0.00000 0.00000 +DEAL::0.100000 0.00000 +DEAL::0.200000 0.00000 +DEAL::0.300000 0.00000 +DEAL::0.400000 0.00000 +DEAL::0.500000 0.00000 +DEAL::0.600000 0.00000 +DEAL::0.700000 0.00000 +DEAL::0.800000 0.00000 +DEAL::0.900000 0.00000 +DEAL::1.00000 0.00000 +DEAL::0.00000 0.100000 +DEAL::0.100000 0.100000 +DEAL::0.200000 0.100000 +DEAL::0.300000 0.100000 +DEAL::0.400000 0.100000 +DEAL::0.500000 0.100000 +DEAL::0.600000 0.100000 +DEAL::0.700000 0.100000 +DEAL::0.800000 0.100000 +DEAL::0.900000 0.100000 +DEAL::0.00000 0.200000 +DEAL::0.100000 0.200000 +DEAL::0.200000 0.200000 +DEAL::0.300000 0.200000 +DEAL::0.400000 0.200000 +DEAL::0.500000 0.200000 +DEAL::0.600000 0.200000 +DEAL::0.700000 0.200000 +DEAL::0.800000 0.200000 +DEAL::0.00000 0.300000 +DEAL::0.100000 0.300000 +DEAL::0.200000 0.300000 +DEAL::0.300000 0.300000 +DEAL::0.400000 0.300000 +DEAL::0.500000 0.300000 +DEAL::0.600000 0.300000 +DEAL::0.700000 0.300000 +DEAL::0.00000 0.400000 +DEAL::0.100000 0.400000 +DEAL::0.200000 0.400000 +DEAL::0.300000 0.400000 +DEAL::0.400000 0.400000 +DEAL::0.500000 0.400000 +DEAL::0.600000 0.400000 +DEAL::0.00000 0.500000 +DEAL::0.100000 0.500000 +DEAL::0.200000 0.500000 +DEAL::0.300000 0.500000 +DEAL::0.400000 0.500000 +DEAL::0.500000 0.500000 +DEAL::0.00000 0.600000 +DEAL::0.100000 0.600000 +DEAL::0.200000 0.600000 +DEAL::0.300000 0.600000 +DEAL::0.400000 0.600000 +DEAL::0.00000 0.700000 +DEAL::0.100000 0.700000 +DEAL::0.200000 0.700000 +DEAL::0.300000 0.700000 +DEAL::0.00000 0.800000 +DEAL::0.100000 0.800000 +DEAL::0.200000 0.800000 +DEAL::0.00000 0.900000 +DEAL::0.100000 0.900000 +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:: +DEAL::# Area 2: -6.57000 +DEAL:: +DEAL::# dim = 3 +DEAL::0.00000 0.00000 0.00000 +DEAL::0.100000 0.00000 0.00000 +DEAL::0.200000 0.00000 0.00000 +DEAL::0.300000 0.00000 0.00000 +DEAL::0.400000 0.00000 0.00000 +DEAL::0.500000 0.00000 0.00000 +DEAL::0.600000 0.00000 0.00000 +DEAL::0.700000 0.00000 0.00000 +DEAL::0.800000 0.00000 0.00000 +DEAL::0.900000 0.00000 0.00000 +DEAL::1.00000 0.00000 0.00000 +DEAL::0.00000 0.100000 0.00000 +DEAL::0.100000 0.100000 0.00000 +DEAL::0.200000 0.100000 0.00000 +DEAL::0.300000 0.100000 0.00000 +DEAL::0.400000 0.100000 0.00000 +DEAL::0.500000 0.100000 0.00000 +DEAL::0.600000 0.100000 0.00000 +DEAL::0.700000 0.100000 0.00000 +DEAL::0.800000 0.100000 0.00000 +DEAL::0.900000 0.100000 0.00000 +DEAL::0.00000 0.200000 0.00000 +DEAL::0.100000 0.200000 0.00000 +DEAL::0.200000 0.200000 0.00000 +DEAL::0.300000 0.200000 0.00000 +DEAL::0.400000 0.200000 0.00000 +DEAL::0.500000 0.200000 0.00000 +DEAL::0.600000 0.200000 0.00000 +DEAL::0.700000 0.200000 0.00000 +DEAL::0.800000 0.200000 0.00000 +DEAL::0.00000 0.300000 0.00000 +DEAL::0.100000 0.300000 0.00000 +DEAL::0.200000 0.300000 0.00000 +DEAL::0.300000 0.300000 0.00000 +DEAL::0.400000 0.300000 0.00000 +DEAL::0.500000 0.300000 0.00000 +DEAL::0.600000 0.300000 0.00000 +DEAL::0.700000 0.300000 0.00000 +DEAL::0.00000 0.400000 0.00000 +DEAL::0.100000 0.400000 0.00000 +DEAL::0.200000 0.400000 0.00000 +DEAL::0.300000 0.400000 0.00000 +DEAL::0.400000 0.400000 0.00000 +DEAL::0.500000 0.400000 0.00000 +DEAL::0.600000 0.400000 0.00000 +DEAL::0.00000 0.500000 0.00000 +DEAL::0.100000 0.500000 0.00000 +DEAL::0.200000 0.500000 0.00000 +DEAL::0.300000 0.500000 0.00000 +DEAL::0.400000 0.500000 0.00000 +DEAL::0.500000 0.500000 0.00000 +DEAL::0.00000 0.600000 0.00000 +DEAL::0.100000 0.600000 0.00000 +DEAL::0.200000 0.600000 0.00000 +DEAL::0.300000 0.600000 0.00000 +DEAL::0.400000 0.600000 0.00000 +DEAL::0.00000 0.700000 0.00000 +DEAL::0.100000 0.700000 0.00000 +DEAL::0.200000 0.700000 0.00000 +DEAL::0.300000 0.700000 0.00000 +DEAL::0.00000 0.800000 0.00000 +DEAL::0.100000 0.800000 0.00000 +DEAL::0.200000 0.800000 0.00000 +DEAL::0.00000 0.900000 0.00000 +DEAL::0.100000 0.900000 0.00000 +DEAL::0.00000 1.00000 0.00000 +DEAL::0.00000 0.00000 0.100000 +DEAL::0.100000 0.00000 0.100000 +DEAL::0.200000 0.00000 0.100000 +DEAL::0.300000 0.00000 0.100000 +DEAL::0.400000 0.00000 0.100000 +DEAL::0.500000 0.00000 0.100000 +DEAL::0.600000 0.00000 0.100000 +DEAL::0.700000 0.00000 0.100000 +DEAL::0.800000 0.00000 0.100000 +DEAL::0.900000 0.00000 0.100000 +DEAL::0.00000 0.100000 0.100000 +DEAL::0.100000 0.100000 0.100000 +DEAL::0.200000 0.100000 0.100000 +DEAL::0.300000 0.100000 0.100000 +DEAL::0.400000 0.100000 0.100000 +DEAL::0.500000 0.100000 0.100000 +DEAL::0.600000 0.100000 0.100000 +DEAL::0.700000 0.100000 0.100000 +DEAL::0.800000 0.100000 0.100000 +DEAL::0.00000 0.200000 0.100000 +DEAL::0.100000 0.200000 0.100000 +DEAL::0.200000 0.200000 0.100000 +DEAL::0.300000 0.200000 0.100000 +DEAL::0.400000 0.200000 0.100000 +DEAL::0.500000 0.200000 0.100000 +DEAL::0.600000 0.200000 0.100000 +DEAL::0.700000 0.200000 0.100000 +DEAL::0.00000 0.300000 0.100000 +DEAL::0.100000 0.300000 0.100000 +DEAL::0.200000 0.300000 0.100000 +DEAL::0.300000 0.300000 0.100000 +DEAL::0.400000 0.300000 0.100000 +DEAL::0.500000 0.300000 0.100000 +DEAL::0.600000 0.300000 0.100000 +DEAL::0.00000 0.400000 0.100000 +DEAL::0.100000 0.400000 0.100000 +DEAL::0.200000 0.400000 0.100000 +DEAL::0.300000 0.400000 0.100000 +DEAL::0.400000 0.400000 0.100000 +DEAL::0.500000 0.400000 0.100000 +DEAL::0.00000 0.500000 0.100000 +DEAL::0.100000 0.500000 0.100000 +DEAL::0.200000 0.500000 0.100000 +DEAL::0.300000 0.500000 0.100000 +DEAL::0.400000 0.500000 0.100000 +DEAL::0.00000 0.600000 0.100000 +DEAL::0.100000 0.600000 0.100000 +DEAL::0.200000 0.600000 0.100000 +DEAL::0.300000 0.600000 0.100000 +DEAL::0.00000 0.700000 0.100000 +DEAL::0.100000 0.700000 0.100000 +DEAL::0.200000 0.700000 0.100000 +DEAL::0.00000 0.800000 0.100000 +DEAL::0.100000 0.800000 0.100000 +DEAL::0.00000 0.900000 0.100000 +DEAL::0.00000 0.00000 0.200000 +DEAL::0.100000 0.00000 0.200000 +DEAL::0.200000 0.00000 0.200000 +DEAL::0.300000 0.00000 0.200000 +DEAL::0.400000 0.00000 0.200000 +DEAL::0.500000 0.00000 0.200000 +DEAL::0.600000 0.00000 0.200000 +DEAL::0.700000 0.00000 0.200000 +DEAL::0.800000 0.00000 0.200000 +DEAL::0.00000 0.100000 0.200000 +DEAL::0.100000 0.100000 0.200000 +DEAL::0.200000 0.100000 0.200000 +DEAL::0.300000 0.100000 0.200000 +DEAL::0.400000 0.100000 0.200000 +DEAL::0.500000 0.100000 0.200000 +DEAL::0.600000 0.100000 0.200000 +DEAL::0.700000 0.100000 0.200000 +DEAL::0.00000 0.200000 0.200000 +DEAL::0.100000 0.200000 0.200000 +DEAL::0.200000 0.200000 0.200000 +DEAL::0.300000 0.200000 0.200000 +DEAL::0.400000 0.200000 0.200000 +DEAL::0.500000 0.200000 0.200000 +DEAL::0.600000 0.200000 0.200000 +DEAL::0.00000 0.300000 0.200000 +DEAL::0.100000 0.300000 0.200000 +DEAL::0.200000 0.300000 0.200000 +DEAL::0.300000 0.300000 0.200000 +DEAL::0.400000 0.300000 0.200000 +DEAL::0.500000 0.300000 0.200000 +DEAL::0.00000 0.400000 0.200000 +DEAL::0.100000 0.400000 0.200000 +DEAL::0.200000 0.400000 0.200000 +DEAL::0.300000 0.400000 0.200000 +DEAL::0.400000 0.400000 0.200000 +DEAL::0.00000 0.500000 0.200000 +DEAL::0.100000 0.500000 0.200000 +DEAL::0.200000 0.500000 0.200000 +DEAL::0.300000 0.500000 0.200000 +DEAL::0.00000 0.600000 0.200000 +DEAL::0.100000 0.600000 0.200000 +DEAL::0.200000 0.600000 0.200000 +DEAL::0.00000 0.700000 0.200000 +DEAL::0.100000 0.700000 0.200000 +DEAL::0.00000 0.800000 0.200000 +DEAL::0.00000 0.00000 0.300000 +DEAL::0.100000 0.00000 0.300000 +DEAL::0.200000 0.00000 0.300000 +DEAL::0.300000 0.00000 0.300000 +DEAL::0.400000 0.00000 0.300000 +DEAL::0.500000 0.00000 0.300000 +DEAL::0.600000 0.00000 0.300000 +DEAL::0.700000 0.00000 0.300000 +DEAL::0.00000 0.100000 0.300000 +DEAL::0.100000 0.100000 0.300000 +DEAL::0.200000 0.100000 0.300000 +DEAL::0.300000 0.100000 0.300000 +DEAL::0.400000 0.100000 0.300000 +DEAL::0.500000 0.100000 0.300000 +DEAL::0.600000 0.100000 0.300000 +DEAL::0.00000 0.200000 0.300000 +DEAL::0.100000 0.200000 0.300000 +DEAL::0.200000 0.200000 0.300000 +DEAL::0.300000 0.200000 0.300000 +DEAL::0.400000 0.200000 0.300000 +DEAL::0.500000 0.200000 0.300000 +DEAL::0.00000 0.300000 0.300000 +DEAL::0.100000 0.300000 0.300000 +DEAL::0.200000 0.300000 0.300000 +DEAL::0.300000 0.300000 0.300000 +DEAL::0.400000 0.300000 0.300000 +DEAL::0.00000 0.400000 0.300000 +DEAL::0.100000 0.400000 0.300000 +DEAL::0.200000 0.400000 0.300000 +DEAL::0.300000 0.400000 0.300000 +DEAL::0.00000 0.500000 0.300000 +DEAL::0.100000 0.500000 0.300000 +DEAL::0.200000 0.500000 0.300000 +DEAL::0.00000 0.600000 0.300000 +DEAL::0.100000 0.600000 0.300000 +DEAL::0.00000 0.700000 0.300000 +DEAL::0.00000 0.00000 0.400000 +DEAL::0.100000 0.00000 0.400000 +DEAL::0.200000 0.00000 0.400000 +DEAL::0.300000 0.00000 0.400000 +DEAL::0.400000 0.00000 0.400000 +DEAL::0.500000 0.00000 0.400000 +DEAL::0.600000 0.00000 0.400000 +DEAL::0.00000 0.100000 0.400000 +DEAL::0.100000 0.100000 0.400000 +DEAL::0.200000 0.100000 0.400000 +DEAL::0.300000 0.100000 0.400000 +DEAL::0.400000 0.100000 0.400000 +DEAL::0.500000 0.100000 0.400000 +DEAL::0.00000 0.200000 0.400000 +DEAL::0.100000 0.200000 0.400000 +DEAL::0.200000 0.200000 0.400000 +DEAL::0.300000 0.200000 0.400000 +DEAL::0.400000 0.200000 0.400000 +DEAL::0.00000 0.300000 0.400000 +DEAL::0.100000 0.300000 0.400000 +DEAL::0.200000 0.300000 0.400000 +DEAL::0.300000 0.300000 0.400000 +DEAL::0.00000 0.400000 0.400000 +DEAL::0.100000 0.400000 0.400000 +DEAL::0.200000 0.400000 0.400000 +DEAL::0.00000 0.500000 0.400000 +DEAL::0.100000 0.500000 0.400000 +DEAL::0.00000 0.600000 0.400000 +DEAL::0.00000 0.00000 0.500000 +DEAL::0.100000 0.00000 0.500000 +DEAL::0.200000 0.00000 0.500000 +DEAL::0.300000 0.00000 0.500000 +DEAL::0.400000 0.00000 0.500000 +DEAL::0.500000 0.00000 0.500000 +DEAL::0.00000 0.100000 0.500000 +DEAL::0.100000 0.100000 0.500000 +DEAL::0.200000 0.100000 0.500000 +DEAL::0.300000 0.100000 0.500000 +DEAL::0.400000 0.100000 0.500000 +DEAL::0.00000 0.200000 0.500000 +DEAL::0.100000 0.200000 0.500000 +DEAL::0.200000 0.200000 0.500000 +DEAL::0.300000 0.200000 0.500000 +DEAL::0.00000 0.300000 0.500000 +DEAL::0.100000 0.300000 0.500000 +DEAL::0.200000 0.300000 0.500000 +DEAL::0.00000 0.400000 0.500000 +DEAL::0.100000 0.400000 0.500000 +DEAL::0.00000 0.500000 0.500000 +DEAL::0.00000 0.00000 0.600000 +DEAL::0.100000 0.00000 0.600000 +DEAL::0.200000 0.00000 0.600000 +DEAL::0.300000 0.00000 0.600000 +DEAL::0.400000 0.00000 0.600000 +DEAL::0.00000 0.100000 0.600000 +DEAL::0.100000 0.100000 0.600000 +DEAL::0.200000 0.100000 0.600000 +DEAL::0.300000 0.100000 0.600000 +DEAL::0.00000 0.200000 0.600000 +DEAL::0.100000 0.200000 0.600000 +DEAL::0.200000 0.200000 0.600000 +DEAL::0.00000 0.300000 0.600000 +DEAL::0.100000 0.300000 0.600000 +DEAL::0.00000 0.400000 0.600000 +DEAL::0.00000 0.00000 0.700000 +DEAL::0.100000 0.00000 0.700000 +DEAL::0.200000 0.00000 0.700000 +DEAL::0.300000 0.00000 0.700000 +DEAL::0.00000 0.100000 0.700000 +DEAL::0.100000 0.100000 0.700000 +DEAL::0.200000 0.100000 0.700000 +DEAL::0.00000 0.200000 0.700000 +DEAL::0.100000 0.200000 0.700000 +DEAL::0.00000 0.300000 0.700000 +DEAL::0.00000 0.00000 0.800000 +DEAL::0.100000 0.00000 0.800000 +DEAL::0.200000 0.00000 0.800000 +DEAL::0.00000 0.100000 0.800000 +DEAL::0.100000 0.100000 0.800000 +DEAL::0.00000 0.200000 0.800000 +DEAL::0.00000 0.00000 0.900000 +DEAL::0.100000 0.00000 0.900000 +DEAL::0.00000 0.100000 0.900000 +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:: +DEAL::# Area 2: 7.79000 +DEAL:: -- 2.39.5