git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@12285 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
36
src/comm.cpp
36
src/comm.cpp
@ -161,6 +161,34 @@ void Comm::init()
|
||||
triclinic = domain->triclinic;
|
||||
map_style = atom->map_style;
|
||||
|
||||
// warn if any proc's sub-box is smaller than neigh skin
|
||||
// since may lead to lost atoms in exchange()
|
||||
// really should check every exchange() in case box size is shrinking
|
||||
// but seems overkill to do that
|
||||
|
||||
int flag = 0;
|
||||
if (!triclinic) {
|
||||
if (domain->subhi[0] - domain->sublo[0] < neighbor->skin) flag = 1;
|
||||
if (domain->subhi[1] - domain->sublo[1] < neighbor->skin) flag = 1;
|
||||
if (domain->dimension == 3)
|
||||
if (domain->subhi[2] - domain->sublo[2] < neighbor->skin) flag = 1;
|
||||
} else {
|
||||
double delta = domain->subhi_lamda[0] - domain->sublo_lamda[0];
|
||||
if (delta*domain->prd[0] < neighbor->skin) flag = 1;
|
||||
delta = domain->subhi_lamda[1] - domain->sublo_lamda[1];
|
||||
if (delta*domain->prd[1] < neighbor->skin) flag = 1;
|
||||
if (domain->dimension == 3) {
|
||||
delta = domain->subhi_lamda[2] - domain->sublo_lamda[2];
|
||||
if (delta*domain->prd[2] < neighbor->skin) flag = 1;
|
||||
}
|
||||
}
|
||||
|
||||
int flagall;
|
||||
MPI_Allreduce(&flag,&flagall,1,MPI_INT,MPI_SUM,world);
|
||||
if (flagall && me == 0)
|
||||
error->warning(FLERR,"Proc sub-domain size < neighbor skin - "
|
||||
"could lead to lost atoms");
|
||||
|
||||
// comm_only = 1 if only x,f are exchanged in forward/reverse comm
|
||||
// comm_x_only = 0 if ghost_velocity since velocities are added
|
||||
|
||||
@ -181,13 +209,13 @@ void Comm::init()
|
||||
for (int i = 0; i < modify->nfix; i++)
|
||||
size_border += modify->fix[i]->comm_border;
|
||||
|
||||
// maxexchange = max # of datums/atom in exchange communication
|
||||
// maxforward = # of datums in largest forward communication
|
||||
// maxreverse = # of datums in largest reverse communication
|
||||
// per-atom limits for communication
|
||||
// maxexchange = max # of datums in exchange comm, set in exchange()
|
||||
// maxforward = # of datums in largest forward comm
|
||||
// maxreverse = # of datums in largest reverse comm
|
||||
// query pair,fix,compute,dump for their requirements
|
||||
// pair style can force reverse comm even if newton off
|
||||
|
||||
maxexchange = BUFMIN + maxexchange_fix;
|
||||
maxforward = MAX(size_forward,size_border);
|
||||
maxreverse = size_reverse;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user