From 74d396b9a988ad9479d734dca08be2eb2db9d462 Mon Sep 17 00:00:00 2001 From: Boris Martin <boris.martin@uliege.be> Date: Fri, 18 Apr 2025 14:09:23 +0200 Subject: [PATCH] Adding the ranks topology arg to SynGlobalDofs --- src/field/DistributedField.cpp | 2 +- src/field/DistributedField.h | 2 +- src/field/FieldInterface.cpp | 2 +- src/field/FieldInterface.h | 2 +- src/problem/Formulation.cpp | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/field/DistributedField.cpp b/src/field/DistributedField.cpp index e987a9cb..dbbcba96 100644 --- a/src/field/DistributedField.cpp +++ b/src/field/DistributedField.cpp @@ -391,7 +391,7 @@ namespace gmshfem::field } template< class T_Scalar, field::Form T_Form > - void DistributedField< T_Scalar, T_Form >::syncGlobalDofs(std::vector< unsigned long long > &localToGlobal, std::vector< unsigned long long > &readIDs) + void DistributedField< T_Scalar, T_Form >::syncGlobalDofs(std::vector< unsigned long long > &localToGlobal, std::vector< unsigned long long > &readIDs, const std::optional<std::vector<int>>& neighboringRanks) { #ifdef HAVE_MPI diff --git a/src/field/DistributedField.h b/src/field/DistributedField.h index b52a90f5..c66c1923 100644 --- a/src/field/DistributedField.h +++ b/src/field/DistributedField.h @@ -61,7 +61,7 @@ namespace gmshfem::field virtual void preProMPI(const std::optional<std::vector<int>>& neighboringRanks = std::nullopt) override; virtual std::unordered_set<dofs::Dof*> getAllOwnedDofs() override; virtual std::unordered_set<dofs::Dof*> getNonOwnedDofs() override; - virtual void syncGlobalDofs(std::vector<unsigned long long>& localToGlobal, std::vector<unsigned long long>& readIDs) override; + virtual void syncGlobalDofs(std::vector<unsigned long long>& localToGlobal, std::vector<unsigned long long>& readIDs, const std::optional<std::vector<int>>& neighboringRanks = std::nullopt) override; void dumpOwnedKeys(); public: diff --git a/src/field/FieldInterface.cpp b/src/field/FieldInterface.cpp index e1b31ef2..1ab626fe 100644 --- a/src/field/FieldInterface.cpp +++ b/src/field/FieldInterface.cpp @@ -169,7 +169,7 @@ namespace gmshfem::field } template< class T_Scalar > - void FieldInterface< T_Scalar >::syncGlobalDofs(std::vector<unsigned long long>& localToGlobal, std::vector<unsigned long long>& readIDs) + void FieldInterface< T_Scalar >::syncGlobalDofs(std::vector<unsigned long long>& localToGlobal, std::vector<unsigned long long>& readIDs, const std::optional<std::vector<int>>& neighboringRanks) { // Do nothing } diff --git a/src/field/FieldInterface.h b/src/field/FieldInterface.h index 3e29409c..d32b2436 100644 --- a/src/field/FieldInterface.h +++ b/src/field/FieldInterface.h @@ -244,7 +244,7 @@ namespace gmshfem::field virtual void preProMPI(const std::optional<std::vector<int>>& neighboringRanks = std::nullopt); virtual std::unordered_set<dofs::Dof*> getAllOwnedDofs(); virtual std::unordered_set<dofs::Dof*> getNonOwnedDofs(); - virtual void syncGlobalDofs(std::vector<unsigned long long>& localToGlobal, std::vector<unsigned long long>& readIDs); + virtual void syncGlobalDofs(std::vector<unsigned long long>& localToGlobal, std::vector<unsigned long long>& readIDs, const std::optional<std::vector<int>>& neighboringRanks = std::nullopt); public: diff --git a/src/problem/Formulation.cpp b/src/problem/Formulation.cpp index b7c52f04..12b67834 100644 --- a/src/problem/Formulation.cpp +++ b/src/problem/Formulation.cpp @@ -1242,7 +1242,7 @@ namespace gmshfem::problem timeSyncGlobal.tick(); /* A dof knows its gmsh ID and its global index -> let the field handle the sharing */ for (auto [tag, fieldInterfacePtr] : _unknownFields) { - fieldInterfacePtr->syncGlobalDofs(localToGlobalMap, localIdOfNonOwned); + fieldInterfacePtr->syncGlobalDofs(localToGlobalMap, localIdOfNonOwned, neighboringRanks); } common::GmshFem::BarrierMPI(); -- GitLab