]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Add a new version of GridGenerator::subdivided_hyper_cube
authorbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Sat, 30 Dec 2006 00:52:57 +0000 (00:52 +0000)
committerbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Sat, 30 Dec 2006 00:52:57 +0000 (00:52 +0000)
git-svn-id: https://svn.dealii.org/trunk@14287 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/deal.II/include/grid/grid_generator.h
deal.II/deal.II/source/grid/grid_generator.cc
deal.II/doc/news/changes.html
tests/bits/grid_generator_03.cc [new file with mode: 0644]
tests/bits/grid_generator_03/cmp/generic [new file with mode: 0644]

index 2d79c6720f9d52df4750ba0ce1c502ea2b91fabf..12c4f364e210fad7a98dc900647cc6e1daa82432 100644 (file)
@@ -17,6 +17,7 @@
 #include <base/config.h>
 #include <base/exceptions.h>
 #include <base/point.h>
+#include <base/table.h>
 #include <map>
 
 DEAL_II_NAMESPACE_OPEN
@@ -128,7 +129,7 @@ template <typename number> class SparseMatrix;
  * shell onto a grid of an airfoil, for example.
  *
  * @ingroup grid
- * @author Wolfgang Bangerth, Ralf Hartmann, Guido Kanschat, Stefan Nauber, Joerg Weimar, 1998, 1999, 2000, 2001, 2002, 2003.
+ * @author Wolfgang Bangerth, Ralf Hartmann, Guido Kanschat, Stefan Nauber, Joerg Weimar, Yaqi Wang, 1998, 1999, 2000, 2001, 2002, 2003, 2006.
  */
 class GridGenerator
 {
@@ -305,6 +306,29 @@ class GridGenerator
                               const Point<dim>                &p_1,
                               const Point<dim>                &p_2,
                               const bool                       colorize);
+
+                                    /**
+                                     * Like the previous function, but with
+                                     * the following twist: the @p
+                                     * material_id argument is a
+                                     * dim-dimensional array that, for each
+                                     * cell, indicates which material_id
+                                     * should be set. In addition, and this
+                                     * is the major new functionality, if the
+                                     * material_id of a cell is <tt>(unsigned
+                                     * char)(-1)</tt>, then that cell is
+                                     * deleted from the triangulation,
+                                     * i.e. the domain will have a void
+                                     * there.
+                                     */
+    template <int dim>
+    static
+    void
+    subdivided_hyper_rectangle (Triangulation<dim>                       &tria,
+                               const std::vector< std::vector<double> > &spacing,
+                               const Point<dim>                         &p,
+                               const Table<dim,unsigned char>           &material_id,
+                               const bool                                colorize=false);
     
                                     /**
                                      * A parallelogram. The first
index cfb251096d00331f3ca0d32d255269828293784b..8074e46deb0ad502b36f79d68cd6ea63787b4769 100644 (file)
@@ -22,6 +22,7 @@
 #include <lac/sparse_matrix.h>
 #include <grid/grid_generator.h>
 #include <grid/grid_reordering.h>
+#include <grid/grid_tools.h>
 #include <grid/tria.h>
 #include <grid/tria_accessor.h>
 #include <grid/tria_iterator.h>
@@ -638,6 +639,287 @@ subdivided_hyper_rectangle(Triangulation<dim>              &tria,
 
 
 
+#if deal_II_dimension == 1
+
+template <>
+void
+GridGenerator::
+subdivided_hyper_rectangle (Triangulation<1>&                             tria,
+                            const std::vector< std::vector<double> >&     spacing,
+                            const Point<1>&                               p,
+                           const Table<1,unsigned char>&                 material_id,
+                            const bool                                    colorize)
+{
+                                  // contributed by Yaqi Wang 2006
+  Assert(spacing.size() == 1, 
+        ExcInvalidRepetitionsDimension(1));
+
+  const unsigned int n_cells = material_id.size(0);
+
+  Assert(spacing[0].size() == n_cells, 
+        ExcInvalidRepetitionsDimension(1));
+
+  double delta = std::numeric_limits<double>::max();
+  for (unsigned int i=0; i<n_cells; i++) {
+    Assert (spacing[0][i] >= 0, ExcInvalidRepetitions(-1));
+    delta = std::min (delta, spacing[0][i]);
+  }
+  
+                                   // generate the necessary points
+  std::vector<Point<1> > points;
+  double ax = p[0];
+  for (unsigned int x=0; x<=n_cells; ++x) {
+    points.push_back (Point<1> (ax));
+    if (x<n_cells)
+      ax += spacing[0][x];
+  }
+                                   // create the cells
+  unsigned int n_val_cells = 0;
+  for (unsigned int i=0; i<n_cells; i++)
+    if (material_id[i]!=(unsigned char)(-1)) n_val_cells++;
+
+  std::vector<CellData<1> > cells(n_val_cells);
+  unsigned int id = 0;
+  for (unsigned int x=0; x<n_cells; ++x)
+    if (material_id[x] != (unsigned char)(-1))
+      {
+       cells[id].vertices[0] = x;
+       cells[id].vertices[1] = x+1;
+       cells[id].material_id = material_id[x];
+       id++;
+      }
+                                   // create triangulation
+  SubCellData t;
+  GridTools::delete_unused_vertices (points, cells, t);
+
+  tria.create_triangulation (points, cells, t);  
+
+                                   // set boundary indicator
+  if (colorize)
+    Assert (false, ExcNotImplemented());
+}
+
+#endif
+
+#if deal_II_dimension == 2
+
+template <>
+void
+GridGenerator::
+subdivided_hyper_rectangle (Triangulation<2>&                         tria,
+                            const std::vector< std::vector<double> >&     spacing,
+                            const Point<2>&                               p,
+                           const Table<2,unsigned char>&                 material_id,
+                            const bool                                    colorize)
+{
+                                  // contributed by Yaqi Wang 2006
+  Assert(spacing.size() == 2, 
+        ExcInvalidRepetitionsDimension(2));
+
+  std::vector<unsigned int> repetitions(2);
+  unsigned int n_cells = 1;
+  double delta = std::numeric_limits<double>::max();
+  for (unsigned int i=0; i<2; i++)
+    {
+      repetitions[i] = spacing[i].size();
+      n_cells *= repetitions[i];
+      for (unsigned int j=0; j<repetitions[i]; j++)
+       {
+         Assert (spacing[i][j] >= 0, ExcInvalidRepetitions(-1));
+         delta = std::min (delta, spacing[i][j]);
+       }
+      Assert(material_id.size(i) == repetitions[i], 
+            ExcInvalidRepetitionsDimension(i));
+    }
+                                   // generate the necessary points
+  std::vector<Point<2> > points;
+  double ay = p[1];
+  for (unsigned int y=0; y<=repetitions[1]; ++y)
+    {
+      double ax = p[0];
+      for (unsigned int x=0; x<=repetitions[0]; ++x)
+       {
+         points.push_back (Point<2> (ax,ay));
+         if (x<repetitions[0])
+           ax += spacing[0][x];
+       }
+      if (y<repetitions[1])
+       ay += spacing[1][y];
+    }
+
+                                   // create the cells
+  unsigned int n_val_cells = 0;
+  for (unsigned int i=0; i<material_id.size(0); i++)
+    for (unsigned int j=0; j<material_id.size(1); j++)
+      if (material_id[i][j] != (unsigned char)(-1))
+       n_val_cells++;
+
+  std::vector<CellData<2> > cells(n_val_cells);
+  unsigned int id = 0;
+  for (unsigned int y=0; y<repetitions[1]; ++y)
+    for (unsigned int x=0; x<repetitions[0]; ++x)
+      if (material_id[x][y]!=(unsigned char)(-1))
+       {
+         cells[id].vertices[0] = y*(repetitions[0]+1)+x;
+         cells[id].vertices[1] = y*(repetitions[0]+1)+x+1;
+         cells[id].vertices[2] = (y+1)*(repetitions[0]+1)+x;
+         cells[id].vertices[3] = (y+1)*(repetitions[0]+1)+x+1;
+         cells[id].material_id = material_id[x][y];
+         id++;
+       }
+
+                                    // create triangulation
+  SubCellData t;
+  GridTools::delete_unused_vertices (points, cells, t);
+
+  tria.create_triangulation (points, cells, t);  
+
+                                    // set boundary indicator
+  if (colorize)
+    {
+      double eps = 0.01 * delta;
+      Triangulation<2>::cell_iterator cell = tria.begin_raw(),
+                                     endc = tria.end();
+      for (; cell !=endc; ++cell)
+       {
+         Point<2> cell_center = cell->center();
+         for(unsigned int f=0; f<GeometryInfo<2>::faces_per_cell; ++f)
+           if (cell->face(f)->boundary_indicator() == 0)
+             {
+               Point<2> face_center = cell->face(f)->center();
+               for (unsigned int i=0; i<2; ++i)
+                 {
+                   if (face_center[i]<cell_center[i]-eps)
+                     cell->face(f)->set_boundary_indicator(i*2);
+                   if (face_center[i]>cell_center[i]+eps)
+                     cell->face(f)->set_boundary_indicator(i*2+1);
+                 }
+             }
+       }
+    }
+}
+
+#endif
+
+#if deal_II_dimension == 3
+
+template <>
+void
+GridGenerator::
+subdivided_hyper_rectangle (Triangulation<3>&                           tria,
+                            const std::vector< std::vector<double> >&     spacing,
+                            const Point<3>&                             p,
+                           const Table<3,unsigned char>&               material_id,
+                            const bool                                    colorize)
+{
+                                  // contributed by Yaqi Wang 2006
+  const unsigned int dim = 3;
+  
+  Assert(spacing.size() == dim, 
+        ExcInvalidRepetitionsDimension(dim));
+
+  std::vector<unsigned int> repetitions(dim);
+  unsigned int n_cells = 1;
+  double delta = std::numeric_limits<double>::max();
+  for (unsigned int i=0; i<dim; i++)
+    {
+      repetitions[i] = spacing[i].size();
+      n_cells *= repetitions[i];
+      for (unsigned int j=0; j<repetitions[i]; j++)
+       {
+         Assert (spacing[i][j] >= 0, ExcInvalidRepetitions(-1));
+         delta = std::min (delta, spacing[i][j]);
+       }
+      Assert(material_id.size(i) == repetitions[i], 
+            ExcInvalidRepetitionsDimension(i));
+    }
+
+                                   // generate the necessary points
+  std::vector<Point<dim> > points;
+  double az = p[2];
+  for (unsigned int z=0; z<=repetitions[2]; ++z)
+    {
+      double ay = p[1];
+      for (unsigned int y=0; y<=repetitions[1]; ++y)
+       {
+         double ax = p[0];
+         for (unsigned int x=0; x<=repetitions[0]; ++x)
+           {
+             points.push_back (Point<dim> (ax,ay,az));
+             if (x<repetitions[0])
+               ax += spacing[0][x];
+           }
+         if (y<repetitions[1])
+           ay += spacing[1][y];
+       }
+      if (z<repetitions[2])
+       az += spacing[2][z];
+    }
+
+                                   // create the cells
+  unsigned int n_val_cells = 0;
+  for (unsigned int i=0; i<material_id.size(0); i++)
+    for (unsigned int j=0; j<material_id.size(1); j++)
+      for (unsigned int k=0; k<material_id.size(2); k++)
+       if (material_id[i][j][k]!=(unsigned char)(-1))
+         n_val_cells++;
+
+  std::vector<CellData<dim> > cells(n_val_cells);
+  unsigned int id = 0;
+  const unsigned int n_x  = (repetitions[0]+1);
+  const unsigned int n_xy = (repetitions[0]+1)*(repetitions[1]+1);
+  for (unsigned int z=0; z<repetitions[2]; ++z)
+    for (unsigned int y=0; y<repetitions[1]; ++y)
+      for (unsigned int x=0; x<repetitions[0]; ++x)
+       if (material_id[x][y][z]!=(unsigned char)(-1))
+         {
+           cells[id].vertices[0] = z*n_xy + y*n_x + x;
+           cells[id].vertices[1] = z*n_xy + y*n_x + x+1;
+           cells[id].vertices[2] = z*n_xy + (y+1)*n_x + x;
+           cells[id].vertices[3] = z*n_xy + (y+1)*n_x + x+1;
+           cells[id].vertices[4] = (z+1)*n_xy + y*n_x + x;
+           cells[id].vertices[5] = (z+1)*n_xy + y*n_x + x+1;
+           cells[id].vertices[6] = (z+1)*n_xy + (y+1)*n_x + x;
+           cells[id].vertices[7] = (z+1)*n_xy + (y+1)*n_x + x+1;
+           cells[id].material_id = material_id[x][y][z];
+           id++;
+         }
+
+                                // create triangulation
+  SubCellData t;
+  GridTools::delete_unused_vertices (points, cells, t);
+
+  tria.create_triangulation (points, cells, t);  
+
+                                  // set boundary indicator
+  if (colorize)
+    {
+      double eps = 0.01 * delta;
+      Triangulation<dim>::cell_iterator cell = tria.begin_raw(),
+                                       endc = tria.end();
+      for (; cell !=endc; ++cell)
+       {
+         Point<dim> cell_center = cell->center();
+         for(unsigned int f=0; f<GeometryInfo<dim>::faces_per_cell; ++f)
+           if (cell->face(f)->boundary_indicator() == 0)
+             {
+               Point<dim> face_center = cell->face(f)->center();
+               for (unsigned int i=0; i<dim; ++i)
+                 {
+                   if (face_center[i]<cell_center[i]-eps)
+                     cell->face(f)->set_boundary_indicator(i*2);
+                   if (face_center[i]>cell_center[i]+eps)
+                     cell->face(f)->set_boundary_indicator(i*2+1);
+                 }
+             }
+       }
+    }
+}
+
+#endif
+
+
 #if deal_II_dimension == 1
 
 // Implementation for 1D only
index 72da0b2d356204bcb44a51ac87d1aa82c2a776de..eee625f1a274fc8e4a3c2f2b7a8436a686980997 100644 (file)
@@ -1027,13 +1027,13 @@ inconvenience this causes.
        </p>
 
   <li> <p>
-       New: There is now a function <code
+       New: There are now two new functions <code
        class="class">GridGenerator</code>::<code
        class="member">subdivided_hyper_rectangle</code> that produces
        a non-uniformly subdivided rectangle, ideally suited for graded
-       meshes.
+       meshes. One of these functions is able to create meshes with holes. 
        <br>
-       (Yaqi Wang 2006/11/15)
+       (Yaqi Wang 2006/11/15, 2006/12/29)
        </p>
 
   <li> <p> Fixed: Corrected <code class="member">clone</code> method 
diff --git a/tests/bits/grid_generator_03.cc b/tests/bits/grid_generator_03.cc
new file mode 100644 (file)
index 0000000..b1cfc69
--- /dev/null
@@ -0,0 +1,141 @@
+//---------------------------------------------------------------------------
+//    $Id$
+//    Version: $Name$ 
+//
+//    Copyright (C) 2005, 2006 by the deal.II authors
+//
+//    This file is subject to QPL and may not be  distributed
+//    without copyright and license information. Please refer
+//    to the file deal.II/doc/license.html for the  text  and
+//    further information on this license.
+//
+//---------------------------------------------------------------------------
+
+
+// Test GridGenerator::subdivided_hyper_rectangle with vector of step
+// sizes and the table argument for material id
+
+#include "../tests.h"
+#include <base/logstream.h>
+#include <base/tensor.h>
+#include <base/table.h>
+#include <grid/tria.h>
+#include <grid/grid_generator.h>
+#include <grid/grid_out.h>
+
+#include <fstream>
+#include <iostream>
+
+
+template <int dim> Table<dim,unsigned char> material_ids();
+
+template <> Table<1,unsigned char> material_ids<1>()
+{
+  Table<1,unsigned char> t(2);
+  for (unsigned int i=0; i<2; ++i)
+    t[i] = 1;
+  return t;
+}
+
+
+template <> Table<2,unsigned char> material_ids<2>()
+{
+  Table<2,unsigned char> t(2,3);
+  for (unsigned int i=0; i<2; ++i)
+    for (unsigned int j=0; j<3; ++j)
+      t[i][j] = 1;
+                                  // produce a hole in the middle
+  t[1][1] = (unsigned char)(-1);
+  return t;
+}
+
+
+template <> Table<3,unsigned char> material_ids<3>()
+{
+  Table<3,unsigned char> t(2,3,4);
+  for (unsigned int i=0; i<2; ++i)
+    for (unsigned int j=0; j<3; ++j)
+      for (unsigned int k=0; k<4; ++k)
+       t[i][j][k] = 1;
+                                  // produce a hole in the middle
+  t[1][1][1] = (unsigned char)(-1);
+  t[1][1][2] = (unsigned char)(-1);
+  return t;
+}
+
+
+
+template<int dim>
+void test(std::ostream& out)
+{
+  Point<dim> p1;
+  p1[0] = 2.;
+  if (dim>1) p1[1] = -1.;
+  if (dim>2) p1[2] = 0.;
+  
+  Point<dim> p2;
+  p2[0] = 3.;
+  if (dim>1) p2[1] = 2.;
+  if (dim>2) p2[2] = 4.;
+
+  Point<dim> p3;
+  p3[0] = 2.;
+  if (dim>1) p3[1] = 1.;
+  if (dim>2) p3[2] = 4.;
+  
+  GridOut go;
+
+                                   // uniformly subdivided mesh
+  if (true)
+    {
+      deallog << "subdivided_hyper_rectangle" << std::endl;
+      Triangulation<dim> tr;
+      std::vector<std::vector<double> > sub(dim);
+      for (unsigned int i=0; i<dim; ++i)
+        sub[i] = std::vector<double> (i+2, (p2[i]-p1[i])/(i+2));
+
+      GridGenerator::subdivided_hyper_rectangle(tr, sub, p1, material_ids<dim>(),
+                                               dim!=1);
+      if (tr.n_cells() > 0)
+       go.write_gnuplot(tr, out);
+    }
+
+
+                                   // non-uniformly subdivided mesh
+  if (true)
+    {
+      deallog << "subdivided_hyper_rectangle" << std::endl;
+      Triangulation<dim> tr;
+      std::vector<std::vector<double> > sub(dim);
+      for (unsigned int i=0; i<dim; ++i)
+        {
+          sub[i] = std::vector<double> (i+2, (p2[i]-p1[i])/(i+2));
+          sub[i][0] /= 2;
+          sub[i].back() *= 1.5;
+        }
+
+      GridGenerator::subdivided_hyper_rectangle(tr, sub, p1, material_ids<dim>(),
+                                               dim!=1);
+      if (tr.n_cells() > 0)
+       go.write_gnuplot(tr, out);
+    }
+}
+
+
+int main()
+{
+  std::ofstream logfile("grid_generator_03/output");
+  deallog.attach(logfile);
+  deallog.depth_console(0);
+  deallog.threshold_double(1.e-10);
+  
+  deallog.push("1d");
+  test<1>(logfile);
+  deallog.pop();
+  deallog.push("2d");
+  test<2>(logfile);
+  deallog.pop();
+  deallog.push("3d");
+  test<3>(logfile);
+  deallog.pop();
+}
diff --git a/tests/bits/grid_generator_03/cmp/generic b/tests/bits/grid_generator_03/cmp/generic
new file mode 100644 (file)
index 0000000..1c0c7c0
--- /dev/null
@@ -0,0 +1,1139 @@
+
+DEAL:1d::subdivided_hyper_rectangle
+2.00000 0 1
+2.50000 0 1
+
+DEAL:1d::subdivided_hyper_rectangle
+2.00000 0 1
+2.25000 0 1
+
+DEAL:2d::subdivided_hyper_rectangle
+2.00000 -1.00000 0 1
+2.50000 -1.00000 0 1
+2.50000 0.00000 0 1
+2.00000 0.00000 0 1
+2.00000 -1.00000 0 1
+
+
+2.50000 -1.00000 0 1
+3.00000 -1.00000 0 1
+3.00000 0.00000 0 1
+2.50000 0.00000 0 1
+2.50000 -1.00000 0 1
+
+
+2.00000 0.00000 0 1
+2.50000 0.00000 0 1
+2.50000 1.00000 0 1
+2.00000 1.00000 0 1
+2.00000 0.00000 0 1
+
+
+2.00000 1.00000 0 1
+2.50000 1.00000 0 1
+2.50000 2.00000 0 1
+2.00000 2.00000 0 1
+2.00000 1.00000 0 1
+
+
+2.50000 1.00000 0 1
+3.00000 1.00000 0 1
+3.00000 2.00000 0 1
+2.50000 2.00000 0 1
+2.50000 1.00000 0 1
+
+
+DEAL:2d::subdivided_hyper_rectangle
+2.00000 -1.00000 0 1
+2.25000 -1.00000 0 1
+2.25000 -0.500000 0 1
+2.00000 -0.500000 0 1
+2.00000 -1.00000 0 1
+
+
+2.25000 -1.00000 0 1
+3.00000 -1.00000 0 1
+3.00000 -0.500000 0 1
+2.25000 -0.500000 0 1
+2.25000 -1.00000 0 1
+
+
+2.00000 -0.500000 0 1
+2.25000 -0.500000 0 1
+2.25000 0.500000 0 1
+2.00000 0.500000 0 1
+2.00000 -0.500000 0 1
+
+
+2.00000 0.500000 0 1
+2.25000 0.500000 0 1
+2.25000 2.00000 0 1
+2.00000 2.00000 0 1
+2.00000 0.500000 0 1
+
+
+2.25000 0.500000 0 1
+3.00000 0.500000 0 1
+3.00000 2.00000 0 1
+2.25000 2.00000 0 1
+2.25000 0.500000 0 1
+
+
+DEAL:3d::subdivided_hyper_rectangle
+2.00000 -1.00000 0.00000 0 1
+2.50000 -1.00000 0.00000 0 1
+2.50000 -1.00000 1.00000 0 1
+2.00000 -1.00000 1.00000 0 1
+2.00000 -1.00000 0.00000 0 1
+
+2.00000 0.00000 0.00000 0 1
+2.50000 0.00000 0.00000 0 1
+2.50000 0.00000 1.00000 0 1
+2.00000 0.00000 1.00000 0 1
+2.00000 0.00000 0.00000 0 1
+
+2.00000 -1.00000 0.00000 0 1
+2.00000 0.00000 0.00000 0 1
+
+2.50000 -1.00000 0.00000 0 1
+2.50000 0.00000 0.00000 0 1
+
+2.50000 -1.00000 1.00000 0 1
+2.50000 0.00000 1.00000 0 1
+
+2.00000 -1.00000 1.00000 0 1
+2.00000 0.00000 1.00000 0 1
+
+2.50000 -1.00000 0.00000 0 1
+3.00000 -1.00000 0.00000 0 1
+3.00000 -1.00000 1.00000 0 1
+2.50000 -1.00000 1.00000 0 1
+2.50000 -1.00000 0.00000 0 1
+
+2.50000 0.00000 0.00000 0 1
+3.00000 0.00000 0.00000 0 1
+3.00000 0.00000 1.00000 0 1
+2.50000 0.00000 1.00000 0 1
+2.50000 0.00000 0.00000 0 1
+
+2.50000 -1.00000 0.00000 0 1
+2.50000 0.00000 0.00000 0 1
+
+3.00000 -1.00000 0.00000 0 1
+3.00000 0.00000 0.00000 0 1
+
+3.00000 -1.00000 1.00000 0 1
+3.00000 0.00000 1.00000 0 1
+
+2.50000 -1.00000 1.00000 0 1
+2.50000 0.00000 1.00000 0 1
+
+2.00000 0.00000 0.00000 0 1
+2.50000 0.00000 0.00000 0 1
+2.50000 0.00000 1.00000 0 1
+2.00000 0.00000 1.00000 0 1
+2.00000 0.00000 0.00000 0 1
+
+2.00000 1.00000 0.00000 0 1
+2.50000 1.00000 0.00000 0 1
+2.50000 1.00000 1.00000 0 1
+2.00000 1.00000 1.00000 0 1
+2.00000 1.00000 0.00000 0 1
+
+2.00000 0.00000 0.00000 0 1
+2.00000 1.00000 0.00000 0 1
+
+2.50000 0.00000 0.00000 0 1
+2.50000 1.00000 0.00000 0 1
+
+2.50000 0.00000 1.00000 0 1
+2.50000 1.00000 1.00000 0 1
+
+2.00000 0.00000 1.00000 0 1
+2.00000 1.00000 1.00000 0 1
+
+2.50000 0.00000 0.00000 0 1
+3.00000 0.00000 0.00000 0 1
+3.00000 0.00000 1.00000 0 1
+2.50000 0.00000 1.00000 0 1
+2.50000 0.00000 0.00000 0 1
+
+2.50000 1.00000 0.00000 0 1
+3.00000 1.00000 0.00000 0 1
+3.00000 1.00000 1.00000 0 1
+2.50000 1.00000 1.00000 0 1
+2.50000 1.00000 0.00000 0 1
+
+2.50000 0.00000 0.00000 0 1
+2.50000 1.00000 0.00000 0 1
+
+3.00000 0.00000 0.00000 0 1
+3.00000 1.00000 0.00000 0 1
+
+3.00000 0.00000 1.00000 0 1
+3.00000 1.00000 1.00000 0 1
+
+2.50000 0.00000 1.00000 0 1
+2.50000 1.00000 1.00000 0 1
+
+2.00000 1.00000 0.00000 0 1
+2.50000 1.00000 0.00000 0 1
+2.50000 1.00000 1.00000 0 1
+2.00000 1.00000 1.00000 0 1
+2.00000 1.00000 0.00000 0 1
+
+2.00000 2.00000 0.00000 0 1
+2.50000 2.00000 0.00000 0 1
+2.50000 2.00000 1.00000 0 1
+2.00000 2.00000 1.00000 0 1
+2.00000 2.00000 0.00000 0 1
+
+2.00000 1.00000 0.00000 0 1
+2.00000 2.00000 0.00000 0 1
+
+2.50000 1.00000 0.00000 0 1
+2.50000 2.00000 0.00000 0 1
+
+2.50000 1.00000 1.00000 0 1
+2.50000 2.00000 1.00000 0 1
+
+2.00000 1.00000 1.00000 0 1
+2.00000 2.00000 1.00000 0 1
+
+2.50000 1.00000 0.00000 0 1
+3.00000 1.00000 0.00000 0 1
+3.00000 1.00000 1.00000 0 1
+2.50000 1.00000 1.00000 0 1
+2.50000 1.00000 0.00000 0 1
+
+2.50000 2.00000 0.00000 0 1
+3.00000 2.00000 0.00000 0 1
+3.00000 2.00000 1.00000 0 1
+2.50000 2.00000 1.00000 0 1
+2.50000 2.00000 0.00000 0 1
+
+2.50000 1.00000 0.00000 0 1
+2.50000 2.00000 0.00000 0 1
+
+3.00000 1.00000 0.00000 0 1
+3.00000 2.00000 0.00000 0 1
+
+3.00000 1.00000 1.00000 0 1
+3.00000 2.00000 1.00000 0 1
+
+2.50000 1.00000 1.00000 0 1
+2.50000 2.00000 1.00000 0 1
+
+2.00000 -1.00000 1.00000 0 1
+2.50000 -1.00000 1.00000 0 1
+2.50000 -1.00000 2.00000 0 1
+2.00000 -1.00000 2.00000 0 1
+2.00000 -1.00000 1.00000 0 1
+
+2.00000 0.00000 1.00000 0 1
+2.50000 0.00000 1.00000 0 1
+2.50000 0.00000 2.00000 0 1
+2.00000 0.00000 2.00000 0 1
+2.00000 0.00000 1.00000 0 1
+
+2.00000 -1.00000 1.00000 0 1
+2.00000 0.00000 1.00000 0 1
+
+2.50000 -1.00000 1.00000 0 1
+2.50000 0.00000 1.00000 0 1
+
+2.50000 -1.00000 2.00000 0 1
+2.50000 0.00000 2.00000 0 1
+
+2.00000 -1.00000 2.00000 0 1
+2.00000 0.00000 2.00000 0 1
+
+2.50000 -1.00000 1.00000 0 1
+3.00000 -1.00000 1.00000 0 1
+3.00000 -1.00000 2.00000 0 1
+2.50000 -1.00000 2.00000 0 1
+2.50000 -1.00000 1.00000 0 1
+
+2.50000 0.00000 1.00000 0 1
+3.00000 0.00000 1.00000 0 1
+3.00000 0.00000 2.00000 0 1
+2.50000 0.00000 2.00000 0 1
+2.50000 0.00000 1.00000 0 1
+
+2.50000 -1.00000 1.00000 0 1
+2.50000 0.00000 1.00000 0 1
+
+3.00000 -1.00000 1.00000 0 1
+3.00000 0.00000 1.00000 0 1
+
+3.00000 -1.00000 2.00000 0 1
+3.00000 0.00000 2.00000 0 1
+
+2.50000 -1.00000 2.00000 0 1
+2.50000 0.00000 2.00000 0 1
+
+2.00000 0.00000 1.00000 0 1
+2.50000 0.00000 1.00000 0 1
+2.50000 0.00000 2.00000 0 1
+2.00000 0.00000 2.00000 0 1
+2.00000 0.00000 1.00000 0 1
+
+2.00000 1.00000 1.00000 0 1
+2.50000 1.00000 1.00000 0 1
+2.50000 1.00000 2.00000 0 1
+2.00000 1.00000 2.00000 0 1
+2.00000 1.00000 1.00000 0 1
+
+2.00000 0.00000 1.00000 0 1
+2.00000 1.00000 1.00000 0 1
+
+2.50000 0.00000 1.00000 0 1
+2.50000 1.00000 1.00000 0 1
+
+2.50000 0.00000 2.00000 0 1
+2.50000 1.00000 2.00000 0 1
+
+2.00000 0.00000 2.00000 0 1
+2.00000 1.00000 2.00000 0 1
+
+2.00000 1.00000 1.00000 0 1
+2.50000 1.00000 1.00000 0 1
+2.50000 1.00000 2.00000 0 1
+2.00000 1.00000 2.00000 0 1
+2.00000 1.00000 1.00000 0 1
+
+2.00000 2.00000 1.00000 0 1
+2.50000 2.00000 1.00000 0 1
+2.50000 2.00000 2.00000 0 1
+2.00000 2.00000 2.00000 0 1
+2.00000 2.00000 1.00000 0 1
+
+2.00000 1.00000 1.00000 0 1
+2.00000 2.00000 1.00000 0 1
+
+2.50000 1.00000 1.00000 0 1
+2.50000 2.00000 1.00000 0 1
+
+2.50000 1.00000 2.00000 0 1
+2.50000 2.00000 2.00000 0 1
+
+2.00000 1.00000 2.00000 0 1
+2.00000 2.00000 2.00000 0 1
+
+2.50000 1.00000 1.00000 0 1
+3.00000 1.00000 1.00000 0 1
+3.00000 1.00000 2.00000 0 1
+2.50000 1.00000 2.00000 0 1
+2.50000 1.00000 1.00000 0 1
+
+2.50000 2.00000 1.00000 0 1
+3.00000 2.00000 1.00000 0 1
+3.00000 2.00000 2.00000 0 1
+2.50000 2.00000 2.00000 0 1
+2.50000 2.00000 1.00000 0 1
+
+2.50000 1.00000 1.00000 0 1
+2.50000 2.00000 1.00000 0 1
+
+3.00000 1.00000 1.00000 0 1
+3.00000 2.00000 1.00000 0 1
+
+3.00000 1.00000 2.00000 0 1
+3.00000 2.00000 2.00000 0 1
+
+2.50000 1.00000 2.00000 0 1
+2.50000 2.00000 2.00000 0 1
+
+2.00000 -1.00000 2.00000 0 1
+2.50000 -1.00000 2.00000 0 1
+2.50000 -1.00000 3.00000 0 1
+2.00000 -1.00000 3.00000 0 1
+2.00000 -1.00000 2.00000 0 1
+
+2.00000 0.00000 2.00000 0 1
+2.50000 0.00000 2.00000 0 1
+2.50000 0.00000 3.00000 0 1
+2.00000 0.00000 3.00000 0 1
+2.00000 0.00000 2.00000 0 1
+
+2.00000 -1.00000 2.00000 0 1
+2.00000 0.00000 2.00000 0 1
+
+2.50000 -1.00000 2.00000 0 1
+2.50000 0.00000 2.00000 0 1
+
+2.50000 -1.00000 3.00000 0 1
+2.50000 0.00000 3.00000 0 1
+
+2.00000 -1.00000 3.00000 0 1
+2.00000 0.00000 3.00000 0 1
+
+2.50000 -1.00000 2.00000 0 1
+3.00000 -1.00000 2.00000 0 1
+3.00000 -1.00000 3.00000 0 1
+2.50000 -1.00000 3.00000 0 1
+2.50000 -1.00000 2.00000 0 1
+
+2.50000 0.00000 2.00000 0 1
+3.00000 0.00000 2.00000 0 1
+3.00000 0.00000 3.00000 0 1
+2.50000 0.00000 3.00000 0 1
+2.50000 0.00000 2.00000 0 1
+
+2.50000 -1.00000 2.00000 0 1
+2.50000 0.00000 2.00000 0 1
+
+3.00000 -1.00000 2.00000 0 1
+3.00000 0.00000 2.00000 0 1
+
+3.00000 -1.00000 3.00000 0 1
+3.00000 0.00000 3.00000 0 1
+
+2.50000 -1.00000 3.00000 0 1
+2.50000 0.00000 3.00000 0 1
+
+2.00000 0.00000 2.00000 0 1
+2.50000 0.00000 2.00000 0 1
+2.50000 0.00000 3.00000 0 1
+2.00000 0.00000 3.00000 0 1
+2.00000 0.00000 2.00000 0 1
+
+2.00000 1.00000 2.00000 0 1
+2.50000 1.00000 2.00000 0 1
+2.50000 1.00000 3.00000 0 1
+2.00000 1.00000 3.00000 0 1
+2.00000 1.00000 2.00000 0 1
+
+2.00000 0.00000 2.00000 0 1
+2.00000 1.00000 2.00000 0 1
+
+2.50000 0.00000 2.00000 0 1
+2.50000 1.00000 2.00000 0 1
+
+2.50000 0.00000 3.00000 0 1
+2.50000 1.00000 3.00000 0 1
+
+2.00000 0.00000 3.00000 0 1
+2.00000 1.00000 3.00000 0 1
+
+2.00000 1.00000 2.00000 0 1
+2.50000 1.00000 2.00000 0 1
+2.50000 1.00000 3.00000 0 1
+2.00000 1.00000 3.00000 0 1
+2.00000 1.00000 2.00000 0 1
+
+2.00000 2.00000 2.00000 0 1
+2.50000 2.00000 2.00000 0 1
+2.50000 2.00000 3.00000 0 1
+2.00000 2.00000 3.00000 0 1
+2.00000 2.00000 2.00000 0 1
+
+2.00000 1.00000 2.00000 0 1
+2.00000 2.00000 2.00000 0 1
+
+2.50000 1.00000 2.00000 0 1
+2.50000 2.00000 2.00000 0 1
+
+2.50000 1.00000 3.00000 0 1
+2.50000 2.00000 3.00000 0 1
+
+2.00000 1.00000 3.00000 0 1
+2.00000 2.00000 3.00000 0 1
+
+2.50000 1.00000 2.00000 0 1
+3.00000 1.00000 2.00000 0 1
+3.00000 1.00000 3.00000 0 1
+2.50000 1.00000 3.00000 0 1
+2.50000 1.00000 2.00000 0 1
+
+2.50000 2.00000 2.00000 0 1
+3.00000 2.00000 2.00000 0 1
+3.00000 2.00000 3.00000 0 1
+2.50000 2.00000 3.00000 0 1
+2.50000 2.00000 2.00000 0 1
+
+2.50000 1.00000 2.00000 0 1
+2.50000 2.00000 2.00000 0 1
+
+3.00000 1.00000 2.00000 0 1
+3.00000 2.00000 2.00000 0 1
+
+3.00000 1.00000 3.00000 0 1
+3.00000 2.00000 3.00000 0 1
+
+2.50000 1.00000 3.00000 0 1
+2.50000 2.00000 3.00000 0 1
+
+2.00000 -1.00000 3.00000 0 1
+2.50000 -1.00000 3.00000 0 1
+2.50000 -1.00000 4.00000 0 1
+2.00000 -1.00000 4.00000 0 1
+2.00000 -1.00000 3.00000 0 1
+
+2.00000 0.00000 3.00000 0 1
+2.50000 0.00000 3.00000 0 1
+2.50000 0.00000 4.00000 0 1
+2.00000 0.00000 4.00000 0 1
+2.00000 0.00000 3.00000 0 1
+
+2.00000 -1.00000 3.00000 0 1
+2.00000 0.00000 3.00000 0 1
+
+2.50000 -1.00000 3.00000 0 1
+2.50000 0.00000 3.00000 0 1
+
+2.50000 -1.00000 4.00000 0 1
+2.50000 0.00000 4.00000 0 1
+
+2.00000 -1.00000 4.00000 0 1
+2.00000 0.00000 4.00000 0 1
+
+2.50000 -1.00000 3.00000 0 1
+3.00000 -1.00000 3.00000 0 1
+3.00000 -1.00000 4.00000 0 1
+2.50000 -1.00000 4.00000 0 1
+2.50000 -1.00000 3.00000 0 1
+
+2.50000 0.00000 3.00000 0 1
+3.00000 0.00000 3.00000 0 1
+3.00000 0.00000 4.00000 0 1
+2.50000 0.00000 4.00000 0 1
+2.50000 0.00000 3.00000 0 1
+
+2.50000 -1.00000 3.00000 0 1
+2.50000 0.00000 3.00000 0 1
+
+3.00000 -1.00000 3.00000 0 1
+3.00000 0.00000 3.00000 0 1
+
+3.00000 -1.00000 4.00000 0 1
+3.00000 0.00000 4.00000 0 1
+
+2.50000 -1.00000 4.00000 0 1
+2.50000 0.00000 4.00000 0 1
+
+2.00000 0.00000 3.00000 0 1
+2.50000 0.00000 3.00000 0 1
+2.50000 0.00000 4.00000 0 1
+2.00000 0.00000 4.00000 0 1
+2.00000 0.00000 3.00000 0 1
+
+2.00000 1.00000 3.00000 0 1
+2.50000 1.00000 3.00000 0 1
+2.50000 1.00000 4.00000 0 1
+2.00000 1.00000 4.00000 0 1
+2.00000 1.00000 3.00000 0 1
+
+2.00000 0.00000 3.00000 0 1
+2.00000 1.00000 3.00000 0 1
+
+2.50000 0.00000 3.00000 0 1
+2.50000 1.00000 3.00000 0 1
+
+2.50000 0.00000 4.00000 0 1
+2.50000 1.00000 4.00000 0 1
+
+2.00000 0.00000 4.00000 0 1
+2.00000 1.00000 4.00000 0 1
+
+2.50000 0.00000 3.00000 0 1
+3.00000 0.00000 3.00000 0 1
+3.00000 0.00000 4.00000 0 1
+2.50000 0.00000 4.00000 0 1
+2.50000 0.00000 3.00000 0 1
+
+2.50000 1.00000 3.00000 0 1
+3.00000 1.00000 3.00000 0 1
+3.00000 1.00000 4.00000 0 1
+2.50000 1.00000 4.00000 0 1
+2.50000 1.00000 3.00000 0 1
+
+2.50000 0.00000 3.00000 0 1
+2.50000 1.00000 3.00000 0 1
+
+3.00000 0.00000 3.00000 0 1
+3.00000 1.00000 3.00000 0 1
+
+3.00000 0.00000 4.00000 0 1
+3.00000 1.00000 4.00000 0 1
+
+2.50000 0.00000 4.00000 0 1
+2.50000 1.00000 4.00000 0 1
+
+2.00000 1.00000 3.00000 0 1
+2.50000 1.00000 3.00000 0 1
+2.50000 1.00000 4.00000 0 1
+2.00000 1.00000 4.00000 0 1
+2.00000 1.00000 3.00000 0 1
+
+2.00000 2.00000 3.00000 0 1
+2.50000 2.00000 3.00000 0 1
+2.50000 2.00000 4.00000 0 1
+2.00000 2.00000 4.00000 0 1
+2.00000 2.00000 3.00000 0 1
+
+2.00000 1.00000 3.00000 0 1
+2.00000 2.00000 3.00000 0 1
+
+2.50000 1.00000 3.00000 0 1
+2.50000 2.00000 3.00000 0 1
+
+2.50000 1.00000 4.00000 0 1
+2.50000 2.00000 4.00000 0 1
+
+2.00000 1.00000 4.00000 0 1
+2.00000 2.00000 4.00000 0 1
+
+2.50000 1.00000 3.00000 0 1
+3.00000 1.00000 3.00000 0 1
+3.00000 1.00000 4.00000 0 1
+2.50000 1.00000 4.00000 0 1
+2.50000 1.00000 3.00000 0 1
+
+2.50000 2.00000 3.00000 0 1
+3.00000 2.00000 3.00000 0 1
+3.00000 2.00000 4.00000 0 1
+2.50000 2.00000 4.00000 0 1
+2.50000 2.00000 3.00000 0 1
+
+2.50000 1.00000 3.00000 0 1
+2.50000 2.00000 3.00000 0 1
+
+3.00000 1.00000 3.00000 0 1
+3.00000 2.00000 3.00000 0 1
+
+3.00000 1.00000 4.00000 0 1
+3.00000 2.00000 4.00000 0 1
+
+2.50000 1.00000 4.00000 0 1
+2.50000 2.00000 4.00000 0 1
+
+DEAL:3d::subdivided_hyper_rectangle
+2.00000 -1.00000 0.00000 0 1
+2.25000 -1.00000 0.00000 0 1
+2.25000 -1.00000 0.500000 0 1
+2.00000 -1.00000 0.500000 0 1
+2.00000 -1.00000 0.00000 0 1
+
+2.00000 -0.500000 0.00000 0 1
+2.25000 -0.500000 0.00000 0 1
+2.25000 -0.500000 0.500000 0 1
+2.00000 -0.500000 0.500000 0 1
+2.00000 -0.500000 0.00000 0 1
+
+2.00000 -1.00000 0.00000 0 1
+2.00000 -0.500000 0.00000 0 1
+
+2.25000 -1.00000 0.00000 0 1
+2.25000 -0.500000 0.00000 0 1
+
+2.25000 -1.00000 0.500000 0 1
+2.25000 -0.500000 0.500000 0 1
+
+2.00000 -1.00000 0.500000 0 1
+2.00000 -0.500000 0.500000 0 1
+
+2.25000 -1.00000 0.00000 0 1
+3.00000 -1.00000 0.00000 0 1
+3.00000 -1.00000 0.500000 0 1
+2.25000 -1.00000 0.500000 0 1
+2.25000 -1.00000 0.00000 0 1
+
+2.25000 -0.500000 0.00000 0 1
+3.00000 -0.500000 0.00000 0 1
+3.00000 -0.500000 0.500000 0 1
+2.25000 -0.500000 0.500000 0 1
+2.25000 -0.500000 0.00000 0 1
+
+2.25000 -1.00000 0.00000 0 1
+2.25000 -0.500000 0.00000 0 1
+
+3.00000 -1.00000 0.00000 0 1
+3.00000 -0.500000 0.00000 0 1
+
+3.00000 -1.00000 0.500000 0 1
+3.00000 -0.500000 0.500000 0 1
+
+2.25000 -1.00000 0.500000 0 1
+2.25000 -0.500000 0.500000 0 1
+
+2.00000 -0.500000 0.00000 0 1
+2.25000 -0.500000 0.00000 0 1
+2.25000 -0.500000 0.500000 0 1
+2.00000 -0.500000 0.500000 0 1
+2.00000 -0.500000 0.00000 0 1
+
+2.00000 0.500000 0.00000 0 1
+2.25000 0.500000 0.00000 0 1
+2.25000 0.500000 0.500000 0 1
+2.00000 0.500000 0.500000 0 1
+2.00000 0.500000 0.00000 0 1
+
+2.00000 -0.500000 0.00000 0 1
+2.00000 0.500000 0.00000 0 1
+
+2.25000 -0.500000 0.00000 0 1
+2.25000 0.500000 0.00000 0 1
+
+2.25000 -0.500000 0.500000 0 1
+2.25000 0.500000 0.500000 0 1
+
+2.00000 -0.500000 0.500000 0 1
+2.00000 0.500000 0.500000 0 1
+
+2.25000 -0.500000 0.00000 0 1
+3.00000 -0.500000 0.00000 0 1
+3.00000 -0.500000 0.500000 0 1
+2.25000 -0.500000 0.500000 0 1
+2.25000 -0.500000 0.00000 0 1
+
+2.25000 0.500000 0.00000 0 1
+3.00000 0.500000 0.00000 0 1
+3.00000 0.500000 0.500000 0 1
+2.25000 0.500000 0.500000 0 1
+2.25000 0.500000 0.00000 0 1
+
+2.25000 -0.500000 0.00000 0 1
+2.25000 0.500000 0.00000 0 1
+
+3.00000 -0.500000 0.00000 0 1
+3.00000 0.500000 0.00000 0 1
+
+3.00000 -0.500000 0.500000 0 1
+3.00000 0.500000 0.500000 0 1
+
+2.25000 -0.500000 0.500000 0 1
+2.25000 0.500000 0.500000 0 1
+
+2.00000 0.500000 0.00000 0 1
+2.25000 0.500000 0.00000 0 1
+2.25000 0.500000 0.500000 0 1
+2.00000 0.500000 0.500000 0 1
+2.00000 0.500000 0.00000 0 1
+
+2.00000 2.00000 0.00000 0 1
+2.25000 2.00000 0.00000 0 1
+2.25000 2.00000 0.500000 0 1
+2.00000 2.00000 0.500000 0 1
+2.00000 2.00000 0.00000 0 1
+
+2.00000 0.500000 0.00000 0 1
+2.00000 2.00000 0.00000 0 1
+
+2.25000 0.500000 0.00000 0 1
+2.25000 2.00000 0.00000 0 1
+
+2.25000 0.500000 0.500000 0 1
+2.25000 2.00000 0.500000 0 1
+
+2.00000 0.500000 0.500000 0 1
+2.00000 2.00000 0.500000 0 1
+
+2.25000 0.500000 0.00000 0 1
+3.00000 0.500000 0.00000 0 1
+3.00000 0.500000 0.500000 0 1
+2.25000 0.500000 0.500000 0 1
+2.25000 0.500000 0.00000 0 1
+
+2.25000 2.00000 0.00000 0 1
+3.00000 2.00000 0.00000 0 1
+3.00000 2.00000 0.500000 0 1
+2.25000 2.00000 0.500000 0 1
+2.25000 2.00000 0.00000 0 1
+
+2.25000 0.500000 0.00000 0 1
+2.25000 2.00000 0.00000 0 1
+
+3.00000 0.500000 0.00000 0 1
+3.00000 2.00000 0.00000 0 1
+
+3.00000 0.500000 0.500000 0 1
+3.00000 2.00000 0.500000 0 1
+
+2.25000 0.500000 0.500000 0 1
+2.25000 2.00000 0.500000 0 1
+
+2.00000 -1.00000 0.500000 0 1
+2.25000 -1.00000 0.500000 0 1
+2.25000 -1.00000 1.50000 0 1
+2.00000 -1.00000 1.50000 0 1
+2.00000 -1.00000 0.500000 0 1
+
+2.00000 -0.500000 0.500000 0 1
+2.25000 -0.500000 0.500000 0 1
+2.25000 -0.500000 1.50000 0 1
+2.00000 -0.500000 1.50000 0 1
+2.00000 -0.500000 0.500000 0 1
+
+2.00000 -1.00000 0.500000 0 1
+2.00000 -0.500000 0.500000 0 1
+
+2.25000 -1.00000 0.500000 0 1
+2.25000 -0.500000 0.500000 0 1
+
+2.25000 -1.00000 1.50000 0 1
+2.25000 -0.500000 1.50000 0 1
+
+2.00000 -1.00000 1.50000 0 1
+2.00000 -0.500000 1.50000 0 1
+
+2.25000 -1.00000 0.500000 0 1
+3.00000 -1.00000 0.500000 0 1
+3.00000 -1.00000 1.50000 0 1
+2.25000 -1.00000 1.50000 0 1
+2.25000 -1.00000 0.500000 0 1
+
+2.25000 -0.500000 0.500000 0 1
+3.00000 -0.500000 0.500000 0 1
+3.00000 -0.500000 1.50000 0 1
+2.25000 -0.500000 1.50000 0 1
+2.25000 -0.500000 0.500000 0 1
+
+2.25000 -1.00000 0.500000 0 1
+2.25000 -0.500000 0.500000 0 1
+
+3.00000 -1.00000 0.500000 0 1
+3.00000 -0.500000 0.500000 0 1
+
+3.00000 -1.00000 1.50000 0 1
+3.00000 -0.500000 1.50000 0 1
+
+2.25000 -1.00000 1.50000 0 1
+2.25000 -0.500000 1.50000 0 1
+
+2.00000 -0.500000 0.500000 0 1
+2.25000 -0.500000 0.500000 0 1
+2.25000 -0.500000 1.50000 0 1
+2.00000 -0.500000 1.50000 0 1
+2.00000 -0.500000 0.500000 0 1
+
+2.00000 0.500000 0.500000 0 1
+2.25000 0.500000 0.500000 0 1
+2.25000 0.500000 1.50000 0 1
+2.00000 0.500000 1.50000 0 1
+2.00000 0.500000 0.500000 0 1
+
+2.00000 -0.500000 0.500000 0 1
+2.00000 0.500000 0.500000 0 1
+
+2.25000 -0.500000 0.500000 0 1
+2.25000 0.500000 0.500000 0 1
+
+2.25000 -0.500000 1.50000 0 1
+2.25000 0.500000 1.50000 0 1
+
+2.00000 -0.500000 1.50000 0 1
+2.00000 0.500000 1.50000 0 1
+
+2.00000 0.500000 0.500000 0 1
+2.25000 0.500000 0.500000 0 1
+2.25000 0.500000 1.50000 0 1
+2.00000 0.500000 1.50000 0 1
+2.00000 0.500000 0.500000 0 1
+
+2.00000 2.00000 0.500000 0 1
+2.25000 2.00000 0.500000 0 1
+2.25000 2.00000 1.50000 0 1
+2.00000 2.00000 1.50000 0 1
+2.00000 2.00000 0.500000 0 1
+
+2.00000 0.500000 0.500000 0 1
+2.00000 2.00000 0.500000 0 1
+
+2.25000 0.500000 0.500000 0 1
+2.25000 2.00000 0.500000 0 1
+
+2.25000 0.500000 1.50000 0 1
+2.25000 2.00000 1.50000 0 1
+
+2.00000 0.500000 1.50000 0 1
+2.00000 2.00000 1.50000 0 1
+
+2.25000 0.500000 0.500000 0 1
+3.00000 0.500000 0.500000 0 1
+3.00000 0.500000 1.50000 0 1
+2.25000 0.500000 1.50000 0 1
+2.25000 0.500000 0.500000 0 1
+
+2.25000 2.00000 0.500000 0 1
+3.00000 2.00000 0.500000 0 1
+3.00000 2.00000 1.50000 0 1
+2.25000 2.00000 1.50000 0 1
+2.25000 2.00000 0.500000 0 1
+
+2.25000 0.500000 0.500000 0 1
+2.25000 2.00000 0.500000 0 1
+
+3.00000 0.500000 0.500000 0 1
+3.00000 2.00000 0.500000 0 1
+
+3.00000 0.500000 1.50000 0 1
+3.00000 2.00000 1.50000 0 1
+
+2.25000 0.500000 1.50000 0 1
+2.25000 2.00000 1.50000 0 1
+
+2.00000 -1.00000 1.50000 0 1
+2.25000 -1.00000 1.50000 0 1
+2.25000 -1.00000 2.50000 0 1
+2.00000 -1.00000 2.50000 0 1
+2.00000 -1.00000 1.50000 0 1
+
+2.00000 -0.500000 1.50000 0 1
+2.25000 -0.500000 1.50000 0 1
+2.25000 -0.500000 2.50000 0 1
+2.00000 -0.500000 2.50000 0 1
+2.00000 -0.500000 1.50000 0 1
+
+2.00000 -1.00000 1.50000 0 1
+2.00000 -0.500000 1.50000 0 1
+
+2.25000 -1.00000 1.50000 0 1
+2.25000 -0.500000 1.50000 0 1
+
+2.25000 -1.00000 2.50000 0 1
+2.25000 -0.500000 2.50000 0 1
+
+2.00000 -1.00000 2.50000 0 1
+2.00000 -0.500000 2.50000 0 1
+
+2.25000 -1.00000 1.50000 0 1
+3.00000 -1.00000 1.50000 0 1
+3.00000 -1.00000 2.50000 0 1
+2.25000 -1.00000 2.50000 0 1
+2.25000 -1.00000 1.50000 0 1
+
+2.25000 -0.500000 1.50000 0 1
+3.00000 -0.500000 1.50000 0 1
+3.00000 -0.500000 2.50000 0 1
+2.25000 -0.500000 2.50000 0 1
+2.25000 -0.500000 1.50000 0 1
+
+2.25000 -1.00000 1.50000 0 1
+2.25000 -0.500000 1.50000 0 1
+
+3.00000 -1.00000 1.50000 0 1
+3.00000 -0.500000 1.50000 0 1
+
+3.00000 -1.00000 2.50000 0 1
+3.00000 -0.500000 2.50000 0 1
+
+2.25000 -1.00000 2.50000 0 1
+2.25000 -0.500000 2.50000 0 1
+
+2.00000 -0.500000 1.50000 0 1
+2.25000 -0.500000 1.50000 0 1
+2.25000 -0.500000 2.50000 0 1
+2.00000 -0.500000 2.50000 0 1
+2.00000 -0.500000 1.50000 0 1
+
+2.00000 0.500000 1.50000 0 1
+2.25000 0.500000 1.50000 0 1
+2.25000 0.500000 2.50000 0 1
+2.00000 0.500000 2.50000 0 1
+2.00000 0.500000 1.50000 0 1
+
+2.00000 -0.500000 1.50000 0 1
+2.00000 0.500000 1.50000 0 1
+
+2.25000 -0.500000 1.50000 0 1
+2.25000 0.500000 1.50000 0 1
+
+2.25000 -0.500000 2.50000 0 1
+2.25000 0.500000 2.50000 0 1
+
+2.00000 -0.500000 2.50000 0 1
+2.00000 0.500000 2.50000 0 1
+
+2.00000 0.500000 1.50000 0 1
+2.25000 0.500000 1.50000 0 1
+2.25000 0.500000 2.50000 0 1
+2.00000 0.500000 2.50000 0 1
+2.00000 0.500000 1.50000 0 1
+
+2.00000 2.00000 1.50000 0 1
+2.25000 2.00000 1.50000 0 1
+2.25000 2.00000 2.50000 0 1
+2.00000 2.00000 2.50000 0 1
+2.00000 2.00000 1.50000 0 1
+
+2.00000 0.500000 1.50000 0 1
+2.00000 2.00000 1.50000 0 1
+
+2.25000 0.500000 1.50000 0 1
+2.25000 2.00000 1.50000 0 1
+
+2.25000 0.500000 2.50000 0 1
+2.25000 2.00000 2.50000 0 1
+
+2.00000 0.500000 2.50000 0 1
+2.00000 2.00000 2.50000 0 1
+
+2.25000 0.500000 1.50000 0 1
+3.00000 0.500000 1.50000 0 1
+3.00000 0.500000 2.50000 0 1
+2.25000 0.500000 2.50000 0 1
+2.25000 0.500000 1.50000 0 1
+
+2.25000 2.00000 1.50000 0 1
+3.00000 2.00000 1.50000 0 1
+3.00000 2.00000 2.50000 0 1
+2.25000 2.00000 2.50000 0 1
+2.25000 2.00000 1.50000 0 1
+
+2.25000 0.500000 1.50000 0 1
+2.25000 2.00000 1.50000 0 1
+
+3.00000 0.500000 1.50000 0 1
+3.00000 2.00000 1.50000 0 1
+
+3.00000 0.500000 2.50000 0 1
+3.00000 2.00000 2.50000 0 1
+
+2.25000 0.500000 2.50000 0 1
+2.25000 2.00000 2.50000 0 1
+
+2.00000 -1.00000 2.50000 0 1
+2.25000 -1.00000 2.50000 0 1
+2.25000 -1.00000 4.00000 0 1
+2.00000 -1.00000 4.00000 0 1
+2.00000 -1.00000 2.50000 0 1
+
+2.00000 -0.500000 2.50000 0 1
+2.25000 -0.500000 2.50000 0 1
+2.25000 -0.500000 4.00000 0 1
+2.00000 -0.500000 4.00000 0 1
+2.00000 -0.500000 2.50000 0 1
+
+2.00000 -1.00000 2.50000 0 1
+2.00000 -0.500000 2.50000 0 1
+
+2.25000 -1.00000 2.50000 0 1
+2.25000 -0.500000 2.50000 0 1
+
+2.25000 -1.00000 4.00000 0 1
+2.25000 -0.500000 4.00000 0 1
+
+2.00000 -1.00000 4.00000 0 1
+2.00000 -0.500000 4.00000 0 1
+
+2.25000 -1.00000 2.50000 0 1
+3.00000 -1.00000 2.50000 0 1
+3.00000 -1.00000 4.00000 0 1
+2.25000 -1.00000 4.00000 0 1
+2.25000 -1.00000 2.50000 0 1
+
+2.25000 -0.500000 2.50000 0 1
+3.00000 -0.500000 2.50000 0 1
+3.00000 -0.500000 4.00000 0 1
+2.25000 -0.500000 4.00000 0 1
+2.25000 -0.500000 2.50000 0 1
+
+2.25000 -1.00000 2.50000 0 1
+2.25000 -0.500000 2.50000 0 1
+
+3.00000 -1.00000 2.50000 0 1
+3.00000 -0.500000 2.50000 0 1
+
+3.00000 -1.00000 4.00000 0 1
+3.00000 -0.500000 4.00000 0 1
+
+2.25000 -1.00000 4.00000 0 1
+2.25000 -0.500000 4.00000 0 1
+
+2.00000 -0.500000 2.50000 0 1
+2.25000 -0.500000 2.50000 0 1
+2.25000 -0.500000 4.00000 0 1
+2.00000 -0.500000 4.00000 0 1
+2.00000 -0.500000 2.50000 0 1
+
+2.00000 0.500000 2.50000 0 1
+2.25000 0.500000 2.50000 0 1
+2.25000 0.500000 4.00000 0 1
+2.00000 0.500000 4.00000 0 1
+2.00000 0.500000 2.50000 0 1
+
+2.00000 -0.500000 2.50000 0 1
+2.00000 0.500000 2.50000 0 1
+
+2.25000 -0.500000 2.50000 0 1
+2.25000 0.500000 2.50000 0 1
+
+2.25000 -0.500000 4.00000 0 1
+2.25000 0.500000 4.00000 0 1
+
+2.00000 -0.500000 4.00000 0 1
+2.00000 0.500000 4.00000 0 1
+
+2.25000 -0.500000 2.50000 0 1
+3.00000 -0.500000 2.50000 0 1
+3.00000 -0.500000 4.00000 0 1
+2.25000 -0.500000 4.00000 0 1
+2.25000 -0.500000 2.50000 0 1
+
+2.25000 0.500000 2.50000 0 1
+3.00000 0.500000 2.50000 0 1
+3.00000 0.500000 4.00000 0 1
+2.25000 0.500000 4.00000 0 1
+2.25000 0.500000 2.50000 0 1
+
+2.25000 -0.500000 2.50000 0 1
+2.25000 0.500000 2.50000 0 1
+
+3.00000 -0.500000 2.50000 0 1
+3.00000 0.500000 2.50000 0 1
+
+3.00000 -0.500000 4.00000 0 1
+3.00000 0.500000 4.00000 0 1
+
+2.25000 -0.500000 4.00000 0 1
+2.25000 0.500000 4.00000 0 1
+
+2.00000 0.500000 2.50000 0 1
+2.25000 0.500000 2.50000 0 1
+2.25000 0.500000 4.00000 0 1
+2.00000 0.500000 4.00000 0 1
+2.00000 0.500000 2.50000 0 1
+
+2.00000 2.00000 2.50000 0 1
+2.25000 2.00000 2.50000 0 1
+2.25000 2.00000 4.00000 0 1
+2.00000 2.00000 4.00000 0 1
+2.00000 2.00000 2.50000 0 1
+
+2.00000 0.500000 2.50000 0 1
+2.00000 2.00000 2.50000 0 1
+
+2.25000 0.500000 2.50000 0 1
+2.25000 2.00000 2.50000 0 1
+
+2.25000 0.500000 4.00000 0 1
+2.25000 2.00000 4.00000 0 1
+
+2.00000 0.500000 4.00000 0 1
+2.00000 2.00000 4.00000 0 1
+
+2.25000 0.500000 2.50000 0 1
+3.00000 0.500000 2.50000 0 1
+3.00000 0.500000 4.00000 0 1
+2.25000 0.500000 4.00000 0 1
+2.25000 0.500000 2.50000 0 1
+
+2.25000 2.00000 2.50000 0 1
+3.00000 2.00000 2.50000 0 1
+3.00000 2.00000 4.00000 0 1
+2.25000 2.00000 4.00000 0 1
+2.25000 2.00000 2.50000 0 1
+
+2.25000 0.500000 2.50000 0 1
+2.25000 2.00000 2.50000 0 1
+
+3.00000 0.500000 2.50000 0 1
+3.00000 2.00000 2.50000 0 1
+
+3.00000 0.500000 4.00000 0 1
+3.00000 2.00000 4.00000 0 1
+
+2.25000 0.500000 4.00000 0 1
+2.25000 2.00000 4.00000 0 1
+

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.