From: Mae Markowski Date: Fri, 9 Aug 2019 22:40:44 +0000 (-0600) Subject: Adding function subdivided_hyper_L to GridGenerator. X-Git-Tag: v9.2.0-rc1~1223^2~2 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=04abf4d22e9e7b50551d1a7a32bde1801fcf5203;p=dealii.git Adding function subdivided_hyper_L to GridGenerator. 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 --- diff --git a/doc/doxygen/images/subdivided_hyper_L_2d.png b/doc/doxygen/images/subdivided_hyper_L_2d.png new file mode 100644 index 0000000000..e9a39bc37a 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 index 0000000000..0e82ddbf67 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 index 0000000000..ddb0515ea4 --- /dev/null +++ b/doc/news/changes/minor/20190810MaeMarkowski @@ -0,0 +1,3 @@ +New: Added the function GridGenerator::subdivided_hyper_L(). +
+(Mae Markowski, 2019/08/10) diff --git a/include/deal.II/grid/grid_generator.h b/include/deal.II/grid/grid_generator.h index 1c51c127dc..1015ce464d 100644 --- a/include/deal.II/grid/grid_generator.h +++ b/include/deal.II/grid/grid_generator.h @@ -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 + void + subdivided_hyper_L(Triangulation & tria, + const std::vector &repetitions, + const Point & bottom_left, + const Point & top_right, + const std::vector & 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. diff --git a/source/grid/grid_generator.cc b/source/grid/grid_generator.cc index 283b553aa0..74b01ddb98 100644 --- a/source/grid/grid_generator.cc +++ b/source/grid/grid_generator.cc @@ -2891,6 +2891,77 @@ namespace GridGenerator + template + void + subdivided_hyper_L(Triangulation & tria, + const std::vector &repetitions, + const Point & bottom_left, + const Point & top_right, + const std::vector & 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 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 h; + Point 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::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::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, diff --git a/source/grid/grid_generator.inst.in b/source/grid/grid_generator.inst.in index f07d7ab060..13a3316611 100644 --- a/source/grid/grid_generator.inst.in +++ b/source/grid/grid_generator.inst.in @@ -64,6 +64,14 @@ for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS) const std::vector &, const bool); + template void + subdivided_hyper_L( + Triangulation &, + const std::vector &, + const Point &, + const Point &, + const std::vector &); + template void cheese( Triangulation &, diff --git a/tests/grid/grid_generator_01.cc b/tests/grid/grid_generator_01.cc index 2904c93488..3360c61b29 100644 --- a/tests/grid/grid_generator_01.cc +++ b/tests/grid/grid_generator_01.cc @@ -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 tr; + std::vector cut_away_cells = {-2, -2}; + std::vector 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; diff --git a/tests/grid/grid_generator_01.output b/tests/grid/grid_generator_01.output index dfc9a0c74a..e0a2d90899 100644 --- a/tests/grid/grid_generator_01.output +++ b/tests/grid/grid_generator_01.output @@ -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