git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@12285 f3b2605a-c512-4ea7-a41b-209d697bcdaa

This commit is contained in:
sjplimp
2014-08-08 17:55:44 +00:00
parent 9026afed5c
commit c1e12f9508
22 changed files with 299 additions and 316 deletions

View File

@ -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;