Unverified Commit 6663fbeb authored by Steve Plimpton's avatar Steve Plimpton Committed by GitHub
Browse files

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

Fix rcb balance issue
parents 9dde50a4 d5594350
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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)
+15 −0
Original line number Diff line number Diff line
@@ -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
+3 −1
Original line number Diff line number Diff line
@@ -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++) {