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
|
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
|
||||||
|
|||||||
@ -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");
|
||||||
|
|
||||||
|
|||||||
@ -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");
|
||||||
|
|
||||||
|
|||||||
@ -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();
|
||||||
|
|||||||
@ -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],
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user