diff --git a/src/field/DistributedField.cpp b/src/field/DistributedField.cpp index 6493c17b42fa9703dfc4cd33399435ef2fca6abb..aaebf9a4db80bd32a3aa577a2de20e0c28de4e98 100644 --- a/src/field/DistributedField.cpp +++ b/src/field/DistributedField.cpp @@ -465,6 +465,7 @@ namespace gmshfem::field MPI_Waitall(receiveRequests.size(), receiveRequests.data(), MPI_STATUSES_IGNORE); size_t total_size = std::reduce(recvSizes.begin(), recvSizes.end()); allSharedDofsArray.resize(total_size); + // 2) Transfer dofs indices sendRequests.clear(); sendRequests.resize(ranks.size()); receiveRequests.clear(); receiveRequests.resize(ranks.size()); size_t currentOffset = 0; @@ -476,6 +477,10 @@ namespace gmshfem::field MPI_Waitall(sendRequests.size(), sendRequests.data(), MPI_STATUSES_IGNORE); MPI_Waitall(receiveRequests.size(), receiveRequests.data(), MPI_STATUSES_IGNORE); MPI_Barrier(MPI_COMM_WORLD); + // 3) Add my dofs to the global array + for (auto entry: myOwnedDofs) { + allSharedDofsArray.push_back(entry); + } if(rank == 0) { msg::info << "Gathered allSharedDofsArray with peer-to-peer comms." << msg::endl; }