]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Attach a TorusManifold to a Torus. 6537/head
authorDavid Wells <wellsd2@rpi.edu>
Tue, 8 May 2018 14:48:51 +0000 (10:48 -0400)
committerDavid Wells <wellsd2@rpi.edu>
Tue, 8 May 2018 19:43:20 +0000 (15:43 -0400)
include/deal.II/grid/grid_generator.h
source/grid/grid_generator.cc
tests/codim_one/torus_01.cc
tests/distributed_grids/codim_01.cc
tests/grid/torus_01.cc
tests/mpi/codim_01.cc

index 6b4e611067d0703f4d8fe0e336b8382e223bd76d..a31e3abf8b2f9b9283772b891a79b0dee02f8fa2 100644 (file)
@@ -835,14 +835,13 @@ namespace GridGenerator
    * Produce the volume or surface mesh of a torus. The axis of the torus is
    * the $y$-axis while the plane of the torus is the $x$-$z$ plane.
    *
-   * If @p dim is 3, the mesh will be the volume of the torus. By default,
-   * the boundary faces will have manifold id 0 and you should attach a
-   * TorusManifold to it. The cells will have manifold id 1 and you should
-   * attach a SphericalManifold to it.
-   *
-   * If @p dim is 2, the mesh will describe the surface of the torus. All
-   * cells and faces will have manifold id 0 and you should attach a
-   * TorusManifold to it.
+   * If @p dim is 3, the mesh will be the volume of the torus and this
+   * function attaches a TorusManifold to all boundary cells and faces (which
+   * are marked with a manifold id of 0).
+   *
+   * If @p dim is 2, the mesh will describe the surface of the torus and this
+   * function attaches a TorusManifold to all cells and faces (which are
+   * marked with a manifold id of 0).
    *
    * @param tria The triangulation to be filled.
    *
index 1ea4cbeea53b21943f9268f7b0c97adac269e0d6..00476bc5d02aba7a20913b9f1754514468530914 100644 (file)
@@ -720,6 +720,7 @@ namespace GridGenerator
     tria.create_triangulation_compatibility (vertices, cells, SubCellData());
 
     tria.set_all_manifold_ids(0);
+    tria.set_manifold(0, TorusManifold<2>(R, r));
   }
 
   template <>
@@ -747,6 +748,7 @@ namespace GridGenerator
     // set manifolds as documented
     tria.set_all_manifold_ids(1);
     tria.set_all_manifold_ids_on_boundary(0);
+    tria.set_manifold(0, TorusManifold<3>(R, r));
   }
 
 
index a01d6e6827147e8768fb20f18d89af3263e40fd9..5ff75199fb096ee4213d0927195bf53ff25270af 100644 (file)
@@ -35,10 +35,7 @@ int main ()
 
   initlog();
 
-  TorusManifold<dim> boundary (1.5, .5);
   Triangulation<dim, spacedim> tria;
-  tria.set_manifold (0, boundary);
-
   GridGenerator::torus (tria, 1.5, .5);
   tria.refine_global(2);
 
@@ -47,4 +44,3 @@ int main ()
 
   return 0;
 }
-
index 591e2c33bfdac75708acffb7165f673f2b6f904c..d817f486bfd6fb803dbb5398cdbe405303f2205e 100644 (file)
@@ -35,6 +35,7 @@ void test(std::ostream & /*out*/)
   parallel::distributed::Triangulation<dim,spacedim> tr(MPI_COMM_WORLD);
 
   GridGenerator::torus(tr, 1, 0.2);
+  tr.reset_all_manifolds();
   tr.begin_active()->set_refine_flag();
   tr.execute_coarsening_and_refinement ();
 
index a39c231b6c8b3d2ff17408ea20ec04bfe128021f..47c6415d4257cd6a99b89af6ce15d3c18674fd42 100644 (file)
@@ -35,15 +35,12 @@ void test<3,3> ()
   Triangulation<dim, spacedim> triangulation;
 
   GridGenerator::torus(triangulation, 1.0, 0.4);
-
-  static const SphericalManifold<3> desc_sphere;
-  static const TorusManifold<3> desc_torus(1.0, 0.4);
-  triangulation.set_manifold (0, desc_torus);
-  triangulation.set_manifold (1, desc_sphere);
+  triangulation.set_manifold (1, SphericalManifold<3>());
 
   triangulation.begin_active()->set_refine_flag();
   triangulation.execute_coarsening_and_refinement ();
 
+  const TorusManifold<3> desc_torus(1.0, 0.4);
   unsigned int c = 0;
   for (Triangulation<dim, spacedim>::active_vertex_iterator v = triangulation.begin_active_vertex();
        v != triangulation.end_vertex();
index 1bbc5ec29bf3a5d5a4109880089e3407849ee583..939ab9e70d0d44bfdee81f1a450fbd20bb56f05b 100644 (file)
@@ -62,6 +62,7 @@ void test(std::ostream & /*out*/)
   parallel::distributed::Triangulation<dim,spacedim> tr(MPI_COMM_WORLD);
 
   GridGenerator::torus(tr, 1, 0.2);
+  tr.reset_all_manifolds();
   tr.refine_global();
 
   tr.begin_active()->set_refine_flag();

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.