diff --git a/src/Makefile b/src/Makefile index 621a446289..7473b0e112 100755 --- a/src/Makefile +++ b/src/Makefile @@ -17,7 +17,7 @@ PACKAGE = asphere class2 colloid dipole dsmc gpu granular \ kspace manybody meam molecule opt peri poems reax replica \ shock srd xtc -PACKUSER = user-ackland user-atc user-cd-eam user-cg-cmm user-cuda user-eff \ +PACKUSER = user-ackland user-atc user-cd-eam user-cg-cmm user-eff \ user-ewaldn user-imd user-reaxc user-smd PACKALL = $(PACKAGE) $(PACKUSER) diff --git a/src/atom.cpp b/src/atom.cpp index 39b1841955..9abc972f3c 100644 --- a/src/atom.cpp +++ b/src/atom.cpp @@ -289,7 +289,7 @@ void Atom::create_avec(const char *style, int narg, char **arg, char *suffix) AtomVec *Atom::new_avec(const char *style, int narg, char **arg, char *suffix, int &sflag) { - if (suffix) { + if (suffix && lmp->offaccel == 0) { sflag = 1; char estyle[256]; sprintf(estyle,"%s/%s",style,suffix); diff --git a/src/force.cpp b/src/force.cpp index 3c6e280f64..3364455924 100644 --- a/src/force.cpp +++ b/src/force.cpp @@ -144,7 +144,7 @@ void Force::create_pair(const char *style, char *suffix) Pair *Force::new_pair(const char *style, char *suffix, int &sflag) { - if (suffix) { + if (suffix && lmp->offaccel == 0) { sflag = 1; char estyle[256]; sprintf(estyle,"%s/%s",style,suffix); diff --git a/src/input.cpp b/src/input.cpp index ce58398f15..6d38318089 100644 --- a/src/input.cpp +++ b/src/input.cpp @@ -811,6 +811,13 @@ void Input::accelerator() if (strcmp(lmp->asuffix,arg[0]) != 0) error->all("Accelerator command requires matching command-line -a switch"); + if (strcmp(arg[0],"off") == 0) { + if (narg != 1) error->all("Illegal accelerator command"); + lmp->offaccel = 1; + return; + } + + lmp->offaccel = 0; if (strcmp(arg[0],"cuda") == 0) lmp->cuda->accelerator(narg-1,&arg[1]); else error->all("Illegal accelerator command"); } diff --git a/src/lammps.cpp b/src/lammps.cpp index 95067b0a1d..daf9c5ac50 100644 --- a/src/lammps.cpp +++ b/src/lammps.cpp @@ -58,8 +58,9 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) int screenflag = 0; int logflag = 0; accelerator = NOACCEL; - cuda = NULL; asuffix = NULL; + offaccel = 0; + cuda = NULL; int iarg = 1; diff --git a/src/lammps.h b/src/lammps.h index 095fa1054d..deaa10ebd9 100644 --- a/src/lammps.h +++ b/src/lammps.h @@ -44,6 +44,7 @@ class LAMMPS { int accelerator; // accelerator flag char *asuffix; // accelerator suffix + int offaccel; // 1 if accelerator flag currently disabled class Cuda *cuda; // CUDA accelerator class LAMMPS(int, char **, MPI_Comm); diff --git a/src/modify.cpp b/src/modify.cpp index 514341fc17..0576cd2c83 100644 --- a/src/modify.cpp +++ b/src/modify.cpp @@ -640,7 +640,7 @@ void Modify::add_fix(int narg, char **arg, char *suffix) int success = 0; - if (suffix) { + if (suffix && lmp->offaccel == 0) { char estyle[256]; sprintf(estyle,"%s/%s",arg[2],suffix); success = 1; @@ -784,7 +784,7 @@ void Modify::add_compute(int narg, char **arg, char *suffix) int success = 0; - if (suffix) { + if (suffix && lmp->offaccel == 0) { char estyle[256]; sprintf(estyle,"%s/%s",arg[2],suffix); success = 1; diff --git a/src/update.cpp b/src/update.cpp index cdbdaa5fd7..1c70ad7047 100644 --- a/src/update.cpp +++ b/src/update.cpp @@ -221,7 +221,7 @@ void Update::create_integrate(int narg, char **arg, char *suffix) void Update::new_integrate(char *style, int narg, char **arg, char *suffix, int &sflag) { - if (suffix) { + if (suffix && lmp->offaccel == 0) { sflag = 1; char estyle[256]; sprintf(estyle,"%s/%s",style,suffix);