diff -Naur lammps-30Apr09/doc/compute_temp_profile.html lammps-1May09/doc/compute_temp_profile.html --- lammps-30Apr09/doc/compute_temp_profile.html 2009-04-29 11:29:52.000000000 -0600 +++ lammps-1May09/doc/compute_temp_profile.html 2009-04-30 10:53:04.000000000 -0600 @@ -51,7 +51,7 @@ fix temp/rescale, fix npt, etc.
The xflag, yflag, zflag settings determine which components of -velocity are subtracted out. +average velocity are subtracted out.
The binstyle setting and its Nx, Ny, Nz arguments determine how bins are setup to perform spatial averaging. "Bins" can be 1d @@ -68,7 +68,8 @@ are both in the compute group and in the same spatial bin is summed to compute an average velocity for the bin. This bias velocity is then subtracted from the velocities of individual atoms in the bin to yield -a thermal velocity. +a thermal velocity for each atom. Note that if there is only one +atom in the bin, it's thermal velocity will thus be 0.0.
After the spatially-averaged velocity field has been subtracted from each atom, the temperature is calculated by the formula KE = dim/2 N k @@ -106,8 +107,8 @@
See this howto section of the manual for a discussion of different ways to compute temperature and perform thermostatting. Using this compute in conjunction with a -thermostatting fix will effectively implement a PUT, as described in -(Evans). +thermostatting fix, as explained there, will effectively implement a +profile-unbiased thermostat (PUT), as described in (Evans).
Output info:
diff -Naur lammps-30Apr09/doc/compute_temp_profile.txt lammps-1May09/doc/compute_temp_profile.txt --- lammps-30Apr09/doc/compute_temp_profile.txt 2009-04-29 11:29:52.000000000 -0600 +++ lammps-1May09/doc/compute_temp_profile.txt 2009-04-30 10:53:04.000000000 -0600 @@ -43,7 +43,7 @@ "fix temp/rescale"_fix_temp_rescale.html, "fix npt"_fix_npt.html, etc. The {xflag}, {yflag}, {zflag} settings determine which components of -velocity are subtracted out. +average velocity are subtracted out. The {binstyle} setting and its {Nx}, {Ny}, {Nz} arguments determine how bins are setup to perform spatial averaging. "Bins" can be 1d @@ -60,7 +60,8 @@ are both in the compute group and in the same spatial bin is summed to compute an average velocity for the bin. This bias velocity is then subtracted from the velocities of individual atoms in the bin to yield -a thermal velocity. +a thermal velocity for each atom. Note that if there is only one +atom in the bin, it's thermal velocity will thus be 0.0. After the spatially-averaged velocity field has been subtracted from each atom, the temperature is calculated by the formula KE = dim/2 N k @@ -98,8 +99,8 @@ See "this howto section"_Section_howto.html#4_16 of the manual for a discussion of different ways to compute temperature and perform thermostatting. Using this compute in conjunction with a -thermostatting fix will effectively implement a PUT, as described in -"(Evans)"_#Evans. +thermostatting fix, as explained there, will effectively implement a +profile-unbiased thermostat (PUT), as described in "(Evans)"_#Evans. [Output info:] diff -Naur lammps-30Apr09/doc/neigh_modify.html lammps-1May09/doc/neigh_modify.html --- lammps-30Apr09/doc/neigh_modify.html 2009-03-17 09:41:12.000000000 -0600 +++ lammps-1May09/doc/neigh_modify.html 2009-04-30 10:53:04.000000000 -0600 @@ -133,6 +133,17 @@ one value which tells LAMMPS the maximum number of neighbor's one atom can have. +IMPORTANT NOTE: LAMMPS can crash without an error message if the +number of neighbors for a single particle is larger than the page +setting, which means it is much, much larger than the one setting. +This is because LAMMPS doesn't error check these limits for every +pairwise interaction (too costly), but only after all the particle's +neighbors have been found. This problem usually means something is +very wrong with the way you've setup your problem (particle spacing, +cutoff length, neighbor skin distance, etc). If you really expect +that many neighbors per particle, then boost the one and page +settings accordingly. +
The binsize option allows you to specify what size of bins will be used in neighbor list construction to sort and find neighboring atoms. By default, for neighbor style bin, LAMMPS uses bins diff -Naur lammps-30Apr09/doc/neigh_modify.txt lammps-1May09/doc/neigh_modify.txt --- lammps-30Apr09/doc/neigh_modify.txt 2009-03-17 09:41:12.000000000 -0600 +++ lammps-1May09/doc/neigh_modify.txt 2009-04-30 10:53:04.000000000 -0600 @@ -128,6 +128,17 @@ {one} value which tells LAMMPS the maximum number of neighbor's one atom can have. +IMPORTANT NOTE: LAMMPS can crash without an error message if the +number of neighbors for a single particle is larger than the {page} +setting, which means it is much, much larger than the {one} setting. +This is because LAMMPS doesn't error check these limits for every +pairwise interaction (too costly), but only after all the particle's +neighbors have been found. This problem usually means something is +very wrong with the way you've setup your problem (particle spacing, +cutoff length, neighbor skin distance, etc). If you really expect +that many neighbors per particle, then boost the {one} and {page} +settings accordingly. + The {binsize} option allows you to specify what size of bins will be used in neighbor list construction to sort and find neighboring atoms. By default, for "neighbor style bin"_neighbor.html, LAMMPS uses bins diff -Naur lammps-30Apr09/src/neigh_derive.cpp lammps-1May09/src/neigh_derive.cpp --- lammps-30Apr09/src/neigh_derive.cpp 2008-02-15 12:06:53.000000000 -0700 +++ lammps-1May09/src/neigh_derive.cpp 2009-04-30 10:53:21.000000000 -0600 @@ -71,7 +71,7 @@ firstneigh[i] = neighptr; numneigh[i] = n; npnt += n; - if (npnt >= pgsize) + if (n > oneatom || npnt >= pgsize) error->one("Neighbor list overflow, boost neigh_modify one or page"); } @@ -148,7 +148,7 @@ firstneigh[i] = neighptr; numneigh[i] = n; npnt += n; - if (npnt >= pgsize) + if (n > oneatom || npnt >= pgsize) error->one("Neighbor list overflow, boost neigh_modify one or page"); } @@ -219,7 +219,7 @@ firstneigh[i] = neighptr; numneigh[i] = n; npnt += n; - if (npnt >= pgsize) + if (n > oneatom || npnt >= pgsize) error->one("Neighbor list overflow, boost neigh_modify one or page"); } @@ -314,7 +314,7 @@ firsttouch[i] = touchptr; firstshear[i] = shearptr; npnt += n; - if (npnt >= pgsize) + if (n > oneatom || npnt >= pgsize) error->one("Neighbor list overflow, boost neigh_modify one or page"); } @@ -454,7 +454,7 @@ firstneigh[i] = neighptr; numneigh[i] = n; npnt += n; - if (npnt >= pgsize) + if (n > oneatom || npnt >= pgsize) error->one("Neighbor list overflow, boost neigh_modify one or page"); firstneigh_inner[i] = neighptr_inner; diff -Naur lammps-30Apr09/src/neigh_full.cpp lammps-1May09/src/neigh_full.cpp --- lammps-30Apr09/src/neigh_full.cpp 2008-10-22 09:51:31.000000000 -0600 +++ lammps-1May09/src/neigh_full.cpp 2009-04-30 10:53:21.000000000 -0600 @@ -92,7 +92,7 @@ firstneigh[i] = neighptr; numneigh[i] = n; npnt += n; - if (npnt >= pgsize) + if (n > oneatom || npnt >= pgsize) error->one("Neighbor list overflow, boost neigh_modify one or page"); } @@ -182,7 +182,7 @@ firstneigh[i] = neighptr; numneigh[i] = n; npnt += n; - if (npnt >= pgsize) + if (n > oneatom || npnt >= pgsize) error->one("Neighbor list overflow, boost neigh_modify one or page"); } @@ -280,7 +280,7 @@ firstneigh[i] = neighptr; numneigh[i] = n; npnt += n; - if (npnt >= pgsize) + if (n > oneatom || npnt >= pgsize) error->one("Neighbor list overflow, boost neigh_modify one or page"); } diff -Naur lammps-30Apr09/src/neigh_gran.cpp lammps-1May09/src/neigh_gran.cpp --- lammps-30Apr09/src/neigh_gran.cpp 2008-10-22 09:51:31.000000000 -0600 +++ lammps-1May09/src/neigh_gran.cpp 2009-04-30 10:53:21.000000000 -0600 @@ -156,7 +156,7 @@ firstshear[i] = shearptr; } npnt += n; - if (npnt >= pgsize) + if (n > oneatom || npnt >= pgsize) error->one("Neighbor list overflow, boost neigh_modify one or page"); } @@ -253,7 +253,7 @@ firstneigh[i] = neighptr; numneigh[i] = n; npnt += n; - if (npnt >= pgsize) + if (n > oneatom || npnt >= pgsize) error->one("Neighbor list overflow, boost neigh_modify one or page"); } @@ -407,7 +407,7 @@ firstshear[i] = shearptr; } npnt += n; - if (npnt >= pgsize) + if (n > oneatom || npnt >= pgsize) error->one("Neighbor list overflow, boost neigh_modify one or page"); } @@ -514,7 +514,7 @@ firstneigh[i] = neighptr; numneigh[i] = n; npnt += n; - if (npnt >= pgsize) + if (n > oneatom || npnt >= pgsize) error->one("Neighbor list overflow, boost neigh_modify one or page"); } @@ -605,7 +605,7 @@ firstneigh[i] = neighptr; numneigh[i] = n; npnt += n; - if (npnt >= pgsize) + if (n > oneatom || npnt >= pgsize) error->one("Neighbor list overflow, boost neigh_modify one or page"); } diff -Naur lammps-30Apr09/src/neigh_half_bin.cpp lammps-1May09/src/neigh_half_bin.cpp --- lammps-30Apr09/src/neigh_half_bin.cpp 2008-10-22 09:51:31.000000000 -0600 +++ lammps-1May09/src/neigh_half_bin.cpp 2009-04-30 10:53:21.000000000 -0600 @@ -105,7 +105,7 @@ firstneigh[i] = neighptr; numneigh[i] = n; npnt += n; - if (npnt >= pgsize) + if (n > oneatom || npnt >= pgsize) error->one("Neighbor list overflow, boost neigh_modify one or page"); } @@ -219,7 +219,7 @@ firstneigh[i] = neighptr; numneigh[i] = n; npnt += n; - if (npnt >= pgsize) + if (n > oneatom || npnt >= pgsize) error->one("Neighbor list overflow, boost neigh_modify one or page"); } @@ -313,7 +313,7 @@ firstneigh[i] = neighptr; numneigh[i] = n; npnt += n; - if (npnt >= pgsize) + if (n > oneatom || npnt >= pgsize) error->one("Neighbor list overflow, boost neigh_modify one or page"); } diff -Naur lammps-30Apr09/src/neigh_half_multi.cpp lammps-1May09/src/neigh_half_multi.cpp --- lammps-30Apr09/src/neigh_half_multi.cpp 2008-10-22 09:51:31.000000000 -0600 +++ lammps-1May09/src/neigh_half_multi.cpp 2009-04-30 10:53:21.000000000 -0600 @@ -113,7 +113,7 @@ firstneigh[i] = neighptr; numneigh[i] = n; npnt += n; - if (npnt >= pgsize) + if (n > oneatom || npnt >= pgsize) error->one("Neighbor list overflow, boost neigh_modify one or page"); } @@ -237,7 +237,7 @@ firstneigh[i] = neighptr; numneigh[i] = n; npnt += n; - if (npnt >= pgsize) + if (n > oneatom || npnt >= pgsize) error->one("Neighbor list overflow, boost neigh_modify one or page"); } @@ -339,7 +339,7 @@ firstneigh[i] = neighptr; numneigh[i] = n; npnt += n; - if (npnt >= pgsize) + if (n > oneatom || npnt >= pgsize) error->one("Neighbor list overflow, boost neigh_modify one or page"); } diff -Naur lammps-30Apr09/src/neigh_half_nsq.cpp lammps-1May09/src/neigh_half_nsq.cpp --- lammps-30Apr09/src/neigh_half_nsq.cpp 2008-10-22 09:51:31.000000000 -0600 +++ lammps-1May09/src/neigh_half_nsq.cpp 2009-04-30 10:53:21.000000000 -0600 @@ -92,7 +92,7 @@ firstneigh[i] = neighptr; numneigh[i] = n; npnt += n; - if (npnt >= pgsize) + if (n > oneatom || npnt >= pgsize) error->one("Neighbor list overflow, boost neigh_modify one or page"); } @@ -190,7 +190,7 @@ firstneigh[i] = neighptr; numneigh[i] = n; npnt += n; - if (npnt >= pgsize) + if (n > oneatom || npnt >= pgsize) error->one("Neighbor list overflow, boost neigh_modify one or page"); } diff -Naur lammps-30Apr09/src/neigh_respa.cpp lammps-1May09/src/neigh_respa.cpp --- lammps-30Apr09/src/neigh_respa.cpp 2009-03-05 14:32:06.000000000 -0700 +++ lammps-1May09/src/neigh_respa.cpp 2009-04-30 10:53:21.000000000 -0600 @@ -143,7 +143,7 @@ firstneigh[i] = neighptr; numneigh[i] = n; npnt += n; - if (npnt >= pgsize) + if (n > oneatom || npnt >= pgsize) error->one("Neighbor list overflow, boost neigh_modify one or page"); ilist_inner[inum] = i; @@ -313,7 +313,7 @@ firstneigh[i] = neighptr; numneigh[i] = n; npnt += n; - if (npnt >= pgsize) + if (n > oneatom || npnt >= pgsize) error->one("Neighbor list overflow, boost neigh_modify one or page"); ilist_inner[inum] = i; @@ -478,7 +478,7 @@ firstneigh[i] = neighptr; numneigh[i] = n; npnt += n; - if (npnt >= pgsize) + if (n > oneatom || npnt >= pgsize) error->one("Neighbor list overflow, boost neigh_modify one or page"); ilist_inner[inum] = i; @@ -675,7 +675,7 @@ firstneigh[i] = neighptr; numneigh[i] = n; npnt += n; - if (npnt >= pgsize) + if (n > oneatom || npnt >= pgsize) error->one("Neighbor list overflow, boost neigh_modify one or page"); ilist_inner[inum] = i; @@ -841,7 +841,7 @@ firstneigh[i] = neighptr; numneigh[i] = n; npnt += n; - if (npnt >= pgsize) + if (n > oneatom || npnt >= pgsize) error->one("Neighbor list overflow, boost neigh_modify one or page"); ilist_inner[inum] = i;