* ------------------------------------------------------------------------
*/
-// Test that the function
-// GridGenerator::subdivided_hyper_rectable_with_simplices() can give a mesh
-// which is suitible for periodicity with tetrahedra.
+// Test tetrahedra + periodicity.
#include <deal.II/base/types.h>
#include "../tests.h"
void
-check()
+check(Triangulation<3> &tria)
{
- Triangulation<3> tria;
- Point<3> corner_p1 = {-0.5, 1.0, 0.0};
- Point<3> corner_p2 = {0.5, 2.0, 1.2};
- std::vector<unsigned int> sub_divisions = {2, 2, 2};
- GridGenerator::subdivided_hyper_rectangle_with_simplices(
- tria, sub_divisions, corner_p1, corner_p2, true, true);
-
- // Check that we have made a grid with the expected number of cells and only
- // one level of refinement.
- if (tria.n_cells() != 48)
- {
- deallog << "FAIL! Wrong number of cells." << std::endl;
- }
-
if (tria.n_levels() != 1)
{
deallog << "FAIL! Mesh has more than one refinement level." << std::endl;
tria.add_periodicity(pairs[1]);
tria.add_periodicity(pairs[2]);
- // To enable periodicity the easy way, we need each boundary pair to be in
- // default orientation. Check that this holds.
{
- IteratorFilters::AtBoundary filter;
- const types::geometric_orientation default_orientation =
- numbers::default_geometric_orientation;
- const types::geometric_orientation default_mirror_orientation =
- internal::combined_face_orientation(false, false, false);
+ // Check that the vertices we found match in all but one coordinate
+ // direction:
+ unsigned int changing_direction = 0;
for (const auto &pair : pairs)
{
- for (const auto &match : pair)
+ for (const auto &face_pair : pair)
{
- if (match.orientation != default_orientation &&
- match.orientation != default_mirror_orientation)
+ std::array<Point<3>, 3> face_1_vertices, face_2_vertices;
+ for (unsigned int i = 0; i < 3; ++i)
{
- deallog << "FAIL! Found a face pair which is not in default "
- << "orientation." << std::endl;
- deallog << "Orientation is "
- << static_cast<unsigned int>(match.orientation)
- << " vs default "
- << static_cast<unsigned int>(default_orientation)
- << std::endl;
- deallog << "Cells " << match.cell[0]->active_cell_index()
- << " and " << match.cell[1]->active_cell_index()
- << std::endl;
- deallog << "Faces " << match.face_idx[0] << " and "
- << match.face_idx[1] << std::endl;
- return;
+ face_1_vertices[i] =
+ face_pair.cell[0]->face(face_pair.face_idx[0])->vertex(i);
+ face_2_vertices[i] =
+ face_pair.cell[1]->face(face_pair.face_idx[1])->vertex(i);
}
- }
- }
- }
+ const auto permuted_face_1_vertices =
+ ReferenceCells::Triangle.permute_by_combined_orientation(
+ make_const_array_view(face_1_vertices), face_pair.orientation);
+
+ deallog << "periodic face_pair:" << std::endl
+ << " first = (" << face_pair.cell[0]->index() << ", "
+ << face_pair.face_idx[0] << ")" << std::endl
+ << " second = (" << face_pair.cell[1]->index() << ", "
+ << face_pair.face_idx[1] << ")" << std::endl
+ << " relative orientation = "
+ << int(face_pair.orientation) << std::endl;
- {
- // Check that we have gotten all the periodicity.
- bool mismatched_faces = false;
- unsigned int changing_direction = 0;
- for (const auto &pair : pairs)
- {
- if (pair.size() != 8)
- {
- deallog << "FAIL! There should be 8 matches on each face."
- << std::endl;
- return;
- }
- for (int face = 0; face < static_cast<int>(pair.size()); ++face)
- {
- Point<3> p1(
- pair[face].cell[0]->face(pair[face].face_idx[0])->center());
- Point<3> p2(
- pair[face].cell[1]->face(pair[face].face_idx[1])->center());
- const std::array<bool, 3> results = {
- {std::abs(p1[0] - p2[0]) > 1e-10,
- std::abs(p1[1] - p2[1]) > 1e-10,
- std::abs(p1[2] - p2[2]) > 1e-10}};
bool fail = false;
-
for (unsigned int i = 0; i < 3; ++i)
- {
- if (i == changing_direction)
- {
- continue;
- }
- else
- {
- fail = fail || results[i];
- }
- }
+ for (unsigned int d = 0; d < 3; ++d)
+ if (d != changing_direction)
+ fail = fail || std::abs(permuted_face_1_vertices[i][d] -
+ face_2_vertices[i][d]) > 1e-10;
if (fail)
{
}
}
- // write 2 outputs (total mesh and only surface mesh)
- const auto grid_out = [](const auto &tria, const bool surface_mesh_only) {
- GridOutFlags::Vtk flags;
-
- if (surface_mesh_only)
- {
- flags.output_cells = false;
- flags.output_faces = true;
- flags.output_edges = false;
- flags.output_only_relevant = false;
- }
-
- GridOut grid_out;
- grid_out.set_flags(flags);
-
- grid_out.write_vtk(tria, deallog.get_file_stream());
- };
-
- grid_out(tria, false); // total mesh
- grid_out(tria, true); // only surface mesh
-
// If we got this far, we have a mesh which supports periodicity.
- // Let's see if we can proscribe periodicity with actual DoFs now.
+ // Let's see if we can prescribe periodicity with actual DoFs now.
// Check for C0 tetrahedra up to degree 3. (Highest implemented at the time of
// writing.)
for (const unsigned int degree : {1, 2, 3})
for (const auto &cons : constraints)
{
// Check the total number of constraints.
- if (cons.n_constraints() != (2 * degree + 1) * (2 * degree + 1))
- {
- deallog << "FAIL! Wrong number of constraints!" << std::endl;
- }
+ deallog << "Number of constraints = " << cons.n_constraints()
+ << std::endl;
// Loop through the constraints and verify that the correct components
// of the DoF's support points are equal.
{
initlog();
- check();
+ const Point<3> corner_p1(-0.5, 1.0, 0.0);
+ const Point<3> corner_p2(0.5, 2.0, 1.2);
+ const std::vector<unsigned int> sub_divisions{2, 2, 2};
+
+ {
+ Triangulation<3> hex_tria, tria;
+
+ GridGenerator::subdivided_hyper_rectangle(
+ hex_tria, sub_divisions, corner_p1, corner_p2, true);
+ GridGenerator::convert_hypercube_to_simplex_mesh(hex_tria, tria, 6);
+
+ check(tria);
+ }
+
+ {
+ Triangulation<3> hex_tria, tria;
+
+ GridGenerator::subdivided_hyper_rectangle(
+ hex_tria, sub_divisions, corner_p1, corner_p2, true);
+ GridGenerator::convert_hypercube_to_simplex_mesh(hex_tria, tria, 24);
+
+ check(tria);
+ }
}
-# vtk DataFile Version 3.0
-Triangulation generated with deal.II
-ASCII
-DATASET UNSTRUCTURED_GRID
-POINTS 27 double
--0.500000 1.00000 0.00000
-0.00000 1.00000 0.00000
-0.500000 1.00000 0.00000
--0.500000 1.50000 0.00000
-0.00000 1.50000 0.00000
-0.500000 1.50000 0.00000
--0.500000 2.00000 0.00000
-0.00000 2.00000 0.00000
-0.500000 2.00000 0.00000
--0.500000 1.00000 0.600000
-0.00000 1.00000 0.600000
-0.500000 1.00000 0.600000
--0.500000 1.50000 0.600000
-0.00000 1.50000 0.600000
-0.500000 1.50000 0.600000
--0.500000 2.00000 0.600000
-0.00000 2.00000 0.600000
-0.500000 2.00000 0.600000
--0.500000 1.00000 1.20000
-0.00000 1.00000 1.20000
-0.500000 1.00000 1.20000
--0.500000 1.50000 1.20000
-0.00000 1.50000 1.20000
-0.500000 1.50000 1.20000
--0.500000 2.00000 1.20000
-0.00000 2.00000 1.20000
-0.500000 2.00000 1.20000
-
-CELLS 88 400
-4 0 1 4 13
-4 0 1 13 10
-4 0 13 4 3
-4 3 12 0 13
-4 9 13 10 0
-4 9 12 13 0
-4 1 2 5 14
-4 1 2 14 11
-4 1 14 5 4
-4 4 13 1 14
-4 10 14 11 1
-4 10 13 14 1
-4 3 4 7 16
-4 3 4 16 13
-4 3 16 7 6
-4 6 15 3 16
-4 12 16 13 3
-4 12 15 16 3
-4 4 5 8 17
-4 4 5 17 14
-4 4 17 8 7
-4 7 16 4 17
-4 13 17 14 4
-4 13 16 17 4
-4 9 10 13 22
-4 9 10 22 19
-4 9 22 13 12
-4 12 21 9 22
-4 18 22 19 9
-4 18 21 22 9
-4 10 11 14 23
-4 10 11 23 20
-4 10 23 14 13
-4 13 22 10 23
-4 19 23 20 10
-4 19 22 23 10
-4 12 13 16 25
-4 12 13 25 22
-4 12 25 16 15
-4 15 24 12 25
-4 21 25 22 12
-4 21 24 25 12
-4 13 14 17 26
-4 13 14 26 23
-4 13 26 17 16
-4 16 25 13 26
-4 22 26 23 13
-4 22 25 26 13
-3 1 0 10
-3 0 1 4
-3 2 1 11
-3 1 2 5
-3 5 2 14
-3 14 2 11
-3 0 4 3
-3 3 4 7
-3 1 5 4
-3 4 5 8
-3 8 5 17
-3 17 5 14
-3 15 6 16
-3 3 7 6
-3 7 16 6
-3 16 7 17
-3 4 8 7
-3 8 17 7
-3 9 10 0
-3 10 9 19
-3 10 11 1
-3 11 10 20
-3 23 11 20
-3 14 11 23
-3 26 14 23
-3 24 15 25
-3 16 25 15
-3 25 16 26
-3 17 14 26
-3 17 26 16
-3 18 21 22
-3 18 22 19
-3 18 19 9
-3 19 23 20
-3 19 20 10
-3 21 24 25
-3 21 25 22
-3 19 22 23
-3 22 26 23
-3 22 25 26
-
-CELL_TYPES 88
-10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
-5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
-
-
-CELL_DATA 88
-SCALARS MaterialID int 1
-LOOKUP_TABLE default
-6 6 6 6 6 6 7 7 7 7 7 7 6 6 6 6 6 6 7 7 7 7 7 7 6 6 6 6 6 6 7 7 7 7 7 7 6 6 6 6 6 6 7 7 7 7 7 7
-2 4 2 4 1 1 4 4 4 4 1 1 3 4 3 3 4 3 2 2 2 2 1 1 1 3 3 3 1 3 5 5 2 5 2 5 5 5 5 5
-
-
-SCALARS ManifoldID int 1
-LOOKUP_TABLE default
--1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
--1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
-
-# vtk DataFile Version 3.0
-Triangulation generated with deal.II
-ASCII
-DATASET UNSTRUCTURED_GRID
-POINTS 27 double
--0.500000 1.00000 0.00000
-0.00000 1.00000 0.00000
-0.500000 1.00000 0.00000
--0.500000 1.50000 0.00000
-0.00000 1.50000 0.00000
-0.500000 1.50000 0.00000
--0.500000 2.00000 0.00000
-0.00000 2.00000 0.00000
-0.500000 2.00000 0.00000
--0.500000 1.00000 0.600000
-0.00000 1.00000 0.600000
-0.500000 1.00000 0.600000
--0.500000 1.50000 0.600000
-0.00000 1.50000 0.600000
-0.500000 1.50000 0.600000
--0.500000 2.00000 0.600000
-0.00000 2.00000 0.600000
-0.500000 2.00000 0.600000
--0.500000 1.00000 1.20000
-0.00000 1.00000 1.20000
-0.500000 1.00000 1.20000
--0.500000 1.50000 1.20000
-0.00000 1.50000 1.20000
-0.500000 1.50000 1.20000
--0.500000 2.00000 1.20000
-0.00000 2.00000 1.20000
-0.500000 2.00000 1.20000
-
-CELLS 48 192
-3 1 0 10
-3 0 1 4
-3 2 1 11
-3 1 2 5
-3 5 2 14
-3 14 2 11
-3 3 12 0
-3 0 4 3
-3 3 4 7
-3 1 5 4
-3 4 5 8
-3 8 5 17
-3 17 5 14
-3 6 15 3
-3 15 6 16
-3 3 7 6
-3 7 16 6
-3 16 7 17
-3 4 8 7
-3 8 17 7
-3 12 9 0
-3 9 10 0
-3 10 9 19
-3 10 11 1
-3 11 10 20
-3 23 11 20
-3 15 12 3
-3 12 21 9
-3 14 11 23
-3 26 14 23
-3 15 24 12
-3 24 15 25
-3 16 25 15
-3 25 16 26
-3 17 14 26
-3 17 26 16
-3 21 18 9
-3 18 21 22
-3 18 22 19
-3 18 19 9
-3 19 23 20
-3 19 20 10
-3 24 21 12
-3 21 24 25
-3 21 25 22
-3 19 22 23
-3 22 26 23
-3 22 25 26
-
-CELL_TYPES 48
-5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
-
-
-CELL_DATA 48
-SCALARS MaterialID int 1
-LOOKUP_TABLE default
-2 4 2 4 1 1 0 4 4 4 4 1 1 0 3 4 3 3 4 3 0 2 2 2 2 1 0 0 1 1 0 3 3 3 1 3 0 5 5 2 5 2 0 5 5 5 5 5
-
-
-SCALARS ManifoldID int 1
-LOOKUP_TABLE default
--1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
+DEAL::periodic face_pair:
+DEAL:: first = (3, 0)
+DEAL:: second = (6, 3)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (5, 1)
+DEAL:: second = (7, 3)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (15, 0)
+DEAL:: second = (18, 3)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (17, 1)
+DEAL:: second = (19, 3)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (27, 0)
+DEAL:: second = (30, 3)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (29, 1)
+DEAL:: second = (31, 3)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (39, 0)
+DEAL:: second = (42, 3)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (41, 1)
+DEAL:: second = (43, 3)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (1, 1)
+DEAL:: second = (14, 3)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (4, 2)
+DEAL:: second = (15, 1)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (7, 1)
+DEAL:: second = (20, 3)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (10, 2)
+DEAL:: second = (21, 1)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (25, 1)
+DEAL:: second = (38, 3)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (28, 2)
+DEAL:: second = (39, 1)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (31, 1)
+DEAL:: second = (44, 3)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (34, 2)
+DEAL:: second = (45, 1)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (0, 0)
+DEAL:: second = (28, 0)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (2, 2)
+DEAL:: second = (29, 0)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (6, 0)
+DEAL:: second = (34, 0)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (8, 2)
+DEAL:: second = (35, 0)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (12, 0)
+DEAL:: second = (40, 0)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (14, 2)
+DEAL:: second = (41, 0)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (18, 0)
+DEAL:: second = (46, 0)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (20, 2)
+DEAL:: second = (47, 0)
+DEAL:: relative orientation = 1
+DEAL::Number of constraints = 9
+DEAL::Number of constraints = 9
+DEAL::Number of constraints = 9
+DEAL::Number of constraints = 25
+DEAL::Number of constraints = 25
+DEAL::Number of constraints = 25
+DEAL::Number of constraints = 49
64 0: 1.00000
65 30: 1.00000
66 40: 1.00000
326 313: 1.00000
327 312: 1.00000
329 315: 1.00000
+DEAL::Number of constraints = 49
112 1: 1.00000
113 20: 1.00000
122 23: 1.00000
334 275: 1.00000
335 274: 1.00000
336 278: 1.00000
+DEAL::Number of constraints = 49
196 2: 1.00000
206 1: 1.00000
211 7: 1.00000
340 172: 1.00000
342 185: 1.00000
DEAL::OK!
+DEAL::periodic face_pair:
+DEAL:: first = (4, 0)
+DEAL:: second = (31, 0)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (5, 1)
+DEAL:: second = (30, 2)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (8, 0)
+DEAL:: second = (33, 0)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (11, 0)
+DEAL:: second = (34, 1)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (52, 0)
+DEAL:: second = (79, 0)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (53, 1)
+DEAL:: second = (78, 2)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (56, 0)
+DEAL:: second = (81, 0)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (59, 0)
+DEAL:: second = (82, 1)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (100, 0)
+DEAL:: second = (127, 0)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (101, 1)
+DEAL:: second = (126, 2)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (104, 0)
+DEAL:: second = (129, 0)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (107, 0)
+DEAL:: second = (130, 1)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (148, 0)
+DEAL:: second = (175, 0)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (149, 1)
+DEAL:: second = (174, 2)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (152, 0)
+DEAL:: second = (177, 0)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (155, 0)
+DEAL:: second = (178, 1)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (0, 1)
+DEAL:: second = (49, 0)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (3, 1)
+DEAL:: second = (50, 0)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (8, 2)
+DEAL:: second = (59, 1)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (9, 1)
+DEAL:: second = (58, 0)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (24, 1)
+DEAL:: second = (73, 0)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (27, 1)
+DEAL:: second = (74, 0)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (32, 2)
+DEAL:: second = (83, 1)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (33, 1)
+DEAL:: second = (82, 0)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (96, 1)
+DEAL:: second = (145, 0)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (99, 1)
+DEAL:: second = (146, 0)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (104, 2)
+DEAL:: second = (155, 1)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (105, 1)
+DEAL:: second = (154, 0)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (120, 1)
+DEAL:: second = (169, 0)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (123, 1)
+DEAL:: second = (170, 0)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (128, 2)
+DEAL:: second = (179, 1)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (129, 1)
+DEAL:: second = (178, 0)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (0, 0)
+DEAL:: second = (99, 0)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (1, 1)
+DEAL:: second = (98, 1)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (4, 1)
+DEAL:: second = (101, 0)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (7, 2)
+DEAL:: second = (102, 0)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (24, 0)
+DEAL:: second = (123, 0)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (25, 1)
+DEAL:: second = (122, 1)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (28, 1)
+DEAL:: second = (125, 0)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (31, 2)
+DEAL:: second = (126, 0)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (48, 0)
+DEAL:: second = (147, 0)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (49, 1)
+DEAL:: second = (146, 1)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (52, 1)
+DEAL:: second = (149, 0)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (55, 2)
+DEAL:: second = (150, 0)
+DEAL:: relative orientation = 1
+DEAL::periodic face_pair:
+DEAL:: first = (72, 0)
+DEAL:: second = (171, 0)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (73, 1)
+DEAL:: second = (170, 1)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (76, 1)
+DEAL:: second = (173, 0)
+DEAL:: relative orientation = 5
+DEAL::periodic face_pair:
+DEAL:: first = (79, 2)
+DEAL:: second = (174, 0)
+DEAL:: relative orientation = 1
+DEAL::Number of constraints = 13
+DEAL::Number of constraints = 13
+DEAL::Number of constraints = 13
+DEAL::Number of constraints = 41
+DEAL::Number of constraints = 41
+DEAL::Number of constraints = 41
+DEAL::Number of constraints = 85
+ 172 0: 1.00000
+ 191 20: 1.00000
+ 209 40: 1.00000
+ 227 59: 1.00000
+ 254 76: 1.00000
+ 255 90: 1.00000
+ 256 89: 1.00000
+ 257 91: 1.00000
+ 258 92: 1.00000
+ 261 93: 1.00000
+ 262 94: 1.00000
+ 265 98: 1.00000
+ 267 82: 1.00000
+ 268 81: 1.00000
+ 269 80: 1.00000
+ 270 79: 1.00000
+ 271 78: 1.00000
+ 272 77: 1.00000
+ 275 85: 1.00000
+ 284 127: 1.00000
+ 285 126: 1.00000
+ 288 130: 1.00000
+ 292 150: 1.00000
+ 293 151: 1.00000
+ 297 154: 1.00000
+ 476 329: 1.00000
+ 494 349: 1.00000
+ 531 376: 1.00000
+ 532 390: 1.00000
+ 533 389: 1.00000
+ 534 391: 1.00000
+ 535 392: 1.00000
+ 538 393: 1.00000
+ 539 394: 1.00000
+ 542 398: 1.00000
+ 544 382: 1.00000
+ 545 381: 1.00000
+ 546 380: 1.00000
+ 547 379: 1.00000
+ 548 378: 1.00000
+ 549 377: 1.00000
+ 552 385: 1.00000
+ 562 428: 1.00000
+ 565 444: 1.00000
+ 566 445: 1.00000
+ 570 448: 1.00000
+ 759 613: 1.00000
+ 777 632: 1.00000
+ 803 649: 1.00000
+ 804 660: 1.00000
+ 805 659: 1.00000
+ 806 661: 1.00000
+ 807 662: 1.00000
+ 810 663: 1.00000
+ 811 664: 1.00000
+ 814 668: 1.00000
+ 816 653: 1.00000
+ 817 652: 1.00000
+ 818 651: 1.00000
+ 819 650: 1.00000
+ 822 656: 1.00000
+ 830 694: 1.00000
+ 831 693: 1.00000
+ 834 697: 1.00000
+ 838 717: 1.00000
+ 839 718: 1.00000
+ 843 721: 1.00000
+ 1005 880: 1.00000
+ 1041 907: 1.00000
+ 1042 918: 1.00000
+ 1043 917: 1.00000
+ 1044 919: 1.00000
+ 1045 920: 1.00000
+ 1048 921: 1.00000
+ 1049 922: 1.00000
+ 1052 926: 1.00000
+ 1054 911: 1.00000
+ 1055 910: 1.00000
+ 1056 909: 1.00000
+ 1057 908: 1.00000
+ 1060 914: 1.00000
+ 1069 953: 1.00000
+ 1072 969: 1.00000
+ 1073 970: 1.00000
+ 1077 973: 1.00000
+DEAL::Number of constraints = 85
+ 329 0: 1.00000
+ 330 1: 1.00000
+ 331 3: 1.00000
+ 332 4: 1.00000
+ 333 5: 1.00000
+ 334 12: 1.00000
+ 335 13: 1.00000
+ 336 11: 1.00000
+ 337 10: 1.00000
+ 344 17: 1.00000
+ 348 58: 1.00000
+ 349 59: 1.00000
+ 351 60: 1.00000
+ 352 61: 1.00000
+ 353 68: 1.00000
+ 354 69: 1.00000
+ 355 67: 1.00000
+ 356 66: 1.00000
+ 363 73: 1.00000
+ 436 134: 1.00000
+ 437 135: 1.00000
+ 440 139: 1.00000
+ 444 127: 1.00000
+ 445 126: 1.00000
+ 449 132: 1.00000
+ 476 172: 1.00000
+ 477 174: 1.00000
+ 478 175: 1.00000
+ 479 176: 1.00000
+ 480 183: 1.00000
+ 481 184: 1.00000
+ 482 182: 1.00000
+ 483 181: 1.00000
+ 490 188: 1.00000
+ 494 227: 1.00000
+ 496 228: 1.00000
+ 497 229: 1.00000
+ 498 236: 1.00000
+ 499 237: 1.00000
+ 500 235: 1.00000
+ 501 234: 1.00000
+ 508 241: 1.00000
+ 565 284: 1.00000
+ 566 285: 1.00000
+ 569 289: 1.00000
+ 575 282: 1.00000
+ 869 592: 1.00000
+ 870 595: 1.00000
+ 871 596: 1.00000
+ 872 594: 1.00000
+ 873 593: 1.00000
+ 876 599: 1.00000
+ 879 631: 1.00000
+ 880 632: 1.00000
+ 882 633: 1.00000
+ 883 634: 1.00000
+ 884 641: 1.00000
+ 885 642: 1.00000
+ 886 640: 1.00000
+ 887 639: 1.00000
+ 894 646: 1.00000
+ 961 701: 1.00000
+ 962 702: 1.00000
+ 965 706: 1.00000
+ 969 694: 1.00000
+ 970 693: 1.00000
+ 974 699: 1.00000
+ 995 739: 1.00000
+ 996 742: 1.00000
+ 997 743: 1.00000
+ 998 741: 1.00000
+ 999 740: 1.00000
+ 1002 746: 1.00000
+ 1005 777: 1.00000
+ 1007 778: 1.00000
+ 1008 779: 1.00000
+ 1009 786: 1.00000
+ 1010 787: 1.00000
+ 1011 785: 1.00000
+ 1012 784: 1.00000
+ 1019 791: 1.00000
+ 1072 830: 1.00000
+ 1073 831: 1.00000
+ 1076 835: 1.00000
+ 1082 828: 1.00000
+DEAL::Number of constraints = 85
+ 612 21: 1.00000
+ 613 20: 1.00000
+ 614 2: 1.00000
+ 615 24: 1.00000
+ 616 23: 1.00000
+ 621 31: 1.00000
+ 622 32: 1.00000
+ 623 29: 1.00000
+ 624 30: 1.00000
+ 628 36: 1.00000
+ 631 1: 1.00000
+ 632 0: 1.00000
+ 633 5: 1.00000
+ 634 4: 1.00000
+ 635 9: 1.00000
+ 636 8: 1.00000
+ 637 7: 1.00000
+ 638 6: 1.00000
+ 645 16: 1.00000
+ 659 77: 1.00000
+ 660 78: 1.00000
+ 667 86: 1.00000
+ 672 118: 1.00000
+ 673 119: 1.00000
+ 680 124: 1.00000
+ 759 191: 1.00000
+ 760 173: 1.00000
+ 761 194: 1.00000
+ 762 193: 1.00000
+ 767 201: 1.00000
+ 768 202: 1.00000
+ 769 199: 1.00000
+ 770 200: 1.00000
+ 774 206: 1.00000
+ 777 172: 1.00000
+ 778 176: 1.00000
+ 779 175: 1.00000
+ 780 180: 1.00000
+ 781 179: 1.00000
+ 782 178: 1.00000
+ 783 177: 1.00000
+ 790 187: 1.00000
+ 800 246: 1.00000
+ 804 271: 1.00000
+ 805 272: 1.00000
+ 812 277: 1.00000
+ 879 330: 1.00000
+ 880 329: 1.00000
+ 881 319: 1.00000
+ 882 333: 1.00000
+ 883 332: 1.00000
+ 888 340: 1.00000
+ 889 341: 1.00000
+ 890 338: 1.00000
+ 891 339: 1.00000
+ 895 345: 1.00000
+ 898 323: 1.00000
+ 899 322: 1.00000
+ 900 321: 1.00000
+ 901 320: 1.00000
+ 904 326: 1.00000
+ 917 377: 1.00000
+ 918 378: 1.00000
+ 925 386: 1.00000
+ 930 418: 1.00000
+ 931 419: 1.00000
+ 938 424: 1.00000
+ 1005 476: 1.00000
+ 1006 466: 1.00000
+ 1007 479: 1.00000
+ 1008 478: 1.00000
+ 1013 486: 1.00000
+ 1014 487: 1.00000
+ 1015 484: 1.00000
+ 1016 485: 1.00000
+ 1020 491: 1.00000
+ 1023 470: 1.00000
+ 1024 469: 1.00000
+ 1025 468: 1.00000
+ 1026 467: 1.00000
+ 1029 473: 1.00000
+ 1038 523: 1.00000
+ 1042 548: 1.00000
+ 1043 549: 1.00000
+ 1050 554: 1.00000
+DEAL::OK!