Merge pull request #1426 from Adrian-Diaz/comm_tiled_sendself_fix
Add bugfix for comm_tiled_sendself
This commit is contained in:
@ -879,6 +879,7 @@ void CommTiled::borders()
|
||||
// swap atoms with other procs using pack_border(), unpack_border()
|
||||
// use Waitall() instead of Waitany() because calls to unpack_border()
|
||||
// must increment per-atom arrays in ascending order
|
||||
// For the same reason, sendself unpacks must occur after recvother unpacks
|
||||
|
||||
if (ghost_velocity) {
|
||||
if (recvother[iswap]) {
|
||||
@ -894,13 +895,6 @@ void CommTiled::borders()
|
||||
MPI_Send(buf_send,n,MPI_DOUBLE,sendproc[iswap][m],0,world);
|
||||
}
|
||||
}
|
||||
if (sendself[iswap]) {
|
||||
avec->pack_border_vel(sendnum[iswap][nsend],sendlist[iswap][nsend],
|
||||
buf_send,pbc_flag[iswap][nsend],
|
||||
pbc[iswap][nsend]);
|
||||
avec->unpack_border_vel(recvnum[iswap][nrecv],firstrecv[iswap][nrecv],
|
||||
buf_send);
|
||||
}
|
||||
if (recvother[iswap]) {
|
||||
MPI_Waitall(nrecv,requests,MPI_STATUS_IGNORE);
|
||||
for (m = 0; m < nrecv; m++)
|
||||
@ -908,6 +902,13 @@ void CommTiled::borders()
|
||||
&buf_recv[size_border*
|
||||
forward_recv_offset[iswap][m]]);
|
||||
}
|
||||
if (sendself[iswap]) {
|
||||
avec->pack_border_vel(sendnum[iswap][nsend],sendlist[iswap][nsend],
|
||||
buf_send,pbc_flag[iswap][nsend],
|
||||
pbc[iswap][nsend]);
|
||||
avec->unpack_border_vel(recvnum[iswap][nrecv],firstrecv[iswap][nrecv],
|
||||
buf_send);
|
||||
}
|
||||
|
||||
} else {
|
||||
if (recvother[iswap]) {
|
||||
@ -923,12 +924,6 @@ void CommTiled::borders()
|
||||
MPI_Send(buf_send,n,MPI_DOUBLE,sendproc[iswap][m],0,world);
|
||||
}
|
||||
}
|
||||
if (sendself[iswap]) {
|
||||
avec->pack_border(sendnum[iswap][nsend],sendlist[iswap][nsend],
|
||||
buf_send,pbc_flag[iswap][nsend],pbc[iswap][nsend]);
|
||||
avec->unpack_border(recvnum[iswap][nsend],firstrecv[iswap][nsend],
|
||||
buf_send);
|
||||
}
|
||||
if (recvother[iswap]) {
|
||||
MPI_Waitall(nrecv,requests,MPI_STATUS_IGNORE);
|
||||
for (m = 0; m < nrecv; m++)
|
||||
@ -936,6 +931,12 @@ void CommTiled::borders()
|
||||
&buf_recv[size_border*
|
||||
forward_recv_offset[iswap][m]]);
|
||||
}
|
||||
if (sendself[iswap]) {
|
||||
avec->pack_border(sendnum[iswap][nsend],sendlist[iswap][nsend],
|
||||
buf_send,pbc_flag[iswap][nsend],pbc[iswap][nsend]);
|
||||
avec->unpack_border(recvnum[iswap][nrecv],firstrecv[iswap][nrecv],
|
||||
buf_send);
|
||||
}
|
||||
}
|
||||
|
||||
// increment ghost atoms
|
||||
|
||||
Reference in New Issue
Block a user