git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@4402 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
@ -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
|
||||
|
||||
@ -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");
|
||||
|
||||
|
||||
@ -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");
|
||||
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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],
|
||||
|
||||
@ -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);
|
||||
|
||||
Reference in New Issue
Block a user