From 89873a5963e214cc3924c2d802236180a6790829 Mon Sep 17 00:00:00 2001 From: nmannall Date: Tue, 6 Aug 2024 13:46:11 +0100 Subject: [PATCH] Fix bug when rank only contains the final snapshot step --- gprMax/grid/mpi_grid.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gprMax/grid/mpi_grid.py b/gprMax/grid/mpi_grid.py index 3aa58151..95604684 100644 --- a/gprMax/grid/mpi_grid.py +++ b/gprMax/grid/mpi_grid.py @@ -177,8 +177,10 @@ class MPIGrid(FDTDGrid): if self.is_coordinator(): snapshots_by_rank: List[List[Optional[Snapshot]]] = [[] for _ in range(self.comm.size)] for s in self.snapshots: - ranks = self.get_ranks_between_coordinates(s.start, s.stop) - for rank in range(self.comm.size): + ranks = self.get_ranks_between_coordinates(s.start, s.stop + s.step) + for rank in range( + self.comm.size + ): # TODO: Loop over ranks in snapshot, not all ranks if rank in ranks: snapshots_by_rank[rank].append(s) else: @@ -197,7 +199,7 @@ class MPIGrid(FDTDGrid): comm = self.comm.Split() assert isinstance(comm, MPI.Intracomm) start = self.get_grid_coord_from_coordinate(s.start) - stop = self.get_grid_coord_from_coordinate(s.stop) + 1 + stop = self.get_grid_coord_from_coordinate(s.stop + s.step) + 1 s.comm = comm.Create_cart((stop - start).tolist()) s.start = self.global_to_local_coordinate(s.start)