add check for number of local atom indices overflowing neighbor lists for molecular systems
This commit is contained in:
@ -855,6 +855,14 @@ void CommBrick::borders()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// For molecular systems we lose some bits for local atom indices due
|
||||||
|
// to encoding of special pairs in neighbor lists. Check for overflows.
|
||||||
|
|
||||||
|
if ((atom->molecular != Atom::ATOMIC)
|
||||||
|
&& ((atom->nlocal + atom->nghost) > NEIGHMASK))
|
||||||
|
error->one(FLERR,"Per-processor number of atoms is too large for "
|
||||||
|
"molecular neighbor lists");
|
||||||
|
|
||||||
// insure send/recv buffers are long enough for all forward & reverse comm
|
// insure send/recv buffers are long enough for all forward & reverse comm
|
||||||
|
|
||||||
int max = MAX(maxforward*smax,maxreverse*rmax);
|
int max = MAX(maxforward*smax,maxreverse*rmax);
|
||||||
|
|||||||
@ -1152,6 +1152,14 @@ void CommTiled::borders()
|
|||||||
atom->nghost += forward_recv_offset[iswap][n-1] + recvnum[iswap][n-1];
|
atom->nghost += forward_recv_offset[iswap][n-1] + recvnum[iswap][n-1];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// For molecular systems we lose some bits for local atom indices due
|
||||||
|
// to encoding of special pairs in neighbor lists. Check for overflows.
|
||||||
|
|
||||||
|
if ((atom->molecular != Atom::ATOMIC)
|
||||||
|
&& ((atom->nlocal + atom->nghost) > NEIGHMASK))
|
||||||
|
error->one(FLERR,"Per-processor number of atoms is too large for "
|
||||||
|
"molecular neighbor lists");
|
||||||
|
|
||||||
// insure send/recv buffers are long enough for all forward & reverse comm
|
// insure send/recv buffers are long enough for all forward & reverse comm
|
||||||
// send buf is for one forward or reverse sends to one proc
|
// send buf is for one forward or reverse sends to one proc
|
||||||
// recv buf is for all forward or reverse recvs in one swap
|
// recv buf is for all forward or reverse recvs in one swap
|
||||||
|
|||||||
Reference in New Issue
Block a user