diff --git a/src/MAKE/Makefile.redsky b/src/MAKE/Makefile.redsky index 21c06235ee..cff9ed873a 100644 --- a/src/MAKE/Makefile.redsky +++ b/src/MAKE/Makefile.redsky @@ -3,7 +3,7 @@ SHELL = /bin/sh .IGNORE: -# this Makefile builds LAMMPS for RedSky +# this Makefile builds LAMMPS for RedSky with OpenMPI # to invoke this Makefile, you need these modules loaded: # mpi/openmpi-1.4.1_oobpr_intel-11.1-f064-c064 # misc/env-openmpi-1.4-oobpr diff --git a/src/XTC/dump_xtc.cpp b/src/XTC/dump_xtc.cpp index b0269e6945..6f7b594288 100644 --- a/src/XTC/dump_xtc.cpp +++ b/src/XTC/dump_xtc.cpp @@ -53,6 +53,8 @@ DumpXTC::DumpXTC(LAMMPS *lmp, int narg, char **arg) : Dump(lmp, narg, arg) { if (narg != 5) error->all("Illegal dump xtc command"); if (igroup != group->find("all")) error->all("Dump xtc must use group all"); + if (domain->triclinic) + error->all("Dump xtc does not yet support triclinic simulation boxes"); if (binary || compressed || multifile || multiproc) error->all("Invalid dump xtc filename"); diff --git a/src/dump_dcd.cpp b/src/dump_dcd.cpp index e0fa74e219..510569c3f1 100644 --- a/src/dump_dcd.cpp +++ b/src/dump_dcd.cpp @@ -55,6 +55,8 @@ DumpDCD::DumpDCD(LAMMPS *lmp, int narg, char **arg) : Dump(lmp, narg, arg) { if (narg != 5) error->all("Illegal dump dcd command"); if (igroup != group->find("all")) error->all("Dump dcd must use group all"); + if (domain->triclinic) + error->all("Dump dcd does not yet support triclinic simulation boxes"); if (binary || compressed || multifile || multiproc) error->all("Invalid dump dcd filename"); diff --git a/src/fix_nh.cpp b/src/fix_nh.cpp index edf6d14a40..fcba0fceaf 100644 --- a/src/fix_nh.cpp +++ b/src/fix_nh.cpp @@ -968,7 +968,8 @@ void FixNH::remap() if (domain->yz < -0.5*domain->yprd || domain->yz > 0.5*domain->yprd || domain->xz < -0.5*domain->xprd || domain->xz > 0.5*domain->xprd || domain->xy < -0.5*domain->xprd || domain->xy > 0.5*domain->xprd) - error->all("fix npt/nph has tilted box beyond 45 degrees"); + error->all("Fix npt/nph has tilted box too far - " + "box flips are not yet implemented"); } domain->set_global_box(); diff --git a/src/fix_rigid_nve.cpp b/src/fix_rigid_nve.cpp index a275d631be..e5a06a89ba 100644 --- a/src/fix_rigid_nve.cpp +++ b/src/fix_rigid_nve.cpp @@ -75,6 +75,7 @@ void FixRigidNVE::setup(int vflag) void FixRigidNVE::initial_integrate(int vflag) { double dtfm,mbody[3],tbody[3],fquat[4]; + double dtf2 = dtf * 2.0; for (int ibody = 0; ibody < nbody; ibody++) { @@ -101,10 +102,10 @@ void FixRigidNVE::initial_integrate(int vflag) torque[ibody],tbody); quatvec(quat[ibody],tbody,fquat); - conjqm[ibody][0] += dtv * fquat[0]; - conjqm[ibody][1] += dtv * fquat[1]; - conjqm[ibody][2] += dtv * fquat[2]; - conjqm[ibody][3] += dtv * fquat[3]; + conjqm[ibody][0] += dtf2 * fquat[0]; + conjqm[ibody][1] += dtf2 * fquat[1]; + conjqm[ibody][2] += dtf2 * fquat[2]; + conjqm[ibody][3] += dtf2 * fquat[3]; // step 1.4 to 1.13 - use no_squish rotate to update p and q @@ -222,6 +223,7 @@ void FixRigidNVE::final_integrate() MPI_Allreduce(sum[0],all[0],6*nbody,MPI_DOUBLE,MPI_SUM,world); double mbody[3],tbody[3],fquat[4]; + double dtf2 = dtf * 2.0; for (ibody = 0; ibody < nbody; ibody++) { fcm[ibody][0] = all[ibody][0]; @@ -249,10 +251,10 @@ void FixRigidNVE::final_integrate() torque[ibody],tbody); quatvec(quat[ibody],tbody,fquat); - conjqm[ibody][0] += dtv * fquat[0]; - conjqm[ibody][1] += dtv * fquat[1]; - conjqm[ibody][2] += dtv * fquat[2]; - conjqm[ibody][3] += dtv * fquat[3]; + conjqm[ibody][0] += dtf2 * fquat[0]; + conjqm[ibody][1] += dtf2 * fquat[1]; + conjqm[ibody][2] += dtf2 * fquat[2]; + conjqm[ibody][3] += dtf2 * fquat[3]; invquatvec(quat[ibody],conjqm[ibody],mbody); matvec_cols(ex_space[ibody],ey_space[ibody],ez_space[ibody], diff --git a/src/fix_rigid_nvt.cpp b/src/fix_rigid_nvt.cpp index 1508ccc799..162fa72d4f 100644 --- a/src/fix_rigid_nvt.cpp +++ b/src/fix_rigid_nvt.cpp @@ -164,6 +164,7 @@ void FixRigidNVT::initial_integrate(int vflag) { double tmp,akin_t,akin_r,scale_t,scale_r; double dtfm,mbody[3],tbody[3],fquat[4]; + double dtf2 = dtf * 2.0; double delta = update->ntimestep - update->beginstep; delta /= update->endstep - update->beginstep; @@ -209,10 +210,10 @@ void FixRigidNVT::initial_integrate(int vflag) torque[ibody],tbody); quatvec(quat[ibody],tbody,fquat); - conjqm[ibody][0] += dtv * fquat[0]; - conjqm[ibody][1] += dtv * fquat[1]; - conjqm[ibody][2] += dtv * fquat[2]; - conjqm[ibody][3] += dtv * fquat[3]; + conjqm[ibody][0] += dtf2 * fquat[0]; + conjqm[ibody][1] += dtf2 * fquat[1]; + conjqm[ibody][2] += dtf2 * fquat[2]; + conjqm[ibody][3] += dtf2 * fquat[3]; conjqm[ibody][0] *= scale_r; conjqm[ibody][1] *= scale_r; conjqm[ibody][2] *= scale_r; @@ -349,6 +350,7 @@ void FixRigidNVT::final_integrate() MPI_Allreduce(sum[0],all[0],6*nbody,MPI_DOUBLE,MPI_SUM,world); double mbody[3],tbody[3],fquat[4]; + double dtf2 = dtf * 2.0; for (ibody = 0; ibody < nbody; ibody++) { fcm[ibody][0] = all[ibody][0]; @@ -379,10 +381,10 @@ void FixRigidNVT::final_integrate() torque[ibody],tbody); quatvec(quat[ibody],tbody,fquat); - conjqm[ibody][0] = scale_r * conjqm[ibody][0] + dtv * fquat[0]; - conjqm[ibody][1] = scale_r * conjqm[ibody][1] + dtv * fquat[1]; - conjqm[ibody][2] = scale_r * conjqm[ibody][2] + dtv * fquat[2]; - conjqm[ibody][3] = scale_r * conjqm[ibody][3] + dtv * fquat[3]; + conjqm[ibody][0] = scale_r * conjqm[ibody][0] + dtf2 * fquat[0]; + conjqm[ibody][1] = scale_r * conjqm[ibody][1] + dtf2 * fquat[1]; + conjqm[ibody][2] = scale_r * conjqm[ibody][2] + dtf2 * fquat[2]; + conjqm[ibody][3] = scale_r * conjqm[ibody][3] + dtf2 * fquat[3]; invquatvec(quat[ibody],conjqm[ibody],mbody); matvec_cols(ex_space[ibody],ey_space[ibody],ez_space[ibody], @@ -413,6 +415,9 @@ void FixRigidNVT::update_nhcp(double akin_t, double akin_r) gfkt_t = nf_t * kt; gfkt_r = nf_r * kt; + akin_t *= force->mvv2e; + akin_r *= force->mvv2e; + // update thermostat masses double t_mass = boltz * t_target / (t_freq * t_freq);