Merge pull request #928 from akohlmey/fix-rcb-balance-issue
Fix rcb balance issue
This commit is contained in:
@ -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)
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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++) {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user