diff --git a/dune/vtk/datacollectors/structureddatacollector.hh b/dune/vtk/datacollectors/structureddatacollector.hh index bcfd4c34fa39061d442d16d38eb2a64223bbf27e..01c67603f2b8c78def753a7792bad9863c1f4173 100644 --- a/dune/vtk/datacollectors/structureddatacollector.hh +++ b/dune/vtk/datacollectors/structureddatacollector.hh @@ -101,15 +101,13 @@ public: // default implementation: subDataCollector_.update(); #if HAVE_MPI - int rank = -1; - int num_ranks = -1; - MPI_Comm_rank(gridView_.comm(), &rank); - MPI_Comm_size(gridView_.comm(), &num_ranks); + int rank = gridView_.comm().rank(); + int numRanks = gridView_.comm().size(); if (rank == 0) { - extents_.resize(num_ranks); - requests_.resize(num_ranks, MPI_REQUEST_NULL); - for (int i = 1; i < num_ranks; ++i) + extents_.resize(numRanks); + requests_.resize(numRanks, MPI_REQUEST_NULL); + for (int i = 1; i < numRanks; ++i) MPI_Irecv(extents_[i].data(), extents_[i].size(), MPI_INT, i, /*tag=*/6, gridView_.comm(), &requests_[i]); } @@ -149,8 +147,7 @@ public: // default implementation: MPI_Test(&sendRequest_, &sendFlag, &sendStatus); if (sendFlag) { - int rank = -1; - MPI_Comm_rank(gridView_.comm(), &rank); + int rank = gridView_.comm().rank(); if (rank != 0) { MPI_Isend(extent.data(), extent.size(), MPI_INT, 0, /*tag=*/6, gridView_.comm(), &sendRequest_); } else { @@ -169,12 +166,11 @@ public: // default implementation: #if HAVE_MPI writer(0, extents_[0], true); - int num_ranks = -1; - MPI_Comm_size(gridView_.comm(), &num_ranks); - for (int p = 1; p < num_ranks; ++p) { + int numRanks = gridView_.comm().size(); + for (int p = 1; p < numRanks; ++p) { int idx = -1; MPI_Status status; - MPI_Waitany(num_ranks, requests_.data(), &idx, &status); + MPI_Waitany(numRanks, requests_.data(), &idx, &status); if (idx != MPI_UNDEFINED) { assert(idx == status.MPI_SOURCE && status.MPI_TAG == 6); writer(idx, extents_[idx], true);