Bug fixes and new features added to the 1 Oct 2006 version of LAMMPS. These are all part of the 12 Feb 2007 release, as discussed here.
1 Feb 2007
Paul Crozier has updated the units used by LAMMPS to be consistent with this document: http://physics.nist.gov/cuu/Constants/Table/allascii.txt
This meant small changes (less than 1 part in 1.0e-5) in some conversion constants stored by LAMMPS. When comparing runs made before and after the changes, you may see tiny differences in thermodynamic output, leading to the usual divergence of trajectories over long timescales.
These changes will be included in the next major release of LAMMPS, planned for release in the next week or so.
31 Jan 2007
The 1 Nov 06 change in the EAM potentials introduced a bug into the bookkeeping for the pairwise potential term for alloy interactions. This could be an issue when modeling alloy systems with either pair_style eam, eam/alloy, or eam/fs.
This bug fix will be included in the next major release of LAMMPS, planned for release in the next week or so.
Thanks to Hoseok Nam (Princeton U) for identifying the bug.
30 Jan 2007
The thermo_style custom, dump custom, and variable equal commands have been enhanced for greater flexibility and to make it easier for users to compute and print customized information as part of thermodynamic or dump output.
As part of this change, several computations within LAMMPS have been aggregated as "styles" in a new "compute" command. Compute styles include temperature and pressure calculations, certain energy calculations invoked as options to the thermo command, and per-atom computations like energy and stress, as invoked by the dump custom command. LAMMPS creates several Compute objects of its own, but input scripts can also create them and new compute styles can be easily added by users, just as pair or fix styles are added now.
The thermo_style custom command now has additional keywords for references to fixes, compute objects, and variables.
Dump custom commands now have additional keywords for references to compute objects.
Equal-style variables now can reference compute objects, as well as other variables.
For users, this means a few minor syntax changes in LAMMPS input scripts. The "temperature" and "temp_modify" commands have been deprecated. They are replaced by more general "compute" and "compute_modify" commands. The "thermo", "thermo_modify", "dump custom", and "variable equal" commands have an extended syntax.
These features will be included in the next major release of LAMMPS, planned for release in the next week or so.
29 Jan 2007
The way atom styles are implemented in LAMMPS has been changed, to enable easier addition of new styles and easier use of multiple styles via the atom_style hybrid command. Unlike before, coding a new atom style, now requires no additional coding to the hybrid style to enable the new style to work in a hybrid mode.
One syntax change for input scripts is that the atom_style molecular command now includes charge, and thus the "atom_style full" command has been deprecated.
This feature will be included in the next major release of LAMMPS, planned for release in the next week or so.
28 Jan 2007
James Fischer (High Performance Technologies, Inc) and his collaborators David Richie and Vincent Natoli (Stone Ridge Technologies) have written optimized versions of several commonly used pair styles in LAMMPS. The resulting speed-up (in the portion of time spent computing pair interactions) depends on the processor LAMMPS is running on and the size of problem being run, but can be between 5% and 20%.
The new optimized styles are
These new pair styles will be included in a new OPT package in the next major release of LAMMPS, planned for release in the next week or so.
27 Jan 2007
Greg Wagner (Sandia) has added his modified embedded atom method (MEAM) library to LAMMPS as a new pair_style meam. This is implemented as a F90 library that can be compiled separately and linked to LAMMPS.
This library will be included in a new MEAM package in the next major release of LAMMPS, planned for release in the next week or so.
26 Jan 2007
The top-level structure of LAMMPS has been altered to remove a few global variables, using a restructuring idea proposed by Ben FrantzDale at RPI. This means when LAMMPS is used as a library, multiple copies of LAMMPS "objects" can be instantiated and used simultaneously. All the LAMMPS classes have also been put into their own namespace, again to facilitate LAMMPS use as a library. See this section of the manual for additional info on coupling another code to LAMMPS as a library.
This feature will be part of the next major release of LAMMPS, planned for release in the next week or so.
12 Jan 2007
Fixed a bug in the minimizer that occurs if some proc has 0 atoms when the minimizer starts up.
This patch file can be applied to the 20 Dec 2006 version. This is the list of changed files.
Thanks to Dan Lussier (Oxford Univ) for finding the bug.
20 Dec 2006
Added a new variable uloop style, similar to the loop style, but for input script variables that get assigned to processor partitions when running in multi-partition mode (see the command-line options section of the Getting Started doc file). Uloop variables enable you to specify a long series of LAMMPS runs (e.g. 1000) without having to list 1000 values in your input script.
This patch file can be applied to the 19 Dec 2006 version. This is the list of changed files.
19 Dec 2006
Aidan added an "enthalpy" option to the thermo_style command, so that the system's enthalpy (PE + P*V) can be printed as part of thermodynamic output.
This patch file can be applied to the 15 Dec 2006 version. This is the list of changed files.
15 Dec 2006
Changed the dump command so as to only write atom snapshots on timesteps that are multiples of the dump frequency (including step 0). Previously, snapshots were also written on the 1st timestep of a run, which can be confusing if run lengths are not multiples of the dump frequency.
This patch file can be applied to the 13 Dec 2006 version. This is the list of changed files.
13 Dec 2006
Minor modification to fix rigid to correctly compute the degrees-of-freedom for rigid diatomic molecules.
This patch file can be applied to the 12 Dec 2006 version. This is the list of changed files.
Thanks to Joyce Noah-Vanhoucke (UC Berkeley) for finding the bug.
12 Dec 2006
Added a fix deposit command which inserts a new atom into the simulation every N timesteps. This is useful for simulating deposition of adatoms onto a surface. Changed the name of the "fix insert" command to fix pour to be more descriptive since both these fixes insert atoms.
Also added a dynamic option to the various temperature styles, to enable temperatures to be computed on groups of atoms where the number of atoms varies with time. This is useful for thermostatting the collection of adatoms.
This patch file can be applied to the 11 Dec 2006 version. This is the list of changed files.
Thanks to Steve Seel (Sandia) for assistance in formulating this new feature.
11 Dec 2006
Fixed a one-line bug in the routine that remaps atoms from outside the simulation box back into. It's only called when you "read a data file" or "replicate" a system and its effect would be to mess up the image flags for the remapped atom.
This patch file can be applied to the 8 Dec 2006 version. This is the list of changed files.
Thanks to Mihail Vladkov (Universite Lyon) for finding this bug.
8 Dec 2006
Fixed a bug in the restart2data tool with image flags. A change was made in LAMMPS itself a couple months ago as to how image flags are stored. This change didn't propagate into the restart2data tool.
This patch file can be applied to the 6 Dec 2006 version. This is the list of changed files.
Thanks to Joyce Noah-Vanhoucke (UC Berkeley) for finding the bug.
6 Dec 2006
Fixed a bug with processing command-line settings of input script variable values.
This patch file can be applied to the 29 Nov 2006 version. This is the list of changed files.
Thanks to Lutz Maibaum (UC Berkeley) for finding the bug.
29 Nov 2006
Made a change to the Tersoff potential to allow the costheta0 parameter input from the potential file to be < -1 or > 1. As a user pointed out, some formulations of Tersoff potentials use such a parameterization of the costheta0 (or h) value.
This patch file can be applied to the 28 Nov 2006 version. This is the list of changed files.
Thanks to James Ramsey for making this suggestion.
28 Nov 2006
Fixed a couple small glitches in the lmp2cfg tool that converts LAMMPS dump files to CFG format files (e.g. for input to AtomEye). We also plan to release a new Pizza.py tool that will do this conversion.
This patch file can be applied to the 19 Nov 2006 version. This is the list of changed files.
19 Nov 2006
Changed a line in the code for the create_atoms command that some compilers complain about.
This patch file can be applied to the 18 Nov 2006 version. This is the list of changed files.
18 Nov 2006
Fixed a memory bug in the neighbor-list building routines that could have arisen when multiple runs are performed in the same input script.
This patch file can be applied to the 17 Nov 2006 version. This is the list of changed files.
Thanks to Marco Kalweit (Cranfield, UK) for identifying the problem and suggesting a solution.
17 Nov 2006
Fixed two one-line bugs that affect atom dumps with threshholding of epair or centro values via the dump_modify command.
This patch file can be applied to the 16 Nov 2006 version. This is the list of changed files.
Thanks to Wan Liang (Chinese Academy of Sciences) and Gerolf Ziegenhain (Technical University Of Kaiserslautern, Germany) for identifying the bug.
16 Nov 2006
Left two files out of the 14Nov06 patch for the new lattice options. This patch includes them. Sorry about that!
This patch file can be applied to the 15 Nov 2006 version. This is the list of changed files.
15 Nov 2006
Fixed two one-line bugs in the pair_style sw and pair_style tersoff commands, where an array needed to be allocated element one larger.
This patch file can be applied to the 14 Nov 2006 version. This is the list of changed files.
14 Nov 2006
Added new options to the lattice and create_atoms commands to allow for generalized non-orthogonal unit cells and multiple basis atoms per unit cell. The enhanced versions of these commands allow any space-filling lattice to be specified and populated with atoms of different types.
Note that LAMMPS still requires its simulation domain to be an orthogonal box (we're still working on implementing generalized triclinic simulation boxes). Thus care must be taken when creating atoms on non-orthogonal lattices in a periodic orthogonal box.
Creation of a lattice also causes LAMMPS to compute "lattice spacings" in x,y,z that can be used (optinally) by other commands as distance units. LAMMPS now prints these spacings when the lattice command is invoked. The method for computing the spacings for general non-orthogonal lattices is described in the doc page of the lattice command.
IMPORTANT NOTE: The syntax of 3 commands is changed by this patch. When using the create_atoms command with a region, the keyword region must be used since the basis keyword is also allowed. The orient and origin commands no longer exist. They are now options to the lattice command.
IMPORTANT NOTE: This new version of LAMMPS may not produce identical results when compared to older versions due to round-off differences. This can occur when (a) atoms are created at coordinates that differ by epsilon, (b) initial velocities are assigned to created atoms by the "loop geom" option which depends sensitively on the precise atom coordinates, or (c) region boundaries are multiples of lattice spacings, since an individual atom's coordinate may now end up on a different side of the boundary. The last issue affects several of the example input scripts where region commands are used to create obstacles or voids or frictional surface bumps. The result is that the number of atoms included in the region may vary by 1 or 2 atoms in the old vs new versions.
This patch file can be applied to the 13 Nov 2006 version. This is the list of changed files.
Thanks to Kwang-Ryeol Lee's group at the Korea Institute of Science and Technology, particularly Sang-Pil Kim and Seung-Cheol Lee, who wrote a CrystalBuilder module that jump-started my thinking about how to design and implement this feature.
13 Nov 2006
Fixed two small bugs that affected the timestep on which dump snapshots and restart files were being output, when the number of timesteps in successive runs were not a multiple of the dump/restart frequency. The steps on which the output is done now agree with the documentation for the dump and restart commands.
This patch file can be applied to the 12 Nov 2006 version. This is the list of changed files.
Thanks to Nick Suek (Iowa State Univ) for flagging this bug.
12 Nov 2006
Mark Stevens (Sandia) added a new fix wall/lj126 command whereby particles interact with the wall via the usual Lennard-Jones 12-6 potential, rather than the LJ 9-3 potential as computed in the fix wall/lj93 command. This allows for a harder, more repulsive interaction with the wall, if desired.
To make the energy contribution of wall-particle interactions continuous as particles move across the wall cutoff, the potentials for both the wall/lj93 and wall/lj126 fixes are now shifted so that the wall-particle interaction energy is 0 at the cutoff. This does not affect particle dynamics, but is an energy contribution you will see if the fix_modify command is used to access the fix's contribution to the system energy.
This patch file can be applied to the 11 Nov 2006 version. This is the list of changed files.
11 Nov 2006
Fixed a bug with the every option of the run command. When certain commands were specified as arguments to the every keyword, they were executed twice each time the run was paused, instead of once. This happened for commands that have their own class within LAMMPS (listed in the CommandClass section of the style.h file), such as the minimize or write_restart commands.
This patch file can be applied to the 10 Nov 2006 version. This is the list of changed files.
Thanks to Wan Liang (Chinese Academy of Sciences) for finding this bug.
10 Nov 2006
Added options to the dump custom command to enable per-atom kinetic energy and total energy (ke and etotal) to be printed to a dump file. The total energy is the sum of ke and the pair-wise energy (epair).
IMPORTANT NOTE: This patch changes the input script syntax for a couple of the keywords used with the dump custom and thermo_style custom commands. I changed the keyword names to make the two commands consistent. Thus, for thermo_style custom, the eng keyword is changed to etotal. And for dump custom, the eng keyword is changed to epair and there is a new keyword etotal. Neither command now accepts the eng keyword since it is insufficiently descriptive.
This patch file can be applied to the 6 Nov 2006 version. This is the list of changed files.
Thanks to Jamie Sanchez (U Kentucky) for suggesting this feature.
6 Nov 2006
Fixed some one-line bugs in the velocity and fix momentum commands that effect the zeroing of angular momentum.
Also changed the syntax for allocating element name character strings in the new pair_style sw and pair_style tersoff commands, that seemed to cause problems for some compilers.
This patch file can be applied to the 4 Nov 2006 version. This is the list of changed files.
Thanks to Alexey Kuksin (Russian Academy of Sciences, Moscow) for finding the momentum bugs.
4 Nov 2006
Added 3-body Tersoff and Stillinger-Weber potentials for simulating Si and other semiconductor materials. These potentials were originally implemented by Aidan Thompson (SNL) in his GRASP MD code. We have now ported them to LAMMPS where they are invoked via the pair_style sw and pair_style tersoff commands. They can also be used in pair_style hybrid simulations in conjunction with other pair potentials. The 2 new pair potentials are part of the MANYBODY package (along with EAM potentials), which is included by default in a LAMMPS build.
Parameters for the Stillinger-Weber and Tersoff functionals are listed in potential files and read-in by LAMMPS via the pair_coeff command. Two examples (si.sw and si.tersoff) are added by this patch to the potentials directory.
This patch also fixes a small memory bug with the EAM alloy and Finnis-Sinclair potentials. It also modifies the library.h file so that when LAMMPS is built as a library, the library interface functions can be called directly from C and Fortran, without the name-mangling that C++ compilers induce.
This patch file can be applied to the 3 Nov 2006 version. This is the list of changed files.
3 Nov 2006
Added some error checking to neighbor list construction with bins to flag when the simulation box is too big, so that too many bins (and memory) are required. This can happen when atoms are jettisoned very far outside the simulation box and can cause LAMMPS to crash. This scenario should now generate a more understandable error message and exit cleanly.
This patch file can be applied to the 2 Nov 2006 version. This is the list of changed files.
2 Nov 2006
Fixed a small bug in the time integrator fixes (nvt, npt, nph) that shows up when the fix_modify energy yes command is used to add their energy contribution to the printed thermodynamic energy. On the first timestep (and thermo print-out) of a simulation, the fix's energy contribution was computed incorrectly.
This patch file can be applied to the 1 Nov 2006 version. This is the list of changed files.
1 Nov 2006
Simplified the computational kernels and internal format of EAM potentials invoked by the pair_style eam command so as to be simpler and consistent with new manybody potentials we are about to release (Tersoff, Stillinger-Weber). Computational results using the new EAM files should be identical to the previous versions.
For pair_style eam/alloy and eam/fs, the syntax of the pair_coeff command changed slightly to use element names, rather than numeric indices, for mapping LAMMPS atom types to elements in the potential files, e.g.
pair_coeff * * nialhjea.eam.alloy Ni Ni Al
instead of
pair_coeff * * nialhjea.eam.alloy 1 1 2
This also necessitated adding element names to one line in alloy and FS potential files.
I also updated the documentation on the pair_style eam page that describes the format of the various EAM potential files. Thanks to several users (including Sandrine Brochard and Luis Sandoval) who helped me understand the units of several quantities in these files.
This patch file can be applied to the 31 Oct 2006 version. This is the list of changed files.
31 Oct 2006
Added an error check on dump custom output if you specify a quantity that isn't defined, e.g. dumping molecule IDs for an atomic system. Added a needed 1/r factor for torque on granular particles interacting with frictional walls as invoked by the fix wall/gran command. Modified the region definition files so that all code for a new added region is now in one file (a portion was in the parent class file). Fixed a glitch in the parsing tool that creates a Makefile.lib for building LAMMPS as a library.
This patch file can be applied to the 24 Oct 2006 version. This is the list of changed files.
Thanks to Dan Lussier (Oxford) for suggesting the dump error check. Thanks to Jin Sun (Iowa State U) for finding the granular and library building bugs.
24 Oct 2006
Fixed a bug in the variable command to allow the bound group function to work for xmin, xmax, ymin, and ymax.
This patch file can be applied to the 17 Oct 2006 version. This is the list of changed files.
Thanks to Arun Subramaniyan (Purdue) for finding and fixing this bug.
17 Oct 2006
Fixed a bug with how run_style respa computes pressure when the "outer" keyword is invoked and either pair_style lj/charmm/coul/long or lj/cut/coul/long are used.
This patch file can be applied to the 14 Oct 2006 version. This is the list of changed files.
Thanks to Pieter in't Veld (SNL) for finding this bug.
14 Oct 2006
Fixed a bug with how LAMMPS cleans up when the input script finishes, when log files have been renamed via the log command.
This patch file can be applied to the 13 Oct 2006 version. This is the list of changed files.
13 Oct 2006
Fixed a bug with how the delete_atoms command interacted with neighbor lists in some special cases.
This patch file can be applied to the 12 Oct 2006 version. This is the list of changed files.
Thanks to John Tsai (National Tsing Hua University) for running into this bug.
12 Oct 2006
Added a region prism style to allow for tilted shapes to be filled with atoms or deleted. This is only a geometric definition, but is being done in preparation for allowing for tilted simulation boxes (triclinic shapes).
This patch also fixes a typo in the #ifdef section of fix wall/reflect.
This patch file can be applied to the 4 Oct 2006 version. This is the list of changed files.
Thanks to Pieter in't Veld (SNL) for developing region prism. Also to Dave Heine (Corning) for noticing the typo.
4 Oct 2006
Fixed a one-line bug in the delete_atoms overlap command.
This patch file can be applied to the 3 Oct 2006 version. This is the list of changed files.
3 Oct 2006
Fixed some one-line bugs in the fix recenter, fix momentum, and group angular momentum computations. The latter affected velocity creation when the rot keyword is used. Also updated the doc pages for those two fixes to make the examples more clear and correct.
This patch file can be applied to the 2 Oct 2006 version. This is the list of changed files.
Thanks to Steve Seel (SNL) for identifying these problems.
2 Oct 2006
The restart2data tool in yesterday's release wasn't upgraded to deal with the new dihedral_style opls potential. This patch fixes that.
Since we are now auto-generating these patches from source control (Subversion), this patch also adds a few LaTeX files for doc page formulas and fixes some spelling errors in the doc pages.
This patch file can be applied to the 1 Oct 2006 version. This is the list of changed files.
Thanks to Matt Lane (SNL) for fixing this deficiency.