]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Implemented QSplit also for dim == 3.
authorLuca Heltai <luca.heltai@sissa.it>
Thu, 21 Dec 2017 15:27:31 +0000 (16:27 +0100)
committerLuca Heltai <luca.heltai@sissa.it>
Fri, 29 Dec 2017 11:15:13 +0000 (12:15 +0100)
include/deal.II/base/quadrature_lib.h
source/base/quadrature_lib.cc
tests/base/quadrature_simplex_05.cc [new file with mode: 0644]
tests/base/quadrature_simplex_05.output [new file with mode: 0644]

index fe0a51bdbba568af799ab2a691649435bbdf2570..017239139b34217bb0eb6379ae1be829f08d1216 100644 (file)
@@ -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$."
  *
index 967150fa27c61a922f7f25cdcb8977cdc8e24bb9..c5c020276818a720f860643ed906f2a381281d91 100644 (file)
@@ -1438,38 +1438,34 @@ template<int dim>
 QSplit<dim>::QSplit(const QSimplex<dim> &base,
                     const Point<dim> &split_point)
 {
-
   std::array<Point<dim>, dim+1> vertices;
   vertices[0] = split_point;
-  switch (dim)
-    {
-    case 3:
-      Assert(false, ExcNotImplemented());
-      break;
-    default:
-    {
-      for (unsigned int f=0; f< GeometryInfo<dim>::faces_per_cell; ++f)
-        {
-          for (unsigned int i=0; i<GeometryInfo<dim>::vertices_per_face; ++i)
-            vertices[i+1] =
-              GeometryInfo<dim>::unit_cell_vertex(
-                GeometryInfo<dim>::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<dim>::faces_per_cell; ++f)
+    for (unsigned int start=0; start < (dim >2 ? 2 : 1); ++start)
+      {
+        for (unsigned int i=0; i<dim; ++i)
+          vertices[i+1] =
+            GeometryInfo<dim>::unit_cell_vertex(
+              GeometryInfo<dim>::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 (file)
index 0000000..a88b22f
--- /dev/null
@@ -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 <deal.II/base/quadrature_lib.h>
+#include <numeric>
+#include "simplex.h"
+
+template<int dim, typename stream_type>
+void test(int n, const Point<dim> &split_point, stream_type &deallog)
+{
+  QSplit<dim> quad(QSimplex<dim>(QIterated<dim>(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 (file)
index 0000000..120d5a8
--- /dev/null
@@ -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

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.