From bc7358286f2f2614713ea2735d53cd01b0259639 Mon Sep 17 00:00:00 2001 From: Denis Davydov Date: Fri, 15 Feb 2019 18:00:02 +0100 Subject: [PATCH] allow zero padding in plate_with_a_hole --- include/deal.II/grid/grid_generator.h | 3 +- source/grid/grid_generator.cc | 129 +++++---- .../grid_generator_plate_with_a_hole_4.cc | 121 ++++++++ .../grid_generator_plate_with_a_hole_4.output | 261 ++++++++++++++++++ 4 files changed, 451 insertions(+), 63 deletions(-) create mode 100644 tests/grid/grid_generator_plate_with_a_hole_4.cc create mode 100644 tests/grid/grid_generator_plate_with_a_hole_4.output diff --git a/include/deal.II/grid/grid_generator.h b/include/deal.II/grid/grid_generator.h index 318646b14c..caa95daf80 100644 --- a/include/deal.II/grid/grid_generator.h +++ b/include/deal.II/grid/grid_generator.h @@ -327,8 +327,7 @@ namespace GridGenerator * All cells in this region will have a FlatManifold attached to them. * The final width of the plate will be padding_left + 2*outer_radius + * padding_right, while its length is padding_top + - * 2*outer_radius + padding_bottom. Three out of four paddings are - * allowed to be zero. + * 2*outer_radius + padding_bottom. * * Here is the non-symmetric grid (after one global refinement, colored * according to manifold id) in 2D and 3D, respectively: diff --git a/source/grid/grid_generator.cc b/source/grid/grid_generator.cc index 08eb9c701f..e774a7368a 100644 --- a/source/grid/grid_generator.cc +++ b/source/grid/grid_generator.cc @@ -1966,8 +1966,9 @@ namespace GridGenerator const unsigned int /*n_slices*/, const bool colorize) { - Assert((pad_bottom > 0 || pad_top > 0 || pad_left > 0 || pad_right > 0), - ExcMessage("At least one padding parameter has to be non-zero.")); + const bool with_padding = + pad_bottom > 0 || pad_top > 0 || pad_left > 0 || pad_right > 0; + Assert(pad_bottom >= 0., ExcMessage("Negative bottom padding.")); Assert(pad_top >= 0., ExcMessage("Negative top padding.")); Assert(pad_left >= 0., ExcMessage("Negative left padding.")); @@ -1984,7 +1985,8 @@ namespace GridGenerator }; // start by setting up the cylinder triangulation - Triangulation<2> cylinder_tria; + Triangulation<2> cylinder_tria_maybe; + Triangulation<2> &cylinder_tria = with_padding ? cylinder_tria_maybe : tria; GridGenerator::hyper_cube_with_cylindrical_hole(cylinder_tria, inner_radius, outer_radius, @@ -1996,65 +1998,70 @@ namespace GridGenerator for (const auto &cell : cylinder_tria.active_cell_iterators()) cell->set_manifold_id(tfi_manifold_id); - // hyper_cube_with_cylindrical_hole will have 2 cells along - // each face, so he element size is outer_radius - - auto add_sizes = [](std::vector &step_sizes, - const double padding, - const double h) -> void { - // use std::round instead of std::ceil to improve aspect ratio - // in case padding is only slightly larger than h. - const auto rounded = static_cast(std::round(padding / h)); - // in case padding is much smaller than h, make sure we - // have at least 1 element - const unsigned int num = (padding > 0. && rounded == 0) ? 1 : rounded; - for (unsigned int i = 0; i < num; ++i) - step_sizes.push_back(padding / num); - }; - - std::vector> step_sizes(2); - // x-coord - // left: - add_sizes(step_sizes[0], pad_left, outer_radius); - // center - step_sizes[0].push_back(outer_radius); - step_sizes[0].push_back(outer_radius); - // right - add_sizes(step_sizes[0], pad_right, outer_radius); - // y-coord - // bottom - add_sizes(step_sizes[1], pad_bottom, outer_radius); - // center - step_sizes[1].push_back(outer_radius); - step_sizes[1].push_back(outer_radius); - // top - add_sizes(step_sizes[1], pad_top, outer_radius); - - // now create bulk - Triangulation<2> bulk_tria; - const Point<2> bl(-outer_radius - pad_left, -outer_radius - pad_bottom); - const Point<2> tr(outer_radius + pad_right, outer_radius + pad_top); - GridGenerator::subdivided_hyper_rectangle( - bulk_tria, step_sizes, bl, tr, colorize); - - // now remove cells reserved from the cylindrical hole - std::set::active_cell_iterator> cells_to_remove; - for (const auto &cell : bulk_tria.active_cell_iterators()) - if (internal::point_in_2d_box(cell->center(), center, outer_radius)) - cells_to_remove.insert(cell); - - Triangulation<2> tria_without_cylinder; - GridGenerator::create_triangulation_with_removed_cells( - bulk_tria, cells_to_remove, tria_without_cylinder); - - const double tolerance = std::min(min_line_length(tria_without_cylinder), - min_line_length(cylinder_tria)) / - 2.0; + const Point<2> bl(-outer_radius - pad_left, -outer_radius - pad_bottom); + const Point<2> tr(outer_radius + pad_right, outer_radius + pad_top); + if (with_padding) + { + // hyper_cube_with_cylindrical_hole will have 2 cells along + // each face, so he element size is outer_radius + + auto add_sizes = [](std::vector &step_sizes, + const double padding, + const double h) -> void { + // use std::round instead of std::ceil to improve aspect ratio + // in case padding is only slightly larger than h. + const auto rounded = + static_cast(std::round(padding / h)); + // in case padding is much smaller than h, make sure we + // have at least 1 element + const unsigned int num = (padding > 0. && rounded == 0) ? 1 : rounded; + for (unsigned int i = 0; i < num; ++i) + step_sizes.push_back(padding / num); + }; - GridGenerator::merge_triangulations(tria_without_cylinder, - cylinder_tria, - tria, - tolerance); + std::vector> step_sizes(2); + // x-coord + // left: + add_sizes(step_sizes[0], pad_left, outer_radius); + // center + step_sizes[0].push_back(outer_radius); + step_sizes[0].push_back(outer_radius); + // right + add_sizes(step_sizes[0], pad_right, outer_radius); + // y-coord + // bottom + add_sizes(step_sizes[1], pad_bottom, outer_radius); + // center + step_sizes[1].push_back(outer_radius); + step_sizes[1].push_back(outer_radius); + // top + add_sizes(step_sizes[1], pad_top, outer_radius); + + // now create bulk + Triangulation<2> bulk_tria; + GridGenerator::subdivided_hyper_rectangle( + bulk_tria, step_sizes, bl, tr, colorize); + + // now remove cells reserved from the cylindrical hole + std::set::active_cell_iterator> cells_to_remove; + for (const auto &cell : bulk_tria.active_cell_iterators()) + if (internal::point_in_2d_box(cell->center(), center, outer_radius)) + cells_to_remove.insert(cell); + + Triangulation<2> tria_without_cylinder; + GridGenerator::create_triangulation_with_removed_cells( + bulk_tria, cells_to_remove, tria_without_cylinder); + + const double tolerance = + std::min(min_line_length(tria_without_cylinder), + min_line_length(cylinder_tria)) / + 2.0; + + GridGenerator::merge_triangulations(tria_without_cylinder, + cylinder_tria, + tria, + tolerance); + } // now set manifold ids: for (const auto &cell : tria.active_cell_iterators()) diff --git a/tests/grid/grid_generator_plate_with_a_hole_4.cc b/tests/grid/grid_generator_plate_with_a_hole_4.cc new file mode 100644 index 0000000000..7631d240d3 --- /dev/null +++ b/tests/grid/grid_generator_plate_with_a_hole_4.cc @@ -0,0 +1,121 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2019 by the deal.II authors +// +// This file is part of the deal.II library. +// +// The deal.II library is free software; you can use it, redistribute +// it, and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// The full text of the license can be found in the file LICENSE.md at +// the top level directory of deal.II. +// +// --------------------------------------------------------------------- + + + +// Test GridGenerator::plate_with_a_hole() with zero padding + +#include + +#include + +#include +#include + +#include + +#include "../tests.h" + +template +void +test() +{ + Triangulation triangulation; + GridGenerator::plate_with_a_hole( + triangulation, 0.4, 1., 0, 0, 0, 0, Point(), 0, 1, 1., 2, true); + + triangulation.refine_global(1); + + using Tuple = std::tuple, types::boundary_id, types::manifold_id>; + std::vector boundary_faces; + + for (const auto &cell : triangulation.active_cell_iterators()) + for (unsigned int face_n = 0; face_n < GeometryInfo::faces_per_cell; + ++face_n) + if (cell->face(face_n)->at_boundary()) + boundary_faces.push_back( + std::make_tuple(cell->face(face_n)->center(), + cell->face(face_n)->boundary_id(), + cell->face(face_n)->manifold_id())); + + // see dof_tools.cc internal::ComparisonHelper + std::sort(begin(boundary_faces), + end(boundary_faces), + [](const Tuple &t1, const Tuple &t2) { + const auto &b1 = std::get<1>(t1); + const auto &b2 = std::get<1>(t2); + if (b1 != b2) + return b1 < b2; + + const auto &p1 = std::get<0>(t1); + const auto &p2 = std::get<0>(t2); + + for (unsigned int d = 0; d < dim; ++d) + if (std::abs(p1[d] - p2[d]) > 1e-8) + return p1[d] < p2[d]; + + return std::get<2>(t1) < std::get<2>(t2); + }); + + for (const auto el : boundary_faces) + deallog << "center: " << std::get<0>(el) + << " boundary id: " << std::get<1>(el) + << " manifold id: " << std::get<2>(el) << std::endl; + + deallog << std::endl << std::endl; + Vector manifold_id(triangulation.n_active_cells()); + unsigned int index = 0; + for (const auto &cell : triangulation.active_cell_iterators()) + { + deallog << "center: " << cell->center() + << " manifold id: " << cell->manifold_id() << std::endl; + manifold_id[index] = cell->manifold_id(); + index++; + } + + // write in vtk for visual inspection + if (false) + { + DoFHandler dof_handler(triangulation); + FE_Q fe(1); + dof_handler.distribute_dofs(fe); + + DataOut data_out; + + data_out.attach_dof_handler(dof_handler); + data_out.add_data_vector(manifold_id, "manifold_id"); + data_out.build_patches(); + + const std::string filename = + "output_" + Utilities::int_to_string(dim) + ".vtu"; + std::ofstream output(filename.c_str()); + data_out.write_vtu(output); + } +} + + +int +main() +{ + initlog(); + + deallog.push("2d"); + test<2>(); + deallog.pop(); + + deallog.push("3d"); + test<3>(); + deallog.pop(); +} diff --git a/tests/grid/grid_generator_plate_with_a_hole_4.output b/tests/grid/grid_generator_plate_with_a_hole_4.output new file mode 100644 index 0000000000..8f7500c6a4 --- /dev/null +++ b/tests/grid/grid_generator_plate_with_a_hole_4.output @@ -0,0 +1,261 @@ + +DEAL:2d::center: -1.00000 -0.750000 boundary id: 0 manifold id: 1 +DEAL:2d::center: -1.00000 -0.250000 boundary id: 0 manifold id: 1 +DEAL:2d::center: -1.00000 0.250000 boundary id: 0 manifold id: 1 +DEAL:2d::center: -1.00000 0.750000 boundary id: 0 manifold id: 1 +DEAL:2d::center: 1.00000 -0.750000 boundary id: 1 manifold id: 1 +DEAL:2d::center: 1.00000 -0.250000 boundary id: 1 manifold id: 1 +DEAL:2d::center: 1.00000 0.250000 boundary id: 1 manifold id: 1 +DEAL:2d::center: 1.00000 0.750000 boundary id: 1 manifold id: 1 +DEAL:2d::center: -0.750000 -1.00000 boundary id: 2 manifold id: 1 +DEAL:2d::center: -0.250000 -1.00000 boundary id: 2 manifold id: 1 +DEAL:2d::center: 0.250000 -1.00000 boundary id: 2 manifold id: 1 +DEAL:2d::center: 0.750000 -1.00000 boundary id: 2 manifold id: 1 +DEAL:2d::center: -0.750000 1.00000 boundary id: 3 manifold id: 1 +DEAL:2d::center: -0.250000 1.00000 boundary id: 3 manifold id: 1 +DEAL:2d::center: 0.250000 1.00000 boundary id: 3 manifold id: 1 +DEAL:2d::center: 0.750000 1.00000 boundary id: 3 manifold id: 1 +DEAL:2d::center: -0.384776 -0.0765367 boundary id: 4 manifold id: 0 +DEAL:2d::center: -0.384776 0.0765367 boundary id: 4 manifold id: 0 +DEAL:2d::center: -0.326197 -0.217958 boundary id: 4 manifold id: 0 +DEAL:2d::center: -0.326197 0.217958 boundary id: 4 manifold id: 0 +DEAL:2d::center: -0.217958 -0.326197 boundary id: 4 manifold id: 0 +DEAL:2d::center: -0.217958 0.326197 boundary id: 4 manifold id: 0 +DEAL:2d::center: -0.0765367 -0.384776 boundary id: 4 manifold id: 0 +DEAL:2d::center: -0.0765367 0.384776 boundary id: 4 manifold id: 0 +DEAL:2d::center: 0.0765367 -0.384776 boundary id: 4 manifold id: 0 +DEAL:2d::center: 0.0765367 0.384776 boundary id: 4 manifold id: 0 +DEAL:2d::center: 0.217958 -0.326197 boundary id: 4 manifold id: 0 +DEAL:2d::center: 0.217958 0.326197 boundary id: 4 manifold id: 0 +DEAL:2d::center: 0.326197 -0.217958 boundary id: 4 manifold id: 0 +DEAL:2d::center: 0.326197 0.217958 boundary id: 4 manifold id: 0 +DEAL:2d::center: 0.384776 -0.0765367 boundary id: 4 manifold id: 0 +DEAL:2d::center: 0.384776 0.0765367 boundary id: 4 manifold id: 0 +DEAL:2d:: +DEAL:2d:: +DEAL:2d::center: 0.846194 0.206634 manifold id: 1 +DEAL:2d::center: 0.831549 0.616990 manifold id: 1 +DEAL:2d::center: 0.538582 0.119903 manifold id: 1 +DEAL:2d::center: 0.494648 0.350969 manifold id: 1 +DEAL:2d::center: 0.616990 0.831549 manifold id: 1 +DEAL:2d::center: 0.206634 0.846194 manifold id: 1 +DEAL:2d::center: 0.350969 0.494648 manifold id: 1 +DEAL:2d::center: 0.119903 0.538582 manifold id: 1 +DEAL:2d::center: -0.206634 0.846194 manifold id: 1 +DEAL:2d::center: -0.616990 0.831549 manifold id: 1 +DEAL:2d::center: -0.119903 0.538582 manifold id: 1 +DEAL:2d::center: -0.350969 0.494648 manifold id: 1 +DEAL:2d::center: -0.831549 0.616990 manifold id: 1 +DEAL:2d::center: -0.846194 0.206634 manifold id: 1 +DEAL:2d::center: -0.494648 0.350969 manifold id: 1 +DEAL:2d::center: -0.538582 0.119903 manifold id: 1 +DEAL:2d::center: -0.846194 -0.206634 manifold id: 1 +DEAL:2d::center: -0.831549 -0.616990 manifold id: 1 +DEAL:2d::center: -0.538582 -0.119903 manifold id: 1 +DEAL:2d::center: -0.494648 -0.350969 manifold id: 1 +DEAL:2d::center: -0.616990 -0.831549 manifold id: 1 +DEAL:2d::center: -0.206634 -0.846194 manifold id: 1 +DEAL:2d::center: -0.350969 -0.494648 manifold id: 1 +DEAL:2d::center: -0.119903 -0.538582 manifold id: 1 +DEAL:2d::center: 0.206634 -0.846194 manifold id: 1 +DEAL:2d::center: 0.616990 -0.831549 manifold id: 1 +DEAL:2d::center: 0.119903 -0.538582 manifold id: 1 +DEAL:2d::center: 0.350969 -0.494648 manifold id: 1 +DEAL:2d::center: 0.831549 -0.616990 manifold id: 1 +DEAL:2d::center: 0.846194 -0.206634 manifold id: 1 +DEAL:2d::center: 0.494648 -0.350969 manifold id: 1 +DEAL:2d::center: 0.538582 -0.119903 manifold id: 1 +DEAL:3d::center: -1.00000 -0.750000 -0.250000 boundary id: 0 manifold id: 1 +DEAL:3d::center: -1.00000 -0.750000 0.250000 boundary id: 0 manifold id: 1 +DEAL:3d::center: -1.00000 -0.250000 -0.250000 boundary id: 0 manifold id: 1 +DEAL:3d::center: -1.00000 -0.250000 0.250000 boundary id: 0 manifold id: 1 +DEAL:3d::center: -1.00000 0.250000 -0.250000 boundary id: 0 manifold id: 1 +DEAL:3d::center: -1.00000 0.250000 0.250000 boundary id: 0 manifold id: 1 +DEAL:3d::center: -1.00000 0.750000 -0.250000 boundary id: 0 manifold id: 1 +DEAL:3d::center: -1.00000 0.750000 0.250000 boundary id: 0 manifold id: 1 +DEAL:3d::center: 1.00000 -0.750000 -0.250000 boundary id: 1 manifold id: 1 +DEAL:3d::center: 1.00000 -0.750000 0.250000 boundary id: 1 manifold id: 1 +DEAL:3d::center: 1.00000 -0.250000 -0.250000 boundary id: 1 manifold id: 1 +DEAL:3d::center: 1.00000 -0.250000 0.250000 boundary id: 1 manifold id: 1 +DEAL:3d::center: 1.00000 0.250000 -0.250000 boundary id: 1 manifold id: 1 +DEAL:3d::center: 1.00000 0.250000 0.250000 boundary id: 1 manifold id: 1 +DEAL:3d::center: 1.00000 0.750000 -0.250000 boundary id: 1 manifold id: 1 +DEAL:3d::center: 1.00000 0.750000 0.250000 boundary id: 1 manifold id: 1 +DEAL:3d::center: -0.750000 -1.00000 -0.250000 boundary id: 2 manifold id: 1 +DEAL:3d::center: -0.750000 -1.00000 0.250000 boundary id: 2 manifold id: 1 +DEAL:3d::center: -0.250000 -1.00000 -0.250000 boundary id: 2 manifold id: 1 +DEAL:3d::center: -0.250000 -1.00000 0.250000 boundary id: 2 manifold id: 1 +DEAL:3d::center: 0.250000 -1.00000 -0.250000 boundary id: 2 manifold id: 1 +DEAL:3d::center: 0.250000 -1.00000 0.250000 boundary id: 2 manifold id: 1 +DEAL:3d::center: 0.750000 -1.00000 -0.250000 boundary id: 2 manifold id: 1 +DEAL:3d::center: 0.750000 -1.00000 0.250000 boundary id: 2 manifold id: 1 +DEAL:3d::center: -0.750000 1.00000 -0.250000 boundary id: 3 manifold id: 1 +DEAL:3d::center: -0.750000 1.00000 0.250000 boundary id: 3 manifold id: 1 +DEAL:3d::center: -0.250000 1.00000 -0.250000 boundary id: 3 manifold id: 1 +DEAL:3d::center: -0.250000 1.00000 0.250000 boundary id: 3 manifold id: 1 +DEAL:3d::center: 0.250000 1.00000 -0.250000 boundary id: 3 manifold id: 1 +DEAL:3d::center: 0.250000 1.00000 0.250000 boundary id: 3 manifold id: 1 +DEAL:3d::center: 0.750000 1.00000 -0.250000 boundary id: 3 manifold id: 1 +DEAL:3d::center: 0.750000 1.00000 0.250000 boundary id: 3 manifold id: 1 +DEAL:3d::center: -0.384776 -0.0765367 -0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: -0.384776 -0.0765367 0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: -0.384776 0.0765367 -0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: -0.384776 0.0765367 0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: -0.326197 -0.217958 -0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: -0.326197 -0.217958 0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: -0.326197 0.217958 -0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: -0.326197 0.217958 0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: -0.217958 -0.326197 -0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: -0.217958 -0.326197 0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: -0.217958 0.326197 -0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: -0.217958 0.326197 0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: -0.0765367 -0.384776 -0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: -0.0765367 -0.384776 0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: -0.0765367 0.384776 -0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: -0.0765367 0.384776 0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: 0.0765367 -0.384776 -0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: 0.0765367 -0.384776 0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: 0.0765367 0.384776 -0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: 0.0765367 0.384776 0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: 0.217958 -0.326197 -0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: 0.217958 -0.326197 0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: 0.217958 0.326197 -0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: 0.217958 0.326197 0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: 0.326197 -0.217958 -0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: 0.326197 -0.217958 0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: 0.326197 0.217958 -0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: 0.326197 0.217958 0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: 0.384776 -0.0765367 -0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: 0.384776 -0.0765367 0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: 0.384776 0.0765367 -0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: 0.384776 0.0765367 0.250000 boundary id: 4 manifold id: 0 +DEAL:3d::center: -0.846194 -0.206634 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: -0.846194 0.206634 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: -0.831549 -0.616990 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: -0.831549 0.616990 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: -0.616990 -0.831549 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: -0.616990 0.831549 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: -0.538582 -0.119903 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: -0.538582 0.119903 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: -0.494648 -0.350969 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: -0.494648 0.350969 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: -0.350969 -0.494648 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: -0.350969 0.494648 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: -0.206634 -0.846194 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: -0.206634 0.846194 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: -0.119903 -0.538582 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: -0.119903 0.538582 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: 0.119903 -0.538582 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: 0.119903 0.538582 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: 0.206634 -0.846194 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: 0.206634 0.846194 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: 0.350969 -0.494648 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: 0.350969 0.494648 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: 0.494648 -0.350969 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: 0.494648 0.350969 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: 0.538582 -0.119903 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: 0.538582 0.119903 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: 0.616990 -0.831549 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: 0.616990 0.831549 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: 0.831549 -0.616990 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: 0.831549 0.616990 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: 0.846194 -0.206634 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: 0.846194 0.206634 -0.500000 boundary id: 5 manifold id: 1 +DEAL:3d::center: -0.846194 -0.206634 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: -0.846194 0.206634 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: -0.831549 -0.616990 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: -0.831549 0.616990 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: -0.616990 -0.831549 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: -0.616990 0.831549 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: -0.538582 -0.119903 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: -0.538582 0.119903 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: -0.494648 -0.350969 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: -0.494648 0.350969 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: -0.350969 -0.494648 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: -0.350969 0.494648 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: -0.206634 -0.846194 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: -0.206634 0.846194 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: -0.119903 -0.538582 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: -0.119903 0.538582 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: 0.119903 -0.538582 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: 0.119903 0.538582 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: 0.206634 -0.846194 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: 0.206634 0.846194 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: 0.350969 -0.494648 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: 0.350969 0.494648 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: 0.494648 -0.350969 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: 0.494648 0.350969 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: 0.538582 -0.119903 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: 0.538582 0.119903 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: 0.616990 -0.831549 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: 0.616990 0.831549 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: 0.831549 -0.616990 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: 0.831549 0.616990 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: 0.846194 -0.206634 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d::center: 0.846194 0.206634 0.500000 boundary id: 6 manifold id: 1 +DEAL:3d:: +DEAL:3d:: +DEAL:3d::center: 0.846194 0.206634 -0.250000 manifold id: 1 +DEAL:3d::center: 0.831549 0.616990 -0.250000 manifold id: 1 +DEAL:3d::center: 0.538582 0.119903 -0.250000 manifold id: 1 +DEAL:3d::center: 0.494648 0.350969 -0.250000 manifold id: 1 +DEAL:3d::center: 0.846194 0.206634 0.250000 manifold id: 1 +DEAL:3d::center: 0.831549 0.616990 0.250000 manifold id: 1 +DEAL:3d::center: 0.538582 0.119903 0.250000 manifold id: 1 +DEAL:3d::center: 0.494648 0.350969 0.250000 manifold id: 1 +DEAL:3d::center: 0.616990 0.831549 -0.250000 manifold id: 1 +DEAL:3d::center: 0.206634 0.846194 -0.250000 manifold id: 1 +DEAL:3d::center: 0.350969 0.494648 -0.250000 manifold id: 1 +DEAL:3d::center: 0.119903 0.538582 -0.250000 manifold id: 1 +DEAL:3d::center: 0.616990 0.831549 0.250000 manifold id: 1 +DEAL:3d::center: 0.206634 0.846194 0.250000 manifold id: 1 +DEAL:3d::center: 0.350969 0.494648 0.250000 manifold id: 1 +DEAL:3d::center: 0.119903 0.538582 0.250000 manifold id: 1 +DEAL:3d::center: -0.206634 0.846194 -0.250000 manifold id: 1 +DEAL:3d::center: -0.616990 0.831549 -0.250000 manifold id: 1 +DEAL:3d::center: -0.119903 0.538582 -0.250000 manifold id: 1 +DEAL:3d::center: -0.350969 0.494648 -0.250000 manifold id: 1 +DEAL:3d::center: -0.206634 0.846194 0.250000 manifold id: 1 +DEAL:3d::center: -0.616990 0.831549 0.250000 manifold id: 1 +DEAL:3d::center: -0.119903 0.538582 0.250000 manifold id: 1 +DEAL:3d::center: -0.350969 0.494648 0.250000 manifold id: 1 +DEAL:3d::center: -0.831549 0.616990 -0.250000 manifold id: 1 +DEAL:3d::center: -0.846194 0.206634 -0.250000 manifold id: 1 +DEAL:3d::center: -0.494648 0.350969 -0.250000 manifold id: 1 +DEAL:3d::center: -0.538582 0.119903 -0.250000 manifold id: 1 +DEAL:3d::center: -0.831549 0.616990 0.250000 manifold id: 1 +DEAL:3d::center: -0.846194 0.206634 0.250000 manifold id: 1 +DEAL:3d::center: -0.494648 0.350969 0.250000 manifold id: 1 +DEAL:3d::center: -0.538582 0.119903 0.250000 manifold id: 1 +DEAL:3d::center: -0.846194 -0.206634 -0.250000 manifold id: 1 +DEAL:3d::center: -0.831549 -0.616990 -0.250000 manifold id: 1 +DEAL:3d::center: -0.538582 -0.119903 -0.250000 manifold id: 1 +DEAL:3d::center: -0.494648 -0.350969 -0.250000 manifold id: 1 +DEAL:3d::center: -0.846194 -0.206634 0.250000 manifold id: 1 +DEAL:3d::center: -0.831549 -0.616990 0.250000 manifold id: 1 +DEAL:3d::center: -0.538582 -0.119903 0.250000 manifold id: 1 +DEAL:3d::center: -0.494648 -0.350969 0.250000 manifold id: 1 +DEAL:3d::center: -0.616990 -0.831549 -0.250000 manifold id: 1 +DEAL:3d::center: -0.206634 -0.846194 -0.250000 manifold id: 1 +DEAL:3d::center: -0.350969 -0.494648 -0.250000 manifold id: 1 +DEAL:3d::center: -0.119903 -0.538582 -0.250000 manifold id: 1 +DEAL:3d::center: -0.616990 -0.831549 0.250000 manifold id: 1 +DEAL:3d::center: -0.206634 -0.846194 0.250000 manifold id: 1 +DEAL:3d::center: -0.350969 -0.494648 0.250000 manifold id: 1 +DEAL:3d::center: -0.119903 -0.538582 0.250000 manifold id: 1 +DEAL:3d::center: 0.206634 -0.846194 -0.250000 manifold id: 1 +DEAL:3d::center: 0.616990 -0.831549 -0.250000 manifold id: 1 +DEAL:3d::center: 0.119903 -0.538582 -0.250000 manifold id: 1 +DEAL:3d::center: 0.350969 -0.494648 -0.250000 manifold id: 1 +DEAL:3d::center: 0.206634 -0.846194 0.250000 manifold id: 1 +DEAL:3d::center: 0.616990 -0.831549 0.250000 manifold id: 1 +DEAL:3d::center: 0.119903 -0.538582 0.250000 manifold id: 1 +DEAL:3d::center: 0.350969 -0.494648 0.250000 manifold id: 1 +DEAL:3d::center: 0.831549 -0.616990 -0.250000 manifold id: 1 +DEAL:3d::center: 0.846194 -0.206634 -0.250000 manifold id: 1 +DEAL:3d::center: 0.494648 -0.350969 -0.250000 manifold id: 1 +DEAL:3d::center: 0.538582 -0.119903 -0.250000 manifold id: 1 +DEAL:3d::center: 0.831549 -0.616990 0.250000 manifold id: 1 +DEAL:3d::center: 0.846194 -0.206634 0.250000 manifold id: 1 +DEAL:3d::center: 0.494648 -0.350969 0.250000 manifold id: 1 +DEAL:3d::center: 0.538582 -0.119903 0.250000 manifold id: 1 -- 2.39.5