From 8529c34ffb13fbc954958cf510b0a809488b10a7 Mon Sep 17 00:00:00 2001 From: Peter Munch Date: Wed, 13 Jan 2021 14:06:21 +0100 Subject: [PATCH] Fix orientation of triangular faces --- include/deal.II/grid/connectivity.h | 10 +- include/deal.II/grid/reference_cell.h | 32 ++--- tests/simplex/orientation_01.cc | 55 ++++++++ ...entation_01.with_simplex_support=on.output | 2 + tests/simplex/orientation_02.cc | 126 ++++++++++++++++++ ...entation_02.with_simplex_support=on.output | 37 +++++ tests/simplex/q_projection_01.output | 96 ++++++------- 7 files changed, 289 insertions(+), 69 deletions(-) create mode 100644 tests/simplex/orientation_01.cc create mode 100644 tests/simplex/orientation_01.with_simplex_support=on.output create mode 100644 tests/simplex/orientation_02.cc create mode 100644 tests/simplex/orientation_02.with_simplex_support=on.output diff --git a/include/deal.II/grid/connectivity.h b/include/deal.II/grid/connectivity.h index 3e422c9a94..07b1fc376a 100644 --- a/include/deal.II/grid/connectivity.h +++ b/include/deal.II/grid/connectivity.h @@ -1162,11 +1162,11 @@ namespace internal } else { - col_d[offset_i] = counter; - orientations[offset_i] = ReferenceCell::compute_orientation( - ad_entity_types[offset_i], - ref_indices, - ad_entity_vertices[offset_i]); + col_d[offset_i] = counter; + orientations[offset_i] = + ReferenceCell::compute_orientation(ad_entity_types[offset_i], + ad_entity_vertices[offset_i], + ref_indices); } } ptr_0.push_back(col_0.size()); diff --git a/include/deal.II/grid/reference_cell.h b/include/deal.II/grid/reference_cell.h index 582f3499b9..8b799f6080 100644 --- a/include/deal.II/grid/reference_cell.h +++ b/include/deal.II/grid/reference_cell.h @@ -925,9 +925,9 @@ namespace ReferenceCell static const std::array, 6> table = { {{{2, 1, 0}}, {{0, 1, 2}}, + {{1, 0, 2}}, {{1, 2, 0}}, {{0, 2, 1}}, - {{1, 0, 2}}, {{2, 0, 1}}}}; return table[face_orientation][line]; @@ -971,9 +971,9 @@ namespace ReferenceCell static const std::array, 6> table = { {{{0, 2, 1}}, {{0, 1, 2}}, + {{2, 1, 0}}, {{1, 2, 0}}, {{1, 0, 2}}, - {{2, 1, 0}}, {{2, 0, 1}}}}; return table[face_orientation][vertex]; @@ -1093,9 +1093,9 @@ namespace ReferenceCell static const std::array, 6> table = { {{{2, 1, 0}}, {{0, 1, 2}}, + {{1, 0, 2}}, {{1, 2, 0}}, {{0, 2, 1}}, - {{1, 0, 2}}, {{2, 0, 1}}}}; return table[face_orientation][line]; @@ -1143,9 +1143,9 @@ namespace ReferenceCell static const std::array, 6> table = { {{{0, 2, 1}}, {{0, 1, 2}}, + {{2, 1, 0}}, {{1, 2, 0}}, {{1, 0, 2}}, - {{2, 1, 0}}, {{2, 0, 1}}}}; return table[face_orientation][vertex]; @@ -1269,9 +1269,9 @@ namespace ReferenceCell static const std::array, 6> table = { {{{2, 1, 0}}, {{0, 1, 2}}, + {{1, 0, 2}}, {{1, 2, 0}}, {{0, 2, 1}}, - {{1, 0, 2}}, {{2, 0, 1}}}}; return table[face_orientation][line]; @@ -1319,9 +1319,9 @@ namespace ReferenceCell static const std::array, 6> table = { {{{0, 2, 1}}, {{0, 1, 2}}, + {{2, 1, 0}}, {{1, 2, 0}}, {{1, 0, 2}}, - {{2, 1, 0}}, {{2, 0, 1}}}}; return table[face_orientation][vertex]; @@ -1634,7 +1634,7 @@ namespace ReferenceCell return 1; // face_orientation=true, face_rotation=true, face_flip=false - if (i == std::array{{j[1], j[0], j[2]}}) + if (i == std::array{{j[1], j[2], j[0]}}) return 3; // face_orientation=true, face_rotation=false, face_flip=true @@ -1646,11 +1646,11 @@ namespace ReferenceCell return 0; // face_orientation=false, face_rotation=true, face_flip=false - if (i == std::array{{j[1], j[2], j[0]}}) + if (i == std::array{{j[2], j[1], j[0]}}) return 2; // face_orientation=false, face_rotation=false, face_flip=true - if (i == std::array{{j[2], j[1], j[0]}}) + if (i == std::array{{j[1], j[0], j[2]}}) return 4; } else if (entity_type == ReferenceCell::Type::Quad) @@ -1665,7 +1665,7 @@ namespace ReferenceCell return 1; // face_orientation=true, face_rotation=true, face_flip=false - if (i == std::array{{j[1], j[3], j[0], j[2]}}) + if (i == std::array{{j[2], j[0], j[3], j[1]}}) return 3; // face_orientation=true, face_rotation=false, face_flip=true @@ -1673,7 +1673,7 @@ namespace ReferenceCell return 5; // face_orientation=true, face_rotation=true, face_flip=true - if (i == std::array{{j[2], j[0], j[3], j[1]}}) + if (i == std::array{{j[1], j[3], j[0], j[2]}}) return 7; // face_orientation=false, face_rotation=false, face_flip=false @@ -1733,7 +1733,7 @@ namespace ReferenceCell temp = {{vertices[0], vertices[1], vertices[2]}}; break; case 3: - temp = {{vertices[1], vertices[0], vertices[2]}}; + temp = {{vertices[1], vertices[2], vertices[0]}}; break; case 5: temp = {{vertices[2], vertices[0], vertices[1]}}; @@ -1742,10 +1742,10 @@ namespace ReferenceCell temp = {{vertices[0], vertices[2], vertices[1]}}; break; case 2: - temp = {{vertices[1], vertices[2], vertices[0]}}; + temp = {{vertices[2], vertices[1], vertices[0]}}; break; case 4: - temp = {{vertices[2], vertices[1], vertices[0]}}; + temp = {{vertices[1], vertices[0], vertices[2]}}; break; default: Assert(false, ExcNotImplemented()); @@ -1759,13 +1759,13 @@ namespace ReferenceCell temp = {{vertices[0], vertices[1], vertices[2], vertices[3]}}; break; case 3: - temp = {{vertices[1], vertices[3], vertices[0], vertices[2]}}; + temp = {{vertices[2], vertices[0], vertices[3], vertices[1]}}; break; case 5: temp = {{vertices[3], vertices[2], vertices[1], vertices[0]}}; break; case 7: - temp = {{vertices[2], vertices[0], vertices[3], vertices[1]}}; + temp = {{vertices[1], vertices[3], vertices[0], vertices[2]}}; break; case 0: temp = {{vertices[0], vertices[2], vertices[1], vertices[3]}}; diff --git a/tests/simplex/orientation_01.cc b/tests/simplex/orientation_01.cc new file mode 100644 index 0000000000..e27a6590e2 --- /dev/null +++ b/tests/simplex/orientation_01.cc @@ -0,0 +1,55 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2021 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 ReferenceCell::permute_according_orientation and compute_orientation +// by reverting the permutation due to a given orientation. + +#include + +#include "../tests.h" + +template +void +test(const ReferenceCell::Type type, const unsigned int n_orientations) +{ + for (unsigned int o = 0; o < n_orientations; ++o) + { + std::array origin; + + for (unsigned int i = 0; i < n_points; ++i) + origin[i] = i; + + const auto permuted = + ReferenceCell::permute_according_orientation(type, origin, o); + const unsigned int origin_back = + ReferenceCell::compute_orientation(type, permuted, origin); + + AssertDimension(o, origin_back); + } +} + +int +main() +{ + initlog(); + + test<2>(ReferenceCell::Type::Line, 2); + test<3>(ReferenceCell::Type::Tri, 3); + test<4>(ReferenceCell::Type::Quad, 4); + + deallog << "OK!" << std::endl; +} diff --git a/tests/simplex/orientation_01.with_simplex_support=on.output b/tests/simplex/orientation_01.with_simplex_support=on.output new file mode 100644 index 0000000000..5cfb783b8f --- /dev/null +++ b/tests/simplex/orientation_01.with_simplex_support=on.output @@ -0,0 +1,2 @@ + +DEAL::OK! diff --git a/tests/simplex/orientation_02.cc b/tests/simplex/orientation_02.cc new file mode 100644 index 0000000000..b2f6378ab7 --- /dev/null +++ b/tests/simplex/orientation_02.cc @@ -0,0 +1,126 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2021 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 a mesh with two tetrahedra for all possible orientations. + +#include +#include + +#include "../tests.h" + +void +test(const unsigned int orientation) +{ + const unsigned int face_no = 0; + + + Triangulation<3> dummy, tria; + ReferenceCell::make_triangulation(ReferenceCell::Type::Tet, dummy); + + auto vertices = dummy.get_vertices(); + + std::vector> cells; + + { + CellData<3> cell; + cell.vertices = {0, 1, 2, 3}; + cell.material_id = 0; + cells.push_back(cell); + } + + { + const auto &face = dummy.begin()->face(face_no); + const auto permuted = ReferenceCell::permute_according_orientation( + ReferenceCell::Type::Tri, + std::array{ + {face->vertex_index(0), face->vertex_index(1), face->vertex_index(2)}}, + orientation); + + auto direction = + cross_product_3d(vertices[permuted[1]] - vertices[permuted[0]], + vertices[permuted[2]] - vertices[permuted[0]]); + direction = direction / direction.norm(); + + vertices.push_back(face->center() + direction); + + CellData<3> cell; + cell.vertices = {permuted[0], permuted[1], permuted[2], 4u}; + + cell.material_id = 1; + cells.push_back(cell); + } + + tria.create_triangulation(vertices, cells, {}); + + auto cell = tria.begin(); + cell++; + + // check orientation + deallog << "face orientation: " << orientation << " " << std::endl; + AssertDimension(orientation, + (cell->face_orientation(0) * 1 + cell->face_rotation(0) * 2 + + cell->face_flip(0) * 4)); + + // check vertices + { + for (unsigned int v = 0; v < cell->n_vertices(); ++v) + deallog << cell->vertex_index(v) << " "; + deallog << " vs. "; + for (unsigned int v = 0; v < cell->n_vertices(); ++v) + deallog << cells[1].vertices[v] << " "; + deallog << std::endl; + + for (const auto v : cell->vertex_indices()) + AssertDimension(cell->vertex_index(v), cells[1].vertices[v]); + } + + const auto face = cell->face(0); + + // check lines + for (const auto l : face->line_indices()) + { + const unsigned int l_ = + ReferenceCell::internal::Info::Tet().standard_to_real_face_line( + l, face_no, orientation); + + std::array a = { + {face->line(l_)->vertex_index(0), face->line(l_)->vertex_index(1)}}; + std::sort(a.begin(), a.end()); + + std::array b = { + {cells[1].vertices[l], + cells[1].vertices[(l + 1) % face->n_vertices()]}}; + std::sort(b.begin(), b.end()); + + deallog << a[0] << "-" << a[1] << " vs. " << b[0] << "-" << b[1] + << std::endl; + + AssertDimension(a[0], b[0]); + AssertDimension(a[1], b[1]); + } + + deallog << std::endl; +} + +int +main() +{ + initlog(); + + for (unsigned int o = 0; o < 6; ++o) + test(o); +} diff --git a/tests/simplex/orientation_02.with_simplex_support=on.output b/tests/simplex/orientation_02.with_simplex_support=on.output new file mode 100644 index 0000000000..4291a7ca46 --- /dev/null +++ b/tests/simplex/orientation_02.with_simplex_support=on.output @@ -0,0 +1,37 @@ + +DEAL::face orientation: 0 +DEAL::0 2 1 4 vs. 0 2 1 4 +DEAL::0-2 vs. 0-2 +DEAL::1-2 vs. 1-2 +DEAL::0-1 vs. 0-1 +DEAL:: +DEAL::face orientation: 1 +DEAL::0 1 2 4 vs. 0 1 2 4 +DEAL::0-1 vs. 0-1 +DEAL::1-2 vs. 1-2 +DEAL::0-2 vs. 0-2 +DEAL:: +DEAL::face orientation: 2 +DEAL::2 1 0 4 vs. 2 1 0 4 +DEAL::1-2 vs. 1-2 +DEAL::0-1 vs. 0-1 +DEAL::0-2 vs. 0-2 +DEAL:: +DEAL::face orientation: 3 +DEAL::1 2 0 4 vs. 1 2 0 4 +DEAL::1-2 vs. 1-2 +DEAL::0-2 vs. 0-2 +DEAL::0-1 vs. 0-1 +DEAL:: +DEAL::face orientation: 4 +DEAL::1 0 2 4 vs. 1 0 2 4 +DEAL::0-1 vs. 0-1 +DEAL::0-2 vs. 0-2 +DEAL::1-2 vs. 1-2 +DEAL:: +DEAL::face orientation: 5 +DEAL::2 0 1 4 vs. 2 0 1 4 +DEAL::0-2 vs. 0-2 +DEAL::0-1 vs. 0-1 +DEAL::1-2 vs. 1-2 +DEAL:: diff --git a/tests/simplex/q_projection_01.output b/tests/simplex/q_projection_01.output index 862e421643..c2e3fc6765 100644 --- a/tests/simplex/q_projection_01.output +++ b/tests/simplex/q_projection_01.output @@ -154,8 +154,8 @@ DEAL:3d-4::0.666667 0.166667 0.00000 0.166667 DEAL:3d-4::0.166667 0.666667 0.00000 0.166667 DEAL:3d-4:: DEAL:3d-4::face_no=0 face_orientation=true face_flip=false face_rotation=true: -DEAL:3d-4::0.166667 0.166667 0.00000 0.166667 DEAL:3d-4::0.166667 0.666667 0.00000 0.166667 +DEAL:3d-4::0.166667 0.166667 0.00000 0.166667 DEAL:3d-4::0.666667 0.166667 0.00000 0.166667 DEAL:3d-4:: DEAL:3d-4::face_no=0 face_orientation=false face_flip=false face_rotation=false: @@ -164,14 +164,14 @@ DEAL:3d-4::0.666667 0.166667 0.00000 0.166667 DEAL:3d-4::0.166667 0.166667 0.00000 0.166667 DEAL:3d-4:: DEAL:3d-4::face_no=0 face_orientation=false face_flip=true face_rotation=false: -DEAL:3d-4::0.666667 0.166667 0.00000 0.166667 DEAL:3d-4::0.166667 0.166667 0.00000 0.166667 DEAL:3d-4::0.166667 0.666667 0.00000 0.166667 +DEAL:3d-4::0.666667 0.166667 0.00000 0.166667 DEAL:3d-4:: DEAL:3d-4::face_no=0 face_orientation=false face_flip=false face_rotation=true: -DEAL:3d-4::0.166667 0.666667 0.00000 0.166667 -DEAL:3d-4::0.166667 0.166667 0.00000 0.166667 DEAL:3d-4::0.666667 0.166667 0.00000 0.166667 +DEAL:3d-4::0.166667 0.166667 0.00000 0.166667 +DEAL:3d-4::0.166667 0.666667 0.00000 0.166667 DEAL:3d-4:: DEAL:3d-4::face_no=1 face_orientation=true face_flip=false face_rotation=false: DEAL:3d-4::0.166667 0.00000 0.166667 0.166667 @@ -184,8 +184,8 @@ DEAL:3d-4::0.166667 0.00000 0.166667 0.166667 DEAL:3d-4::0.166667 0.00000 0.666667 0.166667 DEAL:3d-4:: DEAL:3d-4::face_no=1 face_orientation=true face_flip=false face_rotation=true: -DEAL:3d-4::0.666667 0.00000 0.166667 0.166667 DEAL:3d-4::0.166667 0.00000 0.666667 0.166667 +DEAL:3d-4::0.666667 0.00000 0.166667 0.166667 DEAL:3d-4::0.166667 0.00000 0.166667 0.166667 DEAL:3d-4:: DEAL:3d-4::face_no=1 face_orientation=false face_flip=false face_rotation=false: @@ -194,14 +194,14 @@ DEAL:3d-4::0.166667 0.00000 0.166667 0.166667 DEAL:3d-4::0.666667 0.00000 0.166667 0.166667 DEAL:3d-4:: DEAL:3d-4::face_no=1 face_orientation=false face_flip=true face_rotation=false: -DEAL:3d-4::0.166667 0.00000 0.166667 0.166667 DEAL:3d-4::0.666667 0.00000 0.166667 0.166667 DEAL:3d-4::0.166667 0.00000 0.666667 0.166667 +DEAL:3d-4::0.166667 0.00000 0.166667 0.166667 DEAL:3d-4:: DEAL:3d-4::face_no=1 face_orientation=false face_flip=false face_rotation=true: -DEAL:3d-4::0.166667 0.00000 0.666667 0.166667 -DEAL:3d-4::0.666667 0.00000 0.166667 0.166667 DEAL:3d-4::0.166667 0.00000 0.166667 0.166667 +DEAL:3d-4::0.666667 0.00000 0.166667 0.166667 +DEAL:3d-4::0.166667 0.00000 0.666667 0.166667 DEAL:3d-4:: DEAL:3d-4::face_no=2 face_orientation=true face_flip=false face_rotation=false: DEAL:3d-4::0.00000 0.666667 0.166667 0.166667 @@ -214,8 +214,8 @@ DEAL:3d-4::0.00000 0.666667 0.166667 0.166667 DEAL:3d-4::0.00000 0.166667 0.666667 0.166667 DEAL:3d-4:: DEAL:3d-4::face_no=2 face_orientation=true face_flip=false face_rotation=true: -DEAL:3d-4::0.00000 0.166667 0.166667 0.166667 DEAL:3d-4::0.00000 0.166667 0.666667 0.166667 +DEAL:3d-4::0.00000 0.166667 0.166667 0.166667 DEAL:3d-4::0.00000 0.666667 0.166667 0.166667 DEAL:3d-4:: DEAL:3d-4::face_no=2 face_orientation=false face_flip=false face_rotation=false: @@ -224,14 +224,14 @@ DEAL:3d-4::0.00000 0.666667 0.166667 0.166667 DEAL:3d-4::0.00000 0.166667 0.166667 0.166667 DEAL:3d-4:: DEAL:3d-4::face_no=2 face_orientation=false face_flip=true face_rotation=false: -DEAL:3d-4::0.00000 0.666667 0.166667 0.166667 DEAL:3d-4::0.00000 0.166667 0.166667 0.166667 DEAL:3d-4::0.00000 0.166667 0.666667 0.166667 +DEAL:3d-4::0.00000 0.666667 0.166667 0.166667 DEAL:3d-4:: DEAL:3d-4::face_no=2 face_orientation=false face_flip=false face_rotation=true: -DEAL:3d-4::0.00000 0.166667 0.666667 0.166667 -DEAL:3d-4::0.00000 0.166667 0.166667 0.166667 DEAL:3d-4::0.00000 0.666667 0.166667 0.166667 +DEAL:3d-4::0.00000 0.166667 0.166667 0.166667 +DEAL:3d-4::0.00000 0.166667 0.666667 0.166667 DEAL:3d-4:: DEAL:3d-4::face_no=3 face_orientation=true face_flip=false face_rotation=false: DEAL:3d-4::0.666667 0.166667 0.166667 0.288675 @@ -244,8 +244,8 @@ DEAL:3d-4::0.666667 0.166667 0.166667 0.288675 DEAL:3d-4::0.166667 0.166667 0.666667 0.288675 DEAL:3d-4:: DEAL:3d-4::face_no=3 face_orientation=true face_flip=false face_rotation=true: -DEAL:3d-4::0.166667 0.666667 0.166667 0.288675 DEAL:3d-4::0.166667 0.166667 0.666667 0.288675 +DEAL:3d-4::0.166667 0.666667 0.166667 0.288675 DEAL:3d-4::0.666667 0.166667 0.166667 0.288675 DEAL:3d-4:: DEAL:3d-4::face_no=3 face_orientation=false face_flip=false face_rotation=false: @@ -254,14 +254,14 @@ DEAL:3d-4::0.666667 0.166667 0.166667 0.288675 DEAL:3d-4::0.166667 0.666667 0.166667 0.288675 DEAL:3d-4:: DEAL:3d-4::face_no=3 face_orientation=false face_flip=true face_rotation=false: -DEAL:3d-4::0.666667 0.166667 0.166667 0.288675 DEAL:3d-4::0.166667 0.666667 0.166667 0.288675 DEAL:3d-4::0.166667 0.166667 0.666667 0.288675 +DEAL:3d-4::0.666667 0.166667 0.166667 0.288675 DEAL:3d-4:: DEAL:3d-4::face_no=3 face_orientation=false face_flip=false face_rotation=true: -DEAL:3d-4::0.166667 0.166667 0.666667 0.288675 -DEAL:3d-4::0.166667 0.666667 0.166667 0.288675 DEAL:3d-4::0.666667 0.166667 0.166667 0.288675 +DEAL:3d-4::0.166667 0.666667 0.166667 0.288675 +DEAL:3d-4::0.166667 0.166667 0.666667 0.288675 DEAL:3d-4:: DEAL:3d-10::face_no=0 face_orientation=true face_flip=false face_rotation=false: DEAL:3d-10::0.333333 0.333333 0.00000 0.112500 @@ -283,11 +283,11 @@ DEAL:3d-10::0.470142 0.0597159 0.00000 0.0661971 DEAL:3d-10:: DEAL:3d-10::face_no=0 face_orientation=true face_flip=false face_rotation=true: DEAL:3d-10::0.333333 0.333333 0.00000 0.112500 -DEAL:3d-10::0.101287 0.101287 0.00000 0.0629696 DEAL:3d-10::0.101287 0.797427 0.00000 0.0629696 +DEAL:3d-10::0.101287 0.101287 0.00000 0.0629696 DEAL:3d-10::0.797427 0.101287 0.00000 0.0629696 -DEAL:3d-10::0.470142 0.470142 0.00000 0.0661971 DEAL:3d-10::0.470142 0.0597159 0.00000 0.0661971 +DEAL:3d-10::0.470142 0.470142 0.00000 0.0661971 DEAL:3d-10::0.0597159 0.470142 0.00000 0.0661971 DEAL:3d-10:: DEAL:3d-10::face_no=0 face_orientation=false face_flip=false face_rotation=false: @@ -301,21 +301,21 @@ DEAL:3d-10::0.470142 0.470142 0.00000 0.0661971 DEAL:3d-10:: DEAL:3d-10::face_no=0 face_orientation=false face_flip=true face_rotation=false: DEAL:3d-10::0.333333 0.333333 0.00000 0.112500 -DEAL:3d-10::0.797427 0.101287 0.00000 0.0629696 DEAL:3d-10::0.101287 0.101287 0.00000 0.0629696 DEAL:3d-10::0.101287 0.797427 0.00000 0.0629696 -DEAL:3d-10::0.0597159 0.470142 0.00000 0.0661971 +DEAL:3d-10::0.797427 0.101287 0.00000 0.0629696 DEAL:3d-10::0.470142 0.470142 0.00000 0.0661971 DEAL:3d-10::0.470142 0.0597159 0.00000 0.0661971 +DEAL:3d-10::0.0597159 0.470142 0.00000 0.0661971 DEAL:3d-10:: DEAL:3d-10::face_no=0 face_orientation=false face_flip=false face_rotation=true: DEAL:3d-10::0.333333 0.333333 0.00000 0.112500 -DEAL:3d-10::0.101287 0.797427 0.00000 0.0629696 -DEAL:3d-10::0.101287 0.101287 0.00000 0.0629696 DEAL:3d-10::0.797427 0.101287 0.00000 0.0629696 -DEAL:3d-10::0.470142 0.0597159 0.00000 0.0661971 -DEAL:3d-10::0.470142 0.470142 0.00000 0.0661971 +DEAL:3d-10::0.101287 0.101287 0.00000 0.0629696 +DEAL:3d-10::0.101287 0.797427 0.00000 0.0629696 DEAL:3d-10::0.0597159 0.470142 0.00000 0.0661971 +DEAL:3d-10::0.470142 0.470142 0.00000 0.0661971 +DEAL:3d-10::0.470142 0.0597159 0.00000 0.0661971 DEAL:3d-10:: DEAL:3d-10::face_no=1 face_orientation=true face_flip=false face_rotation=false: DEAL:3d-10::0.333333 0.00000 0.333333 0.112500 @@ -337,11 +337,11 @@ DEAL:3d-10::0.470142 0.00000 0.0597159 0.0661971 DEAL:3d-10:: DEAL:3d-10::face_no=1 face_orientation=true face_flip=false face_rotation=true: DEAL:3d-10::0.333333 0.00000 0.333333 0.112500 -DEAL:3d-10::0.797427 0.00000 0.101287 0.0629696 DEAL:3d-10::0.101287 0.00000 0.797427 0.0629696 +DEAL:3d-10::0.797427 0.00000 0.101287 0.0629696 DEAL:3d-10::0.101287 0.00000 0.101287 0.0629696 -DEAL:3d-10::0.0597159 0.00000 0.470142 0.0661971 DEAL:3d-10::0.470142 0.00000 0.0597159 0.0661971 +DEAL:3d-10::0.0597159 0.00000 0.470142 0.0661971 DEAL:3d-10::0.470142 0.00000 0.470142 0.0661971 DEAL:3d-10:: DEAL:3d-10::face_no=1 face_orientation=false face_flip=false face_rotation=false: @@ -355,21 +355,21 @@ DEAL:3d-10::0.0597159 0.00000 0.470142 0.0661971 DEAL:3d-10:: DEAL:3d-10::face_no=1 face_orientation=false face_flip=true face_rotation=false: DEAL:3d-10::0.333333 0.00000 0.333333 0.112500 -DEAL:3d-10::0.101287 0.00000 0.101287 0.0629696 DEAL:3d-10::0.797427 0.00000 0.101287 0.0629696 DEAL:3d-10::0.101287 0.00000 0.797427 0.0629696 -DEAL:3d-10::0.470142 0.00000 0.470142 0.0661971 +DEAL:3d-10::0.101287 0.00000 0.101287 0.0629696 DEAL:3d-10::0.0597159 0.00000 0.470142 0.0661971 DEAL:3d-10::0.470142 0.00000 0.0597159 0.0661971 +DEAL:3d-10::0.470142 0.00000 0.470142 0.0661971 DEAL:3d-10:: DEAL:3d-10::face_no=1 face_orientation=false face_flip=false face_rotation=true: DEAL:3d-10::0.333333 0.00000 0.333333 0.112500 -DEAL:3d-10::0.101287 0.00000 0.797427 0.0629696 -DEAL:3d-10::0.797427 0.00000 0.101287 0.0629696 DEAL:3d-10::0.101287 0.00000 0.101287 0.0629696 -DEAL:3d-10::0.470142 0.00000 0.0597159 0.0661971 -DEAL:3d-10::0.0597159 0.00000 0.470142 0.0661971 +DEAL:3d-10::0.797427 0.00000 0.101287 0.0629696 +DEAL:3d-10::0.101287 0.00000 0.797427 0.0629696 DEAL:3d-10::0.470142 0.00000 0.470142 0.0661971 +DEAL:3d-10::0.0597159 0.00000 0.470142 0.0661971 +DEAL:3d-10::0.470142 0.00000 0.0597159 0.0661971 DEAL:3d-10:: DEAL:3d-10::face_no=2 face_orientation=true face_flip=false face_rotation=false: DEAL:3d-10::0.00000 0.333333 0.333333 0.112500 @@ -391,11 +391,11 @@ DEAL:3d-10::0.00000 0.470142 0.0597159 0.0661971 DEAL:3d-10:: DEAL:3d-10::face_no=2 face_orientation=true face_flip=false face_rotation=true: DEAL:3d-10::0.00000 0.333333 0.333333 0.112500 -DEAL:3d-10::0.00000 0.101287 0.101287 0.0629696 DEAL:3d-10::0.00000 0.101287 0.797427 0.0629696 +DEAL:3d-10::0.00000 0.101287 0.101287 0.0629696 DEAL:3d-10::0.00000 0.797427 0.101287 0.0629696 -DEAL:3d-10::0.00000 0.470142 0.470142 0.0661971 DEAL:3d-10::0.00000 0.470142 0.0597159 0.0661971 +DEAL:3d-10::0.00000 0.470142 0.470142 0.0661971 DEAL:3d-10::0.00000 0.0597159 0.470142 0.0661971 DEAL:3d-10:: DEAL:3d-10::face_no=2 face_orientation=false face_flip=false face_rotation=false: @@ -409,21 +409,21 @@ DEAL:3d-10::0.00000 0.470142 0.470142 0.0661971 DEAL:3d-10:: DEAL:3d-10::face_no=2 face_orientation=false face_flip=true face_rotation=false: DEAL:3d-10::0.00000 0.333333 0.333333 0.112500 -DEAL:3d-10::0.00000 0.797427 0.101287 0.0629696 DEAL:3d-10::0.00000 0.101287 0.101287 0.0629696 DEAL:3d-10::0.00000 0.101287 0.797427 0.0629696 -DEAL:3d-10::0.00000 0.0597159 0.470142 0.0661971 +DEAL:3d-10::0.00000 0.797427 0.101287 0.0629696 DEAL:3d-10::0.00000 0.470142 0.470142 0.0661971 DEAL:3d-10::0.00000 0.470142 0.0597159 0.0661971 +DEAL:3d-10::0.00000 0.0597159 0.470142 0.0661971 DEAL:3d-10:: DEAL:3d-10::face_no=2 face_orientation=false face_flip=false face_rotation=true: DEAL:3d-10::0.00000 0.333333 0.333333 0.112500 -DEAL:3d-10::0.00000 0.101287 0.797427 0.0629696 -DEAL:3d-10::0.00000 0.101287 0.101287 0.0629696 DEAL:3d-10::0.00000 0.797427 0.101287 0.0629696 -DEAL:3d-10::0.00000 0.470142 0.0597159 0.0661971 -DEAL:3d-10::0.00000 0.470142 0.470142 0.0661971 +DEAL:3d-10::0.00000 0.101287 0.101287 0.0629696 +DEAL:3d-10::0.00000 0.101287 0.797427 0.0629696 DEAL:3d-10::0.00000 0.0597159 0.470142 0.0661971 +DEAL:3d-10::0.00000 0.470142 0.470142 0.0661971 +DEAL:3d-10::0.00000 0.470142 0.0597159 0.0661971 DEAL:3d-10:: DEAL:3d-10::face_no=3 face_orientation=true face_flip=false face_rotation=false: DEAL:3d-10::0.333333 0.333333 0.333333 0.194856 @@ -445,11 +445,11 @@ DEAL:3d-10::0.470142 0.470142 0.0597159 0.114657 DEAL:3d-10:: DEAL:3d-10::face_no=3 face_orientation=true face_flip=false face_rotation=true: DEAL:3d-10::0.333333 0.333333 0.333333 0.194856 -DEAL:3d-10::0.101287 0.797427 0.101287 0.109067 DEAL:3d-10::0.101287 0.101287 0.797427 0.109067 +DEAL:3d-10::0.101287 0.797427 0.101287 0.109067 DEAL:3d-10::0.797427 0.101287 0.101287 0.109067 -DEAL:3d-10::0.470142 0.0597159 0.470142 0.114657 DEAL:3d-10::0.470142 0.470142 0.0597159 0.114657 +DEAL:3d-10::0.470142 0.0597159 0.470142 0.114657 DEAL:3d-10::0.0597159 0.470142 0.470142 0.114657 DEAL:3d-10:: DEAL:3d-10::face_no=3 face_orientation=false face_flip=false face_rotation=false: @@ -463,19 +463,19 @@ DEAL:3d-10::0.470142 0.0597159 0.470142 0.114657 DEAL:3d-10:: DEAL:3d-10::face_no=3 face_orientation=false face_flip=true face_rotation=false: DEAL:3d-10::0.333333 0.333333 0.333333 0.194856 -DEAL:3d-10::0.797427 0.101287 0.101287 0.109067 DEAL:3d-10::0.101287 0.797427 0.101287 0.109067 DEAL:3d-10::0.101287 0.101287 0.797427 0.109067 -DEAL:3d-10::0.0597159 0.470142 0.470142 0.114657 +DEAL:3d-10::0.797427 0.101287 0.101287 0.109067 DEAL:3d-10::0.470142 0.0597159 0.470142 0.114657 DEAL:3d-10::0.470142 0.470142 0.0597159 0.114657 +DEAL:3d-10::0.0597159 0.470142 0.470142 0.114657 DEAL:3d-10:: DEAL:3d-10::face_no=3 face_orientation=false face_flip=false face_rotation=true: DEAL:3d-10::0.333333 0.333333 0.333333 0.194856 -DEAL:3d-10::0.101287 0.101287 0.797427 0.109067 -DEAL:3d-10::0.101287 0.797427 0.101287 0.109067 DEAL:3d-10::0.797427 0.101287 0.101287 0.109067 -DEAL:3d-10::0.470142 0.470142 0.0597159 0.114657 -DEAL:3d-10::0.470142 0.0597159 0.470142 0.114657 +DEAL:3d-10::0.101287 0.797427 0.101287 0.109067 +DEAL:3d-10::0.101287 0.101287 0.797427 0.109067 DEAL:3d-10::0.0597159 0.470142 0.470142 0.114657 +DEAL:3d-10::0.470142 0.0597159 0.470142 0.114657 +DEAL:3d-10::0.470142 0.470142 0.0597159 0.114657 DEAL:3d-10:: -- 2.39.5