]> https://gitweb.dealii.org/ - dealii.git/commitdiff
exchange refinement flags: doc and changelog 16478/head
authorTimo Heister <timo.heister@gmail.com>
Mon, 15 Jan 2024 21:07:32 +0000 (16:07 -0500)
committerTimo Heister <timo.heister@gmail.com>
Tue, 16 Jan 2024 02:44:10 +0000 (21:44 -0500)
doc/news/changes/minor/20240115tjhei [new file with mode: 0644]
include/deal.II/distributed/tria.h

diff --git a/doc/news/changes/minor/20240115tjhei b/doc/news/changes/minor/20240115tjhei
new file mode 100644 (file)
index 0000000..de5d27a
--- /dev/null
@@ -0,0 +1,7 @@
+Changed:
+parallel::distributed::Triangulation::prepare_coarsening_and_refinement()
+is now a collective call that exchanges coarsen/refinement flags on
+ghost cells. This makes adaptive refinement independent of the number
+of MPI ranks involved.
+<br>
+(Timo Heister, Quang Hoang, Vladimir Yushutin, 2024/01/15)
index 96856f4a4205b06bff36e52da5d81138b2ea0c92..908f17835b57e430c6695321145bfbf1ddb381a7 100644 (file)
@@ -484,14 +484,17 @@ namespace parallel
        * Coarsen and refine the mesh according to refinement and coarsening
        * flags set.
        *
-       * Since the current processor only has control over those cells it owns
-       * (i.e. the ones for which <code>cell-@>subdomain_id() ==
-       * this-@>locally_owned_subdomain()</code>), refinement and coarsening
-       * flags are only respected for those locally owned cells. Flags may be
-       * set on other cells as well (and may often, in fact, if you call
-       * dealii::Triangulation::prepare_coarsening_and_refinement()) but will
-       * be largely ignored: the decision to refine the global mesh will only
-       * be affected by flags set on locally owned cells.
+       * Since the current processor only has control over those cells
+       * it owns (i.e. the ones for which <code>cell-@>subdomain_id()
+       * == this-@>locally_owned_subdomain()</code>), refinement and
+       * coarsening flags are only respected for those locally owned
+       * cells. Flags set on other cells will be ignored: the decision
+       * to refine the global mesh will only be affected by flags set
+       * on locally owned cells.
+       *
+       * This is a
+       * @ref GlossCollectiveOperation "collective operation"
+       * and needs to be called by all participating MPI ranks.
        *
        * @note This function by default partitions the mesh in such a way that
        * the number of cells on all processors is roughly equal. If you want
@@ -513,10 +516,16 @@ namespace parallel
       execute_coarsening_and_refinement() override;
 
       /**
-       * Override the implementation of prepare_coarsening_and_refinement from
-       * the base class. This is necessary if periodic boundaries are enabled
-       * and the level difference over vertices over the periodic boundary
-       * must not be more than 2:1.
+       * Prepare the triangulation for coarsening and refinement.
+       *
+       * This function performs necessary modifications of the
+       * coarsening and refinement flags to be consistent in parallel,
+       * to conform to smoothing flags set, and to conform to 2:1
+       * hanging node constraints.
+       *
+       * This is a
+       * @ref GlossCollectiveOperation "collective operation"
+       * and needs to be called by all participating MPI ranks.
        */
       virtual bool
       prepare_coarsening_and_refinement() override;
@@ -579,7 +588,9 @@ namespace parallel
       memory_consumption_p4est() const;
 
       /**
-       * A @ref GlossCollectiveOperation "collective operation" that produces a sequence of output files with
+       * A
+       * @ref GlossCollectiveOperation "collective operation"
+       * that produces a sequence of output files with
        * the given file base name that contain the mesh in VTK format.
        *
        * More than anything else, this function is useful for debugging the

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.