diff -Naur lammps-21Apr08/doc/compute_temp_deform.html lammps-28Apr08/doc/compute_temp_deform.html --- lammps-21Apr08/doc/compute_temp_deform.html 2008-04-04 15:15:50.000000000 -0600 +++ lammps-28Apr08/doc/compute_temp_deform.html 2008-04-22 08:54:46.000000000 -0600 @@ -46,13 +46,15 @@

IMPORTANT NOTE: Fix deform has an option for remapping either atom coordinates or velocities to the changing -simulation box. To use this compute, fix deform should NOT remap atom -positions, but rather should let atoms respond to the changing box by -adjusting their own velocities (or let fix deform remap the atom -velocities). If fix deform does remap atom positions, their velocity -is not changed, and thus they do not have the streaming velocity -assumed by this compute. LAMMPS will warn you if the fix deform -setting is not consistent with this compute. +simulation box. When using this compute in conjunction with a +deforming box, fix deform should NOT remap atom positions, but rather +should let atoms respond to the changing box by adjusting their own +velocities (or let fix deform remap the atom +velocities, see it's remap option). If fix deform does remap atom +positions, then they appear to move with the box but their velocity is +not changed, and thus they do NOT have the streaming velocity assumed +by this compute. LAMMPS will warn you if fix deform is defined and +its remap setting is not consistent with this compute.

The temperature is calculated by the formula KE = dim/2 N k T, where KE = total kinetic energy of the group of atoms (sum of 1/2 m v^2), diff -Naur lammps-21Apr08/doc/compute_temp_deform.txt lammps-28Apr08/doc/compute_temp_deform.txt --- lammps-21Apr08/doc/compute_temp_deform.txt 2008-04-04 15:15:50.000000000 -0600 +++ lammps-28Apr08/doc/compute_temp_deform.txt 2008-04-22 08:54:46.000000000 -0600 @@ -43,13 +43,15 @@ IMPORTANT NOTE: "Fix deform"_fix_deform.html has an option for remapping either atom coordinates or velocities to the changing -simulation box. To use this compute, fix deform should NOT remap atom -positions, but rather should let atoms respond to the changing box by -adjusting their own velocities (or let fix deform remap the atom -velocities). If fix deform does remap atom positions, their velocity -is not changed, and thus they do not have the streaming velocity -assumed by this compute. LAMMPS will warn you if the fix deform -setting is not consistent with this compute. +simulation box. When using this compute in conjunction with a +deforming box, fix deform should NOT remap atom positions, but rather +should let atoms respond to the changing box by adjusting their own +velocities (or let "fix deform"_fix_deform.html remap the atom +velocities, see it's remap option). If fix deform does remap atom +positions, then they appear to move with the box but their velocity is +not changed, and thus they do NOT have the streaming velocity assumed +by this compute. LAMMPS will warn you if fix deform is defined and +its remap setting is not consistent with this compute. The temperature is calculated by the formula KE = dim/2 N k T, where KE = total kinetic energy of the group of atoms (sum of 1/2 m v^2), diff -Naur lammps-21Apr08/doc/dump.html lammps-28Apr08/doc/dump.html --- lammps-21Apr08/doc/dump.html 2008-02-19 14:47:37.000000000 -0700 +++ lammps-28Apr08/doc/dump.html 2008-04-28 17:51:08.000000000 -0600 @@ -37,6 +37,7 @@ x, y, z, xs, ys, zs, xu, yu, zu, ix, iy, iz, vx, vy, vz, fx, fy, fz, q, mux, muy, muz, + radius, omegax, omegay, omegaz, quatw, quati, quatj, quatk, tqx, tqy, tqz, c_ID, c_ID[N], f_ID, f_ID[N], v_name tag = atom ID @@ -50,6 +51,8 @@ fx,fy,fz = forces on atoms q = atom charge mux,muy,muz = orientation of dipolar atom + radius = radius of extended spherical atom + omegax,omegay,omegaz = angular velocity of extended atom quatw,quati,quatj,quatk = quaternion components for aspherical particles tqx,tqy,tqz = torque on aspherical particles c_ID = per-atom scalar value calculated by a compute with ID @@ -245,6 +248,15 @@ defined with an atom style of dipole. They give the orientation of the atom's dipole.

+

The radius keyword is specific to extended spherical particles +that have a finite size, such as granular particles defined with +an atom style of granular. +

+

The omegax, omegay, and omegaz keywords are specific to extended +spherical or aspherical particles that have an angular velocity. Only +certain atom styles, such as granular or ellipsoid define this +quantity. +

The quatw, quati, quatj, quatk, tqx, tqy, tqz keywords are specific to aspherical particles defined with an atom style of ellipsoid. The first 4 are the components of the quaternion that diff -Naur lammps-21Apr08/doc/dump.txt lammps-28Apr08/doc/dump.txt --- lammps-21Apr08/doc/dump.txt 2008-02-19 14:47:37.000000000 -0700 +++ lammps-28Apr08/doc/dump.txt 2008-04-28 17:51:08.000000000 -0600 @@ -28,6 +28,7 @@ x, y, z, xs, ys, zs, xu, yu, zu, ix, iy, iz, vx, vy, vz, fx, fy, fz, q, mux, muy, muz, + radius, omegax, omegay, omegaz, quatw, quati, quatj, quatk, tqx, tqy, tqz, c_ID, c_ID\[N\], f_ID, f_ID\[N\], v_name tag = atom ID @@ -41,6 +42,8 @@ fx,fy,fz = forces on atoms q = atom charge mux,muy,muz = orientation of dipolar atom + radius = radius of extended spherical atom + omegax,omegay,omegaz = angular velocity of extended atom quatw,quati,quatj,quatk = quaternion components for aspherical particles tqx,tqy,tqz = torque on aspherical particles c_ID = per-atom scalar value calculated by a compute with ID @@ -235,6 +238,15 @@ defined with an atom style of {dipole}. They give the orientation of the atom's dipole. +The {radius} keyword is specific to extended spherical particles +that have a finite size, such as granular particles defined with +an atom style of {granular}. + +The {omegax}, {omegay}, and {omegaz} keywords are specific to extended +spherical or aspherical particles that have an angular velocity. Only +certain atom styles, such as {granular} or {ellipsoid} define this +quantity. + The {quatw}, {quati}, {quatj}, {quatk}, {tqx}, {tqy}, {tqz} keywords are specific to aspherical particles defined with an atom style of {ellipsoid}. The first 4 are the components of the quaternion that diff -Naur lammps-21Apr08/doc/fix_ave_spatial.html lammps-28Apr08/doc/fix_ave_spatial.html --- lammps-21Apr08/doc/fix_ave_spatial.html 2008-02-29 18:13:20.000000000 -0700 +++ lammps-28Apr08/doc/fix_ave_spatial.html 2008-04-28 11:37:39.000000000 -0600 @@ -60,7 +60,7 @@

Examples:

-
fix 1 all ave/spatial 10000 1 10000 z lower 0.02 myCentro units reduced
+
fix 1 all ave/spatial 10000 1 10000 z lower 0.02 c_myCentro units reduced
 fix 1 flow ave/spatial 100 10 1000 y 0.0 1.0 vx vz norm sample file vel.profile
 fix 1 flow ave/spatial 100 5 1000 y 0.0 2.5 density/mass ave running 
 
diff -Naur lammps-21Apr08/doc/fix_ave_spatial.txt lammps-28Apr08/doc/fix_ave_spatial.txt --- lammps-21Apr08/doc/fix_ave_spatial.txt 2008-02-29 18:13:20.000000000 -0700 +++ lammps-28Apr08/doc/fix_ave_spatial.txt 2008-04-28 11:37:39.000000000 -0600 @@ -44,7 +44,7 @@ [Examples:] -fix 1 all ave/spatial 10000 1 10000 z lower 0.02 myCentro units reduced +fix 1 all ave/spatial 10000 1 10000 z lower 0.02 c_myCentro units reduced fix 1 flow ave/spatial 100 10 1000 y 0.0 1.0 vx vz norm sample file vel.profile fix 1 flow ave/spatial 100 5 1000 y 0.0 2.5 density/mass ave running :pre diff -Naur lammps-21Apr08/doc/fix_ave_time.html lammps-28Apr08/doc/fix_ave_time.html --- lammps-21Apr08/doc/fix_ave_time.html 2008-03-20 08:53:01.000000000 -0600 +++ lammps-28Apr08/doc/fix_ave_time.html 2008-04-28 11:37:39.000000000 -0600 @@ -53,7 +53,7 @@

Examples:

fix 1 all ave/time 100 5 1000 myTemp thermo_temp file temp.profile
-fix 1 all ave/time 100 5 1000 thermo_press[2] ave window 20
+fix 1 all ave/time 100 5 1000 c_thermo_press[2] ave window 20
 fix 1 all ave/time 1 100 1000 f_indent f_indent[1] file temp.indent 
 

Description: diff -Naur lammps-21Apr08/doc/fix_ave_time.txt lammps-28Apr08/doc/fix_ave_time.txt --- lammps-21Apr08/doc/fix_ave_time.txt 2008-03-20 08:53:01.000000000 -0600 +++ lammps-28Apr08/doc/fix_ave_time.txt 2008-04-28 11:37:39.000000000 -0600 @@ -40,7 +40,7 @@ [Examples:] fix 1 all ave/time 100 5 1000 myTemp thermo_temp file temp.profile -fix 1 all ave/time 100 5 1000 thermo_press\[2\] ave window 20 +fix 1 all ave/time 100 5 1000 c_thermo_press\[2\] ave window 20 fix 1 all ave/time 1 100 1000 f_indent f_indent\[1\] file temp.indent :pre [Description:] diff -Naur lammps-21Apr08/src/dump_custom.cpp lammps-28Apr08/src/dump_custom.cpp --- lammps-21Apr08/src/dump_custom.cpp 2008-04-08 07:58:15.000000000 -0600 +++ lammps-28Apr08/src/dump_custom.cpp 2008-04-28 17:56:09.000000000 -0600 @@ -33,10 +33,10 @@ // customize by adding keyword to 1st enum enum{TAG,MOL,TYPE,X,Y,Z,XS,YS,ZS,XU,YU,ZU,IX,IY,IZ, - VX,VY,VZ,FX,FY,FZ, - Q,MUX,MUY,MUZ, - QUATW,QUATI,QUATJ,QUATK,TQX,TQY,TQZ, - COMPUTE,FIX,VARIABLE}; + VX,VY,VZ,FX,FY,FZ, + Q,MUX,MUY,MUZ,RADIUS,OMEGAX,OMEGAY,OMEGAZ, + QUATW,QUATI,QUATJ,QUATK,TQX,TQY,TQZ, + COMPUTE,FIX,VARIABLE}; enum{LT,LE,GT,GE,EQ,NEQ}; enum{INT,DOUBLE}; @@ -442,6 +442,18 @@ } else if (thresh_array[ithresh] == MUZ) { ptr = &atom->mu[0][2]; nstride = 3; + } else if (thresh_array[ithresh] == RADIUS) { + ptr = atom->radius; + nstride = 1; + } else if (thresh_array[ithresh] == OMEGAX) { + ptr = &atom->omega[0][0]; + nstride = 3; + } else if (thresh_array[ithresh] == OMEGAY) { + ptr = &atom->omega[0][1]; + nstride = 3; + } else if (thresh_array[ithresh] == OMEGAZ) { + ptr = &atom->omega[0][2]; + nstride = 3; } else if (thresh_array[ithresh] == QUATW) { ptr = &atom->quat[0][0]; nstride = 4; @@ -683,6 +695,27 @@ pack_choice[i] = &DumpCustom::pack_muz; vtype[i] = DOUBLE; + } else if (strcmp(arg[iarg],"radius") == 0) { + if (!atom->radius_flag) + error->all("Dumping an atom quantity that isn't allocated"); + pack_choice[i] = &DumpCustom::pack_radius; + vtype[i] = DOUBLE; + } else if (strcmp(arg[iarg],"omegax") == 0) { + if (!atom->omega_flag) + error->all("Dumping an atom quantity that isn't allocated"); + pack_choice[i] = &DumpCustom::pack_omegax; + vtype[i] = DOUBLE; + } else if (strcmp(arg[iarg],"omegay") == 0) { + if (!atom->omega_flag) + error->all("Dumping an atom quantity that isn't allocated"); + pack_choice[i] = &DumpCustom::pack_omegay; + vtype[i] = DOUBLE; + } else if (strcmp(arg[iarg],"omegaz") == 0) { + if (!atom->omega_flag) + error->all("Dumping an atom quantity that isn't allocated"); + pack_choice[i] = &DumpCustom::pack_omegaz; + vtype[i] = DOUBLE; + } else if (strcmp(arg[iarg],"quatw") == 0) { if (!atom->quat_flag) error->all("Dumping an atom quantity that isn't allocated"); @@ -967,6 +1000,10 @@ else if (strcmp(arg[1],"mux") == 0) thresh_array[nthresh] = MUX; else if (strcmp(arg[1],"muy") == 0) thresh_array[nthresh] = MUY; else if (strcmp(arg[1],"muz") == 0) thresh_array[nthresh] = MUZ; + else if (strcmp(arg[1],"radius") == 0) thresh_array[nthresh] = RADIUS; + else if (strcmp(arg[1],"omegax") == 0) thresh_array[nthresh] = OMEGAX; + else if (strcmp(arg[1],"omegay") == 0) thresh_array[nthresh] = OMEGAY; + else if (strcmp(arg[1],"omegaz") == 0) thresh_array[nthresh] = OMEGAZ; else if (strcmp(arg[1],"quatw") == 0) thresh_array[nthresh] = QUATW; else if (strcmp(arg[1],"quati") == 0) thresh_array[nthresh] = QUATI; else if (strcmp(arg[1],"quatj") == 0) thresh_array[nthresh] = QUATJ; @@ -1562,6 +1599,62 @@ /* ---------------------------------------------------------------------- */ +void DumpCustom::pack_radius(int n) +{ + double *radius = atom->radius; + int nlocal = atom->nlocal; + + for (int i = 0; i < nlocal; i++) + if (choose[i]) { + buf[n] = radius[i]; + n += size_one; + } +} + +/* ---------------------------------------------------------------------- */ + +void DumpCustom::pack_omegax(int n) +{ + double **omega = atom->omega; + int nlocal = atom->nlocal; + + for (int i = 0; i < nlocal; i++) + if (choose[i]) { + buf[n] = omega[i][0]; + n += size_one; + } +} + +/* ---------------------------------------------------------------------- */ + +void DumpCustom::pack_omegay(int n) +{ + double **omega = atom->omega; + int nlocal = atom->nlocal; + + for (int i = 0; i < nlocal; i++) + if (choose[i]) { + buf[n] = omega[i][1]; + n += size_one; + } +} + +/* ---------------------------------------------------------------------- */ + +void DumpCustom::pack_omegaz(int n) +{ + double **omega = atom->omega; + int nlocal = atom->nlocal; + + for (int i = 0; i < nlocal; i++) + if (choose[i]) { + buf[n] = omega[i][2]; + n += size_one; + } +} + +/* ---------------------------------------------------------------------- */ + void DumpCustom::pack_quatw(int n) { double **quat = atom->quat; diff -Naur lammps-21Apr08/src/dump_custom.h lammps-28Apr08/src/dump_custom.h --- lammps-21Apr08/src/dump_custom.h 2007-12-13 11:16:04.000000000 -0700 +++ lammps-28Apr08/src/dump_custom.h 2008-04-28 17:56:09.000000000 -0600 @@ -113,6 +113,10 @@ void pack_mux(int); void pack_muy(int); void pack_muz(int); + void pack_radius(int); + void pack_omegax(int); + void pack_omegay(int); + void pack_omegaz(int); void pack_quatw(int); void pack_quati(int); void pack_quatj(int); diff -Naur lammps-21Apr08/src/neighbor.cpp lammps-28Apr08/src/neighbor.cpp --- lammps-21Apr08/src/neighbor.cpp 2008-02-18 18:04:47.000000000 -0700 +++ lammps-28Apr08/src/neighbor.cpp 2008-04-28 11:36:38.000000000 -0600 @@ -1429,11 +1429,12 @@ binhead[ibin] = i; } } - for (i = atom->nfirst; i >= 0; i--) { + for (i = atom->nfirst-1; i >= 0; i--) { ibin = coord2bin(x[i]); bins[i] = binhead[ibin]; binhead[ibin] = i; } + } else { for (i = nall-1; i >= 0; i--) { ibin = coord2bin(x[i]);