From: Martin Kronbichler Date: Mon, 3 Jun 2019 12:10:02 +0000 (+0200) Subject: Use new compute_locally_owned_dofs_per_processor X-Git-Tag: v9.2.0-rc1~1440^2~1 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ec16564e9537803a38901679461a3d753970ddbd;p=dealii.git Use new compute_locally_owned_dofs_per_processor --- diff --git a/source/dofs/dof_renumbering.cc b/source/dofs/dof_renumbering.cc index 777250c0b1..8487699a8d 100644 --- a/source/dofs/dof_renumbering.cc +++ b/source/dofs/dof_renumbering.cc @@ -1372,14 +1372,16 @@ namespace DoFRenumbering dynamic_cast *>( &dof_handler.get_triangulation())) { - const std::vector - &n_locally_owned_dofs_per_processor = - dof_handler.n_locally_owned_dofs_per_processor(); - my_starting_index = - std::accumulate(n_locally_owned_dofs_per_processor.begin(), - n_locally_owned_dofs_per_processor.begin() + - tria->locally_owned_subdomain(), - types::global_dof_index(0)); +#ifdef DEAL_II_WITH_MPI + types::global_dof_index local_size = + dof_handler.locally_owned_dofs().n_elements(); + MPI_Exscan(&local_size, + &my_starting_index, + 1, + DEAL_II_DOF_INDEX_MPI_TYPE, + MPI_SUM, + tria->get_communicator()); +#endif } if (const parallel::distributed::Triangulation *tria = diff --git a/source/multigrid/mg_transfer_internal.cc b/source/multigrid/mg_transfer_internal.cc index 34fa8a6c08..71918c5e41 100644 --- a/source/multigrid/mg_transfer_internal.cc +++ b/source/multigrid/mg_transfer_internal.cc @@ -191,7 +191,7 @@ namespace internal locally_owned_mg_dofs_per_processor; for (unsigned int l = 0; l < tria->n_global_levels(); ++l) locally_owned_mg_dofs_per_processor.push_back( - mg_dof.locally_owned_mg_dofs_per_processor(l)); + mg_dof.compute_locally_owned_mg_dofs_per_processor(l)); const std::set &neighbors = tria->level_ghost_owners(); diff --git a/source/multigrid/mg_transfer_prebuilt.cc b/source/multigrid/mg_transfer_prebuilt.cc index 0217ff46d4..3649998289 100644 --- a/source/multigrid/mg_transfer_prebuilt.cc +++ b/source/multigrid/mg_transfer_prebuilt.cc @@ -284,7 +284,7 @@ MGTransferPrebuilt::build_matrices( // Compute # of locally owned MG dofs / processor for distribution const std::vector<::dealii::IndexSet> locally_owned_mg_dofs_per_processor = - mg_dof.locally_owned_mg_dofs_per_processor(level + 1); + mg_dof.compute_locally_owned_mg_dofs_per_processor(level + 1); std::vector<::dealii::types::global_dof_index> n_locally_owned_mg_dofs_per_processor( locally_owned_mg_dofs_per_processor.size(), 0);