From a990ae69be42fc5acb30c93cdcb3c391f19ae5fc Mon Sep 17 00:00:00 2001 From: sjplimp Date: Fri, 29 Apr 2011 16:28:42 +0000 Subject: [PATCH] git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@6035 f3b2605a-c512-4ea7-a41b-209d697bcdaa --- src/fix_langevin.cpp | 26 +++++++++++++------------- src/fix_rigid_nve.cpp | 18 +++++++++++------- 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/src/fix_langevin.cpp b/src/fix_langevin.cpp index 0d233126ef..2f4308e386 100644 --- a/src/fix_langevin.cpp +++ b/src/fix_langevin.cpp @@ -82,7 +82,19 @@ FixLangevin::FixLangevin(LAMMPS *lmp, int narg, char **arg) : int iarg = 7; while (iarg < narg) { - if (strcmp(arg[iarg],"scale") == 0) { + if (strcmp(arg[iarg],"angmom") == 0) { + if (iarg+2 > narg) error->all("Illegal fix langevin command"); + if (strcmp(arg[iarg+1],"no") == 0) aflag = 0; + else if (strcmp(arg[iarg+1],"yes") == 0) aflag = 1; + else error->all("Illegal fix langevin command"); + iarg += 2; + } else if (strcmp(arg[iarg],"omega") == 0) { + if (iarg+2 > narg) error->all("Illegal fix langevin command"); + if (strcmp(arg[iarg+1],"no") == 0) oflag = 0; + else if (strcmp(arg[iarg+1],"yes") == 0) oflag = 1; + else error->all("Illegal fix langevin command"); + iarg += 2; + } else if (strcmp(arg[iarg],"scale") == 0) { if (iarg+3 > narg) error->all("Illegal fix langevin command"); int itype = atoi(arg[iarg+1]); double scale = atof(arg[iarg+2]); @@ -102,18 +114,6 @@ FixLangevin::FixLangevin(LAMMPS *lmp, int narg, char **arg) : else if (strcmp(arg[iarg+1],"yes") == 0) zeroflag = 1; else error->all("Illegal fix langevin command"); iarg += 2; - } else if (strcmp(arg[iarg],"omega") == 0) { - if (iarg+2 > narg) error->all("Illegal fix langevin command"); - if (strcmp(arg[iarg+1],"no") == 0) oflag = 0; - else if (strcmp(arg[iarg+1],"yes") == 0) oflag = 1; - else error->all("Illegal fix langevin command"); - iarg += 2; - } else if (strcmp(arg[iarg],"angmom") == 0) { - if (iarg+2 > narg) error->all("Illegal fix langevin command"); - if (strcmp(arg[iarg+1],"no") == 0) aflag = 0; - else if (strcmp(arg[iarg+1],"yes") == 0) aflag = 1; - else error->all("Illegal fix langevin command"); - iarg += 2; } else error->all("Illegal fix langevin command"); } diff --git a/src/fix_rigid_nve.cpp b/src/fix_rigid_nve.cpp index ccd908e8f8..abdb258a75 100644 --- a/src/fix_rigid_nve.cpp +++ b/src/fix_rigid_nve.cpp @@ -223,16 +223,20 @@ void FixRigidNVE::final_integrate() MPI_Allreduce(sum[0],all[0],6*nbody,MPI_DOUBLE,MPI_SUM,world); + // update vcm and angmom + // include Langevin thermostat forces + // fflag,tflag = 0 for some dimensions in 2d + double mbody[3],tbody[3],fquat[4]; double dtf2 = dtf * 2.0; - + for (ibody = 0; ibody < nbody; ibody++) { - fcm[ibody][0] = all[ibody][0]; - fcm[ibody][1] = all[ibody][1]; - fcm[ibody][2] = all[ibody][2]; - torque[ibody][0] = all[ibody][3]; - torque[ibody][1] = all[ibody][4]; - torque[ibody][2] = all[ibody][5]; + fcm[ibody][0] = all[ibody][0] + langextra[ibody][0]; + fcm[ibody][1] = all[ibody][1] + langextra[ibody][1]; + fcm[ibody][2] = all[ibody][2] + langextra[ibody][2]; + torque[ibody][0] = all[ibody][3] + langextra[ibody][3]; + torque[ibody][1] = all[ibody][4] + langextra[ibody][4]; + torque[ibody][2] = all[ibody][5] + langextra[ibody][5]; // update vcm by 1/2 step