你已经派生过 gprMax
镜像自地址
https://gitee.com/sunhf/gprMax.git
已同步 2025-08-08 07:24:19 +08:00
Fix bug when rank only contains the final snapshot step
这个提交包含在:
@@ -177,8 +177,10 @@ class MPIGrid(FDTDGrid):
|
|||||||
if self.is_coordinator():
|
if self.is_coordinator():
|
||||||
snapshots_by_rank: List[List[Optional[Snapshot]]] = [[] for _ in range(self.comm.size)]
|
snapshots_by_rank: List[List[Optional[Snapshot]]] = [[] for _ in range(self.comm.size)]
|
||||||
for s in self.snapshots:
|
for s in self.snapshots:
|
||||||
ranks = self.get_ranks_between_coordinates(s.start, s.stop)
|
ranks = self.get_ranks_between_coordinates(s.start, s.stop + s.step)
|
||||||
for rank in range(self.comm.size):
|
for rank in range(
|
||||||
|
self.comm.size
|
||||||
|
): # TODO: Loop over ranks in snapshot, not all ranks
|
||||||
if rank in ranks:
|
if rank in ranks:
|
||||||
snapshots_by_rank[rank].append(s)
|
snapshots_by_rank[rank].append(s)
|
||||||
else:
|
else:
|
||||||
@@ -197,7 +199,7 @@ class MPIGrid(FDTDGrid):
|
|||||||
comm = self.comm.Split()
|
comm = self.comm.Split()
|
||||||
assert isinstance(comm, MPI.Intracomm)
|
assert isinstance(comm, MPI.Intracomm)
|
||||||
start = self.get_grid_coord_from_coordinate(s.start)
|
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.comm = comm.Create_cart((stop - start).tolist())
|
||||||
|
|
||||||
s.start = self.global_to_local_coordinate(s.start)
|
s.start = self.global_to_local_coordinate(s.start)
|
||||||
|
在新工单中引用
屏蔽一个用户