forked from lijiext/lammps
git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@12938 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
parent
415997f215
commit
db7aa98b6e
|
@ -162,8 +162,8 @@ void FixSRP::setup_pre_force(int zz)
|
|||
xold[i][2] = x[i][2];
|
||||
}
|
||||
|
||||
int *tag = atom->tag;
|
||||
int tagold[nall];
|
||||
tagint *tag = atom->tag;
|
||||
tagint tagold[nall];
|
||||
|
||||
for(int i = 0; i < nall; i++){
|
||||
tagold[i]=tag[i];
|
||||
|
|
|
@ -241,17 +241,16 @@ void Region::inverse_transform(double &x, double &y, double &z)
|
|||
rotate x,y,z by angle via right-hand rule around point and runit normal
|
||||
sign of angle determines whether rotating forward/backward in time
|
||||
return updated x,y,z
|
||||
P = point = vector = point of rotation
|
||||
R = vector = axis of rotation
|
||||
w = omega of rotation (from period)
|
||||
X0 = x,y,z = initial coord of atom
|
||||
R = vector axis of rotation
|
||||
P = point = point to rotate around
|
||||
R0 = runit = unit vector for R
|
||||
C = (X0 dot R0) R0 = projection of atom coord onto R
|
||||
X0 = x,y,z = initial coord of atom
|
||||
D = X0 - P = vector from P to X0
|
||||
A = D - C = vector from R line to X0
|
||||
B = R0 cross A = vector perp to A in plane of rotation
|
||||
C = (D dot R0) R0 = projection of D onto R, i.e. Dparallel
|
||||
A = D - C = vector from R line to X0, i.e. Dperp
|
||||
B = R0 cross A = vector perp to A in plane of rotation, same len as A
|
||||
A,B define plane of circular rotation around R line
|
||||
x,y,z = P + C + A cos(w*dt) + B sin(w*dt)
|
||||
new x,y,z = P + C + A cos(angle) + B sin(angle)
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void Region::rotate(double &x, double &y, double &z, double angle)
|
||||
|
@ -260,13 +259,13 @@ void Region::rotate(double &x, double &y, double &z, double angle)
|
|||
|
||||
double sine = sin(angle);
|
||||
double cosine = cos(angle);
|
||||
double x0dotr = x*runit[0] + y*runit[1] + z*runit[2];
|
||||
c[0] = x0dotr * runit[0];
|
||||
c[1] = x0dotr * runit[1];
|
||||
c[2] = x0dotr * runit[2];
|
||||
d[0] = x - point[0];
|
||||
d[1] = y - point[1];
|
||||
d[2] = z - point[2];
|
||||
double x0dotr = d[0]*runit[0] + d[1]*runit[1] + d[2]*runit[2];
|
||||
c[0] = x0dotr * runit[0];
|
||||
c[1] = x0dotr * runit[1];
|
||||
c[2] = x0dotr * runit[2];
|
||||
a[0] = d[0] - c[0];
|
||||
a[1] = d[1] - c[1];
|
||||
a[2] = d[2] - c[2];
|
||||
|
|
Loading…
Reference in New Issue