Merge pull request #184 from akohlmey/dynamic-groups-for-respa

Dynamic groups for respa
This commit is contained in:
sjplimp
2016-09-29 15:51:34 -06:00
committed by GitHub
3 changed files with 15 additions and 2 deletions

View File

@ -783,8 +783,6 @@ void PRD::log_event()
void PRD::replicate(int ireplica) void PRD::replicate(int ireplica)
{ {
int nreplica = universe->nworlds;
int nprocs_universe = universe->nprocs;
int i,m; int i,m;
// ----------------------------------------------------- // -----------------------------------------------------

View File

@ -21,6 +21,7 @@
#include "domain.h" #include "domain.h"
#include "region.h" #include "region.h"
#include "modify.h" #include "modify.h"
#include "respa.h"
#include "input.h" #include "input.h"
#include "variable.h" #include "variable.h"
#include "memory.h" #include "memory.h"
@ -95,6 +96,7 @@ int FixGroup::setmask()
{ {
int mask = 0; int mask = 0;
mask |= POST_INTEGRATE; mask |= POST_INTEGRATE;
mask |= POST_INTEGRATE_RESPA;
return mask; return mask;
} }
@ -108,6 +110,9 @@ void FixGroup::init()
if (group->dynamic[igroup]) if (group->dynamic[igroup])
error->all(FLERR,"Group dynamic parent group cannot be dynamic"); 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 // set current indices for region and variable
if (regionflag) { 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() void FixGroup::set_group()
{ {
int nlocal = atom->nlocal; int nlocal = atom->nlocal;

View File

@ -32,6 +32,7 @@ class FixGroup : public Fix {
void init(); void init();
void setup(int); void setup(int);
void post_integrate(); void post_integrate();
void post_integrate_respa(int,int);
private: private:
int gbit,gbitinverse; int gbit,gbitinverse;
@ -40,6 +41,8 @@ class FixGroup : public Fix {
char *idregion,*idvar; char *idregion,*idvar;
class Region *region; class Region *region;
int nlevels_respa;
void set_group(); void set_group();
}; };