]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Adding function subdivided_hyper_L to GridGenerator.
authorMae Markowski <mm115@rice.edu>
Fri, 9 Aug 2019 22:40:44 +0000 (16:40 -0600)
committerMae Markowski <mm115@rice.edu>
Mon, 12 Aug 2019 15:16:44 +0000 (10:16 -0500)
Added changelog entry, replaced call to .at() with [] operator,
fixed lines breaks in documentation.

forgot to fix indentation

changed parameter order

updated log file and error message

doc/doxygen/images/subdivided_hyper_L_2d.png [new file with mode: 0644]
doc/doxygen/images/subdivided_hyper_L_3d.png [new file with mode: 0644]
doc/news/changes/minor/20190810MaeMarkowski [new file with mode: 0644]
include/deal.II/grid/grid_generator.h
source/grid/grid_generator.cc
source/grid/grid_generator.inst.in
tests/grid/grid_generator_01.cc
tests/grid/grid_generator_01.output

diff --git a/doc/doxygen/images/subdivided_hyper_L_2d.png b/doc/doxygen/images/subdivided_hyper_L_2d.png
new file mode 100644 (file)
index 0000000..e9a39bc
Binary files /dev/null and b/doc/doxygen/images/subdivided_hyper_L_2d.png differ
diff --git a/doc/doxygen/images/subdivided_hyper_L_3d.png b/doc/doxygen/images/subdivided_hyper_L_3d.png
new file mode 100644 (file)
index 0000000..0e82ddb
Binary files /dev/null and b/doc/doxygen/images/subdivided_hyper_L_3d.png differ
diff --git a/doc/news/changes/minor/20190810MaeMarkowski b/doc/news/changes/minor/20190810MaeMarkowski
new file mode 100644 (file)
index 0000000..ddb0515
--- /dev/null
@@ -0,0 +1,3 @@
+New: Added the function GridGenerator::subdivided_hyper_L().
+<br>
+(Mae Markowski, 2019/08/10)
index 1c51c127dc375bc05136cb8d8a6f6da4e3116152..1015ce464d77f15e291f31b65f17d411c313c5f2 100644 (file)
@@ -873,6 +873,45 @@ namespace GridGenerator
           const double        right    = 1.,
           const bool          colorize = false);
 
+  /**
+   * Initialize the given triangulation in 2D or 3D with a generalized
+   * subdivided_hyper_L.
+   *
+   * This function produces a subdivided_hyper_rectangle with dimensions given
+   * by @p bottom_left and @p top_right, with the given number of
+   * subdivisions in each direction given in the vector @p repetitions,
+   * and with a number of cells removed, given in the vector @p num_cells_to_cut.
+   * Note that @p num_cells_to_cut contains integers, meaning that its entries
+   * can be both positive and negative. A positive number denotes
+   * cutting away cells in the 'positive' orientation, for example
+   * left to right in the x-direction, bottom to top in
+   * the y-direction, and front to back in the z-direction. A negative number
+   * denotes cutting away cells in the reverse direction, so right to left,
+   * top to bottom, and back to front.
+   *
+   * This function may be used to generate a mesh for a backward
+   * facing step, a useful domain for benchmark problems in fluid dynamics.
+   * The first image is a backward facing step in 3D, generated by
+   * removing all cells in the z-direction, and 2 cells in the
+   * positive x- and y-directions:
+   * @image html subdivided_hyper_L_3d.png
+   * And in 2D, we can cut away 1 cell in the negative x-direction, and 2 cells
+   * in the negative y-direction:
+   * @image html subdivided_hyper_L_2d.png
+   *
+   * @note This function is declared to exist for triangulations of all space
+   * dimensions, but throws an error if called in 1D.
+   *
+   * @author Mae Markowski, 2019
+   */
+  template <int dim, int spacedim>
+  void
+  subdivided_hyper_L(Triangulation<dim, spacedim> &   tria,
+                     const std::vector<unsigned int> &repetitions,
+                     const Point<dim> &               bottom_left,
+                     const Point<dim> &               top_right,
+                     const std::vector<int> &         num_cells_to_cut);
+
   /**
    * Initialize the given Triangulation with a hypercube with a slit. In each
    * coordinate direction, the hypercube extends from @p left to @p right.
index 283b553aa00f19c31ec4fe9f00a4f19b9bfaff16..74b01ddb9826672d155604304eb5b85dd46baeb6 100644 (file)
@@ -2891,6 +2891,77 @@ namespace GridGenerator
 
 
 
+  template <int dim, int spacedim>
+  void
+  subdivided_hyper_L(Triangulation<dim, spacedim> &   tria,
+                     const std::vector<unsigned int> &repetitions,
+                     const Point<dim> &               bottom_left,
+                     const Point<dim> &               top_right,
+                     const std::vector<int> &         num_cells_to_cut)
+  {
+    Assert(dim > 1, ExcNotImplemented());
+    // Check the consistency of the dimensions provided.
+    AssertDimension(repetitions.size(), dim);
+    AssertDimension(num_cells_to_cut.size(), dim);
+    for (unsigned int d = 0; d < dim; ++d)
+      {
+        Assert(std::fabs(num_cells_to_cut[d]) <= repetitions[d],
+               ExcMessage("Attempting to cut away too many cells."));
+      }
+    // Create the domain to be cut
+    Triangulation<dim, spacedim> rectangle;
+    GridGenerator::subdivided_hyper_rectangle(rectangle,
+                                              repetitions,
+                                              bottom_left,
+                                              top_right);
+    // compute the vertex of the cut step, we will cut according to the
+    // location of the cartesian coordinates of the cell centers
+    std::vector<double> h;
+    Point<dim>          cut_step;
+    for (unsigned int d = 0; d < dim; ++d)
+      {
+        // mesh spacing in each direction in cartesian coordinates
+        h.push_back((top_right[d] - bottom_left[d]) / repetitions[d]);
+        // left to right, bottom to top, front to back
+        if (num_cells_to_cut[d] >= 0)
+          {
+            // cartesian coordinates of vertex location
+            cut_step[d] =
+              h[d] * std::fabs(num_cells_to_cut[d]) + bottom_left[d];
+          }
+        // right to left, top to bottom, back to front
+        else
+          {
+            cut_step[d] = top_right[d] - h[d] * std::fabs(num_cells_to_cut[d]);
+          }
+      }
+
+
+    // compute cells to remove
+    std::set<typename Triangulation<dim, spacedim>::active_cell_iterator>
+      cells_to_remove;
+    std::copy_if(
+      rectangle.active_cell_iterators().begin(),
+      rectangle.active_cell_iterators().end(),
+      std::inserter(cells_to_remove, cells_to_remove.end()),
+      [&](
+        const typename Triangulation<dim, spacedim>::active_cell_iterator &cell)
+        -> bool {
+        for (unsigned int d = 0; d < dim; ++d)
+          if ((num_cells_to_cut[d] > 0 && cell->center()[d] >= cut_step[d]) ||
+              (num_cells_to_cut[d] < 0 && cell->center()[d] <= cut_step[d]))
+            return false;
+
+        return true;
+      });
+
+    GridGenerator::create_triangulation_with_removed_cells(rectangle,
+                                                           cells_to_remove,
+                                                           tria);
+  }
+
+
+
   // Implementation for 2D only
   template <>
   void hyper_ball(Triangulation<2> &tria,
index f07d7ab060ff4e1a7c34afe57188f907042a35ca..13a3316611fd346281b7bb860729c0e38b13bf2a 100644 (file)
@@ -64,6 +64,14 @@ for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS)
         const std::vector<unsigned int> &,
         const bool);
 
+      template void
+      subdivided_hyper_L(
+        Triangulation<deal_II_dimension, deal_II_space_dimension> &,
+        const std::vector<unsigned int> &,
+        const Point<deal_II_dimension> &,
+        const Point<deal_II_dimension> &,
+        const std::vector<int> &);
+
       template void
       cheese<deal_II_dimension, deal_II_space_dimension>(
         Triangulation<deal_II_dimension, deal_II_space_dimension> &,
index 2904c934889c4487cff82ab191ca50206ccc0b7c..3360c61b299b06fb0c606141c37dd06a8fb183d9 100644 (file)
@@ -146,6 +146,22 @@ test(std::ostream &out)
       if (tr.n_cells() > 0)
         go.write(tr, out, format);
     }
+  if (dim > 1)
+    {
+      deallog << "subdivided_hyper_L" << std::endl;
+      Triangulation<dim>        tr;
+      std::vector<signed int>   cut_away_cells = {-2, -2};
+      std::vector<unsigned int> repetitions    = {8, 4};
+      if (dim == 3)
+        {
+          cut_away_cells.push_back(4);
+          repetitions.push_back(4);
+        }
+      GridGenerator::subdivided_hyper_L(
+        tr, repetitions, p1, p2, cut_away_cells);
+      if (tr.n_cells() > 0)
+        go.write(tr, out, format);
+    }
   if (dim == 2)
     {
       deallog << "hyper_cube_slit" << std::endl;
index dfc9a0c74a922789c0aa9bf1c45bc966b704329c..e0a2d9089925b9fa1dbdf20bc9b97e0914f38663 100644 (file)
@@ -1585,6 +1585,374 @@ Single
 2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
        -1200   0
        -1200   -1200
+DEAL:2d::subdivided_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
+0 32 #ff0000
+0 33 #ff8000
+0 34 #ffd000
+0 35 #ffff00
+0 36 #c0ff00
+0 37 #80ff00
+0 38 #00f000
+0 39 #00f0c0
+0 40 #00f0ff
+0 41 #00c0ff
+0 42 #0080ff
+0 43 #0040ff
+0 44 #0000c0
+0 45 #5000ff
+0 46 #8000ff
+0 47 #b000ff
+0 48 #ff00ff
+0 49 #ff80ff
+0 50 #1f1f1f
+0 51 #3f3f3f
+0 52 #5f5f5f
+0 53 #7f7f7f
+0 54 #9f9f9f
+0 55 #bfbfbf
+0 56 #dfdfdf
+0 57 #ffffff
+0 58 #001f00
+0 59 #002f00
+0 60 #003f00
+0 61 #004f00
+0 62 #005f00
+0 63 #006f00
+0 64 #007f00
+0 65 #008f00
+0 66 #009f00
+0 67 #00af00
+0 68 #00bf00
+0 69 #00cf00
+0 70 #00df00
+0 71 #00ef00
+0 72 #00ff00
+0 73 #1f1f00
+0 74 #2f2f00
+0 75 #3f3f00
+0 76 #4f4f00
+0 77 #5f5f00
+0 78 #6f6f00
+0 79 #7f7f00
+0 80 #8f8f00
+0 81 #9f9f00
+0 82 #afaf00
+0 83 #bfbf00
+0 84 #cfcf00
+0 85 #dfdf00
+0 86 #efef00
+0 87 #ffff00
+0 88 #1f0000
+0 89 #2f0000
+0 90 #3f0000
+0 91 #4f0000
+0 92 #5f0000
+0 93 #6f0000
+0 94 #7f0000
+0 95 #8f0000
+0 96 #9f0000
+0 97 #af0000
+0 98 #bf0000
+0 99 #cf0000
+0 100 #df0000
+0 101 #ef0000
+0 102 #ff0000
+0 103 #1f001f
+0 104 #2f002f
+0 105 #3f003f
+0 106 #4f004f
+0 107 #5f005f
+0 108 #6f006f
+0 109 #7f007f
+0 110 #8f008f
+0 111 #9f009f
+0 112 #af00af
+0 113 #bf00bf
+0 114 #cf00cf
+0 115 #df00df
+0 116 #ef00ef
+0 117 #ff00ff
+0 118 #00001f
+0 119 #00002f
+0 120 #00003f
+0 121 #00004f
+0 122 #00005f
+0 123 #00006f
+0 124 #00007f
+0 125 #00008f
+0 126 #00009f
+0 127 #0000af
+0 128 #0000bf
+0 129 #0000cf
+0 130 #0000df
+0 131 #0000ef
+0 132 #0000ff
+0 133 #001f1f
+0 134 #002f2f
+0 135 #003f3f
+0 136 #004f4f
+0 137 #005f5f
+0 138 #006f6f
+0 139 #007f7f
+0 140 #008f8f
+0 141 #009f9f
+0 142 #00afaf
+0 143 #00bfbf
+0 144 #00cfcf
+0 145 #00dfdf
+0 146 #00efef
+0 147 #00ffff
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       2400    1200
+       2550    1200
+       2550    300
+       2400    300
+       2400    1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    1200
+       2550    1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    1200
+       2400    300
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       2550    1200
+       2700    1200
+       2700    300
+       2550    300
+       2550    1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2550    1200
+       2700    1200
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       2700    1200
+       2850    1200
+       2850    300
+       2700    300
+       2700    1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2700    1200
+       2850    1200
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       2850    1200
+       3000    1200
+       3000    300
+       2850    300
+       2850    1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2850    1200
+       3000    1200
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       3000    1200
+       3150    1200
+       3150    300
+       3000    300
+       3000    1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3000    1200
+       3150    1200
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       3150    1200
+       3300    1200
+       3300    300
+       3150    300
+       3150    1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3150    1200
+       3300    1200
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       3300    1200
+       3450    1200
+       3450    300
+       3300    300
+       3300    1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3300    1200
+       3450    1200
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       3450    1200
+       3600    1200
+       3600    300
+       3450    300
+       3450    1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3450    1200
+       3600    1200
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3600    1200
+       3600    300
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       2400    300
+       2550    300
+       2550    -600
+       2400    -600
+       2400    300
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    300
+       2400    -600
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       2550    300
+       2700    300
+       2700    -600
+       2550    -600
+       2550    300
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       2700    300
+       2850    300
+       2850    -600
+       2700    -600
+       2700    300
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       2850    300
+       3000    300
+       3000    -600
+       2850    -600
+       2850    300
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       3000    300
+       3150    300
+       3150    -600
+       3000    -600
+       3000    300
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       3150    300
+       3300    300
+       3300    -600
+       3150    -600
+       3150    300
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       3300    300
+       3450    300
+       3450    -600
+       3300    -600
+       3300    300
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3300    -600
+       3450    -600
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       3450    300
+       3600    300
+       3600    -600
+       3450    -600
+       3450    300
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3600    300
+       3600    -600
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3450    -600
+       3600    -600
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       2400    -600
+       2550    -600
+       2550    -1500
+       2400    -1500
+       2400    -600
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    -600
+       2400    -1500
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       2550    -600
+       2700    -600
+       2700    -1500
+       2550    -1500
+       2550    -600
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       2700    -600
+       2850    -600
+       2850    -1500
+       2700    -1500
+       2700    -600
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       2850    -600
+       3000    -600
+       3000    -1500
+       2850    -1500
+       2850    -600
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       3000    -600
+       3150    -600
+       3150    -1500
+       3000    -1500
+       3000    -600
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       3150    -600
+       3300    -600
+       3300    -1500
+       3150    -1500
+       3150    -600
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3300    -600
+       3300    -1500
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       2400    -1500
+       2550    -1500
+       2550    -2400
+       2400    -2400
+       2400    -1500
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    -2400
+       2550    -2400
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2400    -1500
+       2400    -2400
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       2550    -1500
+       2700    -1500
+       2700    -2400
+       2550    -2400
+       2550    -1500
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2550    -2400
+       2700    -2400
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       2700    -1500
+       2850    -1500
+       2850    -2400
+       2700    -2400
+       2700    -1500
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2700    -2400
+       2850    -2400
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       2850    -1500
+       3000    -1500
+       3000    -2400
+       2850    -2400
+       2850    -1500
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       2850    -2400
+       3000    -2400
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       3000    -1500
+       3150    -1500
+       3150    -2400
+       3000    -2400
+       3000    -1500
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3000    -2400
+       3150    -2400
+2 3  0 1 0 32 900 0 25 0.0  0 0 -1 0 0 5
+       3150    -1500
+       3300    -1500
+       3300    -2400
+       3150    -2400
+       3150    -1500
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3300    -1500
+       3300    -2400
+2 1 0 3 1 -1 800 0 -1 0.0  0 0 -1 0 0 2
+       3150    -2400
+       3300    -2400
 DEAL:2d::hyper_cube_slit
 #FIG 3.2
 Landscape
@@ -3230,6 +3598,349 @@ 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_L
+object "vertices" class array type float rank 1 shape 3 items 205 data follows
+       2.00000 -1.00000 0.00000
+       2.12500 -1.00000 0.00000
+       2.25000 -1.00000 0.00000
+       2.37500 -1.00000 0.00000
+       2.50000 -1.00000 0.00000
+       2.62500 -1.00000 0.00000
+       2.75000 -1.00000 0.00000
+       2.87500 -1.00000 0.00000
+       3.00000 -1.00000 0.00000
+       2.00000 -0.250000 0.00000
+       2.12500 -0.250000 0.00000
+       2.25000 -0.250000 0.00000
+       2.37500 -0.250000 0.00000
+       2.50000 -0.250000 0.00000
+       2.62500 -0.250000 0.00000
+       2.75000 -0.250000 0.00000
+       2.87500 -0.250000 0.00000
+       3.00000 -0.250000 0.00000
+       2.00000 0.500000 0.00000
+       2.12500 0.500000 0.00000
+       2.25000 0.500000 0.00000
+       2.37500 0.500000 0.00000
+       2.50000 0.500000 0.00000
+       2.62500 0.500000 0.00000
+       2.75000 0.500000 0.00000
+       2.87500 0.500000 0.00000
+       3.00000 0.500000 0.00000
+       2.00000 1.25000 0.00000
+       2.12500 1.25000 0.00000
+       2.25000 1.25000 0.00000
+       2.37500 1.25000 0.00000
+       2.50000 1.25000 0.00000
+       2.62500 1.25000 0.00000
+       2.75000 1.25000 0.00000
+       2.00000 2.00000 0.00000
+       2.12500 2.00000 0.00000
+       2.25000 2.00000 0.00000
+       2.37500 2.00000 0.00000
+       2.50000 2.00000 0.00000
+       2.62500 2.00000 0.00000
+       2.75000 2.00000 0.00000
+       2.00000 -1.00000 1.00000
+       2.12500 -1.00000 1.00000
+       2.25000 -1.00000 1.00000
+       2.37500 -1.00000 1.00000
+       2.50000 -1.00000 1.00000
+       2.62500 -1.00000 1.00000
+       2.75000 -1.00000 1.00000
+       2.87500 -1.00000 1.00000
+       3.00000 -1.00000 1.00000
+       2.00000 -0.250000 1.00000
+       2.12500 -0.250000 1.00000
+       2.25000 -0.250000 1.00000
+       2.37500 -0.250000 1.00000
+       2.50000 -0.250000 1.00000
+       2.62500 -0.250000 1.00000
+       2.75000 -0.250000 1.00000
+       2.87500 -0.250000 1.00000
+       3.00000 -0.250000 1.00000
+       2.00000 0.500000 1.00000
+       2.12500 0.500000 1.00000
+       2.25000 0.500000 1.00000
+       2.37500 0.500000 1.00000
+       2.50000 0.500000 1.00000
+       2.62500 0.500000 1.00000
+       2.75000 0.500000 1.00000
+       2.87500 0.500000 1.00000
+       3.00000 0.500000 1.00000
+       2.00000 1.25000 1.00000
+       2.12500 1.25000 1.00000
+       2.25000 1.25000 1.00000
+       2.37500 1.25000 1.00000
+       2.50000 1.25000 1.00000
+       2.62500 1.25000 1.00000
+       2.75000 1.25000 1.00000
+       2.00000 2.00000 1.00000
+       2.12500 2.00000 1.00000
+       2.25000 2.00000 1.00000
+       2.37500 2.00000 1.00000
+       2.50000 2.00000 1.00000
+       2.62500 2.00000 1.00000
+       2.75000 2.00000 1.00000
+       2.00000 -1.00000 2.00000
+       2.12500 -1.00000 2.00000
+       2.25000 -1.00000 2.00000
+       2.37500 -1.00000 2.00000
+       2.50000 -1.00000 2.00000
+       2.62500 -1.00000 2.00000
+       2.75000 -1.00000 2.00000
+       2.87500 -1.00000 2.00000
+       3.00000 -1.00000 2.00000
+       2.00000 -0.250000 2.00000
+       2.12500 -0.250000 2.00000
+       2.25000 -0.250000 2.00000
+       2.37500 -0.250000 2.00000
+       2.50000 -0.250000 2.00000
+       2.62500 -0.250000 2.00000
+       2.75000 -0.250000 2.00000
+       2.87500 -0.250000 2.00000
+       3.00000 -0.250000 2.00000
+       2.00000 0.500000 2.00000
+       2.12500 0.500000 2.00000
+       2.25000 0.500000 2.00000
+       2.37500 0.500000 2.00000
+       2.50000 0.500000 2.00000
+       2.62500 0.500000 2.00000
+       2.75000 0.500000 2.00000
+       2.87500 0.500000 2.00000
+       3.00000 0.500000 2.00000
+       2.00000 1.25000 2.00000
+       2.12500 1.25000 2.00000
+       2.25000 1.25000 2.00000
+       2.37500 1.25000 2.00000
+       2.50000 1.25000 2.00000
+       2.62500 1.25000 2.00000
+       2.75000 1.25000 2.00000
+       2.00000 2.00000 2.00000
+       2.12500 2.00000 2.00000
+       2.25000 2.00000 2.00000
+       2.37500 2.00000 2.00000
+       2.50000 2.00000 2.00000
+       2.62500 2.00000 2.00000
+       2.75000 2.00000 2.00000
+       2.00000 -1.00000 3.00000
+       2.12500 -1.00000 3.00000
+       2.25000 -1.00000 3.00000
+       2.37500 -1.00000 3.00000
+       2.50000 -1.00000 3.00000
+       2.62500 -1.00000 3.00000
+       2.75000 -1.00000 3.00000
+       2.87500 -1.00000 3.00000
+       3.00000 -1.00000 3.00000
+       2.00000 -0.250000 3.00000
+       2.12500 -0.250000 3.00000
+       2.25000 -0.250000 3.00000
+       2.37500 -0.250000 3.00000
+       2.50000 -0.250000 3.00000
+       2.62500 -0.250000 3.00000
+       2.75000 -0.250000 3.00000
+       2.87500 -0.250000 3.00000
+       3.00000 -0.250000 3.00000
+       2.00000 0.500000 3.00000
+       2.12500 0.500000 3.00000
+       2.25000 0.500000 3.00000
+       2.37500 0.500000 3.00000
+       2.50000 0.500000 3.00000
+       2.62500 0.500000 3.00000
+       2.75000 0.500000 3.00000
+       2.87500 0.500000 3.00000
+       3.00000 0.500000 3.00000
+       2.00000 1.25000 3.00000
+       2.12500 1.25000 3.00000
+       2.25000 1.25000 3.00000
+       2.37500 1.25000 3.00000
+       2.50000 1.25000 3.00000
+       2.62500 1.25000 3.00000
+       2.75000 1.25000 3.00000
+       2.00000 2.00000 3.00000
+       2.12500 2.00000 3.00000
+       2.25000 2.00000 3.00000
+       2.37500 2.00000 3.00000
+       2.50000 2.00000 3.00000
+       2.62500 2.00000 3.00000
+       2.75000 2.00000 3.00000
+       2.00000 -1.00000 4.00000
+       2.12500 -1.00000 4.00000
+       2.25000 -1.00000 4.00000
+       2.37500 -1.00000 4.00000
+       2.50000 -1.00000 4.00000
+       2.62500 -1.00000 4.00000
+       2.75000 -1.00000 4.00000
+       2.87500 -1.00000 4.00000
+       3.00000 -1.00000 4.00000
+       2.00000 -0.250000 4.00000
+       2.12500 -0.250000 4.00000
+       2.25000 -0.250000 4.00000
+       2.37500 -0.250000 4.00000
+       2.50000 -0.250000 4.00000
+       2.62500 -0.250000 4.00000
+       2.75000 -0.250000 4.00000
+       2.87500 -0.250000 4.00000
+       3.00000 -0.250000 4.00000
+       2.00000 0.500000 4.00000
+       2.12500 0.500000 4.00000
+       2.25000 0.500000 4.00000
+       2.37500 0.500000 4.00000
+       2.50000 0.500000 4.00000
+       2.62500 0.500000 4.00000
+       2.75000 0.500000 4.00000
+       2.87500 0.500000 4.00000
+       3.00000 0.500000 4.00000
+       2.00000 1.25000 4.00000
+       2.12500 1.25000 4.00000
+       2.25000 1.25000 4.00000
+       2.37500 1.25000 4.00000
+       2.50000 1.25000 4.00000
+       2.62500 1.25000 4.00000
+       2.75000 1.25000 4.00000
+       2.00000 2.00000 4.00000
+       2.12500 2.00000 4.00000
+       2.25000 2.00000 4.00000
+       2.37500 2.00000 4.00000
+       2.50000 2.00000 4.00000
+       2.62500 2.00000 4.00000
+       2.75000 2.00000 4.00000
+object "cells" class array type int rank 1 shape 8 items 112 data follows
+       0       41      9       50      1       42      10      51
+       1       42      10      51      2       43      11      52
+       2       43      11      52      3       44      12      53
+       3       44      12      53      4       45      13      54
+       4       45      13      54      5       46      14      55
+       5       46      14      55      6       47      15      56
+       6       47      15      56      7       48      16      57
+       7       48      16      57      8       49      17      58
+       9       50      18      59      10      51      19      60
+       10      51      19      60      11      52      20      61
+       11      52      20      61      12      53      21      62
+       12      53      21      62      13      54      22      63
+       13      54      22      63      14      55      23      64
+       14      55      23      64      15      56      24      65
+       15      56      24      65      16      57      25      66
+       16      57      25      66      17      58      26      67
+       18      59      27      68      19      60      28      69
+       19      60      28      69      20      61      29      70
+       20      61      29      70      21      62      30      71
+       21      62      30      71      22      63      31      72
+       22      63      31      72      23      64      32      73
+       23      64      32      73      24      65      33      74
+       27      68      34      75      28      69      35      76
+       28      69      35      76      29      70      36      77
+       29      70      36      77      30      71      37      78
+       30      71      37      78      31      72      38      79
+       31      72      38      79      32      73      39      80
+       32      73      39      80      33      74      40      81
+       41      82      50      91      42      83      51      92
+       42      83      51      92      43      84      52      93
+       43      84      52      93      44      85      53      94
+       44      85      53      94      45      86      54      95
+       45      86      54      95      46      87      55      96
+       46      87      55      96      47      88      56      97
+       47      88      56      97      48      89      57      98
+       48      89      57      98      49      90      58      99
+       50      91      59      100     51      92      60      101
+       51      92      60      101     52      93      61      102
+       52      93      61      102     53      94      62      103
+       53      94      62      103     54      95      63      104
+       54      95      63      104     55      96      64      105
+       55      96      64      105     56      97      65      106
+       56      97      65      106     57      98      66      107
+       57      98      66      107     58      99      67      108
+       59      100     68      109     60      101     69      110
+       60      101     69      110     61      102     70      111
+       61      102     70      111     62      103     71      112
+       62      103     71      112     63      104     72      113
+       63      104     72      113     64      105     73      114
+       64      105     73      114     65      106     74      115
+       68      109     75      116     69      110     76      117
+       69      110     76      117     70      111     77      118
+       70      111     77      118     71      112     78      119
+       71      112     78      119     72      113     79      120
+       72      113     79      120     73      114     80      121
+       73      114     80      121     74      115     81      122
+       82      123     91      132     83      124     92      133
+       83      124     92      133     84      125     93      134
+       84      125     93      134     85      126     94      135
+       85      126     94      135     86      127     95      136
+       86      127     95      136     87      128     96      137
+       87      128     96      137     88      129     97      138
+       88      129     97      138     89      130     98      139
+       89      130     98      139     90      131     99      140
+       91      132     100     141     92      133     101     142
+       92      133     101     142     93      134     102     143
+       93      134     102     143     94      135     103     144
+       94      135     103     144     95      136     104     145
+       95      136     104     145     96      137     105     146
+       96      137     105     146     97      138     106     147
+       97      138     106     147     98      139     107     148
+       98      139     107     148     99      140     108     149
+       100     141     109     150     101     142     110     151
+       101     142     110     151     102     143     111     152
+       102     143     111     152     103     144     112     153
+       103     144     112     153     104     145     113     154
+       104     145     113     154     105     146     114     155
+       105     146     114     155     106     147     115     156
+       109     150     116     157     110     151     117     158
+       110     151     117     158     111     152     118     159
+       111     152     118     159     112     153     119     160
+       112     153     119     160     113     154     120     161
+       113     154     120     161     114     155     121     162
+       114     155     121     162     115     156     122     163
+       123     164     132     173     124     165     133     174
+       124     165     133     174     125     166     134     175
+       125     166     134     175     126     167     135     176
+       126     167     135     176     127     168     136     177
+       127     168     136     177     128     169     137     178
+       128     169     137     178     129     170     138     179
+       129     170     138     179     130     171     139     180
+       130     171     139     180     131     172     140     181
+       132     173     141     182     133     174     142     183
+       133     174     142     183     134     175     143     184
+       134     175     143     184     135     176     144     185
+       135     176     144     185     136     177     145     186
+       136     177     145     186     137     178     146     187
+       137     178     146     187     138     179     147     188
+       138     179     147     188     139     180     148     189
+       139     180     148     189     140     181     149     190
+       141     182     150     191     142     183     151     192
+       142     183     151     192     143     184     152     193
+       143     184     152     193     144     185     153     194
+       144     185     153     194     145     186     154     195
+       145     186     154     195     146     187     155     196
+       146     187     155     196     147     188     156     197
+       150     191     157     198     151     192     158     199
+       151     192     158     199     152     193     159     200
+       152     193     159     200     153     194     160     201
+       153     194     160     201     154     195     161     202
+       154     195     161     202     155     196     162     203
+       155     196     162     203     156     197     163     204
+attribute "element type" string "cubes"
+attribute "ref" string "positions"
+
+object "material" class array type int rank 0 items 112 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 0 0 0 0 0 0 0
+attribute "dep" string "connections"
+
+object "level" class array type int rank 0 items 112 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 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

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.