]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Deprecated autopartition parameter. 12601/head
authorMarc Fehling <marc.fehling@gmx.net>
Sun, 25 Jul 2021 23:16:11 +0000 (17:16 -0600)
committerMarc Fehling <mafehling.git@gmail.com>
Wed, 18 Aug 2021 17:10:53 +0000 (11:10 -0600)
doc/news/changes/incompatibilities/20210724Fehling [new file with mode: 0644]
include/deal.II/distributed/fully_distributed_tria.h
include/deal.II/distributed/tria.h
include/deal.II/distributed/tria_base.h
source/distributed/fully_distributed_tria.cc
source/distributed/tria.cc
tests/mpi/cell_data_transfer_02.with_p4est=true.mpirun=8.output
tests/mpi/hp_active_fe_indices_transfer_02.with_p4est=true.mpirun=8.output

diff --git a/doc/news/changes/incompatibilities/20210724Fehling b/doc/news/changes/incompatibilities/20210724Fehling
new file mode 100644 (file)
index 0000000..70e4785
--- /dev/null
@@ -0,0 +1,5 @@
+Deprecated: The autopartition parameter has been removed from
+parallel::DistributedTriangulationBase::load() and all inheriting
+classes.
+<br>
+(Marc Fehling, 2021/07/24)
index 326dec1120c66e2d0344591b8050fe86c38cb8c6..2de0ba3d75f85148939cc0ae4141b45554ad711b 100644 (file)
@@ -252,8 +252,16 @@ namespace parallel
        * in with notify_ready_to_unpack() after calling load().
        */
       virtual void
-      load(const std::string &filename,
-           const bool         autopartition = false) override;
+      load(const std::string &filename) override;
+
+      /**
+       * @copydoc load()
+       *
+       * @deprecated The autopartition parameter has been removed.
+       */
+      DEAL_II_DEPRECATED_EARLY
+      virtual void
+      load(const std::string &filename, const bool autopartition) override;
 
     private:
       virtual unsigned int
index f64343ccc1cf9c29aaf7a9c9ac6675fb0fb31970..51f22b9712dbc569eca2fbf3139d420f61870efe 100644 (file)
@@ -604,16 +604,18 @@ namespace parallel
        * be read in with
        * DistributedTriangulationBase::DataTransfer::notify_ready_to_unpack()
        * after calling load().
+       */
+      virtual void
+      load(const std::string &filename) override;
+
+      /**
+       * @copydoc load()
        *
-       * The @p autopartition flag tells p4est to ignore the partitioning that
-       * the triangulation had when it was saved and make it uniform upon
-       * loading. If @p autopartition is set to true, the triangulation will
-       * always be repartitioned. If set to false, it is only repartitioned if
-       * needed (i.e., if a different number of MPI processes is encountered).
+       * @deprecated The autopartition parameter has been removed.
        */
+      DEAL_II_DEPRECATED_EARLY
       virtual void
-      load(const std::string &filename,
-           const bool         autopartition = true) override;
+      load(const std::string &filename, const bool autopartition) override;
 
       /**
        * Load the refinement information from a given parallel forest. This
@@ -870,8 +872,15 @@ namespace parallel
        * compiler.
        */
       virtual void
-      load(const std::string &filename,
-           const bool         autopartition = true) override;
+      load(const std::string &filename) override;
+
+      /**
+       * This function is not implemented, but needs to be present for the
+       * compiler.
+       */
+      DEAL_II_DEPRECATED_EARLY
+      virtual void
+      load(const std::string &filename, const bool autopartition) override;
 
       /**
        * This function is not implemented, but needs to be present for the
@@ -1000,8 +1009,17 @@ namespace parallel
        * this class.
        */
       virtual void
+      load(const std::string & /*filename*/) override
+      {}
+
+      /**
+       * Dummy replacement to allow for better error messages when compiling
+       * this class.
+       */
+      DEAL_II_DEPRECATED_EARLY
+      virtual void
       load(const std::string & /*filename*/,
-           const bool /*autopartition*/ = true) override
+           const bool /*autopartition*/) override
       {}
 
       /**
index 076a4e6e06daf24c1713df72896d0a8fc2f3ef6f..96fb2a5d4b13838d17fe979fb3f2a0faefe3d57b 100644 (file)
@@ -480,7 +480,16 @@ namespace parallel
      * notify_ready_to_unpack() after calling load().
      */
     virtual void
-    load(const std::string &filename, const bool autopartition = true) = 0;
+    load(const std::string &filename) = 0;
+
+    /**
+     * @copydoc load()
+     *
+     * @deprecated The autopartition parameter has been removed.
+     */
+    DEAL_II_DEPRECATED_EARLY
+    virtual void
+    load(const std::string &filename, const bool autopartition) = 0;
 
     /**
      * Register a function that can be used to attach data of fixed size
index 22033a0afaf5cae79594e4fb004d81292e142eac..098f7951fc4eec75d97d9eb3ada53f6a3de63c08 100644 (file)
@@ -558,15 +558,9 @@ namespace parallel
 
     template <int dim, int spacedim>
     void
-    Triangulation<dim, spacedim>::load(const std::string &filename,
-                                       const bool         autopartition)
+    Triangulation<dim, spacedim>::load(const std::string &filename)
     {
 #ifdef DEAL_II_WITH_MPI
-      AssertThrow(
-        autopartition == false,
-        ExcMessage(
-          "load() only works if run with the same number of MPI processes used for saving the triangulation, hence autopartition is disabled."));
-
       Assert(this->n_cells() == 0,
              ExcMessage("load() only works if the Triangulation is empty!"));
 
@@ -694,7 +688,6 @@ namespace parallel
       this->update_number_cache();
 #else
       (void)filename;
-      (void)autopartition;
 
       AssertThrow(false, ExcNeedsMPI());
 #endif
@@ -702,6 +695,17 @@ namespace parallel
 
 
 
+    template <int dim, int spacedim>
+    void
+    Triangulation<dim, spacedim>::load(const std::string &filename,
+                                       const bool         autopartition)
+    {
+      (void)autopartition;
+      load(filename);
+    }
+
+
+
     template <int dim, int spacedim>
     void
     Triangulation<dim, spacedim>::update_number_cache()
index 384da4c46531ff45867082f4c1f9d7a6410da2f0..648aab7efbcda4345725f2d61c81e440c817e8a6 100644 (file)
@@ -1477,8 +1477,7 @@ namespace parallel
 
     template <int dim, int spacedim>
     void
-    Triangulation<dim, spacedim>::load(const std::string &filename,
-                                       const bool         autopartition)
+    Triangulation<dim, spacedim>::load(const std::string &filename)
     {
       Assert(
         this->n_cells() > 0,
@@ -1535,23 +1534,18 @@ namespace parallel
         this->mpi_communicator,
         0,
         0,
-        static_cast<int>(autopartition),
+        1,
         0,
         this,
         &connectivity);
 
-      if (numcpus != Utilities::MPI::n_mpi_processes(this->mpi_communicator))
-        {
-          // We are changing the number of CPUs so we need to repartition.
-          // Note that p4est actually distributes the cells between the changed
-          // number of CPUs and so everything works without this call, but
-          // this command changes the distribution for some reason, so we
-          // will leave it in here.
-          dealii::internal::p4est::functions<dim>::partition(
-            parallel_forest,
-            /* prepare coarsening */ 1,
-            /* weight_callback */ nullptr);
-        }
+      // We partition the p4est mesh that it conforms to the requirements of the
+      // deal.II mesh, i.e., partition for coarsening.
+      // This function call is optional.
+      dealii::internal::p4est::functions<dim>::partition(
+        parallel_forest,
+        /* prepare coarsening */ 1,
+        /* weight_callback */ nullptr);
 
       try
         {
@@ -1581,6 +1575,17 @@ namespace parallel
 
 
 
+    template <int dim, int spacedim>
+    void
+    Triangulation<dim, spacedim>::load(const std::string &filename,
+                                       const bool         autopartition)
+    {
+      (void)autopartition;
+      load(filename);
+    }
+
+
+
     template <int dim, int spacedim>
     void
     Triangulation<dim, spacedim>::load(
@@ -3489,6 +3494,15 @@ namespace parallel
 
 
 
+    template <int spacedim>
+    void
+    Triangulation<1, spacedim>::load(const std::string &)
+    {
+      Assert(false, ExcNotImplemented());
+    }
+
+
+
     template <int spacedim>
     void
     Triangulation<1, spacedim>::load(const std::string &, const bool)
index 2597c8c23c22a303a9a5aa9e3c69c04d1f99b76f..2d5542914e17f47fad2ea9413f3d9f1124e1c876 100644 (file)
@@ -7,6 +7,8 @@ DEAL:0:2d::cellid=0_1:3 parentid=0
 DEAL:0:2d::reading
 DEAL:0:2d::cellid=0_1:0 parentid=0
 DEAL:0:2d::cellid=0_1:1 parentid=0
+DEAL:0:2d::cellid=0_1:2 parentid=0
+DEAL:0:2d::cellid=0_1:3 parentid=0
 DEAL:0:2d::OK
 DEAL:0:3d::writing
 DEAL:0:3d::cellid=0_1:0 parentid=0
@@ -30,8 +32,6 @@ DEAL:0:3d::OK
 
 DEAL:1:2d::writing
 DEAL:1:2d::reading
-DEAL:1:2d::cellid=0_1:2 parentid=0
-DEAL:1:2d::cellid=0_1:3 parentid=0
 DEAL:1:2d::OK
 DEAL:1:3d::writing
 DEAL:1:3d::cellid=1_1:0 parentid=1
@@ -62,6 +62,8 @@ DEAL:2:2d::cellid=1_1:3 parentid=1
 DEAL:2:2d::reading
 DEAL:2:2d::cellid=1_1:0 parentid=1
 DEAL:2:2d::cellid=1_1:1 parentid=1
+DEAL:2:2d::cellid=1_1:2 parentid=1
+DEAL:2:2d::cellid=1_1:3 parentid=1
 DEAL:2:2d::OK
 DEAL:2:3d::writing
 DEAL:2:3d::cellid=2_1:0 parentid=2
@@ -86,8 +88,6 @@ DEAL:2:3d::OK
 
 DEAL:3:2d::writing
 DEAL:3:2d::reading
-DEAL:3:2d::cellid=1_1:2 parentid=1
-DEAL:3:2d::cellid=1_1:3 parentid=1
 DEAL:3:2d::OK
 DEAL:3:3d::writing
 DEAL:3:3d::cellid=3_1:0 parentid=3
@@ -118,6 +118,8 @@ DEAL:4:2d::cellid=2_1:3 parentid=2
 DEAL:4:2d::reading
 DEAL:4:2d::cellid=2_1:0 parentid=2
 DEAL:4:2d::cellid=2_1:1 parentid=2
+DEAL:4:2d::cellid=2_1:2 parentid=2
+DEAL:4:2d::cellid=2_1:3 parentid=2
 DEAL:4:2d::OK
 DEAL:4:3d::writing
 DEAL:4:3d::cellid=4_1:0 parentid=4
@@ -142,8 +144,6 @@ DEAL:4:3d::OK
 
 DEAL:5:2d::writing
 DEAL:5:2d::reading
-DEAL:5:2d::cellid=2_1:2 parentid=2
-DEAL:5:2d::cellid=2_1:3 parentid=2
 DEAL:5:2d::OK
 DEAL:5:3d::writing
 DEAL:5:3d::cellid=5_1:0 parentid=5
@@ -174,6 +174,8 @@ DEAL:6:2d::cellid=3_1:3 parentid=3
 DEAL:6:2d::reading
 DEAL:6:2d::cellid=3_1:0 parentid=3
 DEAL:6:2d::cellid=3_1:1 parentid=3
+DEAL:6:2d::cellid=3_1:2 parentid=3
+DEAL:6:2d::cellid=3_1:3 parentid=3
 DEAL:6:2d::OK
 DEAL:6:3d::writing
 DEAL:6:3d::cellid=6_1:0 parentid=6
@@ -198,8 +200,6 @@ DEAL:6:3d::OK
 
 DEAL:7:2d::writing
 DEAL:7:2d::reading
-DEAL:7:2d::cellid=3_1:2 parentid=3
-DEAL:7:2d::cellid=3_1:3 parentid=3
 DEAL:7:2d::OK
 DEAL:7:3d::writing
 DEAL:7:3d::cellid=7_1:0 parentid=7
index 4c2d16a67df6e148abdb417ec0bd3c1594e4dc43..40214f5a67b0dfa946a460837744bf72062b3503 100644 (file)
@@ -7,10 +7,13 @@ DEAL:0:2d::cellid=0_1:3 fe_index=3
 DEAL:0:2d::reading
 DEAL:0:2d::cellid=0_1:0 fe_index=0
 DEAL:0:2d::cellid=0_1:1 fe_index=1
-DEAL:0:2d::cellid=0_1:2 fe_index=2 ghost
-DEAL:0:2d::cellid=0_1:3 fe_index=3 ghost
+DEAL:0:2d::cellid=0_1:2 fe_index=2
+DEAL:0:2d::cellid=0_1:3 fe_index=3
 DEAL:0:2d::cellid=1_1:0 fe_index=0 ghost
 DEAL:0:2d::cellid=1_1:2 fe_index=2 ghost
+DEAL:0:2d::cellid=2_1:0 fe_index=0 ghost
+DEAL:0:2d::cellid=2_1:1 fe_index=1 ghost
+DEAL:0:2d::cellid=3_1:0 fe_index=0 ghost
 DEAL:0:2d::OK
 DEAL:0:3d::writing
 DEAL:0:3d::cellid=0_1:0 fe_index=0
@@ -53,15 +56,6 @@ DEAL:0:3d::OK
 
 DEAL:1:2d::writing
 DEAL:1:2d::reading
-DEAL:1:2d::cellid=0_1:0 fe_index=0 ghost
-DEAL:1:2d::cellid=0_1:1 fe_index=1 ghost
-DEAL:1:2d::cellid=0_1:2 fe_index=2
-DEAL:1:2d::cellid=0_1:3 fe_index=3
-DEAL:1:2d::cellid=1_1:0 fe_index=0 ghost
-DEAL:1:2d::cellid=1_1:2 fe_index=2 ghost
-DEAL:1:2d::cellid=2_1:0 fe_index=0 ghost
-DEAL:1:2d::cellid=2_1:1 fe_index=1 ghost
-DEAL:1:2d::cellid=3_1:0 fe_index=0 ghost
 DEAL:1:2d::OK
 DEAL:1:3d::writing
 DEAL:1:3d::cellid=1_1:0 fe_index=0
@@ -113,8 +107,11 @@ DEAL:2:2d::cellid=0_1:1 fe_index=1 ghost
 DEAL:2:2d::cellid=0_1:3 fe_index=3 ghost
 DEAL:2:2d::cellid=1_1:0 fe_index=0
 DEAL:2:2d::cellid=1_1:1 fe_index=1
-DEAL:2:2d::cellid=1_1:2 fe_index=2 ghost
-DEAL:2:2d::cellid=1_1:3 fe_index=3 ghost
+DEAL:2:2d::cellid=1_1:2 fe_index=2
+DEAL:2:2d::cellid=1_1:3 fe_index=3
+DEAL:2:2d::cellid=2_1:1 fe_index=1 ghost
+DEAL:2:2d::cellid=3_1:0 fe_index=0 ghost
+DEAL:2:2d::cellid=3_1:1 fe_index=1 ghost
 DEAL:2:2d::OK
 DEAL:2:3d::writing
 DEAL:2:3d::cellid=2_1:0 fe_index=0
@@ -158,15 +155,6 @@ DEAL:2:3d::OK
 
 DEAL:3:2d::writing
 DEAL:3:2d::reading
-DEAL:3:2d::cellid=0_1:1 fe_index=1 ghost
-DEAL:3:2d::cellid=0_1:3 fe_index=3 ghost
-DEAL:3:2d::cellid=1_1:0 fe_index=0 ghost
-DEAL:3:2d::cellid=1_1:1 fe_index=1 ghost
-DEAL:3:2d::cellid=1_1:2 fe_index=2
-DEAL:3:2d::cellid=1_1:3 fe_index=3
-DEAL:3:2d::cellid=2_1:1 fe_index=1 ghost
-DEAL:3:2d::cellid=3_1:0 fe_index=0 ghost
-DEAL:3:2d::cellid=3_1:1 fe_index=1 ghost
 DEAL:3:2d::OK
 DEAL:3:3d::writing
 DEAL:3:3d::cellid=3_1:0 fe_index=0
@@ -219,8 +207,8 @@ DEAL:4:2d::cellid=0_1:3 fe_index=3 ghost
 DEAL:4:2d::cellid=1_1:2 fe_index=2 ghost
 DEAL:4:2d::cellid=2_1:0 fe_index=0
 DEAL:4:2d::cellid=2_1:1 fe_index=1
-DEAL:4:2d::cellid=2_1:2 fe_index=2 ghost
-DEAL:4:2d::cellid=2_1:3 fe_index=3 ghost
+DEAL:4:2d::cellid=2_1:2 fe_index=2
+DEAL:4:2d::cellid=2_1:3 fe_index=3
 DEAL:4:2d::cellid=3_1:0 fe_index=0 ghost
 DEAL:4:2d::cellid=3_1:2 fe_index=2 ghost
 DEAL:4:2d::OK
@@ -266,12 +254,6 @@ DEAL:4:3d::OK
 
 DEAL:5:2d::writing
 DEAL:5:2d::reading
-DEAL:5:2d::cellid=2_1:0 fe_index=0 ghost
-DEAL:5:2d::cellid=2_1:1 fe_index=1 ghost
-DEAL:5:2d::cellid=2_1:2 fe_index=2
-DEAL:5:2d::cellid=2_1:3 fe_index=3
-DEAL:5:2d::cellid=3_1:0 fe_index=0 ghost
-DEAL:5:2d::cellid=3_1:2 fe_index=2 ghost
 DEAL:5:2d::OK
 DEAL:5:3d::writing
 DEAL:5:3d::cellid=5_1:0 fe_index=0
@@ -326,8 +308,8 @@ DEAL:6:2d::cellid=2_1:1 fe_index=1 ghost
 DEAL:6:2d::cellid=2_1:3 fe_index=3 ghost
 DEAL:6:2d::cellid=3_1:0 fe_index=0
 DEAL:6:2d::cellid=3_1:1 fe_index=1
-DEAL:6:2d::cellid=3_1:2 fe_index=2 ghost
-DEAL:6:2d::cellid=3_1:3 fe_index=3 ghost
+DEAL:6:2d::cellid=3_1:2 fe_index=2
+DEAL:6:2d::cellid=3_1:3 fe_index=3
 DEAL:6:2d::OK
 DEAL:6:3d::writing
 DEAL:6:3d::cellid=6_1:0 fe_index=0
@@ -371,12 +353,6 @@ DEAL:6:3d::OK
 
 DEAL:7:2d::writing
 DEAL:7:2d::reading
-DEAL:7:2d::cellid=2_1:1 fe_index=1 ghost
-DEAL:7:2d::cellid=2_1:3 fe_index=3 ghost
-DEAL:7:2d::cellid=3_1:0 fe_index=0 ghost
-DEAL:7:2d::cellid=3_1:1 fe_index=1 ghost
-DEAL:7:2d::cellid=3_1:2 fe_index=2
-DEAL:7:2d::cellid=3_1:3 fe_index=3
 DEAL:7:2d::OK
 DEAL:7:3d::writing
 DEAL:7:3d::cellid=7_1:0 fe_index=0

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.