git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@4402 f3b2605a-c512-4ea7-a41b-209d697bcdaa

This commit is contained in:
sjplimp
2010-07-20 14:46:51 +00:00
parent f8de1d98d1
commit a4930bf2ed
6 changed files with 30 additions and 18 deletions

View File

@ -3,7 +3,7 @@
SHELL = /bin/sh SHELL = /bin/sh
.IGNORE: .IGNORE:
# this Makefile builds LAMMPS for RedSky # this Makefile builds LAMMPS for RedSky with OpenMPI
# to invoke this Makefile, you need these modules loaded: # to invoke this Makefile, you need these modules loaded:
# mpi/openmpi-1.4.1_oobpr_intel-11.1-f064-c064 # mpi/openmpi-1.4.1_oobpr_intel-11.1-f064-c064
# misc/env-openmpi-1.4-oobpr # misc/env-openmpi-1.4-oobpr

View File

@ -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 (narg != 5) error->all("Illegal dump xtc command");
if (igroup != group->find("all")) error->all("Dump xtc must use group all"); 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) if (binary || compressed || multifile || multiproc)
error->all("Invalid dump xtc filename"); error->all("Invalid dump xtc filename");

View File

@ -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 (narg != 5) error->all("Illegal dump dcd command");
if (igroup != group->find("all")) error->all("Dump dcd must use group all"); 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) if (binary || compressed || multifile || multiproc)
error->all("Invalid dump dcd filename"); error->all("Invalid dump dcd filename");

View File

@ -968,7 +968,8 @@ void FixNH::remap()
if (domain->yz < -0.5*domain->yprd || domain->yz > 0.5*domain->yprd || 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->xz < -0.5*domain->xprd || domain->xz > 0.5*domain->xprd ||
domain->xy < -0.5*domain->xprd || domain->xy > 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(); domain->set_global_box();

View File

@ -75,6 +75,7 @@ void FixRigidNVE::setup(int vflag)
void FixRigidNVE::initial_integrate(int vflag) void FixRigidNVE::initial_integrate(int vflag)
{ {
double dtfm,mbody[3],tbody[3],fquat[4]; double dtfm,mbody[3],tbody[3],fquat[4];
double dtf2 = dtf * 2.0;
for (int ibody = 0; ibody < nbody; ibody++) { for (int ibody = 0; ibody < nbody; ibody++) {
@ -101,10 +102,10 @@ void FixRigidNVE::initial_integrate(int vflag)
torque[ibody],tbody); torque[ibody],tbody);
quatvec(quat[ibody],tbody,fquat); quatvec(quat[ibody],tbody,fquat);
conjqm[ibody][0] += dtv * fquat[0]; conjqm[ibody][0] += dtf2 * fquat[0];
conjqm[ibody][1] += dtv * fquat[1]; conjqm[ibody][1] += dtf2 * fquat[1];
conjqm[ibody][2] += dtv * fquat[2]; conjqm[ibody][2] += dtf2 * fquat[2];
conjqm[ibody][3] += dtv * fquat[3]; conjqm[ibody][3] += dtf2 * fquat[3];
// step 1.4 to 1.13 - use no_squish rotate to update p and q // 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); MPI_Allreduce(sum[0],all[0],6*nbody,MPI_DOUBLE,MPI_SUM,world);
double mbody[3],tbody[3],fquat[4]; double mbody[3],tbody[3],fquat[4];
double dtf2 = dtf * 2.0;
for (ibody = 0; ibody < nbody; ibody++) { for (ibody = 0; ibody < nbody; ibody++) {
fcm[ibody][0] = all[ibody][0]; fcm[ibody][0] = all[ibody][0];
@ -249,10 +251,10 @@ void FixRigidNVE::final_integrate()
torque[ibody],tbody); torque[ibody],tbody);
quatvec(quat[ibody],tbody,fquat); quatvec(quat[ibody],tbody,fquat);
conjqm[ibody][0] += dtv * fquat[0]; conjqm[ibody][0] += dtf2 * fquat[0];
conjqm[ibody][1] += dtv * fquat[1]; conjqm[ibody][1] += dtf2 * fquat[1];
conjqm[ibody][2] += dtv * fquat[2]; conjqm[ibody][2] += dtf2 * fquat[2];
conjqm[ibody][3] += dtv * fquat[3]; conjqm[ibody][3] += dtf2 * fquat[3];
invquatvec(quat[ibody],conjqm[ibody],mbody); invquatvec(quat[ibody],conjqm[ibody],mbody);
matvec_cols(ex_space[ibody],ey_space[ibody],ez_space[ibody], matvec_cols(ex_space[ibody],ey_space[ibody],ez_space[ibody],

View File

@ -164,6 +164,7 @@ void FixRigidNVT::initial_integrate(int vflag)
{ {
double tmp,akin_t,akin_r,scale_t,scale_r; double tmp,akin_t,akin_r,scale_t,scale_r;
double dtfm,mbody[3],tbody[3],fquat[4]; double dtfm,mbody[3],tbody[3],fquat[4];
double dtf2 = dtf * 2.0;
double delta = update->ntimestep - update->beginstep; double delta = update->ntimestep - update->beginstep;
delta /= update->endstep - update->beginstep; delta /= update->endstep - update->beginstep;
@ -209,10 +210,10 @@ void FixRigidNVT::initial_integrate(int vflag)
torque[ibody],tbody); torque[ibody],tbody);
quatvec(quat[ibody],tbody,fquat); quatvec(quat[ibody],tbody,fquat);
conjqm[ibody][0] += dtv * fquat[0]; conjqm[ibody][0] += dtf2 * fquat[0];
conjqm[ibody][1] += dtv * fquat[1]; conjqm[ibody][1] += dtf2 * fquat[1];
conjqm[ibody][2] += dtv * fquat[2]; conjqm[ibody][2] += dtf2 * fquat[2];
conjqm[ibody][3] += dtv * fquat[3]; conjqm[ibody][3] += dtf2 * fquat[3];
conjqm[ibody][0] *= scale_r; conjqm[ibody][0] *= scale_r;
conjqm[ibody][1] *= scale_r; conjqm[ibody][1] *= scale_r;
conjqm[ibody][2] *= 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); MPI_Allreduce(sum[0],all[0],6*nbody,MPI_DOUBLE,MPI_SUM,world);
double mbody[3],tbody[3],fquat[4]; double mbody[3],tbody[3],fquat[4];
double dtf2 = dtf * 2.0;
for (ibody = 0; ibody < nbody; ibody++) { for (ibody = 0; ibody < nbody; ibody++) {
fcm[ibody][0] = all[ibody][0]; fcm[ibody][0] = all[ibody][0];
@ -379,10 +381,10 @@ void FixRigidNVT::final_integrate()
torque[ibody],tbody); torque[ibody],tbody);
quatvec(quat[ibody],tbody,fquat); quatvec(quat[ibody],tbody,fquat);
conjqm[ibody][0] = scale_r * conjqm[ibody][0] + dtv * fquat[0]; conjqm[ibody][0] = scale_r * conjqm[ibody][0] + dtf2 * fquat[0];
conjqm[ibody][1] = scale_r * conjqm[ibody][1] + dtv * fquat[1]; conjqm[ibody][1] = scale_r * conjqm[ibody][1] + dtf2 * fquat[1];
conjqm[ibody][2] = scale_r * conjqm[ibody][2] + dtv * fquat[2]; conjqm[ibody][2] = scale_r * conjqm[ibody][2] + dtf2 * fquat[2];
conjqm[ibody][3] = scale_r * conjqm[ibody][3] + dtv * fquat[3]; conjqm[ibody][3] = scale_r * conjqm[ibody][3] + dtf2 * fquat[3];
invquatvec(quat[ibody],conjqm[ibody],mbody); invquatvec(quat[ibody],conjqm[ibody],mbody);
matvec_cols(ex_space[ibody],ey_space[ibody],ez_space[ibody], 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_t = nf_t * kt;
gfkt_r = nf_r * kt; gfkt_r = nf_r * kt;
akin_t *= force->mvv2e;
akin_r *= force->mvv2e;
// update thermostat masses // update thermostat masses
double t_mass = boltz * t_target / (t_freq * t_freq); double t_mass = boltz * t_target / (t_freq * t_freq);