diff --git a/src/REPLICA/prd.cpp b/src/REPLICA/prd.cpp index a928425df1..646851f3a3 100644 --- a/src/REPLICA/prd.cpp +++ b/src/REPLICA/prd.cpp @@ -783,8 +783,6 @@ void PRD::log_event() void PRD::replicate(int ireplica) { - int nreplica = universe->nworlds; - int nprocs_universe = universe->nprocs; int i,m; // ----------------------------------------------------- diff --git a/src/fix_group.cpp b/src/fix_group.cpp index 4ebcdf3096..fe2495d6c0 100644 --- a/src/fix_group.cpp +++ b/src/fix_group.cpp @@ -21,6 +21,7 @@ #include "domain.h" #include "region.h" #include "modify.h" +#include "respa.h" #include "input.h" #include "variable.h" #include "memory.h" @@ -95,6 +96,7 @@ int FixGroup::setmask() { int mask = 0; mask |= POST_INTEGRATE; + mask |= POST_INTEGRATE_RESPA; return mask; } @@ -108,6 +110,9 @@ void FixGroup::init() if (group->dynamic[igroup]) error->all(FLERR,"Group dynamic parent group cannot be dynamic"); + if (strstr(update->integrate_style,"respa")) + nlevels_respa = ((Respa *) update->integrate)->nlevels; + // set current indices for region and variable if (regionflag) { @@ -169,6 +174,13 @@ void FixGroup::post_integrate() /* ---------------------------------------------------------------------- */ +void FixGroup::post_integrate_respa(int ilevel, int iloop) +{ + if (ilevel == nlevels_respa-1) post_integrate(); +} + +/* ---------------------------------------------------------------------- */ + void FixGroup::set_group() { int nlocal = atom->nlocal; diff --git a/src/fix_group.h b/src/fix_group.h index 1999855752..5815d31459 100644 --- a/src/fix_group.h +++ b/src/fix_group.h @@ -32,6 +32,7 @@ class FixGroup : public Fix { void init(); void setup(int); void post_integrate(); + void post_integrate_respa(int,int); private: int gbit,gbitinverse; @@ -40,6 +41,8 @@ class FixGroup : public Fix { char *idregion,*idvar; class Region *region; + int nlevels_respa; + void set_group(); };