diff --git a/src/atom.cpp b/src/atom.cpp index 0eee4269e0..3ee0d194fc 100644 --- a/src/atom.cpp +++ b/src/atom.cpp @@ -420,8 +420,8 @@ void Atom::modify_params(int narg, char **arg) iarg += 2; } else if (strcmp(arg[iarg],"sort") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal atom_modify command"); - sortfreq = atoi(arg[iarg+1]); - userbinsize = atof(arg[iarg+2]); + sortfreq = force->inumeric(arg[iarg+1]); + userbinsize = force->numeric(arg[iarg+2]); if (sortfreq < 0 || userbinsize < 0.0) error->all(FLERR,"Illegal atom_modify command"); if (sortfreq >= 0 && firstgroupname) diff --git a/src/fix.h b/src/fix.h index b9ed35aba2..f9aa2b6717 100644 --- a/src/fix.h +++ b/src/fix.h @@ -89,6 +89,7 @@ class Fix : protected Pointers { virtual void init_list(int, class NeighList *) {} virtual void setup(int) {} virtual void setup_pre_exchange() {} + virtual void setup_pre_neighbor() {} virtual void setup_pre_force(int) {} virtual void min_setup(int) {} virtual void initial_integrate(int) {} diff --git a/src/min.cpp b/src/min.cpp index cc51460b99..0416c68a16 100644 --- a/src/min.cpp +++ b/src/min.cpp @@ -235,6 +235,7 @@ void Min::setup() comm->borders(); if (triclinic) domain->lamda2x(atom->nlocal+atom->nghost); domain->box_too_small_check(); + modify->setup_pre_neighbor(); neighbor->build(); neighbor->ncalls = 0; @@ -321,6 +322,7 @@ void Min::setup_minimal(int flag) comm->borders(); if (triclinic) domain->lamda2x(atom->nlocal+atom->nghost); domain->box_too_small_check(); + modify->setup_pre_neighbor(); neighbor->build(); neighbor->ncalls = 0; } diff --git a/src/modify.cpp b/src/modify.cpp index b45ac72030..17a186b13d 100644 --- a/src/modify.cpp +++ b/src/modify.cpp @@ -245,6 +245,18 @@ void Modify::setup_pre_exchange() fix[list_min_pre_exchange[i]]->min_setup_pre_exchange(); } +/* ---------------------------------------------------------------------- + setup pre_neighbor call, only for fixes that define pre_neighbor + called from Verlet, RESPA +------------------------------------------------------------------------- */ + +void Modify::setup_pre_neighbor() +{ + if (update->whichflag == 1) + for (int i = 0; i < n_pre_neighbor; i++) + fix[list_pre_neighbor[i]]->setup_pre_neighbor(); +} + /* ---------------------------------------------------------------------- setup pre_force call, only for fixes that define pre_force called from Verlet, RESPA, Min diff --git a/src/modify.h b/src/modify.h index 0676b611a9..28ac58e443 100644 --- a/src/modify.h +++ b/src/modify.h @@ -44,6 +44,7 @@ class Modify : protected Pointers { virtual void init(); virtual void setup(int); virtual void setup_pre_exchange(); + virtual void setup_pre_neighbor(); virtual void setup_pre_force(int); virtual void initial_integrate(int); virtual void post_integrate(); diff --git a/src/respa.cpp b/src/respa.cpp index 96cd4a959b..2d7be07ae5 100644 --- a/src/respa.cpp +++ b/src/respa.cpp @@ -352,6 +352,7 @@ void Respa::setup() comm->borders(); if (triclinic) domain->lamda2x(atom->nlocal+atom->nghost); domain->box_too_small_check(); + modify->setup_pre_neighbor(); neighbor->build(); neighbor->ncalls = 0; @@ -417,6 +418,7 @@ void Respa::setup_minimal(int flag) comm->borders(); if (triclinic) domain->lamda2x(atom->nlocal+atom->nghost); domain->box_too_small_check(); + modify->setup_pre_neighbor(); neighbor->build(); neighbor->ncalls = 0; } diff --git a/src/verlet.cpp b/src/verlet.cpp index 43a4d69949..d4c68ca696 100644 --- a/src/verlet.cpp +++ b/src/verlet.cpp @@ -112,6 +112,7 @@ void Verlet::setup() comm->borders(); if (triclinic) domain->lamda2x(atom->nlocal+atom->nghost); domain->box_too_small_check(); + modify->setup_pre_neighbor(); neighbor->build(); neighbor->ncalls = 0; @@ -169,6 +170,7 @@ void Verlet::setup_minimal(int flag) comm->borders(); if (triclinic) domain->lamda2x(atom->nlocal+atom->nghost); domain->box_too_small_check(); + modify->setup_pre_neighbor(); neighbor->build(); neighbor->ncalls = 0; }