Unverified Commit f5ea01e9 authored by Richard Berger's avatar Richard Berger
Browse files

Clear wall/gran contacts before each calculation

parent 1ca236da
Loading
Loading
Loading
Loading
+14 −4
Original line number Diff line number Diff line
@@ -426,10 +426,7 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) :
  }

  if (peratom_flag) {
    int nlocal = atom->nlocal;
    for (int i = 0; i < nlocal; i++)
      for (int m = 0; m < size_peratom_cols; m++)
        array_atom[i][m] = 0.0;
    clear_stored_contacts();
  }

  time_origin = update->ntimestep;
@@ -596,6 +593,10 @@ void FixWallGran::post_force(int /*vflag*/)

  rwall = 0.0;

  if (peratom_flag) {
    clear_stored_contacts();
  }

  for (int i = 0; i < nlocal; i++) {
    if (mask[i] & groupbit) {

@@ -702,6 +703,15 @@ void FixWallGran::post_force(int /*vflag*/)
  }
}

void FixWallGran::clear_stored_contacts() {
  const int nlocal = atom->nlocal;
  for (int i = 0; i < nlocal; i++) {
    for (int m = 0; m < size_peratom_cols; m++) {
      array_atom[i][m] = 0.0;
    }
  }
}

/* ---------------------------------------------------------------------- */

void FixWallGran::post_force_respa(int vflag, int ilevel, int /*iloop*/)
+2 −0
Original line number Diff line number Diff line
@@ -110,6 +110,8 @@ class FixWallGran : public Fix {
  // store particle interactions

  int store;

  void clear_stored_contacts();
};

}
+4 −0
Original line number Diff line number Diff line
@@ -178,6 +178,10 @@ void FixWallGranRegion::post_force(int /*vflag*/)
    region->set_velocity();
  }

  if (peratom_flag) {
    clear_stored_contacts();
  }

  for (i = 0; i < nlocal; i++) {
    if (mask[i] & groupbit) {
      if (!region->match(x[i][0],x[i][1],x[i][2])) continue;