Merge pull request #184 from akohlmey/dynamic-groups-for-respa
Dynamic groups for respa
This commit is contained in:
@ -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;
|
||||||
|
|
||||||
// -----------------------------------------------------
|
// -----------------------------------------------------
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user