Merge pull request #928 from akohlmey/fix-rcb-balance-issue

Fix rcb balance issue
This commit is contained in:
Steve Plimpton
2018-08-09 10:24:38 -06:00
committed by GitHub
3 changed files with 20 additions and 3 deletions

View File

@ -19,8 +19,8 @@ one or more attributes may be appended :l
patom1 patom2 ptype1 ptype2
batom1 batom2 btype
aatom1 aatom2 aatom3 atype
datom1 datom2 datom3 dtype
iatom1 iatom2 iatom3 itype :pre
datom1 datom2 datom3 datom4 dtype
iatom1 iatom2 iatom3 iatom4 itype :pre
natom1, natom2 = IDs of 2 atoms in each pair (within neighbor cutoff)
ntype1, ntype2 = type of 2 atoms in each pair (within neighbor cutoff)

View File

@ -647,6 +647,21 @@ int *Balance::bisection(int sortflag)
double *shrinklo = &shrinkall[0];
double *shrinkhi = &shrinkall[3];
// if shrink size in any dim is zero, use box size in that dim
if (shrinklo[0] == shrinkhi[0]) {
shrinklo[0] = boxlo[0];
shrinkhi[0] = boxhi[0];
}
if (shrinklo[1] == shrinkhi[1]) {
shrinklo[1] = boxlo[1];
shrinkhi[1] = boxhi[1];
}
if (shrinklo[2] == shrinkhi[2]) {
shrinklo[2] = boxlo[2];
shrinkhi[2] = boxhi[2];
}
// invoke RCB
// then invert() to create list of proc assignments for my atoms
// NOTE: (3/2017) can remove undocumented "old" option at some point

View File

@ -241,9 +241,11 @@ void RCB::compute(int dimension, int n, double **x, double *wt,
// dim_select = selected cut dimension
// valuehalf_select = valuehalf in that dimension
// dotmark_select = dot markings in that dimension
// initialize largest = -1.0 to insure a cut in some dim is accepted
// e.g. if current recursed box is size 0 in all dims
int dim_select = -1;
double largest = 0.0;
double largest = -1.0;
for (dim = 0; dim < dimension; dim++) {