forked from lijiext/lammps
git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@9008 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
parent
43b161eb33
commit
e9fa893b1c
|
@ -89,11 +89,8 @@ double ComputeTempRotate::compute_scalar()
|
|||
{
|
||||
double vthermal[3];
|
||||
double vcm[3],xcm[3],inertia[3][3],angmom[3],omega[3];
|
||||
int xbox,ybox,zbox;
|
||||
double dx,dy,dz;
|
||||
double xprd = domain->xprd;
|
||||
double yprd = domain->yprd;
|
||||
double zprd = domain->zprd;
|
||||
double unwrap[3];
|
||||
|
||||
invoked_scalar = update->ntimestep;
|
||||
|
||||
|
@ -123,17 +120,13 @@ double ComputeTempRotate::compute_scalar()
|
|||
|
||||
for (int i = 0; i < nlocal; i++)
|
||||
if (mask[i] & groupbit) {
|
||||
|
||||
xbox = (image[i] & IMGMASK) - IMGMAX;
|
||||
ybox = (image[i] >> IMGBITS & IMGMASK) - IMGMAX;
|
||||
zbox = (image[i] >> IMG2BITS) - IMGMAX;
|
||||
dx = (x[i][0] + xbox*xprd) - xcm[0];
|
||||
dy = (x[i][1] + ybox*yprd) - xcm[1];
|
||||
dz = (x[i][2] + zbox*zprd) - xcm[2];
|
||||
domain->unmap(x[i],image[i],unwrap)
|
||||
dx = unwrap[0] - xcm[0];
|
||||
dy = unwrap[1] - xcm[1];
|
||||
dz = unwrap[2] - xcm[2];
|
||||
vbiasall[i][0] = vcm[0] + dz*omega[1]-dy*omega[2];
|
||||
vbiasall[i][1] = vcm[1] + dx*omega[2]-dz*omega[0];
|
||||
vbiasall[i][2] = vcm[2] + dy*omega[0]-dx*omega[1];
|
||||
|
||||
vthermal[0] = v[i][0] - vbiasall[i][0];
|
||||
vthermal[1] = v[i][1] - vbiasall[i][1];
|
||||
vthermal[2] = v[i][2] - vbiasall[i][2];
|
||||
|
@ -155,14 +148,10 @@ double ComputeTempRotate::compute_scalar()
|
|||
|
||||
void ComputeTempRotate::compute_vector()
|
||||
{
|
||||
int i;
|
||||
double vthermal[3];
|
||||
double vcm[3],xcm[3],inertia[3][3],angmom[3],omega[3];
|
||||
int xbox,ybox,zbox;
|
||||
double dx,dy,dz;
|
||||
double xprd = domain->xprd;
|
||||
double yprd = domain->yprd;
|
||||
double zprd = domain->zprd;
|
||||
double unwrap[3];
|
||||
|
||||
invoked_vector = update->ntimestep;
|
||||
|
||||
|
@ -189,25 +178,20 @@ void ComputeTempRotate::compute_vector()
|
|||
}
|
||||
|
||||
double massone,t[6];
|
||||
for (i = 0; i < 6; i++) t[i] = 0.0;
|
||||
for (int i = 0; i < 6; i++) t[i] = 0.0;
|
||||
|
||||
for (i = 0; i < nlocal; i++)
|
||||
for (int i = 0; i < nlocal; i++)
|
||||
if (mask[i] & groupbit) {
|
||||
|
||||
xbox = (image[i] & IMGMASK) - IMGMAX;
|
||||
ybox = (image[i] >> IMGBITS & IMGMASK) - IMGMAX;
|
||||
zbox = (image[i] >> IMG2BITS) - IMGMAX;
|
||||
dx = (x[i][0] + xbox*xprd) - xcm[0];
|
||||
dy = (x[i][1] + ybox*yprd) - xcm[1];
|
||||
dz = (x[i][2] + zbox*zprd) - xcm[2];
|
||||
domain->unmap(x[i],image[i],unwrap)
|
||||
dx = unwrap[0] - xcm[0];
|
||||
dy = unwrap[1] - xcm[1];
|
||||
dz = unwrap[2] - xcm[2];
|
||||
vbiasall[i][0] = vcm[0] + dz*omega[1]-dy*omega[2];
|
||||
vbiasall[i][1] = vcm[1] + dx*omega[2]-dz*omega[0];
|
||||
vbiasall[i][2] = vcm[2] + dy*omega[0]-dx*omega[1];
|
||||
|
||||
vthermal[0] = v[i][0] - vbiasall[i][0];
|
||||
vthermal[1] = v[i][1] - vbiasall[i][1];
|
||||
vthermal[2] = v[i][2] - vbiasall[i][2];
|
||||
|
||||
if (rmass) massone = rmass[i];
|
||||
else massone = mass[type[i]];
|
||||
t[0] += massone * vthermal[0]*vthermal[0];
|
||||
|
@ -219,7 +203,7 @@ void ComputeTempRotate::compute_vector()
|
|||
}
|
||||
|
||||
MPI_Allreduce(t,vector,6,MPI_DOUBLE,MPI_SUM,world);
|
||||
for (i = 0; i < 6; i++) vector[i] *= force->mvv2e;
|
||||
for (int i = 0; i < 6; i++) vector[i] *= force->mvv2e;
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
|
|
|
@ -109,19 +109,22 @@ void FixAddTorque::init()
|
|||
|
||||
if (xstr) {
|
||||
xvar = input->variable->find(xstr);
|
||||
if (xvar < 0) error->all(FLERR,"Variable name for fix addtorque does not exist");
|
||||
if (xvar < 0)
|
||||
error->all(FLERR,"Variable name for fix addtorque does not exist");
|
||||
if (input->variable->equalstyle(xvar)) xstyle = EQUAL;
|
||||
else error->all(FLERR,"Variable for fix addtorque is invalid style");
|
||||
}
|
||||
if (ystr) {
|
||||
yvar = input->variable->find(ystr);
|
||||
if (yvar < 0) error->all(FLERR,"Variable name for fix addtorque does not exist");
|
||||
if (yvar < 0)
|
||||
error->all(FLERR,"Variable name for fix addtorque does not exist");
|
||||
if (input->variable->equalstyle(yvar)) ystyle = EQUAL;
|
||||
else error->all(FLERR,"Variable for fix addtorque is invalid style");
|
||||
}
|
||||
if (zstr) {
|
||||
zvar = input->variable->find(zstr);
|
||||
if (zvar < 0) error->all(FLERR,"Variable name for fix addtorque does not exist");
|
||||
if (zvar < 0)
|
||||
error->all(FLERR,"Variable name for fix addtorque does not exist");
|
||||
if (input->variable->equalstyle(zvar)) zstyle = EQUAL;
|
||||
else error->all(FLERR,"Variable for fix addtorque is invalid style");
|
||||
}
|
||||
|
@ -168,16 +171,14 @@ void FixAddTorque::post_force(int vflag)
|
|||
int nlocal = atom->nlocal;
|
||||
double mvv2e = force->mvv2e;
|
||||
|
||||
int xbox,ybox,zbox;
|
||||
double dx,dy,dz,vx,vy,vz,fx,fy,fz,massone,omegadotr;
|
||||
double xprd = domain->xprd;
|
||||
double yprd = domain->yprd;
|
||||
double zprd = domain->zprd;
|
||||
|
||||
double tcm[3],xcm[3],angmom[3],omega[3],itorque[3],domegadt[3],tlocal[3];
|
||||
double inertia[3][3];
|
||||
double unwrap[3];
|
||||
|
||||
// foriginal[0] = "potential energy" for added force
|
||||
// foriginal[123] = torque on atoms before extra force added
|
||||
|
||||
foriginal[0] = foriginal[1] = foriginal[2] = foriginal[3] = 0.0;
|
||||
force_flag = 0;
|
||||
|
||||
|
@ -200,12 +201,10 @@ void FixAddTorque::post_force(int vflag)
|
|||
tlocal[0] = tlocal[1] = tlocal[2] = 0.0;
|
||||
for (int i = 0; i < nlocal; i++)
|
||||
if (mask[i] & groupbit) {
|
||||
xbox = (image[i] & IMGMASK) - IMGMAX;
|
||||
ybox = (image[i] >> IMGBITS & IMGMASK) - IMGMAX;
|
||||
zbox = (image[i] >> IMG2BITS) - IMGMAX;
|
||||
dx = (x[i][0] + xbox*xprd) - xcm[0];
|
||||
dy = (x[i][1] + ybox*yprd) - xcm[1];
|
||||
dz = (x[i][2] + zbox*zprd) - xcm[2];
|
||||
domain->unmap(x[i],image[i],unwrap)
|
||||
dx = unwrap[0] - xcm[0];
|
||||
dy = unwrap[1] - xcm[1];
|
||||
dz = unwrap[2] - xcm[2];
|
||||
if (rmass) massone = rmass[i];
|
||||
else massone = mass[type[i]];
|
||||
omegadotr = omega[0]*dx+omega[1]*dy+omega[2]*dz;
|
||||
|
@ -222,12 +221,10 @@ void FixAddTorque::post_force(int vflag)
|
|||
|
||||
for (int i = 0; i < nlocal; i++)
|
||||
if (mask[i] & groupbit) {
|
||||
xbox = (image[i] & IMGMASK) - IMGMAX;
|
||||
ybox = (image[i] >> IMGBITS & IMGMASK) - IMGMAX;
|
||||
zbox = (image[i] >> IMG2BITS) - IMGMAX;
|
||||
dx = (x[i][0] + xbox*xprd) - xcm[0];
|
||||
dy = (x[i][1] + ybox*yprd) - xcm[1];
|
||||
dz = (x[i][2] + zbox*zprd) - xcm[2];
|
||||
domain->unmap(x[i],image[i],unwrap)
|
||||
dx = unwrap[0] - xcm[0];
|
||||
dy = unwrap[1] - xcm[1];
|
||||
dz = unwrap[2] - xcm[2];
|
||||
vx = mvv2e*(dz*omega[1]-dy*omega[2]);
|
||||
vy = mvv2e*(dx*omega[2]-dz*omega[0]);
|
||||
vz = mvv2e*(dy*omega[0]-dx*omega[1]);
|
||||
|
|
Loading…
Reference in New Issue