using namespace std;
-template <int s_dim, int spacedim>
-bool test_vertices_orientation(const Triangulation<s_dim,spacedim> &boundary_mesh,
- map< typename Triangulation<s_dim,spacedim>::cell_iterator,
- typename Triangulation<s_dim+1,spacedim>::face_iterator >
- &surface_to_volume_mapping,
- const int verbosity = 1)
-{
- typename Triangulation<s_dim,spacedim>::active_cell_iterator
- cell = boundary_mesh.begin_active(),
- endc = boundary_mesh.end();
- typename Triangulation<s_dim+1,spacedim>::face_iterator face;
-
- bool success = true;
-
- if (verbosity>1)
- deallog << "Vol faces" << "\t" << "Surf cell" <<
- "\t" << "Distance" <<endl;
-
- for (; cell!=endc; ++cell)
- {
-
- face = surface_to_volume_mapping [cell];
-
- for (unsigned int k=0; k<GeometryInfo<s_dim>::vertices_per_cell; ++k)
- {
- Point<spacedim> diff(face->vertex(k));
- diff -= cell->vertex(k);
- if (verbosity>1)
- {
- deallog << face->vertex(k) << "\t\t";
- deallog << cell->vertex(k) << "\t\t\t" << diff.square() << endl;
- }
- if (diff.square()>0)
- {
- success = false;
- break;
- }
- }
- if (verbosity>1) deallog << endl;
- }
- return success;
-}
-
template <int dim, int spacedim>
void save_mesh(const Triangulation<dim,spacedim> &tria)
{
surface_to_volume_mapping
= GridGenerator::extract_boundary_mesh (volume_mesh, boundary_mesh);
- if (test_vertices_orientation(boundary_mesh, surface_to_volume_mapping))
- deallog << "Passed.";
- else
- deallog << "Failed.";
- deallog << endl;
-
save_mesh(boundary_mesh);
}
surface_to_volume_mapping
= GridGenerator::extract_boundary_mesh (volume_mesh, boundary_mesh);
- if (test_vertices_orientation(boundary_mesh, surface_to_volume_mapping))
- deallog << "Passed.";
- else
- deallog << "Failed.";
- deallog << endl;
-
save_mesh(boundary_mesh);
}
= GridGenerator::extract_boundary_mesh (volume_mesh, boundary_mesh,
boundary_ids);
- if (test_vertices_orientation(boundary_mesh, surface_to_volume_mapping))
- deallog << "Passed.";
- else
- deallog << "Failed.";
- deallog << endl;
-
save_mesh(boundary_mesh);
}
2 0 quad 5 2 7 9
3 0 quad 6 9 8 3
4 0 quad 9 7 4 8
-DEAL::Passed.
8 8 0 0 0
1 0.00000 0.00000 0
2 0.00000 1.00000 0
6 0 hex 21 13 6 17 27 24 19 26
7 0 hex 23 27 26 18 15 25 20 7
8 0 hex 27 24 19 26 25 16 8 20
-DEAL::Passed.
26 24 0 0 0
1 0.00000 0.00000 0.00000
2 0.00000 1.00000 0.00000
2 1 quad 9 2 12 21
3 1 quad 10 21 14 3
4 1 quad 21 12 4 14
-5 0 quad 5 17 22 18
-6 0 quad 17 6 19 22
-7 0 quad 18 22 20 7
-8 0 quad 22 19 8 20
+5 0 quad 5 18 22 17
+6 0 quad 18 7 20 22
+7 0 quad 17 22 19 6
+8 0 quad 22 20 8 19
9 0 quad 1 10 23 11
10 0 quad 10 3 15 23
11 0 quad 11 23 18 5
12 0 quad 23 15 7 18
-13 0 quad 2 12 24 13
-14 0 quad 12 4 16 24
-15 0 quad 13 24 19 6
-16 0 quad 24 16 8 19
+13 0 quad 2 13 24 12
+14 0 quad 13 6 19 24
+15 0 quad 12 24 16 4
+16 0 quad 24 19 8 16
17 0 quad 1 11 25 9
18 0 quad 11 5 17 25
19 0 quad 9 25 13 2
20 0 quad 25 17 6 13
-21 0 quad 3 15 26 14
-22 0 quad 15 7 20 26
-23 0 quad 14 26 16 4
-24 0 quad 26 20 8 16
+21 0 quad 3 14 26 15
+22 0 quad 14 4 16 26
+23 0 quad 15 26 20 7
+24 0 quad 26 16 8 20
DEAL::Testing hyper_cube in dim: 3...
27 8 0 0 0
1 0.00000 0.00000 0.00000
6 0 hex 21 13 6 17 27 24 19 26
7 0 hex 23 27 26 18 15 25 20 7
8 0 hex 27 24 19 26 25 16 8 20
-DEAL::Passed.
25 20 0 0 0
1 1.00000 0.00000 0.00000
2 1.00000 1.00000 0.00000
23 0.500000 1.00000 0.500000
24 0.500000 0.500000 0.00000
25 0.500000 0.500000 1.00000
-1 0 quad 1 9 21 10
-2 0 quad 9 2 11 21
-3 0 quad 10 21 12 3
-4 0 quad 21 11 4 12
+1 0 quad 1 10 21 9
+2 0 quad 10 3 12 21
+3 0 quad 9 21 11 2
+4 0 quad 21 12 4 11
5 0 quad 5 14 22 13
6 0 quad 14 6 16 22
7 0 quad 13 22 10 1
8 0 quad 22 16 3 10
-9 0 quad 7 19 23 18
-10 0 quad 19 8 20 23
-11 0 quad 18 23 11 2
-12 0 quad 23 20 4 11
+9 0 quad 7 18 23 19
+10 0 quad 18 2 11 23
+11 0 quad 19 23 20 8
+12 0 quad 23 11 4 20
13 0 quad 5 13 24 15
14 0 quad 13 1 9 24
15 0 quad 15 24 18 7
16 0 quad 24 9 2 18
-17 0 quad 6 16 25 17
-18 0 quad 16 3 12 25
-19 0 quad 17 25 20 8
-20 0 quad 25 12 4 20
+17 0 quad 6 17 25 16
+18 0 quad 17 8 20 25
+19 0 quad 16 25 12 3
+20 0 quad 25 20 4 12