]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Fix HalfHyperShellBoundary in 3d.
authorbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 13 Jan 2009 17:40:26 +0000 (17:40 +0000)
committerbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 13 Jan 2009 17:40:26 +0000 (17:40 +0000)
git-svn-id: https://svn.dealii.org/trunk@18215 0785d39b-7218-0410-832d-ea1e28bc413d

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

index 265eea60968e29fe4b11959e087abde5caf20a53..bf4ad320c8ed974970d1b3d188033c377f808fb3 100644 (file)
@@ -2,7 +2,7 @@
 //    $Id$
 //    Version: $Name$
 //
-//    Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 by the deal.II authors
+//    Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009 by the deal.II authors
 //
 //    This file is subject to QPL and may not be  distributed
 //    without copyright and license information. Please refer
@@ -461,7 +461,7 @@ class HyperShellBoundary : public HyperBallBoundary<dim>
  *
  * @ingroup boundary
  *
- * @author Wolfgang Bangerth, 2000
+ * @author Wolfgang Bangerth, 2000, 2009
  */
 template <int dim>
 class HalfHyperShellBoundary : public HyperShellBoundary<dim> 
@@ -471,8 +471,17 @@ class HalfHyperShellBoundary : public HyperShellBoundary<dim>
                                      * Constructor. The center of the
                                      * spheres defaults to the
                                      * origin.
-                                     */
-    HalfHyperShellBoundary (const Point<dim> &center = Point<dim>());
+                                     *
+                                     * If the radii are not specified, the
+                                     * class tries to infer them from the
+                                     * location of points on the
+                                     * boundary. This works in 2d, but not in
+                                     * 3d. As a consequence, in 3d these
+                                     * radii must be given.
+                                     */
+    HalfHyperShellBoundary (const Point<dim> &center = Point<dim>(),
+                           const double inner_radius = -1,
+                           const double outer_radius = -1);
     
                                     /**
                                      * Construct a new point on a line.
@@ -525,6 +534,13 @@ class HalfHyperShellBoundary : public HyperShellBoundary<dim>
     virtual void
     get_normals_at_vertices (const typename Triangulation<dim>::face_iterator &face,
                             typename Boundary<dim>::FaceVertexNormals &face_vertex_normals) const;
+
+  private:
+                                    /**
+                                     * Inner and outer radii of the shell.
+                                     */
+    const double inner_radius;
+    const double outer_radius;
 };
 
 
index 139d4540bb4b70796c9870ade03ca559e97dd6dd..803508b3b79f40a63617e819fbb2096f46c5f1d6 100644 (file)
@@ -2,7 +2,7 @@
 //    $Id$
 //    Version: $Name$
 //
-//    Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 by the deal.II authors
+//    Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009 by the deal.II authors
 //
 //    This file is subject to QPL and may not be  distributed
 //    without copyright and license information. Please refer
@@ -694,7 +694,8 @@ get_normals_at_vertices (const typename Triangulation<dim>::face_iterator &face,
 
 
 template <int dim>
-HyperShellBoundary<dim>::HyperShellBoundary (const Point<dim> &center) :
+HyperShellBoundary<dim>::HyperShellBoundary (const Point<dim> &center)
+               :
                HyperBallBoundary<dim>(center, 0.)
 {
   this->compute_radius_automatically=true;
@@ -707,9 +708,20 @@ HyperShellBoundary<dim>::HyperShellBoundary (const Point<dim> &center) :
 
 
 template <int dim>
-HalfHyperShellBoundary<dim>::HalfHyperShellBoundary (const Point<dim> &center) :
-               HyperShellBoundary<dim> (center) 
-{}
+HalfHyperShellBoundary<dim>::HalfHyperShellBoundary (const Point<dim> &center,
+                                                    const double inner_radius,
+                                                    const double outer_radius)
+               :
+               HyperShellBoundary<dim> (center),
+               inner_radius (inner_radius),
+               outer_radius (outer_radius)
+{
+  if (dim > 2)
+    Assert ((inner_radius >= 0) &&
+           (outer_radius > 0) &&
+           (outer_radius > inner_radius),
+           ExcMessage ("Inner and outer radii must be specified explicitly in 3d."));
+}
 
 
 
@@ -718,19 +730,61 @@ Point<dim>
 HalfHyperShellBoundary<dim>::
 get_new_point_on_line (const typename Triangulation<dim>::line_iterator &line) const 
 {
-                                  // first check whether the two end
-                                  // points of the line are on the
-                                  // axis of symmetry. if so, then
-                                  // return the mid point
-  if ((line->vertex(0)(0) == this->center(0)) &&
-      (line->vertex(1)(0) == this->center(0)))
-    return (line->vertex(0) + line->vertex(1))/2;
+  switch (dim)
+    {
+                                      // in 2d, first check whether the two
+                                      // end points of the line are on the
+                                      // axis of symmetry. if so, then return
+                                      // the mid point
+      case 2:
+      {
+       if ((line->vertex(0)(0) == this->center(0))
+           &&
+           (line->vertex(1)(0) == this->center(0)))
+         return (line->vertex(0) + line->vertex(1))/2;
+       else
+                                          // otherwise we are on the outer or
+                                          // inner part of the shell. proceed
+                                          // as in the base class
+         return HyperShellBoundary<dim>::get_new_point_on_line (line);
+      }
+      
+                                            // in 3d, a line is a straight
+                                            // line if it is on the symmetry
+                                            // plane and if not both of its
+                                            // end points are on either the
+                                            // inner or outer sphere
+      case 3:
+      {
+       
+           if (((line->vertex(0)(0) == this->center(0))
+                &&
+                (line->vertex(1)(0) == this->center(0)))
+               &&
+               !(((std::fabs (line->vertex(0).distance (this->center)
+                              - inner_radius) < 1e-12 * outer_radius)
+                  &&
+                  (std::fabs (line->vertex(1).distance (this->center)
+                              - inner_radius) < 1e-12 * outer_radius))
+                 ||
+                 ((std::fabs (line->vertex(0).distance (this->center)
+                              - outer_radius) < 1e-12 * outer_radius)
+                  &&
+                  (std::fabs (line->vertex(1).distance (this->center)
+                              - outer_radius) < 1e-12 * outer_radius))))
+         return (line->vertex(0) + line->vertex(1))/2;
+       else
+                                          // otherwise we are on the outer or
+                                          // inner part of the shell. proceed
+                                          // as in the base class
+         return HyperShellBoundary<dim>::get_new_point_on_line (line);
+      }
+
+      default:
+           Assert (false, ExcNotImplemented());
+    }
   
-
-                                  // otherwise we are on the outer or
-                                  // inner part of the shell. proceed
-                                  // as in the base class
-  return HyperShellBoundary<dim>::get_new_point_on_line (line);
+  return Point<dim>();
 }
 
 
@@ -755,16 +809,46 @@ Point<dim>
 HalfHyperShellBoundary<dim>::
 get_new_point_on_quad (const typename Triangulation<dim>::quad_iterator &quad) const
 {
-                                  // same thing as for the new point
-                                  // on the line
+                                  // if this quad is on the symmetry plane,
+                                  // take the center point and project it
+                                  // outward to the same radius as the
+                                  // centers of the two radial lines
   if ((quad->vertex(0)(0) == this->center(0)) &&
       (quad->vertex(1)(0) == this->center(0)) &&
       (quad->vertex(2)(0) == this->center(0)) &&
       (quad->vertex(3)(0) == this->center(0)))
-    return (quad->vertex(0) + quad->vertex(1) +
-           quad->vertex(2) + quad->vertex(3)   )/4;
-  
+    {
+      const Point<dim> quad_center = (quad->vertex(0) + quad->vertex(1) +
+                                     quad->vertex(2) + quad->vertex(3)   )/4;
+      const Point<dim> quad_center_offset = quad_center - this->center;
 
+      
+      if (std::fabs (quad->line(0)->center().distance(this->center) -
+                    quad->line(1)->center().distance(this->center))
+         < 1e-12 * outer_radius)
+       {
+                                          // lines 0 and 1 are radial
+         const double needed_radius
+           = quad->line(0)->center().distance(this->center);
+         
+         return (this->center +
+                 quad_center_offset/quad_center_offset.norm() * needed_radius);
+       }
+      else if (std::fabs (quad->line(2)->center().distance(this->center) -
+                         quad->line(3)->center().distance(this->center))
+         < 1e-12 * outer_radius)
+       {
+                                          // lines 2 and 3 are radial
+         const double needed_radius
+           = quad->line(2)->center().distance(this->center);
+         
+         return (this->center +
+                 quad_center_offset/quad_center_offset.norm() * needed_radius);
+       }
+      else
+       Assert (false, ExcInternalError());
+    }
+  
                                   // otherwise we are on the outer or
                                   // inner part of the shell. proceed
                                   // as in the base class
@@ -779,15 +863,59 @@ HalfHyperShellBoundary<dim>::
 get_intermediate_points_on_line (const typename Triangulation<dim>::line_iterator &line,
                                 std::vector<Point<dim> > &points) const
 {
-                                  // check whether center of object is
-                                  // at x==0, since then it belongs
-                                  // to the plane part of the
-                                  // boundary
-  const Point<dim> line_center = line->center();
-  if (line_center(0) == this->center(0))
-    return StraightBoundary<dim>::get_intermediate_points_on_line (line, points);
-  else
-    return HyperShellBoundary<dim>::get_intermediate_points_on_line (line, points);
+  switch (dim)
+    {
+                                      // in 2d, first check whether the two
+                                      // end points of the line are on the
+                                      // axis of symmetry. if so, then return
+                                      // the mid point
+      case 2:
+      {
+       if ((line->vertex(0)(0) == this->center(0))
+           &&
+           (line->vertex(1)(0) == this->center(0)))
+         StraightBoundary<dim>::get_intermediate_points_on_line (line, points);
+       else
+                                          // otherwise we are on the outer or
+                                          // inner part of the shell. proceed
+                                          // as in the base class
+         HyperShellBoundary<dim>::get_intermediate_points_on_line (line, points);
+      }
+      
+                                            // in 3d, a line is a straight
+                                            // line if it is on the symmetry
+                                            // plane and if not both of its
+                                            // end points are on either the
+                                            // inner or outer sphere
+      case 3:
+      {
+       
+           if (((line->vertex(0)(0) == this->center(0))
+                &&
+                (line->vertex(1)(0) == this->center(0)))
+               &&
+               !(((std::fabs (line->vertex(0).distance (this->center)
+                              - inner_radius) < 1e-12 * outer_radius)
+                  &&
+                  (std::fabs (line->vertex(1).distance (this->center)
+                              - inner_radius) < 1e-12 * outer_radius))
+                 ||
+                 ((std::fabs (line->vertex(0).distance (this->center)
+                              - outer_radius) < 1e-12 * outer_radius)
+                  &&
+                  (std::fabs (line->vertex(1).distance (this->center)
+                              - outer_radius) < 1e-12 * outer_radius))))
+         StraightBoundary<dim>::get_intermediate_points_on_line (line, points);
+       else
+                                          // otherwise we are on the outer or
+                                          // inner part of the shell. proceed
+                                          // as in the base class
+         HyperShellBoundary<dim>::get_intermediate_points_on_line (line, points);
+      }
+
+      default:
+           Assert (false, ExcNotImplemented());
+    }
 }
 
 
@@ -798,6 +926,8 @@ HalfHyperShellBoundary<dim>::
 get_intermediate_points_on_quad (const typename Triangulation<dim>::quad_iterator &quad,
                                 std::vector<Point<dim> > &points) const
 {
+  Assert (dim < 3, ExcNotImplemented());
+  
                                   // check whether center of object is
                                   // at x==0, since then it belongs
                                   // to the plane part of the
index 69566252c335a9c04c0ef177ba47d4c05f6e39ea..9336435948ad18c922d2682792dac11f8a497240 100644 (file)
@@ -662,6 +662,15 @@ inconvenience this causes.
 <h3>deal.II</h3>
 
 <ol>
+  <li>
+  <p>
+  New: The GridGenerator::half_hyper_shell function now also exists in 3d.
+  However, to use it with the HalfHyperShellBoundary class, one has to
+  pass inner and outer radii to the constructor.
+  <br>
+  (Martin Kronbichler, WB, 2009/01/13)
+  </p>
+
   <li>
   <p>
   New: The restriction and embedding matrices for FE_Q are now implemented.
diff --git a/tests/bits/grid_generator_06.cc b/tests/bits/grid_generator_06.cc
new file mode 100644 (file)
index 0000000..7d3dcc2
--- /dev/null
@@ -0,0 +1,95 @@
+//---------------------------------------------------------------------------
+//    $Id$
+//    Version: $Name$ 
+//
+//    Copyright (C) 2005, 2006, 2009 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::half_hyper_shell in 2d and 3d, making sure that we get
+// the boundary right. in 3d, we need to specify the inner and outer radii
+
+#include "../tests.h"
+#include <base/logstream.h>
+#include <base/tensor.h>
+#include <grid/tria.h>
+#include <grid/grid_generator.h>
+#include <grid/grid_out.h>
+#include <grid/tria_boundary_lib.h>
+
+#include <fstream>
+#include <iomanip>
+
+
+template<int dim>
+void test_1(std::ostream& out)
+{
+  Point<dim> p1;
+  p1[0] = 2.;
+  if (dim>1) p1[1] = -1.;
+  if (dim>2) p1[2] = 0.;
+  
+  GridOut go;
+  deallog << "half_hyper_shell without specifying radii" << std::endl;
+  Triangulation<dim> tr;
+  GridGenerator::half_hyper_shell(tr, p1, 4., 6.);
+
+  if (dim == 2)
+    {
+                                      // test with now specifying the inner and
+                                      // outer radius
+      static HalfHyperShellBoundary<dim> boundary (p1);
+      tr.set_boundary (0, boundary);
+
+      tr.refine_global (2);
+  
+      go.write_gnuplot(tr, out);
+    }
+}
+
+template<int dim>
+void test_2(std::ostream& out)
+{
+  Point<dim> p1;
+  p1[0] = 2.;
+  if (dim>1) p1[1] = -1.;
+  if (dim>2) p1[2] = 0.;
+  
+  GridOut go;
+  deallog << "half_hyper_shell with specifying radii" << std::endl;
+  Triangulation<dim> tr;
+  GridGenerator::half_hyper_shell(tr, p1, 4., 6.);
+
+                                  // test with now specifying the inner and
+                                  // outer radius
+  static HalfHyperShellBoundary<dim> boundary (p1, 4., 6.);
+  tr.set_boundary (0, boundary);
+
+  tr.refine_global (1);
+  
+  go.write_gnuplot(tr, out);
+}
+
+
+int main()
+{
+  std::ofstream logfile("grid_generator_06/output");
+  deallog.attach(logfile);
+  deallog.depth_console(0);
+  deallog.threshold_double(1.e-10);
+  
+  deallog.push("2d");
+  test_1<2>(logfile);
+  test_2<2>(logfile);
+  deallog.pop();
+  deallog.push("3d");
+  test_1<3>(logfile);
+  test_2<3>(logfile);
+  deallog.pop();
+}
diff --git a/tests/bits/grid_generator_06/cmp/generic b/tests/bits/grid_generator_06/cmp/generic
new file mode 100644 (file)
index 0000000..b17470e
--- /dev/null
@@ -0,0 +1,2021 @@
+
+DEAL:1d::hyper_cube
+3.00000 0 0
+7.00000 0 0
+
+DEAL:1d::subdivided_hyper_cube
+1.00000 0 0
+3.00000 0 0
+
+3.00000 0 0
+5.00000 0 0
+
+5.00000 0 0
+7.00000 0 0
+
+DEAL:1d::hyper_rectangle
+2.00000 0 0
+3.00000 0 0
+
+DEAL:1d::subdivided_hyper_rectangle
+2.00000 0 1
+2.50000 0 1
+
+2.50000 0 1
+3.00000 0 1
+
+DEAL:2d::hyper_cube
+#FIG 3.2
+Landscape
+Center
+Inches
+A4
+100.00
+Single
+-3
+# generated by deal.II GridOut class
+# reduce first number to scale up image
+1200 2
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       3600    3600
+       8400    3600
+       8400    8400
+       3600    8400
+       3600    3600
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3600    3600
+       8400    3600
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       8400    3600
+       8400    8400
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3600    8400
+       8400    8400
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3600    3600
+       3600    8400
+DEAL:2d::subdivided_hyper_cube
+#FIG 3.2
+Landscape
+Center
+Inches
+A4
+100.00
+Single
+-3
+# generated by deal.II GridOut class
+# reduce first number to scale up image
+1200 2
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       1200    1200
+       3600    1200
+       3600    3600
+       1200    3600
+       1200    1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       1200    1200
+       3600    1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       1200    1200
+       1200    3600
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       3600    1200
+       6000    1200
+       6000    3600
+       3600    3600
+       3600    1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3600    1200
+       6000    1200
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       6000    1200
+       8400    1200
+       8400    3600
+       6000    3600
+       6000    1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       6000    1200
+       8400    1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       8400    1200
+       8400    3600
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       1200    3600
+       3600    3600
+       3600    6000
+       1200    6000
+       1200    3600
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       1200    3600
+       1200    6000
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       3600    3600
+       6000    3600
+       6000    6000
+       3600    6000
+       3600    3600
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       6000    3600
+       8400    3600
+       8400    6000
+       6000    6000
+       6000    3600
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       8400    3600
+       8400    6000
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       1200    6000
+       3600    6000
+       3600    8400
+       1200    8400
+       1200    6000
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       1200    8400
+       3600    8400
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       1200    6000
+       1200    8400
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       3600    6000
+       6000    6000
+       6000    8400
+       3600    8400
+       3600    6000
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3600    8400
+       6000    8400
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       6000    6000
+       8400    6000
+       8400    8400
+       6000    8400
+       6000    6000
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       8400    6000
+       8400    8400
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       6000    8400
+       8400    8400
+DEAL:2d::hyper_rectangle
+#FIG 3.2
+Landscape
+Center
+Inches
+A4
+100.00
+Single
+-3
+# generated by deal.II GridOut class
+# reduce first number to scale up image
+1200 2
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       2400    -1200
+       3600    -1200
+       3600    2400
+       2400    2400
+       2400    -1200
+2 1 0 3 3 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    -1200
+       3600    -1200
+2 1 0 3 2 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3600    -1200
+       3600    2400
+2 1 0 3 4 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    2400
+       3600    2400
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    -1200
+       2400    2400
+DEAL:2d::subdivided_hyper_rectangle
+#FIG 3.2
+Landscape
+Center
+Inches
+A4
+100.00
+Single
+-3
+# generated by deal.II GridOut class
+# reduce first number to scale up image
+1200 2
+2 3  0 1 0 2 900 0 25 0.0  0 0 -1 0 0 5
+       2400    -1200
+       3000    -1200
+       3000    0
+       2400    0
+       2400    -1200
+2 1 0 3 3 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    -1200
+       3000    -1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    -1200
+       2400    0
+2 3  0 1 0 2 900 0 25 0.0  0 0 -1 0 0 5
+       3000    -1200
+       3600    -1200
+       3600    0
+       3000    0
+       3000    -1200
+2 1 0 3 3 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3000    -1200
+       3600    -1200
+2 1 0 3 2 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3600    -1200
+       3600    0
+2 3  0 1 0 4 900 0 25 0.0  0 0 -1 0 0 5
+       2400    0
+       3000    0
+       3000    1200
+       2400    1200
+       2400    0
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    0
+       2400    1200
+2 3  0 1 0 4 900 0 25 0.0  0 0 -1 0 0 5
+       3000    0
+       3600    0
+       3600    1200
+       3000    1200
+       3000    0
+2 1 0 3 2 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3600    0
+       3600    1200
+2 3  0 1 0 4 900 0 25 0.0  0 0 -1 0 0 5
+       2400    1200
+       3000    1200
+       3000    2400
+       2400    2400
+       2400    1200
+2 1 0 3 4 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    2400
+       3000    2400
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    1200
+       2400    2400
+2 3  0 1 0 4 900 0 25 0.0  0 0 -1 0 0 5
+       3000    1200
+       3600    1200
+       3600    2400
+       3000    2400
+       3000    1200
+2 1 0 3 2 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3600    1200
+       3600    2400
+2 1 0 3 4 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3000    2400
+       3600    2400
+DEAL:2d::parallelogram
+#FIG 3.2
+Landscape
+Center
+Inches
+A4
+100.00
+Single
+-3
+# generated by deal.II GridOut class
+# reduce first number to scale up image
+1200 2
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       0       0
+       2400    -1200
+       6000    1200
+       3600    2400
+       0       0
+2 1 0 3 3 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       0       0
+       2400    -1200
+2 1 0 3 2 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    -1200
+       6000    1200
+2 1 0 3 4 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3600    2400
+       6000    1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       0       0
+       3600    2400
+DEAL:2d::enclosed_hyper_cube
+#FIG 3.2
+Landscape
+Center
+Inches
+A4
+100.00
+Single
+-3
+# generated by deal.II GridOut class
+# reduce first number to scale up image
+1200 2
+2 3  0 1 0 6 900 0 25 0.0  0 0 -1 0 0 5
+       2400    2400
+       3600    2400
+       3600    3600
+       2400    3600
+       2400    2400
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    2400
+       3600    2400
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    2400
+       2400    3600
+2 3  0 1 0 5 900 0 25 0.0  0 0 -1 0 0 5
+       3600    2400
+       8400    2400
+       8400    3600
+       3600    3600
+       3600    2400
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3600    2400
+       8400    2400
+2 3  0 1 0 7 900 0 25 0.0  0 0 -1 0 0 5
+       8400    2400
+       9600    2400
+       9600    3600
+       8400    3600
+       8400    2400
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       8400    2400
+       9600    2400
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       9600    2400
+       9600    3600
+2 3  0 1 0 2 900 0 25 0.0  0 0 -1 0 0 5
+       2400    3600
+       3600    3600
+       3600    8400
+       2400    8400
+       2400    3600
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    3600
+       2400    8400
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       3600    3600
+       8400    3600
+       8400    8400
+       3600    8400
+       3600    3600
+2 3  0 1 0 3 900 0 25 0.0  0 0 -1 0 0 5
+       8400    3600
+       9600    3600
+       9600    8400
+       8400    8400
+       8400    3600
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       9600    3600
+       9600    8400
+2 3  0 1 0 10 900 0 25 0.0  0 0 -1 0 0 5
+       2400    8400
+       3600    8400
+       3600    9600
+       2400    9600
+       2400    8400
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    9600
+       3600    9600
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    8400
+       2400    9600
+2 3  0 1 0 9 900 0 25 0.0  0 0 -1 0 0 5
+       3600    8400
+       8400    8400
+       8400    9600
+       3600    9600
+       3600    8400
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3600    9600
+       8400    9600
+2 3  0 1 0 11 900 0 25 0.0  0 0 -1 0 0 5
+       8400    8400
+       9600    8400
+       9600    9600
+       8400    9600
+       8400    8400
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       9600    8400
+       9600    9600
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       8400    9600
+       9600    9600
+DEAL:2d::hyper_ball
+#FIG 3.2
+Landscape
+Center
+Inches
+A4
+100.00
+Single
+-3
+# generated by deal.II GridOut class
+# reduce first number to scale up image
+1200 2
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       -145    -3745
+       4945    -3745
+       3454    -2254
+       1345    -2254
+       -145    -3745
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       -145    -3745
+       4945    -3745
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       -145    -3745
+       1345    -2254
+       1345    -145
+       -145    1345
+       -145    -3745
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       -145    -3745
+       -145    1345
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       1345    -2254
+       3454    -2254
+       3454    -145
+       1345    -145
+       1345    -2254
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       4945    -3745
+       4945    1345
+       3454    -145
+       3454    -2254
+       4945    -3745
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       4945    -3745
+       4945    1345
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       -145    1345
+       1345    -145
+       3454    -145
+       4945    1345
+       -145    1345
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       -145    1345
+       4945    1345
+DEAL:2d::cylinder
+#FIG 3.2
+Landscape
+Center
+Inches
+A4
+100.00
+Single
+-3
+# generated by deal.II GridOut class
+# reduce first number to scale up image
+1200 2
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       -3600   -1200
+       3600    -1200
+       3600    1200
+       -3600   1200
+       -3600   -1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       -3600   -1200
+       3600    -1200
+2 1 0 3 3 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3600    -1200
+       3600    1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       -3600   1200
+       3600    1200
+2 1 0 3 2 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       -3600   -1200
+       -3600   1200
+DEAL:2d::hyper_L
+#FIG 3.2
+Landscape
+Center
+Inches
+A4
+100.00
+Single
+-3
+# generated by deal.II GridOut class
+# reduce first number to scale up image
+1200 2
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       -1200   -1200
+       0       -1200
+       0       0
+       -1200   0
+       -1200   -1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       -1200   -1200
+       0       -1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       -1200   -1200
+       -1200   0
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       0       -1200
+       1200    -1200
+       1200    0
+       0       0
+       0       -1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       0       -1200
+       1200    -1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       1200    -1200
+       1200    0
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       0       0
+       1200    0
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       -1200   0
+       0       0
+       0       1200
+       -1200   1200
+       -1200   0
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       0       0
+       0       1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       -1200   1200
+       0       1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       -1200   0
+       -1200   1200
+DEAL:2d::hyper_cube_slit
+#FIG 3.2
+Landscape
+Center
+Inches
+A4
+100.00
+Single
+-3
+# generated by deal.II GridOut class
+# reduce first number to scale up image
+1200 2
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       -2400   -2400
+       0       -2400
+       0       0
+       -2400   0
+       -2400   -2400
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       -2400   -2400
+       0       -2400
+2 1 0 3 2 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       0       -2400
+       0       0
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       -2400   -2400
+       -2400   0
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       0       -2400
+       2400    -2400
+       2400    0
+       0       0
+       0       -2400
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       0       -2400
+       2400    -2400
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    -2400
+       2400    0
+2 1 0 3 3 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       0       0
+       2400    0
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       0       -2400
+       0       0
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       -2400   0
+       0       0
+       0       2400
+       -2400   2400
+       -2400   0
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       -2400   2400
+       0       2400
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       -2400   0
+       -2400   2400
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       0       0
+       2400    0
+       2400    2400
+       0       2400
+       0       0
+2 1 0 3 3 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       0       0
+       2400    0
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    0
+       2400    2400
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       0       2400
+       2400    2400
+DEAL:2d::hyper_shell
+#FIG 3.2
+Landscape
+Center
+Inches
+A4
+100.00
+Single
+-3
+# generated by deal.II GridOut class
+# reduce first number to scale up image
+1200 2
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       9600    -1200
+       9051    1555
+       6834    636
+       7200    -1200
+       9600    -1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       9600    -1200
+       9051    1555
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       7200    -1200
+       6834    636
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       9051    1555
+       7491    3891
+       5794    2194
+       6834    636
+       9051    1555
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       9051    1555
+       7491    3891
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       6834    636
+       5794    2194
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       7491    3891
+       5155    5451
+       4236    3234
+       5794    2194
+       7491    3891
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       7491    3891
+       5155    5451
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       5794    2194
+       4236    3234
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       5155    5451
+       2400    6000
+       2400    3600
+       4236    3234
+       5155    5451
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       5155    5451
+       2400    6000
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       4236    3234
+       2400    3600
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       2400    6000
+       -355    5451
+       563     3234
+       2400    3600
+       2400    6000
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    6000
+       -355    5451
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    3600
+       563     3234
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       -355    5451
+       -2691   3891
+       -994    2194
+       563     3234
+       -355    5451
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       -355    5451
+       -2691   3891
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       563     3234
+       -994    2194
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       -2691   3891
+       -4251   1555
+       -2034   636
+       -994    2194
+       -2691   3891
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       -2691   3891
+       -4251   1555
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       -994    2194
+       -2034   636
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       -4251   1555
+       -4800   -1199
+       -2400   -1199
+       -2034   636
+       -4251   1555
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       -4251   1555
+       -4800   -1199
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       -2034   636
+       -2400   -1199
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       -4800   -1199
+       -4251   -3955
+       -2034   -3036
+       -2400   -1199
+       -4800   -1199
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       -4800   -1199
+       -4251   -3955
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       -2400   -1199
+       -2034   -3036
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       -4251   -3955
+       -2691   -6291
+       -994    -4594
+       -2034   -3036
+       -4251   -3955
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       -4251   -3955
+       -2691   -6291
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       -2034   -3036
+       -994    -4594
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       -2691   -6291
+       -355    -7851
+       563     -5634
+       -994    -4594
+       -2691   -6291
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       -2691   -6291
+       -355    -7851
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       -994    -4594
+       563     -5634
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       -355    -7851
+       2399    -8400
+       2399    -6000
+       563     -5634
+       -355    -7851
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       -355    -7851
+       2399    -8400
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       563     -5634
+       2399    -6000
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       2399    -8400
+       5155    -7851
+       4236    -5634
+       2399    -6000
+       2399    -8400
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2399    -8400
+       5155    -7851
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2399    -6000
+       4236    -5634
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       5155    -7851
+       7491    -6291
+       5794    -4594
+       4236    -5634
+       5155    -7851
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       5155    -7851
+       7491    -6291
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       4236    -5634
+       5794    -4594
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       7491    -6291
+       9051    -3955
+       6834    -3036
+       5794    -4594
+       7491    -6291
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       7491    -6291
+       9051    -3955
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       5794    -4594
+       6834    -3036
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       9051    -3955
+       9600    -1200
+       7200    -1200
+       6834    -3036
+       9051    -3955
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       9051    -3955
+       9600    -1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       6834    -3036
+       7200    -1200
+DEAL:2d::half_hyper_ball
+#FIG 3.2
+Landscape
+Center
+Inches
+A4
+100.00
+Single
+-3
+# generated by deal.II GridOut class
+# reduce first number to scale up image
+1200 2
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       2400    -4800
+       4945    -3745
+       3454    -2254
+       2400    -2254
+       2400    -4800
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    -4800
+       4945    -3745
+2 1 0 3 2 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    -4800
+       2400    -2254
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       2400    -2254
+       3454    -2254
+       3454    -145
+       2400    -145
+       2400    -2254
+2 1 0 3 2 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    -2254
+       2400    -145
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       4945    -3745
+       4945    1345
+       3454    -145
+       3454    -2254
+       4945    -3745
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       4945    -3745
+       4945    1345
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       2400    2400
+       2400    -145
+       3454    -145
+       4945    1345
+       2400    2400
+2 1 0 3 2 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    2400
+       2400    -145
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    2400
+       4945    1345
+DEAL:2d::half_hyper_shell
+#FIG 3.2
+Landscape
+Center
+Inches
+A4
+100.00
+Single
+-3
+# generated by deal.II GridOut class
+# reduce first number to scale up image
+1200 2
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       2400    -8400
+       5155    -7851
+       4236    -5634
+       2400    -6000
+       2400    -8400
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    -8400
+       5155    -7851
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    -6000
+       4236    -5634
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    -8400
+       2400    -6000
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       5155    -7851
+       7491    -6291
+       5794    -4594
+       4236    -5634
+       5155    -7851
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       5155    -7851
+       7491    -6291
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       4236    -5634
+       5794    -4594
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       7491    -6291
+       9051    -3955
+       6834    -3036
+       5794    -4594
+       7491    -6291
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       7491    -6291
+       9051    -3955
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       5794    -4594
+       6834    -3036
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       9051    -3955
+       9600    -1200
+       7200    -1200
+       6834    -3036
+       9051    -3955
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       9051    -3955
+       9600    -1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       6834    -3036
+       7200    -1200
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       9600    -1200
+       9051    1555
+       6834    636
+       7200    -1200
+       9600    -1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       9600    -1200
+       9051    1555
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       7200    -1200
+       6834    636
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       9051    1555
+       7491    3891
+       5794    2194
+       6834    636
+       9051    1555
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       9051    1555
+       7491    3891
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       6834    636
+       5794    2194
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       7491    3891
+       5155    5451
+       4236    3234
+       5794    2194
+       7491    3891
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       7491    3891
+       5155    5451
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       5794    2194
+       4236    3234
+2 3  0 1 0 1 900 0 25 0.0  0 0 -1 0 0 5
+       5155    5451
+       2400    6000
+       2400    3600
+       4236    3234
+       5155    5451
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       5155    5451
+       2400    6000
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    6000
+       2400    3600
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       4236    3234
+       2400    3600
+DEAL:3d::hyper_cube
+object "vertices" class array type float rank 1 shape 3 items 8 data follows
+       3.00000 3.00000 3.00000
+       7.00000 3.00000 3.00000
+       3.00000 7.00000 3.00000
+       7.00000 7.00000 3.00000
+       3.00000 3.00000 7.00000
+       7.00000 3.00000 7.00000
+       3.00000 7.00000 7.00000
+       7.00000 7.00000 7.00000
+object "cells" class array type int rank 1 shape 8 items 1 data follows
+       0       4       2       6       1       5       3       7
+attribute "element type" string "cubes"
+attribute "ref" string "positions"
+
+object "material" class array type int rank 0 items 1 data follows
+ 0
+attribute "dep" string "connections"
+
+object "level" class array type int rank 0 items 1 data follows
+ 0
+attribute "dep" string "connections"
+
+object "deal data" class field
+component "positions" value "vertices"
+component "connections" value "cells"
+object "cell data" class field
+component "positions" value "vertices"
+component "connections" value "cells"
+component "material" value "material"
+component "level" value "level"
+
+object "grid data" class group
+member "cells" value "cell data"
+end
+DEAL:3d::subdivided_hyper_cube
+object "vertices" class array type float rank 1 shape 3 items 64 data follows
+       1.00000 1.00000 1.00000
+       3.00000 1.00000 1.00000
+       5.00000 1.00000 1.00000
+       7.00000 1.00000 1.00000
+       1.00000 3.00000 1.00000
+       3.00000 3.00000 1.00000
+       5.00000 3.00000 1.00000
+       7.00000 3.00000 1.00000
+       1.00000 5.00000 1.00000
+       3.00000 5.00000 1.00000
+       5.00000 5.00000 1.00000
+       7.00000 5.00000 1.00000
+       1.00000 7.00000 1.00000
+       3.00000 7.00000 1.00000
+       5.00000 7.00000 1.00000
+       7.00000 7.00000 1.00000
+       1.00000 1.00000 3.00000
+       3.00000 1.00000 3.00000
+       5.00000 1.00000 3.00000
+       7.00000 1.00000 3.00000
+       1.00000 3.00000 3.00000
+       3.00000 3.00000 3.00000
+       5.00000 3.00000 3.00000
+       7.00000 3.00000 3.00000
+       1.00000 5.00000 3.00000
+       3.00000 5.00000 3.00000
+       5.00000 5.00000 3.00000
+       7.00000 5.00000 3.00000
+       1.00000 7.00000 3.00000
+       3.00000 7.00000 3.00000
+       5.00000 7.00000 3.00000
+       7.00000 7.00000 3.00000
+       1.00000 1.00000 5.00000
+       3.00000 1.00000 5.00000
+       5.00000 1.00000 5.00000
+       7.00000 1.00000 5.00000
+       1.00000 3.00000 5.00000
+       3.00000 3.00000 5.00000
+       5.00000 3.00000 5.00000
+       7.00000 3.00000 5.00000
+       1.00000 5.00000 5.00000
+       3.00000 5.00000 5.00000
+       5.00000 5.00000 5.00000
+       7.00000 5.00000 5.00000
+       1.00000 7.00000 5.00000
+       3.00000 7.00000 5.00000
+       5.00000 7.00000 5.00000
+       7.00000 7.00000 5.00000
+       1.00000 1.00000 7.00000
+       3.00000 1.00000 7.00000
+       5.00000 1.00000 7.00000
+       7.00000 1.00000 7.00000
+       1.00000 3.00000 7.00000
+       3.00000 3.00000 7.00000
+       5.00000 3.00000 7.00000
+       7.00000 3.00000 7.00000
+       1.00000 5.00000 7.00000
+       3.00000 5.00000 7.00000
+       5.00000 5.00000 7.00000
+       7.00000 5.00000 7.00000
+       1.00000 7.00000 7.00000
+       3.00000 7.00000 7.00000
+       5.00000 7.00000 7.00000
+       7.00000 7.00000 7.00000
+object "cells" class array type int rank 1 shape 8 items 27 data follows
+       0       16      4       20      1       17      5       21
+       1       17      5       21      2       18      6       22
+       2       18      6       22      3       19      7       23
+       4       20      8       24      5       21      9       25
+       5       21      9       25      6       22      10      26
+       6       22      10      26      7       23      11      27
+       8       24      12      28      9       25      13      29
+       9       25      13      29      10      26      14      30
+       10      26      14      30      11      27      15      31
+       16      32      20      36      17      33      21      37
+       17      33      21      37      18      34      22      38
+       18      34      22      38      19      35      23      39
+       20      36      24      40      21      37      25      41
+       21      37      25      41      22      38      26      42
+       22      38      26      42      23      39      27      43
+       24      40      28      44      25      41      29      45
+       25      41      29      45      26      42      30      46
+       26      42      30      46      27      43      31      47
+       32      48      36      52      33      49      37      53
+       33      49      37      53      34      50      38      54
+       34      50      38      54      35      51      39      55
+       36      52      40      56      37      53      41      57
+       37      53      41      57      38      54      42      58
+       38      54      42      58      39      55      43      59
+       40      56      44      60      41      57      45      61
+       41      57      45      61      42      58      46      62
+       42      58      46      62      43      59      47      63
+attribute "element type" string "cubes"
+attribute "ref" string "positions"
+
+object "material" class array type int rank 0 items 27 data follows
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+attribute "dep" string "connections"
+
+object "level" class array type int rank 0 items 27 data follows
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+attribute "dep" string "connections"
+
+object "deal data" class field
+component "positions" value "vertices"
+component "connections" value "cells"
+object "cell data" class field
+component "positions" value "vertices"
+component "connections" value "cells"
+component "material" value "material"
+component "level" value "level"
+
+object "grid data" class group
+member "cells" value "cell data"
+end
+DEAL:3d::hyper_rectangle
+object "vertices" class array type float rank 1 shape 3 items 8 data follows
+       2.00000 -1.00000 0.00000
+       3.00000 -1.00000 0.00000
+       2.00000 2.00000 0.00000
+       3.00000 2.00000 0.00000
+       2.00000 -1.00000 4.00000
+       3.00000 -1.00000 4.00000
+       2.00000 2.00000 4.00000
+       3.00000 2.00000 4.00000
+object "cells" class array type int rank 1 shape 8 items 1 data follows
+       0       4       2       6       1       5       3       7
+attribute "element type" string "cubes"
+attribute "ref" string "positions"
+
+object "material" class array type int rank 0 items 1 data follows
+ 0
+attribute "dep" string "connections"
+
+object "level" class array type int rank 0 items 1 data follows
+ 0
+attribute "dep" string "connections"
+
+object "deal data" class field
+component "positions" value "vertices"
+component "connections" value "cells"
+object "cell data" class field
+component "positions" value "vertices"
+component "connections" value "cells"
+component "material" value "material"
+component "level" value "level"
+
+object "grid data" class group
+member "cells" value "cell data"
+end
+DEAL:3d::subdivided_hyper_rectangle
+object "vertices" class array type float rank 1 shape 3 items 60 data follows
+       2.00000 -1.00000 0.00000
+       2.50000 -1.00000 0.00000
+       3.00000 -1.00000 0.00000
+       2.00000 0.00000 0.00000
+       2.50000 0.00000 0.00000
+       3.00000 0.00000 0.00000
+       2.00000 1.00000 0.00000
+       2.50000 1.00000 0.00000
+       3.00000 1.00000 0.00000
+       2.00000 2.00000 0.00000
+       2.50000 2.00000 0.00000
+       3.00000 2.00000 0.00000
+       2.00000 -1.00000 1.00000
+       2.50000 -1.00000 1.00000
+       3.00000 -1.00000 1.00000
+       2.00000 0.00000 1.00000
+       2.50000 0.00000 1.00000
+       3.00000 0.00000 1.00000
+       2.00000 1.00000 1.00000
+       2.50000 1.00000 1.00000
+       3.00000 1.00000 1.00000
+       2.00000 2.00000 1.00000
+       2.50000 2.00000 1.00000
+       3.00000 2.00000 1.00000
+       2.00000 -1.00000 2.00000
+       2.50000 -1.00000 2.00000
+       3.00000 -1.00000 2.00000
+       2.00000 0.00000 2.00000
+       2.50000 0.00000 2.00000
+       3.00000 0.00000 2.00000
+       2.00000 1.00000 2.00000
+       2.50000 1.00000 2.00000
+       3.00000 1.00000 2.00000
+       2.00000 2.00000 2.00000
+       2.50000 2.00000 2.00000
+       3.00000 2.00000 2.00000
+       2.00000 -1.00000 3.00000
+       2.50000 -1.00000 3.00000
+       3.00000 -1.00000 3.00000
+       2.00000 0.00000 3.00000
+       2.50000 0.00000 3.00000
+       3.00000 0.00000 3.00000
+       2.00000 1.00000 3.00000
+       2.50000 1.00000 3.00000
+       3.00000 1.00000 3.00000
+       2.00000 2.00000 3.00000
+       2.50000 2.00000 3.00000
+       3.00000 2.00000 3.00000
+       2.00000 -1.00000 4.00000
+       2.50000 -1.00000 4.00000
+       3.00000 -1.00000 4.00000
+       2.00000 0.00000 4.00000
+       2.50000 0.00000 4.00000
+       3.00000 0.00000 4.00000
+       2.00000 1.00000 4.00000
+       2.50000 1.00000 4.00000
+       3.00000 1.00000 4.00000
+       2.00000 2.00000 4.00000
+       2.50000 2.00000 4.00000
+       3.00000 2.00000 4.00000
+object "cells" class array type int rank 1 shape 8 items 24 data follows
+       0       12      3       15      1       13      4       16
+       1       13      4       16      2       14      5       17
+       3       15      6       18      4       16      7       19
+       4       16      7       19      5       17      8       20
+       6       18      9       21      7       19      10      22
+       7       19      10      22      8       20      11      23
+       12      24      15      27      13      25      16      28
+       13      25      16      28      14      26      17      29
+       15      27      18      30      16      28      19      31
+       16      28      19      31      17      29      20      32
+       18      30      21      33      19      31      22      34
+       19      31      22      34      20      32      23      35
+       24      36      27      39      25      37      28      40
+       25      37      28      40      26      38      29      41
+       27      39      30      42      28      40      31      43
+       28      40      31      43      29      41      32      44
+       30      42      33      45      31      43      34      46
+       31      43      34      46      32      44      35      47
+       36      48      39      51      37      49      40      52
+       37      49      40      52      38      50      41      53
+       39      51      42      54      40      52      43      55
+       40      52      43      55      41      53      44      56
+       42      54      45      57      43      55      46      58
+       43      55      46      58      44      56      47      59
+attribute "element type" string "cubes"
+attribute "ref" string "positions"
+
+object "material" class array type int rank 0 items 24 data follows
+ 5 5 7 7 7 7 5 5 7 7 7 7 5 5 7 7 7 7 5 5 7 7 7 7
+attribute "dep" string "connections"
+
+object "level" class array type int rank 0 items 24 data follows
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+attribute "dep" string "connections"
+
+object "deal data" class field
+component "positions" value "vertices"
+component "connections" value "cells"
+object "cell data" class field
+component "positions" value "vertices"
+component "connections" value "cells"
+component "material" value "material"
+component "level" value "level"
+
+object "grid data" class group
+member "cells" value "cell data"
+end
+DEAL:3d::enclosed_hyper_cube
+object "vertices" class array type float rank 1 shape 3 items 64 data follows
+       2.00000 2.00000 2.00000
+       3.00000 2.00000 2.00000
+       7.00000 2.00000 2.00000
+       8.00000 2.00000 2.00000
+       2.00000 3.00000 2.00000
+       3.00000 3.00000 2.00000
+       7.00000 3.00000 2.00000
+       8.00000 3.00000 2.00000
+       2.00000 7.00000 2.00000
+       3.00000 7.00000 2.00000
+       7.00000 7.00000 2.00000
+       8.00000 7.00000 2.00000
+       2.00000 8.00000 2.00000
+       3.00000 8.00000 2.00000
+       7.00000 8.00000 2.00000
+       8.00000 8.00000 2.00000
+       2.00000 2.00000 3.00000
+       3.00000 2.00000 3.00000
+       7.00000 2.00000 3.00000
+       8.00000 2.00000 3.00000
+       2.00000 3.00000 3.00000
+       3.00000 3.00000 3.00000
+       7.00000 3.00000 3.00000
+       8.00000 3.00000 3.00000
+       2.00000 7.00000 3.00000
+       3.00000 7.00000 3.00000
+       7.00000 7.00000 3.00000
+       8.00000 7.00000 3.00000
+       2.00000 8.00000 3.00000
+       3.00000 8.00000 3.00000
+       7.00000 8.00000 3.00000
+       8.00000 8.00000 3.00000
+       2.00000 2.00000 7.00000
+       3.00000 2.00000 7.00000
+       7.00000 2.00000 7.00000
+       8.00000 2.00000 7.00000
+       2.00000 3.00000 7.00000
+       3.00000 3.00000 7.00000
+       7.00000 3.00000 7.00000
+       8.00000 3.00000 7.00000
+       2.00000 7.00000 7.00000
+       3.00000 7.00000 7.00000
+       7.00000 7.00000 7.00000
+       8.00000 7.00000 7.00000
+       2.00000 8.00000 7.00000
+       3.00000 8.00000 7.00000
+       7.00000 8.00000 7.00000
+       8.00000 8.00000 7.00000
+       2.00000 2.00000 8.00000
+       3.00000 2.00000 8.00000
+       7.00000 2.00000 8.00000
+       8.00000 2.00000 8.00000
+       2.00000 3.00000 8.00000
+       3.00000 3.00000 8.00000
+       7.00000 3.00000 8.00000
+       8.00000 3.00000 8.00000
+       2.00000 7.00000 8.00000
+       3.00000 7.00000 8.00000
+       7.00000 7.00000 8.00000
+       8.00000 7.00000 8.00000
+       2.00000 8.00000 8.00000
+       3.00000 8.00000 8.00000
+       7.00000 8.00000 8.00000
+       8.00000 8.00000 8.00000
+object "cells" class array type int rank 1 shape 8 items 27 data follows
+       0       16      4       20      1       17      5       21
+       1       17      5       21      2       18      6       22
+       2       18      6       22      3       19      7       23
+       4       20      8       24      5       21      9       25
+       5       21      9       25      6       22      10      26
+       6       22      10      26      7       23      11      27
+       8       24      12      28      9       25      13      29
+       9       25      13      29      10      26      14      30
+       10      26      14      30      11      27      15      31
+       16      32      20      36      17      33      21      37
+       17      33      21      37      18      34      22      38
+       18      34      22      38      19      35      23      39
+       20      36      24      40      21      37      25      41
+       21      37      25      41      22      38      26      42
+       22      38      26      42      23      39      27      43
+       24      40      28      44      25      41      29      45
+       25      41      29      45      26      42      30      46
+       26      42      30      46      27      43      31      47
+       32      48      36      52      33      49      37      53
+       33      49      37      53      34      50      38      54
+       34      50      38      54      35      51      39      55
+       36      52      40      56      37      53      41      57
+       37      53      41      57      38      54      42      58
+       38      54      42      58      39      55      43      59
+       40      56      44      60      41      57      45      61
+       41      57      45      61      42      58      46      62
+       42      58      46      62      43      59      47      63
+attribute "element type" string "cubes"
+attribute "ref" string "positions"
+
+object "material" class array type int rank 0 items 27 data follows
+ 21 20 22 17 16 18 25 24 26 5 4 6 1 0 2 9 8 10 37 36 38 33 32 34 41 40 42
+attribute "dep" string "connections"
+
+object "level" class array type int rank 0 items 27 data follows
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+attribute "dep" string "connections"
+
+object "deal data" class field
+component "positions" value "vertices"
+component "connections" value "cells"
+object "cell data" class field
+component "positions" value "vertices"
+component "connections" value "cells"
+component "material" value "material"
+component "level" value "level"
+
+object "grid data" class group
+member "cells" value "cell data"
+end
+DEAL:3d::hyper_ball
+object "vertices" class array type float rank 1 shape 3 items 16 data follows
+       1.36603 -1.63397 -0.633975
+       2.63397 -1.63397 -0.633975
+       2.63397 -1.63397 0.633975
+       1.36603 -1.63397 0.633975
+       1.36603 -0.366025 -0.633975
+       2.63397 -0.366025 -0.633975
+       2.63397 -0.366025 0.633975
+       1.36603 -0.366025 0.633975
+       0.267949 -2.73205 -1.73205
+       3.73205 -2.73205 -1.73205
+       3.73205 -2.73205 1.73205
+       0.267949 -2.73205 1.73205
+       0.267949 0.732051 -1.73205
+       3.73205 0.732051 -1.73205
+       3.73205 0.732051 1.73205
+       0.267949 0.732051 1.73205
+object "cells" class array type int rank 1 shape 8 items 7 data follows
+       0       3       4       7       1       2       5       6
+       8       0       12      4       9       1       13      5
+       9       10      1       2       13      14      5       6
+       11      15      3       7       10      14      2       6
+       8       11      12      15      0       3       4       7
+       8       11      0       3       9       10      1       2
+       12      15      13      14      4       7       5       6
+attribute "element type" string "cubes"
+attribute "ref" string "positions"
+
+object "material" class array type int rank 0 items 7 data follows
+ 0 0 0 0 0 0 0
+attribute "dep" string "connections"
+
+object "level" class array type int rank 0 items 7 data follows
+ 0 0 0 0 0 0 0
+attribute "dep" string "connections"
+
+object "deal data" class field
+component "positions" value "vertices"
+component "connections" value "cells"
+object "cell data" class field
+component "positions" value "vertices"
+component "connections" value "cells"
+component "material" value "material"
+component "level" value "level"
+
+object "grid data" class group
+member "cells" value "cell data"
+end
+DEAL:3d::cylinder
+object "vertices" class array type float rank 1 shape 3 items 24 data follows
+       -3.00000 0.707107 -0.707107
+       -3.00000 -0.707107 -0.707107
+       -3.00000 0.292893 -0.292893
+       -3.00000 -0.292893 -0.292893
+       -3.00000 0.292893 0.292893
+       -3.00000 -0.292893 0.292893
+       -3.00000 0.707107 0.707107
+       -3.00000 -0.707107 0.707107
+       0.00000 0.707107 -0.707107
+       0.00000 -0.707107 -0.707107
+       0.00000 0.292893 -0.292893
+       0.00000 -0.292893 -0.292893
+       0.00000 0.292893 0.292893
+       0.00000 -0.292893 0.292893
+       0.00000 0.707107 0.707107
+       0.00000 -0.707107 0.707107
+       3.00000 0.707107 -0.707107
+       3.00000 -0.707107 -0.707107
+       3.00000 0.292893 -0.292893
+       3.00000 -0.292893 -0.292893
+       3.00000 0.292893 0.292893
+       3.00000 -0.292893 0.292893
+       3.00000 0.707107 0.707107
+       3.00000 -0.707107 0.707107
+object "cells" class array type int rank 1 shape 8 items 10 data follows
+       0       2       8       10      1       3       9       11
+       0       6       8       14      2       4       10      12
+       2       4       10      12      3       5       11      13
+       1       3       9       11      7       5       15      13
+       6       7       14      15      4       5       12      13
+       8       10      16      18      9       11      17      19
+       8       14      16      22      10      12      18      20
+       10      12      18      20      11      13      19      21
+       9       11      17      19      15      13      23      21
+       14      15      22      23      12      13      20      21
+attribute "element type" string "cubes"
+attribute "ref" string "positions"
+
+object "material" class array type int rank 0 items 10 data follows
+ 0 0 0 0 0 0 0 0 0 0
+attribute "dep" string "connections"
+
+object "level" class array type int rank 0 items 10 data follows
+ 0 0 0 0 0 0 0 0 0 0
+attribute "dep" string "connections"
+
+object "deal data" class field
+component "positions" value "vertices"
+component "connections" value "cells"
+object "cell data" class field
+component "positions" value "vertices"
+component "connections" value "cells"
+component "material" value "material"
+component "level" value "level"
+
+object "grid data" class group
+member "cells" value "cell data"
+end
+DEAL:3d::hyper_L
+object "vertices" class array type float rank 1 shape 3 items 26 data follows
+       -1.00000 -1.00000 -1.00000
+       0.00000 -1.00000 -1.00000
+       1.00000 -1.00000 -1.00000
+       -1.00000 -1.00000 0.00000
+       0.00000 -1.00000 0.00000
+       1.00000 -1.00000 0.00000
+       -1.00000 -1.00000 1.00000
+       0.00000 -1.00000 1.00000
+       1.00000 -1.00000 1.00000
+       -1.00000 0.00000 -1.00000
+       0.00000 0.00000 -1.00000
+       1.00000 0.00000 -1.00000
+       -1.00000 0.00000 0.00000
+       0.00000 0.00000 0.00000
+       1.00000 0.00000 0.00000
+       -1.00000 0.00000 1.00000
+       0.00000 0.00000 1.00000
+       1.00000 0.00000 1.00000
+       -1.00000 1.00000 -1.00000
+       0.00000 1.00000 -1.00000
+       1.00000 1.00000 -1.00000
+       -1.00000 1.00000 0.00000
+       0.00000 1.00000 0.00000
+       1.00000 1.00000 0.00000
+       -1.00000 1.00000 1.00000
+       0.00000 1.00000 1.00000
+object "cells" class array type int rank 1 shape 8 items 7 data follows
+       0       3       9       12      1       4       10      13
+       1       4       10      13      2       5       11      14
+       3       6       12      15      4       7       13      16
+       4       7       13      16      5       8       14      17
+       9       12      18      21      10      13      19      22
+       10      13      19      22      11      14      20      23
+       12      15      21      24      13      16      22      25
+attribute "element type" string "cubes"
+attribute "ref" string "positions"
+
+object "material" class array type int rank 0 items 7 data follows
+ 0 0 0 0 0 0 0
+attribute "dep" string "connections"
+
+object "level" class array type int rank 0 items 7 data follows
+ 0 0 0 0 0 0 0
+attribute "dep" string "connections"
+
+object "deal data" class field
+component "positions" value "vertices"
+component "connections" value "cells"
+object "cell data" class field
+component "positions" value "vertices"
+component "connections" value "cells"
+component "material" value "material"
+component "level" value "level"
+
+object "grid data" class group
+member "cells" value "cell data"
+end
+DEAL:3d::cylinder_shell
+object "vertices" class array type float rank 1 shape 3 items 280 data follows
+       6.00000 0.00000 0.00000
+       5.90358 1.07134 0.00000
+       5.61741 2.10825 0.00000
+       5.15069 3.07740 0.00000
+       4.51843 3.94763 0.00000
+       3.74094 4.69099 0.00000
+       2.84321 5.28357 0.00000
+       1.85410 5.70634 0.00000
+       0.805400 5.94570 0.00000
+       -0.269189 5.99396 0.00000
+       -1.33513 5.84957 0.00000
+       -2.35815 5.51717 0.00000
+       -3.30538 5.00744 0.00000
+       -4.14638 4.33677 0.00000
+       -4.85410 3.52671 0.00000
+       -5.40581 2.60330 0.00000
+       -5.78378 1.59622 0.00000
+       -5.97585 0.537836 0.00000
+       -5.97585 -0.537836 0.00000
+       -5.78378 -1.59622 0.00000
+       -5.40581 -2.60330 0.00000
+       -4.85410 -3.52671 0.00000
+       -4.14638 -4.33677 0.00000
+       -3.30538 -5.00744 0.00000
+       -2.35815 -5.51717 0.00000
+       -1.33513 -5.84957 0.00000
+       -0.269189 -5.99396 0.00000
+       0.805400 -5.94570 0.00000
+       1.85410 -5.70634 0.00000
+       2.84321 -5.28357 0.00000
+       3.74094 -4.69099 0.00000
+       4.51843 -3.94763 0.00000
+       5.15069 -3.07740 0.00000
+       5.61741 -2.10825 0.00000
+       5.90358 -1.07134 0.00000
+       5.00000 0.00000 0.00000
+       4.91965 0.892784 0.00000
+       4.68117 1.75687 0.00000
+       4.29224 2.56450 0.00000
+       3.76536 3.28969 0.00000
+       3.11745 3.90916 0.00000
+       2.36934 4.40298 0.00000
+       1.54508 4.75528 0.00000
+       0.671166 4.95475 0.00000
+       -0.224324 4.99497 0.00000
+       -1.11260 4.87464 0.00000
+       -1.96513 4.59764 0.00000
+       -2.75448 4.17287 0.00000
+       -3.45531 3.61397 0.00000
+       -4.04508 2.93893 0.00000
+       -4.50484 2.16942 0.00000
+       -4.81981 1.33018 0.00000
+       -4.97987 0.448197 0.00000
+       -4.97987 -0.448197 0.00000
+       -4.81981 -1.33018 0.00000
+       -4.50484 -2.16942 0.00000
+       -4.04508 -2.93893 0.00000
+       -3.45531 -3.61397 0.00000
+       -2.75448 -4.17287 0.00000
+       -1.96513 -4.59764 0.00000
+       -1.11260 -4.87464 0.00000
+       -0.224324 -4.99497 0.00000
+       0.671166 -4.95475 0.00000
+       1.54508 -4.75528 0.00000
+       2.36934 -4.40298 0.00000
+       3.11745 -3.90916 0.00000
+       3.76536 -3.28969 0.00000
+       4.29224 -2.56450 0.00000
+       4.68117 -1.75687 0.00000
+       4.91965 -0.892784 0.00000
+       6.00000 0.00000 0.666667
+       5.90358 1.07134 0.666667
+       5.61741 2.10825 0.666667
+       5.15069 3.07740 0.666667
+       4.51843 3.94763 0.666667
+       3.74094 4.69099 0.666667
+       2.84321 5.28357 0.666667
+       1.85410 5.70634 0.666667
+       0.805400 5.94570 0.666667
+       -0.269189 5.99396 0.666667
+       -1.33513 5.84957 0.666667
+       -2.35815 5.51717 0.666667
+       -3.30538 5.00744 0.666667
+       -4.14638 4.33677 0.666667
+       -4.85410 3.52671 0.666667
+       -5.40581 2.60330 0.666667
+       -5.78378 1.59622 0.666667
+       -5.97585 0.537836 0.666667
+       -5.97585 -0.537836 0.666667
+       -5.78378 -1.59622 0.666667
+       -5.40581 -2.60330 0.666667
+       -4.85410 -3.52671 0.666667
+       -4.14638 -4.33677 0.666667
+       -3.30538 -5.00744 0.666667
+       -2.35815 -5.51717 0.666667
+       -1.33513 -5.84957 0.666667
+       -0.269189 -5.99396 0.666667
+       0.805400 -5.94570 0.666667
+       1.85410 -5.70634 0.666667
+       2.84321 -5.28357 0.666667
+       3.74094 -4.69099 0.666667
+       4.51843 -3.94763 0.666667
+       5.15069 -3.07740 0.666667
+       5.61741 -2.10825 0.666667
+       5.90358 -1.07134 0.666667
+       5.00000 0.00000 0.666667
+       4.91965 0.892784 0.666667
+       4.68117 1.75687 0.666667
+       4.29224 2.56450 0.666667
+       3.76536 3.28969 0.666667
+       3.11745 3.90916 0.666667
+       2.36934 4.40298 0.666667
+       1.54508 4.75528 0.666667
+       0.671166 4.95475 0.666667
+       -0.224324 4.99497 0.666667
+       -1.11260 4.87464 0.666667
+       -1.96513 4.59764 0.666667
+       -2.75448 4.17287 0.666667
+       -3.45531 3.61397 0.666667
+       -4.04508 2.93893 0.666667
+       -4.50484 2.16942 0.666667
+       -4.81981 1.33018 0.666667
+       -4.97987 0.448197 0.666667
+       -4.97987 -0.448197 0.666667
+       -4.81981 -1.33018 0.666667
+       -4.50484 -2.16942 0.666667
+       -4.04508 -2.93893 0.666667
+       -3.45531 -3.61397 0.666667
+       -2.75448 -4.17287 0.666667
+       -1.96513 -4.59764 0.666667
+       -1.11260 -4.87464 0.666667
+       -0.224324 -4.99497 0.666667
+       0.671166 -4.95475 0.666667
+       1.54508 -4.75528 0.666667
+       2.36934 -4.40298 0.666667
+       3.11745 -3.90916 0.666667
+       3.76536 -3.28969 0.666667
+       4.29224 -2.56450 0.666667
+       4.68117 -1.75687 0.666667
+       4.91965 -0.892784 0.666667
+       6.00000 0.00000 1.33333
+       5.90358 1.07134 1.33333
+       5.61741 2.10825 1.33333
+       5.15069 3.07740 1.33333
+       4.51843 3.94763 1.33333
+       3.74094 4.69099 1.33333
+       2.84321 5.28357 1.33333
+       1.85410 5.70634 1.33333
+       0.805400 5.94570 1.33333
+       -0.269189 5.99396 1.33333
+       -1.33513 5.84957 1.33333
+       -2.35815 5.51717 1.33333
+       -3.30538 5.00744 1.33333
+       -4.14638 4.33677 1.33333
+       -4.85410 3.52671 1.33333
+       -5.40581 2.60330 1.33333
+       -5.78378 1.59622 1.33333
+       -5.97585 0.537836 1.33333
+       -5.97585 -0.537836 1.33333
+       -5.78378 -1.59622 1.33333
+       -5.40581 -2.60330 1.33333
+       -4.85410 -3.52671 1.33333
+       -4.14638 -4.33677 1.33333
+       -3.30538 -5.00744 1.33333
+       -2.35815 -5.51717 1.33333
+       -1.33513 -5.84957 1.33333
+       -0.269189 -5.99396 1.33333
+       0.805400 -5.94570 1.33333
+       1.85410 -5.70634 1.33333
+       2.84321 -5.28357 1.33333
+       3.74094 -4.69099 1.33333
+       4.51843 -3.94763 1.33333
+       5.15069 -3.07740 1.33333
+       5.61741 -2.10825 1.33333
+       5.90358 -1.07134 1.33333
+       5.00000 0.00000 1.33333
+       4.91965 0.892784 1.33333
+       4.68117 1.75687 1.33333
+       4.29224 2.56450 1.33333
+       3.76536 3.28969 1.33333
+       3.11745 3.90916 1.33333
+       2.36934 4.40298 1.33333
+       1.54508 4.75528 1.33333
+       0.671166 4.95475 1.33333
+       -0.224324 4.99497 1.33333
+       -1.11260 4.87464 1.33333
+       -1.96513 4.59764 1.33333
+       -2.75448 4.17287 1.33333
+       -3.45531 3.61397 1.33333
+       -4.04508 2.93893 1.33333
+       -4.50484 2.16942 1.33333
+       -4.81981 1.33018 1.33333
+       -4.97987 0.448197 1.33333
+       -4.97987 -0.448197 1.33333
+       -4.81981 -1.33018 1.33333
+       -4.50484 -2.16942 1.33333
+       -4.04508 -2.93893 1.33333
+       -3.45531 -3.61397 1.33333
+       -2.75448 -4.17287 1.33333
+       -1.96513 -4.59764 1.33333
+       -1.11260 -4.87464 1.33333
+       -0.224324 -4.99497 1.33333
+       0.671166 -4.95475 1.33333
+       1.54508 -4.75528 1.33333
+       2.36934 -4.40298 1.33333
+       3.11745 -3.90916 1.33333
+       3.76536 -3.28969 1.33333
+       4.29224 -2.56450 1.33333
+       4.68117 -1.75687 1.33333
+       4.91965 -0.892784 1.33333
+       6.00000 0.00000 2.00000
+       5.90358 1.07134 2.00000
+       5.61741 2.10825 2.00000
+       5.15069 3.07740 2.00000
+       4.51843 3.94763 2.00000
+       3.74094 4.69099 2.00000
+       2.84321 5.28357 2.00000
+       1.85410 5.70634 2.00000
+       0.805400 5.94570 2.00000
+       -0.269189 5.99396 2.00000
+       -1.33513 5.84957 2.00000
+       -2.35815 5.51717 2.00000
+       -3.30538 5.00744 2.00000
+       -4.14638 4.33677 2.00000
+       -4.85410 3.52671 2.00000
+       -5.40581 2.60330 2.00000
+       -5.78378 1.59622 2.00000
+       -5.97585 0.537836 2.00000
+       -5.97585 -0.537836 2.00000
+       -5.78378 -1.59622 2.00000
+       -5.40581 -2.60330 2.00000
+       -4.85410 -3.52671 2.00000
+       -4.14638 -4.33677 2.00000
+       -3.30538 -5.00744 2.00000
+       -2.35815 -5.51717 2.00000
+       -1.33513 -5.84957 2.00000
+       -0.269189 -5.99396 2.00000
+       0.805400 -5.94570 2.00000
+       1.85410 -5.70634 2.00000
+       2.84321 -5.28357 2.00000
+       3.74094 -4.69099 2.00000
+       4.51843 -3.94763 2.00000
+       5.15069 -3.07740 2.00000
+       5.61741 -2.10825 2.00000
+       5.90358 -1.07134 2.00000
+       5.00000 0.00000 2.00000
+       4.91965 0.892784 2.00000
+       4.68117 1.75687 2.00000
+       4.29224 2.56450 2.00000
+       3.76536 3.28969 2.00000
+       3.11745 3.90916 2.00000
+       2.36934 4.40298 2.00000
+       1.54508 4.75528 2.00000
+       0.671166 4.95475 2.00000
+       -0.224324 4.99497 2.00000
+       -1.11260 4.87464 2.00000
+       -1.96513 4.59764 2.00000
+       -2.75448 4.17287 2.00000
+       -3.45531 3.61397 2.00000
+       -4.04508 2.93893 2.00000
+       -4.50484 2.16942 2.00000
+       -4.81981 1.33018 2.00000
+       -4.97987 0.448197 2.00000
+       -4.97987 -0.448197 2.00000
+       -4.81981 -1.33018 2.00000
+       -4.50484 -2.16942 2.00000
+       -4.04508 -2.93893 2.00000
+       -3.45531 -3.61397 2.00000
+       -2.75448 -4.17287 2.00000
+       -1.96513 -4.59764 2.00000
+       -1.11260 -4.87464 2.00000
+       -0.224324 -4.99497 2.00000
+       0.671166 -4.95475 2.00000
+       1.54508 -4.75528 2.00000
+       2.36934 -4.40298 2.00000
+       3.11745 -3.90916 2.00000
+       3.76536 -3.28969 2.00000
+       4.29224 -2.56450 2.00000
+       4.68117 -1.75687 2.00000
+       4.91965 -0.892784 2.00000
+object "cells" class array type int rank 1 shape 8 items 105 data follows
+       70      105     0       35      71      106     1       36
+       71      106     1       36      72      107     2       37
+       72      107     2       37      73      108     3       38
+       73      108     3       38      74      109     4       39
+       74      109     4       39      75      110     5       40
+       75      110     5       40      76      111     6       41
+       76      111     6       41      77      112     7       42
+       77      112     7       42      78      113     8       43
+       78      113     8       43      79      114     9       44
+       79      114     9       44      80      115     10      45
+       80      115     10      45      81      116     11      46
+       81      116     11      46      82      117     12      47
+       82      117     12      47      83      118     13      48
+       83      118     13      48      84      119     14      49
+       84      119     14      49      85      120     15      50
+       85      120     15      50      86      121     16      51
+       86      121     16      51      87      122     17      52
+       87      122     17      52      88      123     18      53
+       88      123     18      53      89      124     19      54
+       89      124     19      54      90      125     20      55
+       90      125     20      55      91      126     21      56
+       91      126     21      56      92      127     22      57
+       92      127     22      57      93      128     23      58
+       93      128     23      58      94      129     24      59
+       94      129     24      59      95      130     25      60
+       95      130     25      60      96      131     26      61
+       96      131     26      61      97      132     27      62
+       97      132     27      62      98      133     28      63
+       98      133     28      63      99      134     29      64
+       99      134     29      64      100     135     30      65
+       100     135     30      65      101     136     31      66
+       101     136     31      66      102     137     32      67
+       102     137     32      67      103     138     33      68
+       103     138     33      68      104     139     34      69
+       104     139     34      69      70      105     0       35
+       140     175     70      105     141     176     71      106
+       141     176     71      106     142     177     72      107
+       142     177     72      107     143     178     73      108
+       143     178     73      108     144     179     74      109
+       144     179     74      109     145     180     75      110
+       145     180     75      110     146     181     76      111
+       146     181     76      111     147     182     77      112
+       147     182     77      112     148     183     78      113
+       148     183     78      113     149     184     79      114
+       149     184     79      114     150     185     80      115
+       150     185     80      115     151     186     81      116
+       151     186     81      116     152     187     82      117
+       152     187     82      117     153     188     83      118
+       153     188     83      118     154     189     84      119
+       154     189     84      119     155     190     85      120
+       155     190     85      120     156     191     86      121
+       156     191     86      121     157     192     87      122
+       157     192     87      122     158     193     88      123
+       158     193     88      123     159     194     89      124
+       159     194     89      124     160     195     90      125
+       160     195     90      125     161     196     91      126
+       161     196     91      126     162     197     92      127
+       162     197     92      127     163     198     93      128
+       163     198     93      128     164     199     94      129
+       164     199     94      129     165     200     95      130
+       165     200     95      130     166     201     96      131
+       166     201     96      131     167     202     97      132
+       167     202     97      132     168     203     98      133
+       168     203     98      133     169     204     99      134
+       169     204     99      134     170     205     100     135
+       170     205     100     135     171     206     101     136
+       171     206     101     136     172     207     102     137
+       172     207     102     137     173     208     103     138
+       173     208     103     138     174     209     104     139
+       174     209     104     139     140     175     70      105
+       210     245     140     175     211     246     141     176
+       211     246     141     176     212     247     142     177
+       212     247     142     177     213     248     143     178
+       213     248     143     178     214     249     144     179
+       214     249     144     179     215     250     145     180
+       215     250     145     180     216     251     146     181
+       216     251     146     181     217     252     147     182
+       217     252     147     182     218     253     148     183
+       218     253     148     183     219     254     149     184
+       219     254     149     184     220     255     150     185
+       220     255     150     185     221     256     151     186
+       221     256     151     186     222     257     152     187
+       222     257     152     187     223     258     153     188
+       223     258     153     188     224     259     154     189
+       224     259     154     189     225     260     155     190
+       225     260     155     190     226     261     156     191
+       226     261     156     191     227     262     157     192
+       227     262     157     192     228     263     158     193
+       228     263     158     193     229     264     159     194
+       229     264     159     194     230     265     160     195
+       230     265     160     195     231     266     161     196
+       231     266     161     196     232     267     162     197
+       232     267     162     197     233     268     163     198
+       233     268     163     198     234     269     164     199
+       234     269     164     199     235     270     165     200
+       235     270     165     200     236     271     166     201
+       236     271     166     201     237     272     167     202
+       237     272     167     202     238     273     168     203
+       238     273     168     203     239     274     169     204
+       239     274     169     204     240     275     170     205
+       240     275     170     205     241     276     171     206
+       241     276     171     206     242     277     172     207
+       242     277     172     207     243     278     173     208
+       243     278     173     208     244     279     174     209
+       244     279     174     209     210     245     140     175
+attribute "element type" string "cubes"
+attribute "ref" string "positions"
+
+object "material" class array type int rank 0 items 105 data follows
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+attribute "dep" string "connections"
+
+object "level" class array type int rank 0 items 105 data follows
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+attribute "dep" string "connections"
+
+object "deal data" class field
+component "positions" value "vertices"
+component "connections" value "cells"
+object "cell data" class field
+component "positions" value "vertices"
+component "connections" value "cells"
+component "material" value "material"
+component "level" value "level"
+
+object "grid data" class group
+member "cells" value "cell data"
+end
+DEAL:3d::half_hyper_ball
+object "vertices" class array type float rank 1 shape 3 items 16 data follows
+       2.00000 1.12132 -2.12132
+       2.00000 -3.12132 -2.12132
+       2.00000 -0.121320 -0.878680
+       2.00000 -1.87868 -0.878680
+       2.00000 -0.121320 0.878680
+       2.00000 -1.87868 0.878680
+       2.00000 1.12132 2.12132
+       2.00000 -3.12132 2.12132
+       4.59808 0.0606602 -1.06066
+       4.59808 -2.06066 -1.06066
+       3.29904 -0.560660 -0.439340
+       3.29904 -1.43934 -0.439340
+       3.29904 -0.560660 0.439340
+       3.29904 -1.43934 0.439340
+       4.59808 0.0606602 1.06066
+       4.59808 -2.06066 1.06066
+object "cells" class array type int rank 1 shape 8 items 6 data follows
+       0       2       8       10      1       3       9       11
+       0       6       8       14      2       4       10      12
+       2       4       10      12      3       5       11      13
+       1       3       9       11      7       5       15      13
+       6       7       14      15      4       5       12      13
+       8       14      9       15      10      12      11      13
+attribute "element type" string "cubes"
+attribute "ref" string "positions"
+
+object "material" class array type int rank 0 items 6 data follows
+ 0 0 0 0 0 0
+attribute "dep" string "connections"
+
+object "level" class array type int rank 0 items 6 data follows
+ 0 0 0 0 0 0
+attribute "dep" string "connections"
+
+object "deal data" class field
+component "positions" value "vertices"
+component "connections" value "cells"
+object "cell data" class field
+component "positions" value "vertices"
+component "connections" value "cells"
+component "material" value "material"
+component "level" value "level"
+
+object "grid data" class group
+member "cells" value "cell data"
+end

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.