From: Luca Heltai Date: Thu, 21 Dec 2017 15:27:31 +0000 (+0100) Subject: Implemented QSplit also for dim == 3. X-Git-Tag: v9.0.0-rc1~583^2~8 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0d0f22dc25327c47ee1ceb0d83c11e8b4f215a56;p=dealii.git Implemented QSplit also for dim == 3. --- diff --git a/include/deal.II/base/quadrature_lib.h b/include/deal.II/base/quadrature_lib.h index fe0a51bdbb..017239139b 100644 --- a/include/deal.II/base/quadrature_lib.h +++ b/include/deal.II/base/quadrature_lib.h @@ -649,7 +649,7 @@ private: /** * Given an arbitrary quadrature formula, return one that chops the quadrature - * points above the hyper-plane defined by $\sum_i x_i = 1$). In other words, + * 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$." * diff --git a/source/base/quadrature_lib.cc b/source/base/quadrature_lib.cc index 967150fa27..c5c0202768 100644 --- a/source/base/quadrature_lib.cc +++ b/source/base/quadrature_lib.cc @@ -1438,38 +1438,34 @@ template QSplit::QSplit(const QSimplex &base, const Point &split_point) { - std::array, dim+1> vertices; vertices[0] = split_point; - switch (dim) - { - case 3: - Assert(false, ExcNotImplemented()); - break; - default: - { - for (unsigned int f=0; f< GeometryInfo::faces_per_cell; ++f) - { - for (unsigned int i=0; i::vertices_per_face; ++i) - vertices[i+1] = - GeometryInfo::unit_cell_vertex( - GeometryInfo::face_to_cell_vertices(f, i) - ); - auto quad = base.compute_affine_transformation(vertices); - if (quad.size()) - { - this->quadrature_points.insert( - this->quadrature_points.end(), - quad.get_points().begin(), - quad.get_points().end()); - this->weights.insert( - this->weights.end(), - quad.get_weights().begin(), - quad.get_weights().end()); - } - } - } - } + + // Make a simplex from the split_point and the first dim vertices of each + // face. In dimension three, we need to split the face in two triangles, so + // we use once the first dim vertices of each face, and the second time the + // the dim vertices of each face starting from 1. + for (unsigned int f=0; f< GeometryInfo::faces_per_cell; ++f) + for (unsigned int start=0; start < (dim >2 ? 2 : 1); ++start) + { + for (unsigned int i=0; i::unit_cell_vertex( + GeometryInfo::face_to_cell_vertices(f, i+start) + ); + auto quad = base.compute_affine_transformation(vertices); + if (quad.size()) + { + this->quadrature_points.insert( + this->quadrature_points.end(), + quad.get_points().begin(), + quad.get_points().end()); + this->weights.insert( + this->weights.end(), + quad.get_weights().begin(), + quad.get_weights().end()); + } + } } diff --git a/tests/base/quadrature_simplex_05.cc b/tests/base/quadrature_simplex_05.cc new file mode 100644 index 0000000000..a88b22fc1c --- /dev/null +++ b/tests/base/quadrature_simplex_05.cc @@ -0,0 +1,50 @@ +// --------------------------------------------------------------------- +// +// 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" + +template +void test(int n, const Point &split_point, stream_type &deallog) +{ + QSplit quad(QSimplex(QIterated(QTrapez<1>(),n)), + split_point); + + deallog << std::endl + << "# dim = " << dim + << ", quad size = " << quad.size() + << ", computed area = " + << std::accumulate(quad.get_weights().begin(), + quad.get_weights().end(), + 0.0) << std::endl << std::endl; + + for (auto p:quad.get_points()) + deallog << p << std::endl; +} + + +int main() +{ + initlog(); + test<1>(4, Point<1>(.3), deallog); + test<2>(4, Point<2>(.3, .4), deallog); + test<3>(4, Point<3>(.3, .4, .5), deallog); +} diff --git a/tests/base/quadrature_simplex_05.output b/tests/base/quadrature_simplex_05.output new file mode 100644 index 0000000000..120d5a8f43 --- /dev/null +++ b/tests/base/quadrature_simplex_05.output @@ -0,0 +1,500 @@ + +DEAL:: +DEAL::# dim = 1, quad size = 10, computed area = 1.00000 +DEAL:: +DEAL::0.300000 +DEAL::0.225000 +DEAL::0.150000 +DEAL::0.0750000 +DEAL::0.00000 +DEAL::0.300000 +DEAL::0.475000 +DEAL::0.650000 +DEAL::0.825000 +DEAL::1.00000 +DEAL:: +DEAL::# dim = 2, quad size = 60, computed area = 1.21875 +DEAL:: +DEAL::0.300000 0.400000 +DEAL::0.225000 0.300000 +DEAL::0.150000 0.200000 +DEAL::0.0750000 0.100000 +DEAL::0.00000 0.00000 +DEAL::0.225000 0.550000 +DEAL::0.150000 0.450000 +DEAL::0.0750000 0.350000 +DEAL::0.00000 0.250000 +DEAL::0.150000 0.700000 +DEAL::0.0750000 0.600000 +DEAL::0.00000 0.500000 +DEAL::0.0750000 0.850000 +DEAL::0.00000 0.750000 +DEAL::0.00000 1.00000 +DEAL::0.300000 0.400000 +DEAL::0.475000 0.300000 +DEAL::0.650000 0.200000 +DEAL::0.825000 0.100000 +DEAL::1.00000 0.00000 +DEAL::0.475000 0.550000 +DEAL::0.650000 0.450000 +DEAL::0.825000 0.350000 +DEAL::1.00000 0.250000 +DEAL::0.650000 0.700000 +DEAL::0.825000 0.600000 +DEAL::1.00000 0.500000 +DEAL::0.825000 0.850000 +DEAL::1.00000 0.750000 +DEAL::1.00000 1.00000 +DEAL::0.300000 0.400000 +DEAL::0.225000 0.300000 +DEAL::0.150000 0.200000 +DEAL::0.0750000 0.100000 +DEAL::0.00000 0.00000 +DEAL::0.475000 0.300000 +DEAL::0.400000 0.200000 +DEAL::0.325000 0.100000 +DEAL::0.250000 0.00000 +DEAL::0.650000 0.200000 +DEAL::0.575000 0.100000 +DEAL::0.500000 0.00000 +DEAL::0.825000 0.100000 +DEAL::0.750000 0.00000 +DEAL::1.00000 0.00000 +DEAL::0.300000 0.400000 +DEAL::0.225000 0.550000 +DEAL::0.150000 0.700000 +DEAL::0.0750000 0.850000 +DEAL::0.00000 1.00000 +DEAL::0.475000 0.550000 +DEAL::0.400000 0.700000 +DEAL::0.325000 0.850000 +DEAL::0.250000 1.00000 +DEAL::0.650000 0.700000 +DEAL::0.575000 0.850000 +DEAL::0.500000 1.00000 +DEAL::0.825000 0.850000 +DEAL::0.750000 1.00000 +DEAL::1.00000 1.00000 +DEAL:: +DEAL::# dim = 3, quad size = 420, computed area = 1.47656 +DEAL:: +DEAL::0.300000 0.400000 0.500000 +DEAL::0.225000 0.300000 0.375000 +DEAL::0.150000 0.200000 0.250000 +DEAL::0.0750000 0.100000 0.125000 +DEAL::0.00000 0.00000 0.00000 +DEAL::0.225000 0.550000 0.375000 +DEAL::0.150000 0.450000 0.250000 +DEAL::0.0750000 0.350000 0.125000 +DEAL::0.00000 0.250000 0.00000 +DEAL::0.150000 0.700000 0.250000 +DEAL::0.0750000 0.600000 0.125000 +DEAL::0.00000 0.500000 0.00000 +DEAL::0.0750000 0.850000 0.125000 +DEAL::0.00000 0.750000 0.00000 +DEAL::0.00000 1.00000 0.00000 +DEAL::0.225000 0.300000 0.625000 +DEAL::0.150000 0.200000 0.500000 +DEAL::0.0750000 0.100000 0.375000 +DEAL::0.00000 0.00000 0.250000 +DEAL::0.150000 0.450000 0.500000 +DEAL::0.0750000 0.350000 0.375000 +DEAL::0.00000 0.250000 0.250000 +DEAL::0.0750000 0.600000 0.375000 +DEAL::0.00000 0.500000 0.250000 +DEAL::0.00000 0.750000 0.250000 +DEAL::0.150000 0.200000 0.750000 +DEAL::0.0750000 0.100000 0.625000 +DEAL::0.00000 0.00000 0.500000 +DEAL::0.0750000 0.350000 0.625000 +DEAL::0.00000 0.250000 0.500000 +DEAL::0.00000 0.500000 0.500000 +DEAL::0.0750000 0.100000 0.875000 +DEAL::0.00000 0.00000 0.750000 +DEAL::0.00000 0.250000 0.750000 +DEAL::0.00000 0.00000 1.00000 +DEAL::0.300000 0.400000 0.500000 +DEAL::0.225000 0.550000 0.375000 +DEAL::0.150000 0.700000 0.250000 +DEAL::0.0750000 0.850000 0.125000 +DEAL::0.00000 1.00000 0.00000 +DEAL::0.225000 0.300000 0.625000 +DEAL::0.150000 0.450000 0.500000 +DEAL::0.0750000 0.600000 0.375000 +DEAL::0.00000 0.750000 0.250000 +DEAL::0.150000 0.200000 0.750000 +DEAL::0.0750000 0.350000 0.625000 +DEAL::0.00000 0.500000 0.500000 +DEAL::0.0750000 0.100000 0.875000 +DEAL::0.00000 0.250000 0.750000 +DEAL::0.00000 0.00000 1.00000 +DEAL::0.225000 0.550000 0.625000 +DEAL::0.150000 0.700000 0.500000 +DEAL::0.0750000 0.850000 0.375000 +DEAL::0.00000 1.00000 0.250000 +DEAL::0.150000 0.450000 0.750000 +DEAL::0.0750000 0.600000 0.625000 +DEAL::0.00000 0.750000 0.500000 +DEAL::0.0750000 0.350000 0.875000 +DEAL::0.00000 0.500000 0.750000 +DEAL::0.00000 0.250000 1.00000 +DEAL::0.150000 0.700000 0.750000 +DEAL::0.0750000 0.850000 0.625000 +DEAL::0.00000 1.00000 0.500000 +DEAL::0.0750000 0.600000 0.875000 +DEAL::0.00000 0.750000 0.750000 +DEAL::0.00000 0.500000 1.00000 +DEAL::0.0750000 0.850000 0.875000 +DEAL::0.00000 1.00000 0.750000 +DEAL::0.00000 0.750000 1.00000 +DEAL::0.00000 1.00000 1.00000 +DEAL::0.300000 0.400000 0.500000 +DEAL::0.475000 0.300000 0.375000 +DEAL::0.650000 0.200000 0.250000 +DEAL::0.825000 0.100000 0.125000 +DEAL::1.00000 0.00000 0.00000 +DEAL::0.475000 0.550000 0.375000 +DEAL::0.650000 0.450000 0.250000 +DEAL::0.825000 0.350000 0.125000 +DEAL::1.00000 0.250000 0.00000 +DEAL::0.650000 0.700000 0.250000 +DEAL::0.825000 0.600000 0.125000 +DEAL::1.00000 0.500000 0.00000 +DEAL::0.825000 0.850000 0.125000 +DEAL::1.00000 0.750000 0.00000 +DEAL::1.00000 1.00000 0.00000 +DEAL::0.475000 0.300000 0.625000 +DEAL::0.650000 0.200000 0.500000 +DEAL::0.825000 0.100000 0.375000 +DEAL::1.00000 0.00000 0.250000 +DEAL::0.650000 0.450000 0.500000 +DEAL::0.825000 0.350000 0.375000 +DEAL::1.00000 0.250000 0.250000 +DEAL::0.825000 0.600000 0.375000 +DEAL::1.00000 0.500000 0.250000 +DEAL::1.00000 0.750000 0.250000 +DEAL::0.650000 0.200000 0.750000 +DEAL::0.825000 0.100000 0.625000 +DEAL::1.00000 0.00000 0.500000 +DEAL::0.825000 0.350000 0.625000 +DEAL::1.00000 0.250000 0.500000 +DEAL::1.00000 0.500000 0.500000 +DEAL::0.825000 0.100000 0.875000 +DEAL::1.00000 0.00000 0.750000 +DEAL::1.00000 0.250000 0.750000 +DEAL::1.00000 0.00000 1.00000 +DEAL::0.300000 0.400000 0.500000 +DEAL::0.475000 0.550000 0.375000 +DEAL::0.650000 0.700000 0.250000 +DEAL::0.825000 0.850000 0.125000 +DEAL::1.00000 1.00000 0.00000 +DEAL::0.475000 0.300000 0.625000 +DEAL::0.650000 0.450000 0.500000 +DEAL::0.825000 0.600000 0.375000 +DEAL::1.00000 0.750000 0.250000 +DEAL::0.650000 0.200000 0.750000 +DEAL::0.825000 0.350000 0.625000 +DEAL::1.00000 0.500000 0.500000 +DEAL::0.825000 0.100000 0.875000 +DEAL::1.00000 0.250000 0.750000 +DEAL::1.00000 0.00000 1.00000 +DEAL::0.475000 0.550000 0.625000 +DEAL::0.650000 0.700000 0.500000 +DEAL::0.825000 0.850000 0.375000 +DEAL::1.00000 1.00000 0.250000 +DEAL::0.650000 0.450000 0.750000 +DEAL::0.825000 0.600000 0.625000 +DEAL::1.00000 0.750000 0.500000 +DEAL::0.825000 0.350000 0.875000 +DEAL::1.00000 0.500000 0.750000 +DEAL::1.00000 0.250000 1.00000 +DEAL::0.650000 0.700000 0.750000 +DEAL::0.825000 0.850000 0.625000 +DEAL::1.00000 1.00000 0.500000 +DEAL::0.825000 0.600000 0.875000 +DEAL::1.00000 0.750000 0.750000 +DEAL::1.00000 0.500000 1.00000 +DEAL::0.825000 0.850000 0.875000 +DEAL::1.00000 1.00000 0.750000 +DEAL::1.00000 0.750000 1.00000 +DEAL::1.00000 1.00000 1.00000 +DEAL::0.300000 0.400000 0.500000 +DEAL::0.225000 0.300000 0.375000 +DEAL::0.150000 0.200000 0.250000 +DEAL::0.0750000 0.100000 0.125000 +DEAL::0.00000 0.00000 0.00000 +DEAL::0.225000 0.300000 0.625000 +DEAL::0.150000 0.200000 0.500000 +DEAL::0.0750000 0.100000 0.375000 +DEAL::0.00000 0.00000 0.250000 +DEAL::0.150000 0.200000 0.750000 +DEAL::0.0750000 0.100000 0.625000 +DEAL::0.00000 0.00000 0.500000 +DEAL::0.0750000 0.100000 0.875000 +DEAL::0.00000 0.00000 0.750000 +DEAL::0.00000 0.00000 1.00000 +DEAL::0.475000 0.300000 0.375000 +DEAL::0.400000 0.200000 0.250000 +DEAL::0.325000 0.100000 0.125000 +DEAL::0.250000 0.00000 0.00000 +DEAL::0.400000 0.200000 0.500000 +DEAL::0.325000 0.100000 0.375000 +DEAL::0.250000 0.00000 0.250000 +DEAL::0.325000 0.100000 0.625000 +DEAL::0.250000 0.00000 0.500000 +DEAL::0.250000 0.00000 0.750000 +DEAL::0.650000 0.200000 0.250000 +DEAL::0.575000 0.100000 0.125000 +DEAL::0.500000 0.00000 0.00000 +DEAL::0.575000 0.100000 0.375000 +DEAL::0.500000 0.00000 0.250000 +DEAL::0.500000 0.00000 0.500000 +DEAL::0.825000 0.100000 0.125000 +DEAL::0.750000 0.00000 0.00000 +DEAL::0.750000 0.00000 0.250000 +DEAL::1.00000 0.00000 0.00000 +DEAL::0.300000 0.400000 0.500000 +DEAL::0.225000 0.300000 0.625000 +DEAL::0.150000 0.200000 0.750000 +DEAL::0.0750000 0.100000 0.875000 +DEAL::0.00000 0.00000 1.00000 +DEAL::0.475000 0.300000 0.375000 +DEAL::0.400000 0.200000 0.500000 +DEAL::0.325000 0.100000 0.625000 +DEAL::0.250000 0.00000 0.750000 +DEAL::0.650000 0.200000 0.250000 +DEAL::0.575000 0.100000 0.375000 +DEAL::0.500000 0.00000 0.500000 +DEAL::0.825000 0.100000 0.125000 +DEAL::0.750000 0.00000 0.250000 +DEAL::1.00000 0.00000 0.00000 +DEAL::0.475000 0.300000 0.625000 +DEAL::0.400000 0.200000 0.750000 +DEAL::0.325000 0.100000 0.875000 +DEAL::0.250000 0.00000 1.00000 +DEAL::0.650000 0.200000 0.500000 +DEAL::0.575000 0.100000 0.625000 +DEAL::0.500000 0.00000 0.750000 +DEAL::0.825000 0.100000 0.375000 +DEAL::0.750000 0.00000 0.500000 +DEAL::1.00000 0.00000 0.250000 +DEAL::0.650000 0.200000 0.750000 +DEAL::0.575000 0.100000 0.875000 +DEAL::0.500000 0.00000 1.00000 +DEAL::0.825000 0.100000 0.625000 +DEAL::0.750000 0.00000 0.750000 +DEAL::1.00000 0.00000 0.500000 +DEAL::0.825000 0.100000 0.875000 +DEAL::0.750000 0.00000 1.00000 +DEAL::1.00000 0.00000 0.750000 +DEAL::1.00000 0.00000 1.00000 +DEAL::0.300000 0.400000 0.500000 +DEAL::0.225000 0.550000 0.375000 +DEAL::0.150000 0.700000 0.250000 +DEAL::0.0750000 0.850000 0.125000 +DEAL::0.00000 1.00000 0.00000 +DEAL::0.225000 0.550000 0.625000 +DEAL::0.150000 0.700000 0.500000 +DEAL::0.0750000 0.850000 0.375000 +DEAL::0.00000 1.00000 0.250000 +DEAL::0.150000 0.700000 0.750000 +DEAL::0.0750000 0.850000 0.625000 +DEAL::0.00000 1.00000 0.500000 +DEAL::0.0750000 0.850000 0.875000 +DEAL::0.00000 1.00000 0.750000 +DEAL::0.00000 1.00000 1.00000 +DEAL::0.475000 0.550000 0.375000 +DEAL::0.400000 0.700000 0.250000 +DEAL::0.325000 0.850000 0.125000 +DEAL::0.250000 1.00000 0.00000 +DEAL::0.400000 0.700000 0.500000 +DEAL::0.325000 0.850000 0.375000 +DEAL::0.250000 1.00000 0.250000 +DEAL::0.325000 0.850000 0.625000 +DEAL::0.250000 1.00000 0.500000 +DEAL::0.250000 1.00000 0.750000 +DEAL::0.650000 0.700000 0.250000 +DEAL::0.575000 0.850000 0.125000 +DEAL::0.500000 1.00000 0.00000 +DEAL::0.575000 0.850000 0.375000 +DEAL::0.500000 1.00000 0.250000 +DEAL::0.500000 1.00000 0.500000 +DEAL::0.825000 0.850000 0.125000 +DEAL::0.750000 1.00000 0.00000 +DEAL::0.750000 1.00000 0.250000 +DEAL::1.00000 1.00000 0.00000 +DEAL::0.300000 0.400000 0.500000 +DEAL::0.225000 0.550000 0.625000 +DEAL::0.150000 0.700000 0.750000 +DEAL::0.0750000 0.850000 0.875000 +DEAL::0.00000 1.00000 1.00000 +DEAL::0.475000 0.550000 0.375000 +DEAL::0.400000 0.700000 0.500000 +DEAL::0.325000 0.850000 0.625000 +DEAL::0.250000 1.00000 0.750000 +DEAL::0.650000 0.700000 0.250000 +DEAL::0.575000 0.850000 0.375000 +DEAL::0.500000 1.00000 0.500000 +DEAL::0.825000 0.850000 0.125000 +DEAL::0.750000 1.00000 0.250000 +DEAL::1.00000 1.00000 0.00000 +DEAL::0.475000 0.550000 0.625000 +DEAL::0.400000 0.700000 0.750000 +DEAL::0.325000 0.850000 0.875000 +DEAL::0.250000 1.00000 1.00000 +DEAL::0.650000 0.700000 0.500000 +DEAL::0.575000 0.850000 0.625000 +DEAL::0.500000 1.00000 0.750000 +DEAL::0.825000 0.850000 0.375000 +DEAL::0.750000 1.00000 0.500000 +DEAL::1.00000 1.00000 0.250000 +DEAL::0.650000 0.700000 0.750000 +DEAL::0.575000 0.850000 0.875000 +DEAL::0.500000 1.00000 1.00000 +DEAL::0.825000 0.850000 0.625000 +DEAL::0.750000 1.00000 0.750000 +DEAL::1.00000 1.00000 0.500000 +DEAL::0.825000 0.850000 0.875000 +DEAL::0.750000 1.00000 1.00000 +DEAL::1.00000 1.00000 0.750000 +DEAL::1.00000 1.00000 1.00000 +DEAL::0.300000 0.400000 0.500000 +DEAL::0.225000 0.300000 0.375000 +DEAL::0.150000 0.200000 0.250000 +DEAL::0.0750000 0.100000 0.125000 +DEAL::0.00000 0.00000 0.00000 +DEAL::0.475000 0.300000 0.375000 +DEAL::0.400000 0.200000 0.250000 +DEAL::0.325000 0.100000 0.125000 +DEAL::0.250000 0.00000 0.00000 +DEAL::0.650000 0.200000 0.250000 +DEAL::0.575000 0.100000 0.125000 +DEAL::0.500000 0.00000 0.00000 +DEAL::0.825000 0.100000 0.125000 +DEAL::0.750000 0.00000 0.00000 +DEAL::1.00000 0.00000 0.00000 +DEAL::0.225000 0.550000 0.375000 +DEAL::0.150000 0.450000 0.250000 +DEAL::0.0750000 0.350000 0.125000 +DEAL::0.00000 0.250000 0.00000 +DEAL::0.400000 0.450000 0.250000 +DEAL::0.325000 0.350000 0.125000 +DEAL::0.250000 0.250000 0.00000 +DEAL::0.575000 0.350000 0.125000 +DEAL::0.500000 0.250000 0.00000 +DEAL::0.750000 0.250000 0.00000 +DEAL::0.150000 0.700000 0.250000 +DEAL::0.0750000 0.600000 0.125000 +DEAL::0.00000 0.500000 0.00000 +DEAL::0.325000 0.600000 0.125000 +DEAL::0.250000 0.500000 0.00000 +DEAL::0.500000 0.500000 0.00000 +DEAL::0.0750000 0.850000 0.125000 +DEAL::0.00000 0.750000 0.00000 +DEAL::0.250000 0.750000 0.00000 +DEAL::0.00000 1.00000 0.00000 +DEAL::0.300000 0.400000 0.500000 +DEAL::0.475000 0.300000 0.375000 +DEAL::0.650000 0.200000 0.250000 +DEAL::0.825000 0.100000 0.125000 +DEAL::1.00000 0.00000 0.00000 +DEAL::0.225000 0.550000 0.375000 +DEAL::0.400000 0.450000 0.250000 +DEAL::0.575000 0.350000 0.125000 +DEAL::0.750000 0.250000 0.00000 +DEAL::0.150000 0.700000 0.250000 +DEAL::0.325000 0.600000 0.125000 +DEAL::0.500000 0.500000 0.00000 +DEAL::0.0750000 0.850000 0.125000 +DEAL::0.250000 0.750000 0.00000 +DEAL::0.00000 1.00000 0.00000 +DEAL::0.475000 0.550000 0.375000 +DEAL::0.650000 0.450000 0.250000 +DEAL::0.825000 0.350000 0.125000 +DEAL::1.00000 0.250000 0.00000 +DEAL::0.400000 0.700000 0.250000 +DEAL::0.575000 0.600000 0.125000 +DEAL::0.750000 0.500000 0.00000 +DEAL::0.325000 0.850000 0.125000 +DEAL::0.500000 0.750000 0.00000 +DEAL::0.250000 1.00000 0.00000 +DEAL::0.650000 0.700000 0.250000 +DEAL::0.825000 0.600000 0.125000 +DEAL::1.00000 0.500000 0.00000 +DEAL::0.575000 0.850000 0.125000 +DEAL::0.750000 0.750000 0.00000 +DEAL::0.500000 1.00000 0.00000 +DEAL::0.825000 0.850000 0.125000 +DEAL::1.00000 0.750000 0.00000 +DEAL::0.750000 1.00000 0.00000 +DEAL::1.00000 1.00000 0.00000 +DEAL::0.300000 0.400000 0.500000 +DEAL::0.225000 0.300000 0.625000 +DEAL::0.150000 0.200000 0.750000 +DEAL::0.0750000 0.100000 0.875000 +DEAL::0.00000 0.00000 1.00000 +DEAL::0.475000 0.300000 0.625000 +DEAL::0.400000 0.200000 0.750000 +DEAL::0.325000 0.100000 0.875000 +DEAL::0.250000 0.00000 1.00000 +DEAL::0.650000 0.200000 0.750000 +DEAL::0.575000 0.100000 0.875000 +DEAL::0.500000 0.00000 1.00000 +DEAL::0.825000 0.100000 0.875000 +DEAL::0.750000 0.00000 1.00000 +DEAL::1.00000 0.00000 1.00000 +DEAL::0.225000 0.550000 0.625000 +DEAL::0.150000 0.450000 0.750000 +DEAL::0.0750000 0.350000 0.875000 +DEAL::0.00000 0.250000 1.00000 +DEAL::0.400000 0.450000 0.750000 +DEAL::0.325000 0.350000 0.875000 +DEAL::0.250000 0.250000 1.00000 +DEAL::0.575000 0.350000 0.875000 +DEAL::0.500000 0.250000 1.00000 +DEAL::0.750000 0.250000 1.00000 +DEAL::0.150000 0.700000 0.750000 +DEAL::0.0750000 0.600000 0.875000 +DEAL::0.00000 0.500000 1.00000 +DEAL::0.325000 0.600000 0.875000 +DEAL::0.250000 0.500000 1.00000 +DEAL::0.500000 0.500000 1.00000 +DEAL::0.0750000 0.850000 0.875000 +DEAL::0.00000 0.750000 1.00000 +DEAL::0.250000 0.750000 1.00000 +DEAL::0.00000 1.00000 1.00000 +DEAL::0.300000 0.400000 0.500000 +DEAL::0.475000 0.300000 0.625000 +DEAL::0.650000 0.200000 0.750000 +DEAL::0.825000 0.100000 0.875000 +DEAL::1.00000 0.00000 1.00000 +DEAL::0.225000 0.550000 0.625000 +DEAL::0.400000 0.450000 0.750000 +DEAL::0.575000 0.350000 0.875000 +DEAL::0.750000 0.250000 1.00000 +DEAL::0.150000 0.700000 0.750000 +DEAL::0.325000 0.600000 0.875000 +DEAL::0.500000 0.500000 1.00000 +DEAL::0.0750000 0.850000 0.875000 +DEAL::0.250000 0.750000 1.00000 +DEAL::0.00000 1.00000 1.00000 +DEAL::0.475000 0.550000 0.625000 +DEAL::0.650000 0.450000 0.750000 +DEAL::0.825000 0.350000 0.875000 +DEAL::1.00000 0.250000 1.00000 +DEAL::0.400000 0.700000 0.750000 +DEAL::0.575000 0.600000 0.875000 +DEAL::0.750000 0.500000 1.00000 +DEAL::0.325000 0.850000 0.875000 +DEAL::0.500000 0.750000 1.00000 +DEAL::0.250000 1.00000 1.00000 +DEAL::0.650000 0.700000 0.750000 +DEAL::0.825000 0.600000 0.875000 +DEAL::1.00000 0.500000 1.00000 +DEAL::0.575000 0.850000 0.875000 +DEAL::0.750000 0.750000 1.00000 +DEAL::0.500000 1.00000 1.00000 +DEAL::0.825000 0.850000 0.875000 +DEAL::1.00000 0.750000 1.00000 +DEAL::0.750000 1.00000 1.00000 +DEAL::1.00000 1.00000 1.00000