diff --git a/src/USER-DPD/fix_shardlow.cpp b/src/USER-DPD/fix_shardlow.cpp index 2253b119327ffa36843ff7865ba89e26e346b89b..28c53822372e90a4b5f921e953cc8e95d0fe395a 100644 --- a/src/USER-DPD/fix_shardlow.cpp +++ b/src/USER-DPD/fix_shardlow.cpp @@ -47,6 +47,7 @@ #include "comm.h" #include "neighbor.h" #include "neigh_list.h" +#include "neigh_request.h" #include "random_mars.h" #include "memory.h" #include "domain.h" @@ -139,6 +140,23 @@ int FixShardlow::setmask() /* ---------------------------------------------------------------------- */ +void FixShardlow::init() +{ + int irequest = neighbor->request(this,instance_me); + neighbor->requests[irequest]->pair = 0; + neighbor->requests[irequest]->fix = 1; + neighbor->requests[irequest]->ssa = 1; +} + +/* ---------------------------------------------------------------------- */ + +void FixShardlow::init_list(int id, NeighList *ptr) +{ + list = ptr; +} + +/* ---------------------------------------------------------------------- */ + void FixShardlow::pre_exchange() { memset(atom->ssaAIR, 0, sizeof(int)*atom->nlocal); @@ -410,7 +428,6 @@ void FixShardlow::initial_integrate(int vflag) int nghost = atom->nghost; int airnum; - class NeighList *list; // points to list in pairDPD or pairDPDE class RanMars *pRNG; // NOTE: this logic is specific to orthogonal boxes, not triclinic @@ -431,12 +448,10 @@ void FixShardlow::initial_integrate(int vflag) // Allocate memory for v_t0 to hold the initial velocities for the ghosts v_t0 = (double (*)[3]) memory->smalloc(sizeof(double)*3*nghost, "FixShardlow:v_t0"); - // Define pointers to access the neighbor list and RNG + // Define pointers to access the RNG if(pairDPDE){ - list = pairDPDE->list; pRNG = pairDPDE->random; } else { - list = pairDPD->list; pRNG = pairDPD->random; } inum = list->inum; diff --git a/src/USER-DPD/fix_shardlow.h b/src/USER-DPD/fix_shardlow.h index ede0ef4e0b3cbff02ec6ce738b1d85d192202069..45a7b030b9f57da1ce3f85cf60887d744cbce72a 100644 --- a/src/USER-DPD/fix_shardlow.h +++ b/src/USER-DPD/fix_shardlow.h @@ -26,9 +26,13 @@ namespace LAMMPS_NS { class FixShardlow : public Fix { public: + class NeighList *list; // The SSA specific neighbor list + FixShardlow(class LAMMPS *, int, char **); ~FixShardlow(); int setmask(); + virtual void init(); + virtual void init_list(int, class NeighList *); virtual void setup(int); virtual void initial_integrate(int); void setup_pre_exchange(); diff --git a/src/USER-DPD/pair_dpd_fdt.cpp b/src/USER-DPD/pair_dpd_fdt.cpp index 3b5804ff8ec0fb44d70cdfcf9446c778310a6806..cea5b87404ab29bc9a9870288f9c6754ad735beb 100644 --- a/src/USER-DPD/pair_dpd_fdt.cpp +++ b/src/USER-DPD/pair_dpd_fdt.cpp @@ -320,11 +320,9 @@ void PairDPDfdt::init_style() splitFDT_flag = false; int irequest = neighbor->request(this,instance_me); - neighbor->requests[irequest]->ssa = 0; for (int i = 0; i < modify->nfix; i++) if (strcmp(modify->fix[i]->style,"shardlow") == 0){ splitFDT_flag = true; - neighbor->requests[irequest]->ssa = 1; } } diff --git a/src/USER-DPD/pair_dpd_fdt_energy.cpp b/src/USER-DPD/pair_dpd_fdt_energy.cpp index 99ba4de58294e305c33e535cfdac0a2649f0623c..20414054671db0e9ce2d65f6a7c80d8ebcfffb4c 100644 --- a/src/USER-DPD/pair_dpd_fdt_energy.cpp +++ b/src/USER-DPD/pair_dpd_fdt_energy.cpp @@ -408,11 +408,9 @@ void PairDPDfdtEnergy::init_style() splitFDT_flag = false; int irequest = neighbor->request(this,instance_me); - neighbor->requests[irequest]->ssa = 0; for (int i = 0; i < modify->nfix; i++) if (strcmp(modify->fix[i]->style,"shardlow") == 0){ splitFDT_flag = true; - neighbor->requests[irequest]->ssa = 1; } bool eos_flag = false;