]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Let a function return its product, rather than use a reference argument.
authorWolfgang Bangerth <bangerth@colostate.edu>
Tue, 18 Jul 2017 23:16:11 +0000 (17:16 -0600)
committerWolfgang Bangerth <bangerth@colostate.edu>
Tue, 18 Jul 2017 23:16:11 +0000 (17:16 -0600)
While there, also make the function 'const', which requires a bit of surgery in a variety
of places where we did not accurately propagate constness.

include/deal.II/distributed/p4est_wrappers.h
include/deal.II/distributed/tria.h
source/distributed/p4est_wrappers.cc
source/distributed/tria.cc
source/dofs/dof_handler_policy.cc

index 01c8749a7dbbd92004693bc12e8e0d3735129147..42d9e0f27e0507d0d0d24d26bfe80d3fe237f0a7 100644 (file)
@@ -572,9 +572,9 @@ namespace internal
     template <int dim, int spacedim>
     struct FindGhosts
     {
-      typename dealii::parallel::distributed::Triangulation<dim,spacedim> *triangulation;
-      sc_array_t                                                          *subids;
-      std::map<unsigned int, std::set<dealii::types::subdomain_id> >      *vertices_with_ghost_neighbors;
+      const typename dealii::parallel::distributed::Triangulation<dim,spacedim> *triangulation;
+      sc_array_t                                                                *subids;
+      std::map<unsigned int, std::set<dealii::types::subdomain_id> >            *vertices_with_ghost_neighbors;
     };
 
 
index 3586348ae1c22571b38bb4a8a0d5ae265883f8dc..893c5747e16fb778c75776a18be6c76274a2f1f8 100644 (file)
@@ -858,14 +858,12 @@ namespace parallel
       get_cell_weights();
 
       /**
-       * Fills a map that, for each vertex, lists all the processors whose
+       * Return a map that, for each vertex, lists all the processors whose
        * subdomains are adjacent to that vertex. Used by
        * DoFHandler::Policy::ParallelDistributed.
        */
-      void
-      fill_vertices_with_ghost_neighbors
-      (std::map<unsigned int, std::set<dealii::types::subdomain_id> >
-       &vertices_with_ghost_neighbors);
+      std::map<unsigned int, std::set<dealii::types::subdomain_id> >
+      compute_vertices_with_ghost_neighbors () const;
 
       /**
        * Fills a map that, for each vertex, lists all the processors whose
@@ -989,10 +987,8 @@ namespace parallel
        * Like above, this method, which is only implemented for dim = 2 or 3,
        * needs a stub because it is used in dof_handler_policy.cc
        */
-      void
-      fill_vertices_with_ghost_neighbors
-      (std::map<unsigned int, std::set<dealii::types::subdomain_id> >
-       &vertices_with_ghost_neighbors);
+      std::map<unsigned int, std::set<dealii::types::subdomain_id> >
+      compute_vertices_with_ghost_neighbors () const;
 
       /**
        * Like above, this method, which is only implemented for dim = 2 or 3,
index a0cef5fe5dcf98913b87ad44817d6d818dbd5501..41cb8266aa5d8e8752002a12dd98ffd895e34c51 100644 (file)
@@ -14,9 +14,9 @@ namespace internal
       template <int dim, int spacedim>
       typename dealii::Triangulation<dim,spacedim>::cell_iterator
       cell_from_quad
-      (typename dealii::parallel::distributed::Triangulation<dim,spacedim> *triangulation,
-       typename dealii::internal::p4est::types<dim>::topidx treeidx,
-       typename dealii::internal::p4est::types<dim>::quadrant &quad)
+      (const dealii::parallel::distributed::Triangulation<dim,spacedim> *triangulation,
+       const typename dealii::internal::p4est::types<dim>::topidx treeidx,
+       const typename dealii::internal::p4est::types<dim>::quadrant &quad)
       {
         int i, l = quad.level;
         dealii::types::global_dof_index dealii_index =
@@ -54,7 +54,7 @@ namespace internal
           (info->sides.array);
         FindGhosts<dim,spacedim> *fg = static_cast<FindGhosts<dim,spacedim> *>(user_data);
         sc_array_t *subids = fg->subids;
-        typename dealii::parallel::distributed::Triangulation<dim,spacedim> *triangulation = fg->triangulation;
+        const dealii::parallel::distributed::Triangulation<dim,spacedim> *triangulation = fg->triangulation;
         int nsubs;
         dealii::types::subdomain_id *subdomain_ids;
         std::map<unsigned int, std::set<dealii::types::subdomain_id> >
@@ -116,7 +116,7 @@ namespace internal
           (info->sides.array);
         FindGhosts<dim,spacedim> *fg = static_cast<FindGhosts<dim,spacedim> *>(user_data);
         sc_array_t *subids = fg->subids;
-        typename dealii::parallel::distributed::Triangulation<dim,spacedim> *triangulation = fg->triangulation;
+        const dealii::parallel::distributed::Triangulation<dim,spacedim> *triangulation = fg->triangulation;
         int nsubs;
         dealii::types::subdomain_id *subdomain_ids;
         std::map<unsigned int, std::set<dealii::types::subdomain_id> >
@@ -187,7 +187,7 @@ namespace internal
           (info->sides.array);
         FindGhosts<dim,spacedim> *fg = static_cast<FindGhosts<dim,spacedim> *>(user_data);
         sc_array_t *subids = fg->subids;
-        typename dealii::parallel::distributed::Triangulation<dim,spacedim> *triangulation = fg->triangulation;
+        const dealii::parallel::distributed::Triangulation<dim,spacedim> *triangulation = fg->triangulation;
         int nsubs;
         dealii::types::subdomain_id *subdomain_ids;
         std::map<unsigned int, std::set<dealii::types::subdomain_id> >
index f67891a4a05c5dc6d16cb4f4b1892692650cc422..a1488d4365b5ae6619b5ac32f78b2c4d18e0f06b 100644 (file)
@@ -3382,14 +3382,13 @@ namespace parallel
      * This is achieved via the p4est_iterate/p8est_iterate tool
      */
     template <int dim, int spacedim>
-    void
-    Triangulation<dim,spacedim>::
-    fill_vertices_with_ghost_neighbors
-    (std::map<unsigned int, std::set<dealii::types::subdomain_id> >
-     &vertices_with_ghost_neighbors)
+    std::map<unsigned int, std::set<dealii::types::subdomain_id> >
+    Triangulation<dim,spacedim>::compute_vertices_with_ghost_neighbors () const
     {
       Assert (dim>1, ExcNotImplemented());
 
+      std::map<unsigned int, std::set<dealii::types::subdomain_id> > vertices_with_ghost_neighbors;
+
       dealii::internal::p4est::FindGhosts<dim,spacedim> fg;
       fg.subids = sc_array_new (sizeof (dealii::types::subdomain_id));
       fg.triangulation = this;
@@ -3400,6 +3399,8 @@ namespace parallel
           static_cast<void *>(&fg));
 
       sc_array_destroy (fg.subids);
+
+      return vertices_with_ghost_neighbors;
     }
 
 
@@ -3900,13 +3901,12 @@ namespace parallel
     }
 
     template <int spacedim>
-    void
+    std::map<unsigned int, std::set<dealii::types::subdomain_id> >
     Triangulation<1,spacedim>::
-    fill_vertices_with_ghost_neighbors
-    (std::map<unsigned int, std::set<dealii::types::subdomain_id> >
-     &/*vertices_with_ghost_neighbors*/)
+    compute_vertices_with_ghost_neighbors () const
     {
       Assert (false, ExcNotImplemented());
+      return std::map<unsigned int, std::set<dealii::types::subdomain_id> >();
     }
 
     template <int spacedim>
index 43fe9d76ac26b7366e830fee2d19ce2a2181b35e..057d4a883c0eae43f3a63ebe2a43c38608a8aead 100644 (file)
@@ -3637,10 +3637,9 @@ namespace internal
 
           // add each ghostcell's subdomain to the vertex and keep track
           // of interesting neighbors
-          std::map<unsigned int, std::set<dealii::types::subdomain_id> >
-          vertices_with_ghost_neighbors;
-
-          triangulation->fill_vertices_with_ghost_neighbors (vertices_with_ghost_neighbors);
+          const std::map<unsigned int, std::set<dealii::types::subdomain_id> >
+          vertices_with_ghost_neighbors
+            = triangulation->compute_vertices_with_ghost_neighbors ();
 
 
           // Send and receive cells. After this, only the local cells
@@ -4112,10 +4111,9 @@ namespace internal
 
           // add each ghostcells' subdomain to the vertex and keep track of
           // interesting neighbors
-          std::map<unsigned int, std::set<dealii::types::subdomain_id> >
-          vertices_with_ghost_neighbors;
-
-          tr->fill_vertices_with_ghost_neighbors (vertices_with_ghost_neighbors);
+          const std::map<unsigned int, std::set<dealii::types::subdomain_id> >
+          vertices_with_ghost_neighbors
+            = tr->compute_vertices_with_ghost_neighbors ();
 
           // Send and receive cells. After this, only the local cells are
           // marked, that received new data. This has to be communicated in a

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.