]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Replace CylinderManifold by CylindricalManifold in tests 5682/head
authorDaniel Arndt <daniel.arndt@iwr.uni-heidelberg.de>
Fri, 29 Dec 2017 15:17:49 +0000 (16:17 +0100)
committerDaniel Arndt <daniel.arndt@iwr.uni-heidelberg.de>
Sat, 30 Dec 2017 08:07:33 +0000 (09:07 +0100)
12 files changed:
include/deal.II/grid/tria_boundary_lib.h
tests/bits/cylinder_01.cc
tests/bits/cylinder_02.cc
tests/bits/cylinder_03.cc
tests/bits/cylinder_04.cc
tests/codim_one/extract_boundary_mesh_10.cc
tests/codim_one/extract_boundary_mesh_11.cc
tests/codim_one/extract_boundary_mesh_12.cc
tests/codim_one/extract_boundary_mesh_13.cc
tests/grid/grid_output_input.cc
tests/grid/grid_transform_3d.cc
tests/grid/manifold_ids_on_boundary_01.cc

index a10e5cfc766f44d5f9c238c585e26ed8c77e6402..4a73cbd9456ed5dd4a6523c1f067dc558c004a57 100644 (file)
@@ -44,6 +44,7 @@ DEAL_II_NAMESPACE_OPEN
  * @deprecated The boundary classes have been deprecated in favor of the more
  * general Manifold classes. For this class CylindricalManifold is an appropriate
  * replacement which is expected to produce better results under mesh refinement.
+ * For a two-dimensional cylinder use FlatManifold instead.
  *
  * @ingroup boundary
  *
index 37c756ed69f8886ff2a05b00e4de4aef2ed2b739..c173cc5f1d70b500d4cbe7d6dbb06fe38ec41f59 100644 (file)
 
 
 
-// check the cells generated by the CylinderBoundary the default
+// check the cells generated by the CylindricalManifold for the default
 // axiparallel cylinder
 
 #include "../tests.h"
 #include <deal.II/base/quadrature_lib.h>
 #include <deal.II/grid/tria.h>
-#include <deal.II/grid/tria_boundary_lib.h>
+#include <deal.II/grid/manifold_lib.h>
 #include <deal.II/grid/tria_accessor.h>
 #include <deal.II/grid/tria_iterator.h>
 #include <deal.II/grid/grid_generator.h>
 #include <deal.II/fe/mapping_c1.h>
 
 
-
-
 template <int dim>
 void check ()
 {
+  AssertThrow(false, ExcInternalError());
+}
+
+
+template<>
+void check<2> ()
+{
+  constexpr int dim = 2;
+  Triangulation<dim> triangulation;
+  GridGenerator::cylinder (triangulation);
+  triangulation.refine_global (2);
+
+  for (typename Triangulation<dim>::active_cell_iterator
+       cell = triangulation.begin_active();
+       cell!=triangulation.end(); ++cell)
+    for (unsigned int i=0; i<GeometryInfo<dim>::vertices_per_cell; ++i)
+      deallog << cell->vertex(i) << std::endl;
+}
+
+
+template<>
+void check<3> ()
+{
+  constexpr int dim = 3;
+  const CylindricalManifold<dim> boundary;
   Triangulation<dim> triangulation;
   GridGenerator::cylinder (triangulation);
-  static const CylinderBoundary<dim> boundary (1,0);
-  triangulation.set_boundary (0, boundary);
+  triangulation.set_manifold(0, boundary);
   triangulation.refine_global (2);
 
   for (typename Triangulation<dim>::active_cell_iterator
index 799c43a826ed0dddfaa43879e59af65da4047b23..4515a52d6b917084f08160b52360b0fd73a81faa 100644 (file)
 
 
 
-// check the cells generated by the CylinderBoundary the
+// check the cells generated by the CylindricalManifold for an
 // axiparallel cylinder parallel to the y-axis
 
 #include "../tests.h"
 #include <deal.II/base/quadrature_lib.h>
 #include <deal.II/grid/tria.h>
-#include <deal.II/grid/tria_boundary_lib.h>
+#include <deal.II/grid/manifold_lib.h>
 #include <deal.II/grid/tria_accessor.h>
 #include <deal.II/grid/tria_iterator.h>
 #include <deal.II/grid/grid_generator.h>
@@ -42,6 +42,15 @@ Point<dim> rotate_to_y (const Point<dim> &p)
     return Point<dim> (-p[1], p[0], p[2]);
 }
 
+void set_manifold(Triangulation<2> &triangulation)
+{
+}
+
+void set_manifold(Triangulation<3> &triangulation)
+{
+  static const CylindricalManifold<3> boundary (1);
+  triangulation.set_manifold (0, boundary);
+}
 
 template <int dim>
 void check ()
@@ -51,8 +60,7 @@ void check ()
 
   GridTools::transform ((Point<dim> ( *)(const Point<dim> &))&rotate_to_y<dim>, triangulation);
 
-  static const CylinderBoundary<dim> boundary (1,1);
-  triangulation.set_boundary (0, boundary);
+  set_manifold(triangulation);
   triangulation.refine_global (2);
 
   for (typename Triangulation<dim>::active_cell_iterator
index b25c5ea5f0ee6439465695d2d4411b1ec5482a86..a5fded568c116116ea681855a1987c62a6609419 100644 (file)
 
 
 
-// check the cells generated by the CylinderBoundary the axiparallel
+// check the cells generated by the CylindricalManifold the axiparallel
 // cylinder parallel to the z-axis. this of course only works for 3d
 
 #include "../tests.h"
 #include <deal.II/base/quadrature_lib.h>
 #include <deal.II/grid/tria.h>
-#include <deal.II/grid/tria_boundary_lib.h>
+#include <deal.II/grid/manifold_lib.h>
 #include <deal.II/grid/tria_accessor.h>
 #include <deal.II/grid/tria_iterator.h>
 #include <deal.II/grid/grid_generator.h>
 
 
 template <int dim>
-Point<dim> rotate_to_y (const Point<dim> &p)
+Point<dim> rotate_to_z (const Point<dim> &p)
 {
   return Point<dim> (-p[2], p[1], p[0]);
 }
 
+void set_manifold(Triangulation<3> &triangulation)
+{
+  static const CylindricalManifold<3> boundary (2);
+  triangulation.set_manifold (0, boundary);
+}
 
 template <int dim>
 void check ()
@@ -46,10 +51,9 @@ void check ()
   Triangulation<dim> triangulation;
   GridGenerator::cylinder (triangulation);
 
-  GridTools::transform ((Point<dim> ( *)(const Point<dim> &))&rotate_to_y<dim>, triangulation);
+  GridTools::transform ((Point<dim> ( *)(const Point<dim> &))&rotate_to_z<dim>, triangulation);
 
-  static const CylinderBoundary<dim> boundary (1,2);
-  triangulation.set_boundary (0, boundary);
+  set_manifold(triangulation);
   triangulation.refine_global (2);
 
   for (typename Triangulation<dim>::active_cell_iterator
@@ -59,7 +63,6 @@ void check ()
       deallog << cell->vertex(i) << std::endl;
 }
 
-
 int main ()
 {
   initlog();
index 7ddfbe81206a4ad83e2056b7e881d2d01b8e1b17..d67962c12d03faf83b2937108a664c42aa6bf43a 100644 (file)
 
 
 
-// check the cells generated by the CylinderBoundary for an arbitrary
+// check the cells generated by the CylindricalManifold for an arbitrary
 // orientation
 
 #include "../tests.h"
 #include <deal.II/base/quadrature_lib.h>
 #include <deal.II/grid/tria.h>
-#include <deal.II/grid/tria_boundary_lib.h>
+#include <deal.II/grid/manifold_lib.h>
 #include <deal.II/grid/tria_accessor.h>
 #include <deal.II/grid/tria_iterator.h>
 #include <deal.II/grid/grid_generator.h>
@@ -36,7 +36,7 @@
 const double xy_angle = numbers::PI/6;
 
 template <int dim>
-Point<dim> rotate_to_y (const Point<dim> &p)
+Point<dim> rotate_by_xy_angle (const Point<dim> &p)
 {
   return Point<dim> (p[0]*std::cos(xy_angle) - p[1]*std::sin(xy_angle),
                      p[0]*std::sin(xy_angle) + p[1]*std::cos(xy_angle),
@@ -50,12 +50,11 @@ void check ()
   Triangulation<dim> triangulation;
   GridGenerator::cylinder (triangulation);
 
-  GridTools::transform ((Point<dim> ( *)(const Point<dim> &))&rotate_to_y<dim>, triangulation);
+  GridTools::transform ((Point<dim> ( *)(const Point<dim> &))&rotate_by_xy_angle<dim>, triangulation);
 
-  static const CylinderBoundary<dim> boundary (1,
-                                               Point<dim>(std::cos(xy_angle), std::sin(xy_angle), 0),
-                                               Point<dim>());
-  triangulation.set_boundary (0, boundary);
+  static const CylindricalManifold<dim> boundary (Point<dim>(std::cos(xy_angle), std::sin(xy_angle), 0),
+                                                  Point<dim>());
+  triangulation.set_manifold (0, boundary);
   triangulation.refine_global (2);
 
   for (typename Triangulation<dim>::active_cell_iterator
index 159b0344e5178ca89c609cd026b492ca7f5a2d7e..c25c2139c18dda41e2726c964e4d316c0a035998 100644 (file)
@@ -25,6 +25,9 @@
 // resorting to manifold_ids. this testcase in essence just ensures
 // that we continue to get this "undesirable" behavior until someone
 // comes up with a better idea
+//
+// In particular, it doesn't make sense to replace CylinderBoundary
+// by CylindricalManifold here as the problem then doesn't appear anymore.
 
 #include "../tests.h"
 
index a850b9024da359c6d055e36e1fc406f745db5b38..920afa0dab7221ae21fb28e02c7d7528a4df98a8 100644 (file)
@@ -23,7 +23,7 @@
 #include <deal.II/grid/grid_generator.h>
 #include <deal.II/grid/grid_out.h>
 #include <deal.II/grid/grid_tools.h>
-#include <deal.II/grid/tria_boundary_lib.h>
+#include <deal.II/grid/manifold_lib.h>
 
 
 
@@ -43,18 +43,20 @@ void test()
        cell != triangulation.end(); ++cell)
     for (unsigned int f=0; f<GeometryInfo<dim>::faces_per_cell; ++f)
       if (cell->face(f)->at_boundary())
-        if (cell->face(f)->boundary_id() == 0)
-          cell->face(f)->set_all_manifold_ids(0);
-        else
-          cell->face(f)->set_manifold_id(cell->face(f)->boundary_id());
-
-  static const CylinderBoundary<dim> outer_cylinder (100,0);
+        {
+          if (cell->face(f)->boundary_id() == 0)
+            cell->face(f)->set_all_manifold_ids(0);
+          else
+            cell->face(f)->set_manifold_id(cell->face(f)->boundary_id());
+        }
+
+  static const CylindricalManifold<dim> outer_cylinder (0);
   triangulation.set_manifold(0,outer_cylinder);
 
   // now extract the surface mesh
   Triangulation<dim-1,dim> triangulation_surface;
 
-  static const CylinderBoundary<dim-1,dim> surface_cyl(100,0);
+  static const CylindricalManifold<dim-1,dim> surface_cyl(0);
   triangulation_surface.set_manifold(0,surface_cyl);
 
   GridGenerator::extract_boundary_mesh(triangulation,triangulation_surface);
index 7ad69aa08cb0af09d7632516ebc03ed67dabfd73..4f8b8e5672ebd5c329153b8ddf38b79eda13537a 100644 (file)
@@ -22,7 +22,7 @@
 #include <deal.II/grid/grid_generator.h>
 #include <deal.II/grid/grid_out.h>
 #include <deal.II/grid/grid_tools.h>
-#include <deal.II/grid/tria_boundary_lib.h>
+#include <deal.II/grid/manifold_lib.h>
 
 
 
@@ -37,13 +37,13 @@ void test()
   // faces
   GridTools::copy_boundary_to_manifold_id (triangulation);
 
-  static const CylinderBoundary<dim> outer_cylinder (100,0);
+  static const CylindricalManifold<dim> outer_cylinder (0);
   triangulation.set_manifold(0,outer_cylinder);
 
   // now extract the surface mesh
   Triangulation<dim-1,dim> triangulation_surface;
 
-  static const CylinderBoundary<dim-1,dim> surface_cyl(100,0);
+  static const CylindricalManifold<dim-1,dim> surface_cyl(0);
   triangulation_surface.set_manifold(0,surface_cyl);
 
   GridGenerator::extract_boundary_mesh(triangulation,triangulation_surface);
index cc62ef8ac9687589da20b31e47642f7c0794b3ba..363ec09bdae3fedc0d26c858b279327b1e76bbda 100644 (file)
@@ -23,7 +23,7 @@
 #include <deal.II/grid/grid_generator.h>
 #include <deal.II/grid/grid_out.h>
 #include <deal.II/grid/grid_tools.h>
-#include <deal.II/grid/tria_boundary_lib.h>
+#include <deal.II/grid/manifold_lib.h>
 
 
 
@@ -43,12 +43,14 @@ void test()
        cell != triangulation.end(); ++cell)
     for (unsigned int f=0; f<GeometryInfo<dim>::faces_per_cell; ++f)
       if (cell->face(f)->at_boundary())
-        if (cell->face(f)->boundary_id() == 0)
-          cell->face(f)->set_all_manifold_ids(0);
-        else
-          cell->face(f)->set_manifold_id(cell->face(f)->boundary_id());
-
-  static const CylinderBoundary<dim> outer_cylinder (100,0);
+        {
+          if (cell->face(f)->boundary_id() == 0)
+            cell->face(f)->set_all_manifold_ids(0);
+          else
+            cell->face(f)->set_manifold_id(cell->face(f)->boundary_id());
+        }
+
+  static const CylindricalManifold<dim> outer_cylinder (0);
   triangulation.set_manifold(0,outer_cylinder);
 
   // refine the surface mesh to see the effect of boundary/manifold
@@ -58,7 +60,7 @@ void test()
   // now extract the surface mesh
   Triangulation<dim-1,dim> triangulation_surface;
 
-  static const CylinderBoundary<dim-1,dim> surface_cyl(100,0);
+  static const CylindricalManifold<dim-1,dim> surface_cyl(0);
   triangulation_surface.set_manifold(0,surface_cyl);
 
   GridGenerator::extract_boundary_mesh(triangulation,triangulation_surface);
index 32369b60519276d18f86634d1aac3c4b4383e9c4..08e3389ba1cce11bee6841738da86fba6a903e3b 100644 (file)
@@ -21,7 +21,7 @@
 #include "../tests.h"
 #include <deal.II/grid/tria.h>
 #include <deal.II/grid/grid_generator.h>
-#include <deal.II/grid/tria_boundary_lib.h>
+#include <deal.II/grid/manifold_lib.h>
 #include <deal.II/grid/grid_out.h>
 #include <deal.II/grid/grid_in.h>
 
@@ -36,8 +36,8 @@ void test(std::ostream &out)
   Triangulation<dim> tr;
 
   GridGenerator::hyper_cube_with_cylindrical_hole(tr, .3, .4, 1, 1, false);
-  CylinderBoundary<dim> boundary(.3, 2);
-  tr.set_boundary(1, boundary);
+  CylindricalManifold<dim> boundary(2);
+  tr.set_manifold(1, boundary);
   {
     std::ofstream grid_file("coarse_grid.inp");
     go.write_ucd(tr, grid_file);
@@ -47,7 +47,7 @@ void test(std::ostream &out)
   deallog << "Writing refined from constructor" << std::endl;
   go.write_ucd(tr, out);
 
-  tr.set_boundary(1);
+  tr.set_manifold(1);
   tr.clear();
 
   GridIn<dim> gi;
@@ -59,7 +59,7 @@ void test(std::ostream &out)
     grid_file.close();
   }
 
-  tr.set_boundary(1, boundary);
+  tr.set_manifold(1, boundary);
   tr.refine_global(1);
   deallog << "Writing refined from file" << std::endl;
   go.write_ucd(tr, out);
@@ -70,7 +70,7 @@ void test(std::ostream &out)
     grid_file.close();
   }
 
-  tr.set_boundary(1);
+  tr.set_manifold(1);
   tr.clear();
 }
 
index 0a9adc1b7163d92a7019bd430e513236bbaad84c..5fe501e643101f3caf0a23e67b86d75873ebcb09 100644 (file)
@@ -21,7 +21,7 @@
 #include "../tests.h"
 #include <deal.II/grid/tria.h>
 #include <deal.II/grid/tria_accessor.h>
-#include <deal.II/grid/tria_boundary_lib.h>
+#include <deal.II/grid/manifold_lib.h>
 #include <deal.II/grid/grid_generator.h>
 #include <deal.II/grid/grid_tools.h>
 #include <deal.II/grid/grid_out.h>
@@ -32,10 +32,10 @@ int main ()
 {
   const unsigned int dim=3;
   Point<dim> origin;
-  CylinderBoundary<dim> boundary;
+  CylindricalManifold<dim> boundary;
   Triangulation<dim> tria;
-  tria.set_boundary(0, boundary);
   GridGenerator::cylinder(tria, 1, .7);
+  tria.set_manifold(0, boundary);
   tria.refine_global(2);
 
   // build up a map of vertex indices
index 1249e74cad5419f50cd6d5c39826ec7a1cc620fa..67cfd37f907fbe24cbe10e24e8ff1a79416e76ca 100644 (file)
@@ -56,7 +56,7 @@ void dim_3(std::ostream &os)
   Triangulation<d> tr;
 
   GridGenerator::hyper_cube_with_cylindrical_hole(tr,inner,outer,outer,true);
-  static CylinderBoundary<d> boundary(inner,2);
+  static CylindricalManifold<d> boundary(2);
   tr.set_all_manifold_ids_on_boundary(1,1);
   tr.set_manifold(1,boundary);
 

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.