warn about growing the box with read_data add messing up coordinates
This commit is contained in:
@ -551,6 +551,8 @@ void ReadData::command(int narg, char **arg)
|
||||
// only done if firstpass and not first data file
|
||||
|
||||
if (firstpass && addflag != NONE) {
|
||||
double oldboxlo[3] = { domain->boxlo[0], domain->boxlo[1] , domain->boxlo[2]};
|
||||
double oldboxhi[3] = { domain->boxhi[0], domain->boxhi[1] , domain->boxhi[2]};
|
||||
domain->boxlo[0] = MIN(domain->boxlo[0], boxlo[0] + shift[0]);
|
||||
domain->boxhi[0] = MAX(domain->boxhi[0], boxhi[0] + shift[0]);
|
||||
domain->boxlo[1] = MIN(domain->boxlo[1], boxlo[1] + shift[1]);
|
||||
@ -558,6 +560,25 @@ void ReadData::command(int narg, char **arg)
|
||||
domain->boxlo[2] = MIN(domain->boxlo[2], boxlo[2] + shift[2]);
|
||||
domain->boxhi[2] = MAX(domain->boxhi[2], boxhi[2] + shift[2]);
|
||||
|
||||
// check of box has changed. If yes, warn about non-zero image flags
|
||||
if ((oldboxlo[0] != domain->boxlo[0]) || (oldboxlo[1] != domain->boxlo[1]) ||
|
||||
(oldboxlo[2] != domain->boxlo[2]) || (oldboxhi[0] != domain->boxhi[0]) ||
|
||||
(oldboxhi[1] != domain->boxhi[1]) || (oldboxhi[2] != domain->boxhi[2])) {
|
||||
int iflag = 1;
|
||||
for (int i=0; i < atom->nlocal; ++i) {
|
||||
int xbox = (atom->image[i] & IMGMASK) - IMGMAX;
|
||||
int ybox = (atom->image[i] >> IMGBITS & IMGMASK) - IMGMAX;
|
||||
int zbox = (atom->image[i] >> IMG2BITS) - IMGMAX;
|
||||
if (xbox != 0) iflag = 1;
|
||||
if (ybox != 0) iflag = 1;
|
||||
if (zbox != 0) iflag = 1;
|
||||
}
|
||||
int flag_all;
|
||||
MPI_Allreduce(&iflag,&flag_all, 1, MPI_INT, MPI_SUM, world);
|
||||
if ((flag_all > 0) && (comm->me == 0))
|
||||
error->warning(FLERR,"Non-zero image flags with growing box leads to bad coordinates");
|
||||
}
|
||||
|
||||
// NOTE: not sure what to do about tilt value in subsequent data files
|
||||
//if (triclinic) {
|
||||
// domain->xy = xy; domain->xz = xz; domain->yz = yz;
|
||||
|
||||
Reference in New Issue
Block a user