From 9b880ddde450a4f640ec949d553b472324a260e0 Mon Sep 17 00:00:00 2001
From: bangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Date: Tue, 13 Jan 2009 17:40:26 +0000
Subject: [PATCH] Fix HalfHyperShellBoundary in 3d.

git-svn-id: https://svn.dealii.org/trunk@18215 0785d39b-7218-0410-832d-ea1e28bc413d
---
 .../deal.II/include/grid/tria_boundary_lib.h  |   24 +-
 .../deal.II/source/grid/tria_boundary_lib.cc  |  192 +-
 deal.II/doc/news/changes.h                    |    9 +
 tests/bits/grid_generator_06.cc               |   95 +
 tests/bits/grid_generator_06/cmp/generic      | 2021 +++++++++++++++++
 5 files changed, 2306 insertions(+), 35 deletions(-)
 create mode 100644 tests/bits/grid_generator_06.cc
 create mode 100644 tests/bits/grid_generator_06/cmp/generic

diff --git a/deal.II/deal.II/include/grid/tria_boundary_lib.h b/deal.II/deal.II/include/grid/tria_boundary_lib.h
index 265eea6096..bf4ad320c8 100644
--- a/deal.II/deal.II/include/grid/tria_boundary_lib.h
+++ b/deal.II/deal.II/include/grid/tria_boundary_lib.h
@@ -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;
 };
 
 
diff --git a/deal.II/deal.II/source/grid/tria_boundary_lib.cc b/deal.II/deal.II/source/grid/tria_boundary_lib.cc
index 139d4540bb..803508b3b7 100644
--- a/deal.II/deal.II/source/grid/tria_boundary_lib.cc
+++ b/deal.II/deal.II/source/grid/tria_boundary_lib.cc
@@ -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
diff --git a/deal.II/doc/news/changes.h b/deal.II/doc/news/changes.h
index 69566252c3..9336435948 100644
--- a/deal.II/doc/news/changes.h
+++ b/deal.II/doc/news/changes.h
@@ -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
index 0000000000..7d3dcc2d1b
--- /dev/null
+++ b/tests/bits/grid_generator_06.cc
@@ -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
index 0000000000..b17470eabe
--- /dev/null
+++ b/tests/bits/grid_generator_06/cmp/generic
@@ -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
-- 
2.39.5