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.


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.


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.


13 Dec 2006

Minor modification to fix rigid to correctly compute the degrees-of-freedom for rigid diatomic molecules.

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.

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.

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.

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.

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.

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.


19 Nov 2006

Changed a line in the code for the create_atoms command that some compilers complain about.


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.

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.

Thanks to Liang Wan (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!


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.


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.

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.

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.


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.

Thanks to Liang Wan (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.

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.

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.


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.


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.


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.


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.

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.

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.

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.


13 Oct 2006

Fixed a bug with how the delete_atoms command interacted with neighbor lists in some special cases.

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.

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.


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.

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.

Thanks to Matt Lane (SNL) for fixing this deficiency.


26 Sept 2006

Changed the way periodic-box image flags are tracked in LAMMPS so that they wrap-around if the MAX count is ever exceeded. Previously, they overflowed (if atoms went through the box more than MAX times), so that the x flag could corrupt the y/z flags or vice versa. As part of this change, the image flags are now computed with bit-wise arithmetic, so that the MAX count is now +/- 512 instead of 500.

This has the unfortunate side-effect that the image flags stored in old restart files will now be incompatible with the current LAMMPS. Old restart files can still be read-in, but if a fix or dump uses the image flags (only some of them do), the image values will be bogus.

This will be part of the next LAMMPS release in the next week or so.

Thanks to Erik Luijten (U Illinois) for suggesting this upgrade and providing some sample code.


11 Sept 2006

Fixed a one-line bug with the error checking for the Lennard-Jones tail correction upgrade. The code should prevent you from using tail corrections with shifted LJ potentials (both are pair_modify options). Instead it prevented you from using either.

Thanks to Nick Suek (Iowa State) for identifying the bug.


1 Sept 2006

Fixed a sign error in the Lennard-Jones tail correction terms for energy and pressure that was released on 29 Aug 2006 (invoked by the pair_modify command). The error was only in the lj/class2 pair potentials. Also added tail corrections for the lj/expand potential and some error checking on when it is legitimate to request tail corrections be computed.

Thanks to Paul Crozier (SNL) for working out the ugly math for the lj/expand tail correction.


31 Aug 2006

Fixed a one-line bug with input script universe variables that made running a series of jobs on multiple processor partitions sometimes fail.


30 Aug 2006

Changed a sqrt() call to sqrtf() in a few places where it operates on single-precision values for the long-range Coulombic tabling. This is a more accurate library call to make on single precision values.


29 Aug 2006

Paul Crozier (SNL) has implemented Lennard-Jones tail corrections for energy and pressure for contributions from atom pairs beyond the cutoff distance. This option can now be enabled via the pair modify tail option. The contributions are included in thermodynamic output. The energy term can be explicitly printed via the etail option in the thermo_style command.

Note that the pressure tail correction affects NPT and NPH simulations since the system pressure influences the simulation box size.


26 Aug 2006

This patch upgrades the charmm2lammps conversion Perl script to do a better job parsing PDB files.

Thanks to Pieter in 't Veld (SNL) for providing the upgrade.


25 Aug 2006

Fixed another one-line bug with input script variables.

Thanks to Paul Crozier (SNL) for stumbling into the bug.


24 Aug 2006

Added an error check to the fix nvt and fix npt commands to insure the user-specified target temperatures will never produce a target T of 0.0. This is not allowed in the Nose/Hoover formulation since it would invoke a divide by 0.0.

Thanks to Kwanghee Kim (Samsung Advanced Institute of Tech) for running into this problem.


23 Aug 2006

Fixed two one-line bugs with the new input script variable options added on 19 Aug 2006. They affected the re-definition of equal style variables and memory allocation for large numbers of variables.


22 Aug 2006

Added a couple features to make it easier for an input script to continue a long run without having to edit the script. This can be useful, for example, when a long simulation is progressing thru a batch queue which allocates successive chunks of time for it.

An upto option was added to the run command so that if you specify "run 1000000 upto", the run will continue from the current timestep up to step 1000000.

The read_restart command was enhanced to allow a filename with a "*" character which means scan the directory for filenames which match the pattern, replacing "*" with the largest timestep value found. Thus the command "read_restart file.*" will read the latest restart file, e.g. file.50000.

For compatability, the write_restart command was also augmented to allow a file syntax like "write_restart restart.*.poly" to substitute the current timestep for the "*" character.

Thus an input script like this:

read_restart restart.*
...
variable s equal step
restart	10000 restart.*
dump 1 all atom 1000 file.$s
run 1000000 upto 

would start up where a previous run with the same script left off. Note the use of the variable "s" to create a dump file with a new name based on the current timestep, which won't overwrite a dump file created by a previous run.


19 Aug 2006

Added several related features:

Thanks to Naveen Michaud-Agrawal (Johns Hopkins U) for initial implementations of many of these new features.


18 Aug 2006

Added some options to the run command.

The start and stop options let you specify the timestep bounds of multiple successive runs, so that fix commands such as fix nvt or fix volume/rescale that ramp their target values (temperature, box dimension) over the course or a run, can be made to do the ramping over multiple runs.

The pre and post options can be used to turn off the pre-computation LAMMPS does before a run or the full timing summary it prints at the end of a run. This can be useful when doing many successive short runs, e.g. when LAMMPS is being called as a library.

The every option lets you specify a LAMMPS command to invoke every M steps during a run. This can be useful as a shorthand notation for listing many runs in a single command, or to invoke a command that wraps another code so it can periodically do computations during a long LAMMPS run.

Also reworked how the top-level of LAMMPS is structured to enable it to be coupled to other codes and to be wrapped as a library more flexibly. In particular, the library version of LAMMPS is now given an MPI communicator to run under, so LAMMPS can be run on a subset (or all) the processors controlled by some higher-level code. A few simple routines were added to src/library.cpp to illustrate how interface functions can get/put data from/into LAMMPS.

This section of the documentation describes different options for coupling LAMMPS to other codes, some of which use the new run command options. I also added an example file to the "couple" subdirectory of the examples directory that illustrates how to write a top-level code that links to and calls LAMMPS as a library.


17 Aug 2006

Fixed a bug in the fix temp/rescale command that prevented it from printing its energy contribution with thermodynamic info when enabled by the fix_modify thermo yes command.

Thanks to Robert Stevens (Rochester Institute of Technology) for identifying the bug.


16 Aug 2006

Added a diamond option to the lattice command so diamond lattices can now be created with the create_atoms command.

Medha Dakshina Murthy requested this addition.


10 Aug 2006

Fixed a bug with the dissipative particle dynamics (DPD) pair_style dpd forces when called in single-particle mode (e.g. for computing per-atom energy or stress). I incorrectly included the random and dissipative terms in the force.

Thanks to Kurt Smith (U Pittsburgh) for pointing out the mistake.


9 Aug 2006

The new dihedral_style opls command has a one-line bug with its force calculation which this patch fixes.

Thanks to Mesfin Tsige (Southern Illinois U) for catching this bug.


8 Aug 2006

Fixed some bugs with temperature calculation and velocity initialization in the LAMMPS interface to the POEMS rigid body package and in POEMS itself.

Thanks to Rudranarayan Mukherjee (RPI) for working on these fixes.


4 Aug 2006

Fixed a bug with minimization when performed with fixes that add forces and potential energy to the system (fix indent, fix wall/lj93). LAMMPS should now allow an indenter to be incrementally pushed into a surface and the atoms to be relaxed around the indenter at each stage via the minimize command.

Note that in order for the minimizer to include the energy of the atoms acting with the indenter (for example) in the total potential energy (quantity being minimized), you must enable the fix_modify energy option for the fix.


3 Aug 2006

Discovered that LAMMPS will sometimes read text files incorrectly (input scripts, data files, etc) that were created on a Windows PC if they use the DOS convention of terminating lines with carriage-return/line-feed instead of just a newline. This can mess up the parsing in LAMMPS. This patch fixes the problem by adding checks for those oddball characters.

File this patch under "yet another reason to dislike Windows."


2 Aug 2006

Added a shell command, that allows a handful of file-related Unix commands to be invoked by a LAMMPS input script, namely cd, mkdir, mv, rm, and rmdir. This means you can move, delete, rename files as needed, e.g. between LAMMPS runs.

Note that cd was previously a command of its own; it is now subsumed into the more general shell command.

I thought about adding a copy command (cp), but I don't think there is a C library cp() function. If someone knows how to do this, short of reading/writing the file, let me know.

Thanks to Zhimin Xiong for suggesting this new feature.


1 Aug 2006

Fixed a one-line bug in the dump custom command which would affect the option to write binary files.

Thanks to Naveen Michaud-Agrawal (Johns Hopkins U) for finding this bug.


27 Jul 2006

Added the ability for granular systems to be simulated in 2d. Previously, LAMMPS could do a 3d simulation of quasi-2d granular particles, treating them as spheres constrained to the z=0 plane (e.g. by the fix setforce command). Now they can be modeled as true 2d disks, with an altered moment of inertia.

This also required generalizing the fix insert command and changing the syntax of its zrate keyword to rate so it can now be a z-directional velocity for 3d systems or a y-directional velocity for 2d systems.

Thanks to Jeremy Lechman (SNL) for help in understanding all the issues relevant to 2d granular systems.


24 Jul 2006

Paul Crozier (SNL) suggested a numerical test in some of the dihedral potentials to guard against the special case of a degenerate dihedral conformation (4 colinear atoms). This patch adds that logic to the multiharmonic, class2, helix, and opls dihedral styles.

patch, type "make package-update" before re-making LAMMPS.


21 Jul 2006

Added the ability to write/read binary restart files using a "%" in the filename, so that multiple, smaller files (one per processor) can be written/read instead of one large restart file. This is now an option for the restart, write_restart, and read_restart commands and the restart2data tool. Conceptually, this is similar to using a "%" in dump file names.

This allows parallel I/O to be invoked for writing restart files, but not for reading them, since a single processor still reads all the files. Multiple-file restarts can be read in by any number of processors, regardless of how many processors wrote out the multiple-file restart.

The idea of allowing for smaller, multiple restart files was suggested by Luis Zepeda-Ruiz (LLNL).


20 Jul 2006

Makefile.lib was inadvertantly left out of the 17 Jul 2006 tar file. It's used to build LAMMPS as a library, as discussed in this section of the manual. This patch adds the file.

Thanks to Zhimin Xiong for pointing out the omission.


19 Jul 2006

Mark Stevens added an dihedral potential for the OPLS force field, which can be accessed via the dihedral_style command.


18 Jul 2006

Added an option to the fix indent command to allow the radius of the indenter to change during a run. This option can be used, for example, to grow/shrink a void within the simulation box.

Tim Sirk (U Vermont) requested a method for pushing water out of a region. Naveen Michaud-Agrawal (Johns Hopkins U) suggested using a growing void and did an initial implementation as a separate fix. I decided it was best to just make it an option within the existing fix indent command.


12 July 2006

Fixed a bug with boundary style "m" where the box is not allowed to be shrink wrapped beyond a minimum size. The constraint was not obeyed correctly which sometimes allowed atoms to be lost. This bug fix will be part of the next LAMMPS release (hopefully this week).

Thanks to Vladimir Stegailov (IHED, Russian Academy of Sciences) for finding the bug.


21 June 2006

An option to write atom coordinates in "unwrapped" format to a dump file has been added to the dump custom command. Unwrapped means that if the atom has passed thru the periodic box one or more times, that the appropriate number of box lengths is added to the coordinate value. The new option is accessed with keywords xu, yu, and zu. This will be part of the next LAMMPS release, around the 1st week of July.


20 June 2006

The earlier release of an energy minimizer did not allow per-atom quantities like energy, stress, centro-symmetry to be written to dump files during the minimization procedure. This will be remedied in the next LAMMPS release, around the 1st week of July.


19 June 2006

A new library called POEMS has been added to LAMMPS to enable the modeling of coupled rigid bodies. A rigid body is simply a collection of atoms, constrained to move (translate, rotate) as a single object. Coupled, in this context, means connecting two bodes by a spherical "joint", where the joint is an atom common to both bodies. A chain of coupled rigid bodies can be used to represent a protein or polymer molecule as a coarse-grain model.

POEMS is an open-source C++ package, developed at RPI by Kurt Anderson and Rudranarayan Mukherjee, for computing the time integration and associated constraints for rigid body motion. Rudra worked to create a library version of POEMS which he interfaced to LAMMPS, so it can now be invoked via a fix poems command. POEMS and the LAMMPS/POEMS interface will be part of the next LAMMPS release, around the 1st week of July.

Note that there are other ways to model isolated (uncoupled) rigid bodies in LAMMPS. For small molecules, a SHAKE constraint can be imposed via the fix shake command. For large bodies, the fix rigid command can be used.


18 June 2006

The earlier release of a dissipative particle dynamics (DPD) pair potential as pair_style dpd did not include a pairwise energy computation. Kurt Smith (U Pittsburgh) has sent additional code for this which will be included in the next LAMMPS release, around the 1st week of July.


17 June 2006

The fix rdf command has been modified to exclude the contribution of bonded atoms to the radial distribution function, when their pairwise weighting factor is 0.0, as specified by the special bonds command. Non-zero weighting factors (even if fractional) will continue to be fully counted in the RDF. This will be part of the next LAMMPS release, around the 1st week of July.


16 June 2006

Srini Srivilliputhur (LANL) found a small bug with the LAMMPS implementation of embedded atom method (EAM) pair potentials, as invoked by pair_style eam, eam/alloy, and eam/fs. If two atoms get very close together, the computation of one atom's contribution to the other's embedding density can cause an error in indexing the pre-tabulated array of density values. This will not normally occur in simulations of solids at reasonable temperatures. Srini is using the EAM potentials to model high-energy impacts of ions into solids (to compute damage cascades), where a pair of atoms can nearly overlap.

This bug fix will be part of the next LAMMPS release, around the 1st week of July.


15 June 2006

The 5 June 2006 release of the TIP4P pair potential did not write/read its parameters correctly to binary restart files. This will be fixed in the next LAMMPS release, around the 1st week of July.


5 Jun 2006

Added a new pairwise potential which can be used to model 4-site rigid TIP4P waters with long-range Coulombics (Ewald or PPPM). The new pair style is lj/cut/coul/long/tip4p. It should be used in conjunction with kspace style pppm/tip4p. Similar new pair styles for TIP4P joined with lj/charmm and coul/cut could be added, but we haven't done it yet; this variant seemed to be the most useful. Also added some how-to segments to this section of the manual which explain how to parameterize various TIP3P, TIP4P, and SPC water models for LAMMPS.

The heavy lifting for this implementation was done by Ahmed Ismail (SNL) based on earlier work for a TIP4P model in LAMMPS 2001 by Amalie Frischknecht (SNL).


4 Jun 2006

Tweaked the logic for output of dump and restart files, so that they will be always be output on the last timestep of a dynamics or minimization run. The new logic insures this occurs even when it's not known a priori how many iterations a minimization will require to converge.

Thanks to Virginie Dupont (U Vermont) for suggesting this enhancement.


3 Jun 2006

Added an overlap style to the delete_atoms command. This will delete one atom out of pairs of atoms that are closer than a specified cutoff criterion. It's useful to use before running dynamics on a created system that has overlapping atoms, e.g. at a grain boundary.


2 Jun 2006

Created an updated version of the replicate.c tool in the tools directory that can be used to shrink/expand/replicate the atoms in a data file, as discussed in this section of the documentation. The tool was out-of-date with respect to the atom styles available in the 12 Apr 2006 version. Note that the replicate command within LAMMPS itself can perform some of the functionality of this tool.

Thanks to Burcu Eksioglu (U Toledo) for pointing out this deficiency.


1 Jun 2006

Fixed a bug with dihedral_style charmm that is only an issue when also using pair_style lj/charmm/coul/charmm/implicit. The effect of the implicit solvent is to add an additional 1/r factor to pairwise interactions, but this was mistakenly left out of the weighted 1-4 interactions computed as part of the CHARMM dihedral potential.

patch, type "make package-update" before re-making LAMMPS.

Thanks to Paul Crozier (SNL) for finding this bug.


31 May 2006

Apparantly the latest version of MPI (MPI-2) undefines the system SEEK file parameters used by dump dcd. So if you get a compilation error in the dump_dcd.cpp file for undeclared SEEK parameters, you need this patch.

Thanks to Mesfin Tsige (Southern Illinois U) for providing the fix to this problem.


30 May 2006

Neglected to add the examples/min directory to the 12 April 2006 version which contains a simple example script for minimizing the energy of a disordered LJ lattice. This patch puts the min directory in place.

Thanks to Virginie Dupont (U Vermont) for pointing out this problem.


21 May 2006

Added more checks to data file reading to insure that atom IDs and atom/bond/angle/etc types are valid. This protects against more forms of invalid data files.

patch, type "make package-update" before re-making LAMMPS.


20 May 2006

There were problems in the latest upgrade tar file with some package files not being in the main src dir, due to the complexity of previous patches. So I've replaced the upgrade tar file with a correct one.


19 May 2006

Fixed an error in the documentation for the dissipative particle dynamics (DPD) potential recently added to LAMMPS, regarding the specification of the sigma parameter. The docs for the pair_style and pair_coeff commands are affected.


18 May 2006

Changed the way pair_style hybrid does its calculations for simulations using two or more pair potentials.

The new method is faster and simpler to implement. The only drawback is that it requires twice the memory since it makes copies of each portion of the neighbor list that pertains to a particular pair potential. Since neighbor lists are typically the biggest chunk of memory used by LAMMPS, this means you cannot run as large a problem in hybrid mode as you can for simulations that use a single pair potential.

Thanks to James Fischer (High Performance Technologies, Inc), Vincent Natoli (Stone Ridge Technology), and David Richie (Stone Ridge Technology) who have been working on various LAMMPS optimizations. The idea for this change was theirs, and they did an initial implementation to convince me it was better.


17 May 2006

Added a bond_style quartic which effectively breaks the bond after it has stretched beyond a certain distance. Coefficients that match the quartic functional to a FENE bond potential are given in the documentation. This is the potential that has been used in LAMMPS calculations to study the adhesive properties of idealized bead-spring chains, several examples of which are given on the Pictures and Publications pages of the LAMMPS WWW site.

Also changed the way the hybrid bond style is computed to make it more straightforward. This also allows angles, dihedrals, and impropers to be computed in a hybrid mode, so that two or more angle, dihedral, or improper styles can now be used simultaneously in a simulation.

Thanks to Mark Stevens and Chriz Lorenz (SNL) for developing the initial versions of the bond quartic potential.


16 May 2006

Enhanced several aspects of how temperature is computed and used.

A new region style was added to the temperature command, to compute T for a geometric region of atoms. This means thermostatting can now be done on a dynamic set of atoms (those currently in the region) via the fix temp/rescale and fix langevin commands; options for region specification were added to those commands.

A keyword of the form t_ID was added to the thermo_style custom command, to compute and print out any defined temperature(s) along with the usual thermo info. Likewise, t_ID can be used in the variable equal command.

Finally, the way temperatures are created and used by the fix nvt, fix npt, fix nph, fix temp/rescale, and thermo_style commands is now more consistent and is documented. By default, these fixes all create their own temperature style with the same ID as the fix-ID, which means they can be modified by the temp_modify command or accessed by thermo_style custom.


12 May 2006

Naveen Michaud-Agrawal (Johns Hopkins U) has provided code for two new dump styles dcd and xtc, which create DCD and XTC formatted binary files. DCD files are an atomic trajectory format used by the CHARMM, NAMD, and XPlor molecular dynamics packages. XTC files are a compressed trajectory format used by the Gromacs molecular dynamics package. Both kinds of files can be read directly by VMD for visualization.

Various dump options work or don't work with the new styles. You'll need to check the docs for the dump and dump_modify commands for the details. The dump style xtc is added as a new package xtc. This means you need to type "make yes-xtc" to add the package before building LAMMPS. This is because some machines may not support the lo-level XDR data format that XTC files are written with, which will result in a compile-time error when a lo-level include file is not found.

One clever thing that Naveen implemented (required by these new styles) was the ability to sort the atoms for output to a DCD or XTC dump file when running in parallel. This requires allocation of a buffer that can hold all the atom coordinates on a single processor, but hopefully only very large simulations will run out of memory.

As part of this upgrade, XYZ formatted files were made into their own dump style xyz. Since XYZ files don't contain atom IDs, they are now sorted for output so long as all atoms are dumped. As before, atoms dumped in parallel are still unsorted for dump styles atom, bond, custom, or for style xyz when only a subset of atoms is dumped.

This patch also adds an error condition when dump style custom is used during minimization to dump per-atom energy, centro, or stress. These options are not yet supported by energy minimization. This restriction can be overcome; new code to enable it needs to be added in a future patch or release.

Thanks to Srini Srivilliputhur (LANL) for identifying the need to flag the energy minimization restriction. Thanks to Frans van Hoesel (http://md.chem.rug.nl/hoesel) for creating open-source XDR data routines that Naveen included in his XTC implementation.


11 May 2006

Added some checks to data file reading to insure that valid atom IDs are specified for atoms, velocities, and molecular topologies (bonds, angles, etc). This protects against more forms of invalid data files.


7 May 2006

Inadvertently left out the binary2txt tool from the 12 Apr 2006 release. It converts binary dump files to text form, as described in the dump documentation and the tools page.

Thanks to Vladimir Stegailov (IHED, Russian Academy of Sciences) for calling attention to the missing file.


3 May 2006

Fixed a bad bug with energy minimization that affected parallel runs, sometimes causing inaccuracies, other times causing crashes.

Thanks to David Olmsted (SNL) for stumbling into the bug.


2 May 2006

Created a new fix that adds a grain boundary driving force to planar grain boundaries in fcc bicrystal systems to enable more efficient and rapid measurement of grain boundary migration velocities. Details of the methodology and results are given in this paper.

Thanks to Koenraad Janssens and David Olmsted (SNL) for helping code this fix.


1 May 2006

Fixed a bug in the newly released fix spring/rg command with how the radius-of-gyration was computed for groups of atoms that straddle box boundaries.

Thanks to Naveen Michaud-Agrawal (Johns Hopkins U) for finding the bug.


28 Apr 2006

Fixed a subtle round-off bug with periodic boundary conditions (PBC) that could cause atoms to be lost either when read-in or if they ended up exactly on the upper boundary on a timestep where PBC are enforced. Apparantly it doesn't happen often, since no one had complained before!

The source of the bug was something I didn't realize: In floating point arithmetic, the result of x - xprd can be < xlo, when xprd = xhi - xlo and x = xhi + eps and eps >= 0.

Thanks to Peter Kekenes-Huskey (Caltech) for stumbling into this bug.


26 Apr 2006

Craig Maloney (UCSB) contributed a new pair potential, pair_style lj/smooth, based on an implementation in the earlier Fortran version of LAMMPS. This adjusts the Lennard-Jones force between an inner and outer cutoff so that it goes smoothly to 0.0 at the outer cutoff and smoothly to the inner cutoff value. "Smooth" in this context means that both the value of the force and its first derivative are matched at the 2 end points. This smoothing causes a discontinuity in the energy (value and 1st derivative) which can lead to poor energy conservation, so use with caution.


25 Apr 2006

Fixed a one-line bug with the fix rdf command. This was broken in the current release due to a change in the way end-of-step fixes are now called from the time integration routine.

Thanks to David Huang (Universite Lyon, France) for stumbling into the bug.


24 Apr 2006

Fixed a small bug with the enhanced fix viscous command released on 20 Apr 2006. Also enhanced the fix langevin command so it can be used to perform Brownian dynamics (BD) on heterogeneous models (particles of different sizes or masses).

Fix langevin adds two force terms so it can be used to perform BD on particles in a background implicit solvent: a viscous drag term and a randomized thermostatting term. The command documentation now explains how to set the fix parameters in accord with BD equations and contrasts it with the settings used by the fix viscous command.

Thanks to Gary Grest (Sandia) for explaining the connection between Langevin thermostatting and Brownian dynamics to me.


21 Apr 2006

Fixed a one-line bug (twice) in the fix wall/gran command that could have a minor effect on the history and hertzian granular force interactions with walls.

Thanks to Chris Rycroft (MIT) for finding the bug.


20 Apr 2006

Enhanced the fix viscous command to enable the user to specify a viscous force term that depends on particle type (e.g. due to differences in particle sizes or masses).


18 Apr 2006

Fixed a one-line bug in the newly released fix spring/rg command that causes the radius-of-gyration to be computed with incorrect atom masses. Since Naveen authored this code, it's nice to post a fix for someone else's bug for a change.

Thanks to Naveen Michaud-Agrawal (Johns Hopkins U) for finding the bug.


17 Apr 2006

Fixed a bug induced by the 22 Mar 2006 change that could affect commands that exchange atoms before performing their operation: delete_bonds, displace_atoms, set, write_restart. The issue was that atoms could be lost if periodic boundary conditions were not enforced prior to the exchange and atoms were outside the box from a previous run.

Thanks to Paul Crozier (SNL) for stumbling into this bug.


16 Apr 2006

Added 3 new fixes. Fix wall/reflect is a simple boundary condition for keeping atoms in a non-periodic box. Fix spring/self tethers atoms to their original sites by a spring. Fix spring/rg applies a harmonic restraint to the radius-of-gyration of a group of atoms to encourage a protein or polymer to expand/contract (unfold/fold).

Thanks to Naveen Michaud-Agrawal (Johns Hopkins U) for the spring/self fix and to Naveen and Paul Crozier (SNL) for the spring/rg fix.


15 Apr 2006

Fixed two small bugs in pair_style hybrid and dump_style custom for per-atom energy dumps. Both were due to changes in the latest release with respect to EAM potentials, when the EAM pair style was split into multiple sub-styles.


14 Apr 2006

Kwang-Ryeol Lee's group at the Korea Institute of Science and Technology sent 2 new EAM alloy potentials - one for CoAl and one for AlCu. This patch puts them in the potentials directory.


13 Apr 2006

Pair_style dpd as released yesterday did not include a restart capability for its random number generator, needed when a restart file from a previous dpd simulation is read in. This patch fixes that.


11 Apr 2006

Added an every option to the dump_modify command to allow the dump frequency to be changed between runs.

This will be part of the next LAMMPS release (this week).


10 Apr 2006

Added (finally) an energy minimization capability to LAMMPS that works with many of the existing constraint fixes. Notable exceptions are fix shake and fix rigid; I don't know how to minimize with those constraints in place.

The new command to perform a minimization is minimize. Possible styles are conjugate gradient methods (Polak-Ribiere and Fletcher-Reeves variants) and steepest descent. These and other options can be set by the min_style and min_modify commands.

These new commands will be part of the next LAMMPS release (this week).

Thanks to Toon Verstraelen (Ghent U) and Doug Spearot (Georgia Tech) for providing suggestions on minimization in recent months. Others have probably also chimed in who I've forgotten.


5 Apr 2006

Fixed a bug with torque computation on granular particles where an incorrect scaling factor for polydisperse systems (particle radii are not all equal 1.0) would effect the rotational dynamics of the particles.

This will be part of the next LAMMPS release (real soon now).

Thanks to Jin Sun (Iowa State U) for finding and fixing this bug.


4 Apr 2006

Fixed a one-line bug in tools/restart2data.cpp that could affect the print out of bond topologies into the output data file.

This will be part of the next LAMMPS release (real soon now).

Thanks to David Huang (Universite Claude Bernard, France) for stumbling into this bug.


23 Mar 2006

Naveen Michaud-Agrawal (Johns Hopkins U) added 2 molecular potentials. Some are useful for GROMACS-compatible modeling, others for coarse-grain modeling. The formulas are described in the docs for the angle_style, and dihedral_style commands. The helix potential was from a version Mark Stevens (Sandia) originally wrote for the Fortran version of LAMMPS.

This will be part of the next LAMMPS release (by end of March 06).


22 Mar 2006

Added some logic to the routine that communicates atoms to new processors, to insure that atoms that cross non-periodic boundaries are deleted and become "lost" as they should be. Previously, this would happen in parallel, but sometimes not in serial (on a single processor), which could be confusing. Now the behavior is the same on one or many procs.

This will be part of the next LAMMPS release (by end of March 06).

Thanks to Jaime Sanchez (U Kentucky) for identifying the inconsistency.


21 Mar 2006

Tim Lau (MIT) has implemented the more general Finnis/Sinclair formulation of the embedded atom potential for metals as an extension to the standard EAM. FS allows the density functional in EAM to be atom-type specific (instead of one functional for all atom types), i.e. I,J functionals are defined for the electron density that atoms of type I produce at the location of atoms of type J.

This will be part of the next LAMMPS release (by end of March 06).


20 Mar 2006

Fixed a one-line bug with EAM pairwise potentials using the setfl alloy format that could cause the mapping between LAMMPS atom types and EAM file elements to be incorrect in some cases.

This will be part of the next LAMMPS release (by end of March 06).

Thanks to Tim Lau (MIT) for finding and suggesting a fix for this bug.


19 Mar 2006

To avoid misleading users who want to perform granular simulations, these lines were added to the demo input script examples/pour/in.pour.

# IMPORTANT NOTE: these values of stiffness (2000) and timestep (0.001)
# are used in this example file to produce a quick simulation and movie.
# More appropriate values for realistic simulations would be
# k = 2.0e5 and dt = 0.0001, as in bench/in.chute. 

This will be part of the next LAMMPS release (by end of March 06).


18 Mar 2006

Donald Ward (Brown U) pointed out an inconsistency in the fix indent command. The code computes a push-back force that is proportional to the square of the indentation distance, whereas the documentation says the force is proportional to the distance. I've changed the documentation to reflect what the code actually does.


17 Mar 2006

Fixed a one-line bug in the fix wall/gran command which didn't allow wall oscillations to be enabled.

This will be part of the next LAMMPS release (by end of March 06).

Thanks to Marco Kalweit (Cranfield, UK) for finding this.


17 Mar 2006

Added new options for printing averaged T, P, PE, E values via the thermo_style custom command and a "window" option to the thermo_modify command that sets the size N of the averaging window. The printed values are simply the average of the last N instantaneous values.

This will be part of next LAMMPS release (by end of March 06).


16 Mar 2006

Fixed a bug with Ewald memory allocation that could show up when succesive runs were performed.

This will be part of the next LAMMPS release (by end of March 06).

Thanks to Lukas Vlcek (Vanderbilt U) and Paul Crozier (Sandia) for identifying this problem.


15 Mar 2006

Added a more careful accounting of memory usage by fixes, dumps, force evaulations (pair and kspace), and the integration scheme. These will be reflected in the total memory usage that LAMMPS prints out.

This will be part of the next LAMMPS release (by end of March 06).


14 Mar 2006

With help from Kurt Smith (U Pittsburgh) and Frank van Swol (Sandia), a dissipative particle dynamics (DPD) capability has been added to LAMMPS, following the formulation in Groot and Warren, J Chem Phys, 107, 4423-4435 (1997). It is an optional package that includes new atom_style dpd and pair_style dpd files.

This styles will be part of the next LAMMPS release (by end of March 06).


9 Mar 2006

Added an error check to fix rigid to prevent rigid bodies being defined so that an atom is part of two or more rigid bodies.


8 Mar 2006

Fixed a small bug in pair_style table that only occurs when it is used as part of pair_style hybrid and involves a rounding issue between double and single precision distances.

Thanks to Steve Seel (Sandia) for stumbling into this problem.


30 Jan 2006

Paul Crozier (Sandia) added a test to the harmonic and charmm dihedral style to account for the (very unlikely) case that a 4-atom dihedral has 3 co-linear atoms.

patch, type "make package-update" before re-making LAMMPS.


16 Jan 2006

Added error checks to the region command to test whether the user-defined region is geometrically valid.


13 Jan 2006

Fixed a bug with re-defining thermodynamics via the thermo_style command that prevented LAMMPS from cleaning up correctly when an ERROR was made in specifying the new style.

Thanks to Craig Maloney (UCSB) for finding this bug.


4 Jan 2006

Fixed a round-off problem in atom creation that manifests itself only in certain problem geometries on 64-bit machines with certain compilers (at least I've never seen it on 32-bit machines). It has to do with atoms getting created exactly on (or within epsilon of) the upper periodic boundary. A modified form of ghost atom communication is slightly more efficient and eliminates the round-off issue.

Thanks to Doug Enright (Sandia) for finding this bug and identifying it as a round-off issue.