Commit 67f28d77 authored by sjplimp's avatar sjplimp
Browse files

git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@1703 f3b2605a-c512-4ea7-a41b-209d697bcdaa
parent 1c6abf9c
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -158,7 +158,8 @@ void FixViscosity::end_of_step()
    slabhi_hi = boxlo + ((nbin-1)/2 + 1)*binsize;
  }

  // make list of nswap atoms with velocity closest to +/- vtarget
  // make 2 lists of up to nswap atoms with velocity closest to +/- vtarget
  // lists are sorted by closeness to vtarget
  // only consider atoms in the bottom/middle slabs
  // map atoms back into periodic box if necessary
  // insert = location in list to insert new atom
@@ -216,6 +217,7 @@ void FixViscosity::end_of_step()

  // loop over nswap pairs
  // find 2 global atoms with smallest delta in bottom/top slabs
  // BIG values are for procs with no atom to contribute
  // MINLOC also communicates which procs own them
  // exchange momenta between the 2 particles
  // if I own both particles just swap, else point2point comm of vel,mass
@@ -228,9 +230,7 @@ void FixViscosity::end_of_step()
  int ipositive = 0;
  int inegative = 0;

  int nactual = MIN(nnegative,npositive);

  for (m = 0; m < nactual; m++) {
  for (m = 0; m < nswap; m++) {
    if (ipositive < npositive) mine[0].value = pos_delta[ipositive];
    else mine[0].value = BIG;
    if (inegative < nnegative) mine[1].value = neg_delta[inegative];
@@ -238,6 +238,8 @@ void FixViscosity::end_of_step()
    
    MPI_Allreduce(mine,all,2,MPI_DOUBLE_INT,MPI_MINLOC,world);

    if (all[0].value == BIG || all[1].value == BIG) continue;

    if (me == all[0].proc && me == all[1].proc) {
      ipos = pos_index[ipositive++];
      ineg = neg_index[inegative++];