6 Dec 2008

Added a dihedral option to the special_bonds command to allow 1-4 pairwise weightings to be turned off for individual atom pairs that are not part of any defined dihedral in the simulation. Some force fields use this rule.


5 Dec 2008

Jon Zimmerman (Sandia) added a porosity option to the delete_atoms command to allow a specified porosity to be induced by deleting atoms randomly withing a region.


4 Dec 2008

Hansohl Cho (MIT) has added a EAM potential file for the NiAl potential of Mishin (PRB, 2002), in the Finnis/Sinclair EAM format.


3 Dec 2008

Changed the tolerance test on computing moments of inertia for rigid bodies in the fix rigid to scale better to bodies composed of large numbers of atoms.

Thanks to Bin Shen for sending an example that had problems.


2 Dec 2008

Simplified the force accumulation in the fix spring command.

Thanks to Xibing He for this suggestion.


1 Dec 2008

Fixed an error in the velocity assigned to oscillating atoms via the fix wiggle command.

Thanks to David Olmsted (Sandia) for flagging this mistake.


30 Nov 2008

Mike Parks (Sandia) fixed a couple small bookkeeping glitches with the peridynamics model in LAMMPS.


29 Nov 2008

The matlab tool for readEAM had a one-line bug in computing the number of atoms types. This patch fixes it.

Thanks to Jouko Orava for finding this issue.


24 Nov 2008

A glitch crept into the minimize routines. Might have been from the 6Nov08 patch. This patch should fix it.


21 Nov 2008

Fixed a bug that prevented pair_style lj/coul from being used as part of pair_style hybrid.

Thanks to Dina Mirijanian (Sandia) for running into this.


20 Nov 2008

Aidan Thompson (Sandia) fixed a small error in the lattice hcp command where a couple of the basis atoms in the unit cell were put at slightly wrong positions. Wouldn't probably matter for subsequent dynamics, but it does for statics.


7 Nov 2008

Fixed an initialization problem in the create_atoms command that could cause a problem if atoms were added to a molecular system that already existed.


6 Nov 2008

Fixed a problem in the minimize command that could cause problems when a processor has no atoms.

Thanks to Jon Zimmerman (Sandia) for flagging this.


28 Oct 2008

Fixed a small glitch with using the create_atoms command with SI or CGS units. There is a small round-off factor added in to avoid issues with atoms created at periodic boundaries. Adding an epsilon of 1.0e-6 was fine for simulation boxes in LJ or REAL units when the length scale is Angstroms. It wasn't a good idea when the length scale is meters and the box size is 1.0e-7.


24 Oct 2008

Fixed a one-line bug with atom_style hybrid that would cause problems when running in parallel if any fixes were defined that store per-atom quantities.


21 Oct 2008

Fixed a bug with the moment of inertia calculation for point dipole particles. Also enabled the atom_modify first and neigh_modify include command to affect the clearing of force vectors and pairwise virial computation for increased efficiency when they are enabled.


17 Oct 2008

Fixed a bug in fix lineforce and fix planeforce where the input direction specified by the user was not normalized to a unit vector before using it to adjust forces. This gave different resulting forces depending on the length of the direction vector.

Thanks to Xibing He (U Penn) for catching this.


11 Oct 2008

Fixed a small memory leak associated with having hybrid potentials defined in restart files.


10 Oct 2008

This patch fixes an inconsistensy with how LAMMPS treats 2d granular particles which as the manual states can be thought of as extended spheres with a finite radius. Their moment of inertia was treated as if there are spheres, but their mass was set (based on diameter and density) as if they were 2d circular disks. This patch changes the mass calculation to also be for spheres. Thus if you do 2d granular simulations, your answers may change, unless you scale particle densities accordingly.

Thanks to Zhiping Yang for pointing out this inconsistency.


9 Oct 2008

Added a delete option to the variable command. This is useful when breaking out of a loop via the if and jump commands, so that a variable can be re-defined later in the (iterated) input script.


8 Oct 2008

Aidan Thompson (Sandia) added a velocity option to the fix wall/lj93 and fix wall/lj126 commands, so the wall can be moved with time, e.g. to compress or induce a shock in the system.


7 Oct 2008

Added a check when writing restart files to force atoms to be remapped to the periodic box if any fix could have moved atoms outside the box. Currently no fixes do this (time integration fixes don't count), but we're working on some for stochastic rotation dynamics (SRD) models which do.


6 Oct 2008

Fixed an issue with the fix ave/spatial command where some quantities near periodic boundaries (like vx in the x direction) would be binned in a confusing way into the lowest and highest bins rather than being remapped thru the periodic boundary. Now the resulting plots from the spatial averaging should be more intuitive.

Thanks to Richard Jendrejack (MMM) for sending some good example scripts that showed up this issue.


5 Oct 2008

Fixed a glitch in the fix rigid command that could cause the initial orientation of a highly symmetric rigid body (like a bucky ball) to be re-oriented on the first timestep of a simulation. Should have only happened rarely.

Thanks to Mark Stevens (Sandia) for running into the problem.


4 Oct 2008

Sang-Pil Kim (Korea Institute of Science and Technology) sent a new version of the AlCu EAM alloy potential file, previously provided by their group, which corrects a small error they made in the generation of the tabulated potential.

For users of the potential, here are his comments:

Fortunately, the miswritten value was not a large difference from the original value. Moreover, because embedding energy part in this potential plays a critical role in computing energy and force, this problem has not been causing significant errors.


3 Oct 2008

Greg Wagner sent an upgrade to the MEAM potential library, invoked by the pair_style meam command, to make it work correctly in tandem with other potentials via the pair_style hybrid command.

Thanks to Jorg Meyer (Max Planck Institute) for pointing out there was a problem.


2 Oct 2008

Added a plane option to the fix indent command to allow a planar wall to be pushed into the simulation domain, e.g. to compress it over time.


1 Oct 2008

Added flush() statements to several diagnostic fixes so that their one-line periodic output into files will appear instantaneously, rather than be buffered by the system during long runs.


30 Sept 2008

Dave Farrell (Northwestern U) has implemented an option for the Tersoff potential which adds a close-separation pairwise term based on a Coulomb potential and the Ziegler-Biersack-Littmark universal screening function. This is invokable as pair_style tersoff/zbl.


29 Sept 2008

Corrected the degrees-of-freedom calculation for rigid bodies in the fix rigid command for 2d simulations.

Thanks to Tony Sheh (U Michigan) for pointing out this error.


9 Sept 2008

Added the mass keyword as an option to the dump custom command so that the mass of particle's can be dumped if desired.


8 Sept 2008

Added an error check to the fix rigid command to insure per-type masses are defined for the system. Fix rigid cannot be run if only per-atom masses are defined (e.g. for a granular system).


24 Aug 2008

Added a cutoff option to the communicate command to allow a separate ghost atom cutoff to be specified. Previously tne neighbor skin was used in this role, i.e. ghost cutoff = neighbor cutoff = force cutoff + neighbor skin. But there are some problems where it is convenient to specify the ghost and neighbor cutoffs separately, as different values. E.g. when bond, angle, etc interactions have a longer range than pairwise interactions.

Now the neighbor skin is only used for two things: a) as part of the neighbor cutoff to include atoms in the pairwise neighbor list and b) to trigger the rebuild of neighbor lists and the migration of atoms to new processors. The ghost cutoff is only used to determine how far away to acquire ghost atoms from during inter-processor communication.

By default, the ghost atom cutoff is equal to the neighbor cutoff.


23 Aug 2008

Enabled the PPPM solver in LAMMPS to adjust the grid stencil order parameter when it cannot run a particular problem due to the grid stencil extending beyond the grid cells owned by neighboring processors. This can happen when a small problem is run on a large number of processors. With the new feature, LAMMPS will automatically reduce the order parameter, until the stencil only overlaps the adjacent processor's domain. This will also typically increase the FFT grid size required.

The advantage of this approach is that LAMMPS won't quit and give an error message. Now it will run the problem with an altered set of parameters and give a warning message.

Thanks to Kelly Anderson (P&G) for convincing me this was a useful thing to do.


22 Aug 2008

Added an option to the fix msd command used to compute mean-squared displacement (MSD) for calcalating a diffusion coefficient. The new option is com which allows a center-of-mass drift in the group of atoms to be subtracted off before the MSD is calculated.


21 Aug 2008

Added an image option to the set command to allow resetting the image flags of atoms. This is useful if you are continuing after an equilibration run and want to treat the current system as if all atoms are inside the simulation box at time 0, e.g. for measuring a diffusion coefficient.


20 Aug 2008

Fixed a bug with reading restart files that contain hybrid versions of bond, angle, dihedral, or improper potentials.

Thanks to Xu Zhijun for sending test scripts that illustrated the problem.


19 Aug 2008

Fixed a bug with pair_style airebo when it is used as one potential underneath pair_style hybrid. The problem had to do with how partial neighbor lists were looped over when some atoms are not participating due to being part of other potentials.

Thanks to Zhun-Yong Ong (UIUC) for identifying this was a problem.


18 Aug 2008

Fixed a bug with the fix deform that could cause it to croak when running in parallel and flipping a tilted box from one extreme orientation to the opposite extreme, i.e. due to continuous shearing in a NEMD simulation.

Thanks to Gary Grest (Sandia) for running into this bug.


13 Aug 2008

Fixed a bug with the TIP4P pair_style lj/cut/coul/long/tip4p when it was used as part of pair_style hybrid (i.e. in combination with other pair styles) that caused the pressure contribution computed by the TIP4P potential to be incorrect.

Thanks to Huck Beng for flagging this issue a while back.


11 Aug 2008

Made an optimization to the pair_style tersoff potential that affects Intel compilers (and possibly others). It has to do with the pow() function and limiting the exponent in a portion of the Tersoff formula to a value of 1 or 3, which is general enough for any Tersoff variants we're aware of.

In our tests, the Intel math library was considerably faster when the pow function is called with a fixed argument of 3 rather than with a variable arguement.

Thanks to Romain Perriot (USF) for calling our attention to the slow-down that resulted from using a fully general exponent in the latest Tersoff version.


8 Aug 2008

Fixed a couple more glitches with ellipsoidal particles in the restart2data tool.

Also, Jeremy Lechman (Sandia) showed me how to format the output so the values (e.g. x,y,z coords) are in full precision, so changed all the atom-based floating point output of the tool to that mode. Thus the created data files will be as accurate as possible for a restart from a text file. Makes the data file a little less readable though.


5 Aug 2008

Fixed a bug in the restart2data tool with how it outputs shape data to the data file it produces. It needs to convert it back to a diameter since it stores in internally as a radius.


4 Aug 2008

Discovered an extra factor of "r" in the force for colloid-solvent interactions in the pair_style colloid command.

Also changed the peridynamics package to use float.h instead of values.h, which is deprecated in some C/C++ installations.


2 Aug 2008

Mike Parks (Sandia) fixed a couple bugs with the new Peridynamics release. One was a factor of 2 in spring constant for the the energy computation. The second was in reading data files.


1 Aug 2008

Fixed a dumb bug with the fix spring tether command where it mis-computed the applied force on all but the first atom in the group. Not sure how long this bug has been there. Might have been introduced after the code was originally correct. Ditto for the fix smd command in the USER-SMD package.

Thanks to Xibing He (U Penn) for pointing out the bug.


31 Jul 2008

Fixed a couple bugs with the way the fix spring/self command interacts with energy minimization thru the minimize command.

Also added an energy "potential" to the fix addforce command, so that it can be used to impose a load force on a group of atoms during a minimization. Unless there is a contribution to the energy function by the fix, its added force cannot be minimized consistently.


26 Jul 2008

Mike Parks did the heavy lifting to add a package to LAMMPS for performing particle-based Peridynamics continuum modeling. It is a good model for fracture of materials at the meso- or macro-scale. The implementation includes a new atom_style peri, pair_style peri/pmb, compute damage/atom, and new units options for SI or CGS units.

This paper gives details:

Implementing peridynamics within a molecular dynamics code, M. L. Parks, R. B. Lehoucq, S. J. Plimpton, S. A. Silling, to appear in Comp Phys Comm, (2008). (abstract)


16 Jul 2008

Added some missing pair potentials to the restart2data tool. Namely pair_style hybrid/overlay, pair_style coul/cut, pair_style coul/debye, and pair_style coul/long.

Thanks to Dongsheng Zhang for pointing out the hybrid/overlay deficiency.


8 Jul 2008

Fixed a bug in the compute temp/sphere command where it was using a mass for rotational energy instead of a moment of inertia when calculating the kinetic energy tensor.


26 Jun 2008

Changed the bin choice for swapping momenta or velocities in the fix viscosity and fix thermal/conductivity commands by one bin so that it will be just above the simulation box midpoint instead of just below. Also restricted the user input for the number of bins to even numbers.

These changes should insure the induced velocity and temperature profiles will always be symmetric in the binning dimension.

Thanks to LT Kong for this suggestion.


25 Jun 2008

Fixed a sign error in the energy associated with the dissipative particle dynamics interactions of the pair_style dpd command. This was a bookkeeping error since the potential is really defined by its force interaction. The energy is associated only with the conservative term in the force equation.

Thanks to Takenobu Nakamura (AIST, Japan) for flagging this issue.


24 Jun 2008

Added output of angular momentum components as an option to the dump custom command.

Also fixed a bug in the bookkeeping of energy in the fix spring/self command where a 1/2 factor was left out.


7 Jun 2008

Enhanced the fix spring/self command to work with the energy minimizer. This means per-atom spring constraints can be used to keep desired atoms from moving too far during a minimization.


6 Jun 2008

Fixed a one-line bug in dihedral_style charmm that didn't check the special case of using a dihedral without a pair style defined. The CHARMM dihedral style gets parameters for weighted 1-4 interactions from the pair style.

Thanks to Nanako Takahashi for identifying there was a problem.


22 May 2008

The 21 May release left out a couple doc and example files that are included in this patch.


20 May 2008

Axel Kohlmeyer (U Penn) sent some bug fixes for his USER-CG-CMM package which has coarse-grained models of various kinds.

Here is what he says is in the patch:

This contains two important bugfixes for the CMM cg models:


19 May 2008

Axel Kohlmeyer (U Penn) has written a new fix smd command for steered MD.

This patch adds it as a user package: USER-SMD.

From the README file in src/USER-CG-CMM:

Please find attached a fix that I was asked to write for our "coarse-grainers". They need free energy profiles for their parametrization and this seems to work best. The code basically is a version of "fix spring" on steroids (constant velocity pulling with velocity set to zero should recover fix spring), but I found it cleaner to have it in a seprarate class since otherwise the result may become too convoluted for people that only want to use fix spring.


18 May 2008

Added a fix bond/swap command that will perform Monte Carlo swapping of bonds between two nearby polymer chains to effectively induce large conformational changes faster than normal molecular dynamics would. See the reference in the doc page for details of how it works and how it can be used.


17 May 2008

Also need an updated restart2data tool for the two new GROMACS pair potentials.


16 May 2008

Mark Stevens (Sandia) has added two GROMACS compatible potentials, pair_style lj/gromacs and pair_style lj/gromacs/coul/gromacs. These apply a switching function to the LJ and Coulombic terms to bring them smoothly to zero at the cutoff distance. They are often used with the coarse-grained models of Marrink; see Marrink, de Vries, Mark, J Phys Chem B, 108, 750-760 (2004).


15 May 2008

Added trigonometric functions and a base-10 log to the list of supported math functions in variable equations.


14 May 2008

Added a fix thermal/conductivity command which uses the Muller-Plathe algorithm to exchange kinetic energy between particles and induce a temperature gradient in a system. The thermal conductivity can be deduced, as explained in the doc page for the new command. This is conceptually similar to the fix viscosity command for measuring the viscosity via the Muller-Plathe algorithm.

Thanks to Ed Maginn (U Notre Dame) for teaching me about the method.


10 May 2008

Made some small changes to the output format for text files written out by various fixes, such as fix msd or fix gyration, so that non-numeric lines (e.g. header lines) have leading "#" characters. This should make the files easier to read in by various plotting programs.

Thanks to Ahmed Ismail (Sandia) for this suggestion.


28 Apr 2008

Added the keywords radius, omegax, omegay, and omegaz to the dump custom command. These are applicable to extended spherical and aspherical particles.


21 Apr 2008

Fixed a couple 1-character bugs in the angle_style class2 command, introduced before the 22Jan08 release, when per-atom energy and virials were coded.

Thanks to Gaurav Pranami (ISU) for sending some files that showed up the problem.


16 Apr 2008

Added a Langevin thermostatting term to the pair_style lubricate potential. Also cleaned up some of the units issues associated with the lubrication and thermostatting forces, as previously amended by the 12Apr08 patch. Hopefully all the units associated with this potential are now correct.


15 Apr 2008

Changed some attributes of the energy minimizer in LAMMPS as invoked by the minimize, min_style, and min_modify commands. The new version appears to be more robust and also do a better job at minimizing to the requested tolerance(s). Unfortunately, despite this patch's release date, it cannot be used to minimize your tax payment (US users only).

The main change is to replace the previous line-search algorithm options (secant, scan) with a backtracking routine that performs better and more robustly. "Better" means it is often more effective at reducing the energy and zeroing the forces. It is now the only line search option, so several of the keywords previously settable via the min_modify command have been removed.

The cg/fr minimize style has also been removed. The standard CG style (Polak-Ribieri) seems to do better on atomistic problems.

NOTE: The most visible change to users is the format of the minimize command, which now includes a force tolerance, in addition to the energy tolerance. See the doc page for details. The page also explains more about how the minimizer works, what the various stopping criteria are, and how to interpret the final output provided by the code when the minimization ends.

Thanks to Aidan Thompson and Denis Ridzal (Sandia) for help in formulating and testing the new minimizer algorithms.


14 Apr 2008

Axel Kohlmeyer (U Penn) sent an upgrade to the lmp2cfg tool to enable it handle dump files containing only a part of the system. See the README file for details.


13 Apr 2008

Gerolf Ziegenhain sent some code snippets that add a hcp lattice to the options available with the lattice command.


12 Apr 2008

Amended the units for viscosity, input as part of the pair_style lubricate command, to be accurate for all units choices in LAMMPS.


11 Apr 2008

Enhanced the fix wall/gran command to allow the wall to impose a shear force on the granular particles via the shear keyword.

Also fixed 2 bugs with the command. The computed torques on particles by the wall for 2 of the pair_style granular options (no_history and hertzian) did not include a particle radius in the torque calculation. And the velocity of wiggling walls (via the wiggle keyword) was off by a factor of the timestep size.

Thanks to Jin Sun (Iowa State) and Justin Garvin (USAF AFRL) for pointing out these issues.


10 Apr 2008

Fixed a small bug with the fix addforce and fix aveforce commands, that wasn't allowing the total force before the constraint is applied to be accessed by thermodynamic output.

Thanks to Liang Wan for calling attention to this.


9 Apr 2008

Fixed a bug with the dump xyz and xtc commands that could occur in parallel if the number of atoms changed after the time the dump file was created, e.g. due to the delete_atoms command.

Thanks to Chengxiang Li for identifying there was a problem.


8 Apr 2008

Added a warning when any atoms are time integrated by more than one fix. This is probably an error and can happen when users define multiple time integration fixes in one input script. A typical mistake (which I've made a few times) is to run equilibration with NVT, followed by dynamics with NVE, and forget to unfix the fix nvt command.


7 Apr 2008

Added a howto section to the manual on the topic of thermostatting, barostatting, and computation of temperature. It should provide a big-picture overview of different ways to do these operations in LAMMPS.


6 Apr 2008

This patch provides an updated version of the lmp2cfg tool, which does a better job of reading general box sizes from LAMMPS dump files.

Thanks to Axel Kohlmeyer (U Penn) for providing the fix.


5 Apr 2008

Fixed a bug in the recently upgraded fix viscosity command that could affect parallel execution.

Thanks to Dave Heine (Corning) for identifying the problem and providing an input script that showed it up.


4 Apr 2008

Axel Kohlmeyer (U Penn) provided some updates to the scripts in his lmp2vmd tool.


3 Apr 2008

The 1Apr08 patch introduced a round() function which turns out not to be in the standard C math library, though many compilers support it. This patch replaces the library call with a macro definition that does the same thing. So there should be no portablility problems.


2 Apr 2008

Wrote some simple Python scripts that wrap Pizza.py tools for performing common LAMMPS post-processing tasks:

These scripts are in lammps/tools/python along with the needed Pizza.py modules. Additional scripts can be added over time by developers or user contributions. See the README file in lammps/tools/python for details of how to use them.


1 Apr 2008

Gerolf Ziegenhain added 3 new math functions for formulas supported by the variable command, namely ceil(), floor(), and round(), as in the C math library. These allow you to convert floating points values to integers, rounding up, down, or in the usual way, which can be a useful conversion to perform in an input script.


31 Mar 2008

Enhanced the fix viscosity command with some options that allow more fine-grain control over how much momentum is exchanged between atoms if different layers of the simulation domain. This allows a wider range of effective shear rates and viscosities to be modeled.

Thanks to Matt Petersen (Sandia) for help in designing/testing these changes.


30 Mar 2008

Added a couple of scripts provided by Axel Kohlmeyer (U Penn) to the tools directory as part of a new lmp2vmd tool. These are for converting info in a LAMMPS data file to a format suitable for visualizing with VMD. Axel says more scripts are to come. Maybe others want to contribute LAMMPS -> VMD tools as well.


28 Mar 2008

Updated the restart2data tool to skip pair_style airbebo. Potentials like this that read their data from a file are not stored in the restart file. They just need to be skipped appropriately.


27 Mar 2008

Fixed a one-line bug with pair_style yukawa, where it was missing a symmetrization of the pre-factor A for differing atom types.

Thanks to Stephanie Teich-McGoldrick (U Mich) and Ahmed Ismail (Sandia) for figuring this out.


26 Mar 2008

Updated the restart2data tool to support bond_style quartic and angle_style cosine/delta potentials.

Thanks to Vikas Varshney (WPAFB) and Axel Kohlmeyer (U Penn) for sending code snippets for these additions.


24 Mar 2008

Added a line to tools/restart2data.cpp to allow it to skip pair_style hybrid/overlay, as it should.

Thanks to Dongsheng Zhang for pointing this out.


23 Mar 2008

Forgot the files for the new fix nvt/sphere and fix npt/sphere commands in the 22Mar08 patch. This patch adds them.


22 Mar 2008

Enhanced the computes that calculate temperature, thermostatting fixes, and time integrators that use temperature control to be more flexible and consistent. This is for point particles, extended spherical particles, and aspherical particles. Also Added new compute ke and compute erotate/asphere commands.

These compute commands calculate temperature. All but the first 3 calculate velocity biases that are removed when computing a temperature. Temp/sphere and temp/asphere now allow computes that calculate such a biased temperature to be included as an additional argument, so that the translational velocity of extended spherical or aspherical particles can also be altered in prescribed ways.

Four thermostatting methods are available: Nose-Hoover, Berendsen, Langevin, and direct rescaling. Nose/Hoover works on rotational degrees-of-freedom for spherical and aspherical particles; the others only work on translational degrees of freedom. Any of these methods can use temperature computes that remove bias for the purpose of computing the current temperature and performing thermostatting only on the remaining thermal velocity. For non-equilibrium MD simulations., there is also a SLLOD fix which does NVT thermostatting in conjunction with the SLLOD equations of motion. These are the relevant fix commands:

Note that only the nvt fixes perform time integration. The others should be used with an NVE integration fix such as these:

Two barosttating methods are available: Nose-Hoover and Berendsen. The fix npt commands include Nose-Hoover thermostatting. Fix nph and fix press/bernendsen can be used in conjunction with any of the 4 thermostatting methods. These are the relevant fix commands:


21 Mar 2008

Fixed some problems with error checking in pair potentials that support the rRESPA integrator, when used with the rRESPA inner/middle/outer options. The issues occurred when mixing rules were also used with some of these potentials.

Thanks to Dave Heine (Corning) for catching this problem.


20 Mar 2008

Added a Berendsen barostat via the fix press/berendsen command, which can be used as an alternative to fix npt or fix nph which do barostatting via Nose/Hoover. To do constant NPT simulations, the Berendsen barostat can be used in conjunction with any LAMMPS thermostat, e.g. fix nvt, fix langevin, fix temp/berendsen, or fix temp/rescale.

Thanks to Manoj Warrier and Axel Kohlmeyer (U Penn) for help in understanding the details of Berendsen thermostats and barostats.


19 Mar 2008

Made the various commands that operate on extended spherical particles more consistent. Spherical particles are those with a radius, as opposed to point particles which is what most of LAMMPS operates on. Spherical particles have angular velocity, and can thus be acted on by torques, which cause them to rotate. The atom_style granular and dipole models within LAMMPS are examples of spherical particles.

As part of these changes, extended spherical particles used in a 2d model are now treated as true spherical particles throughout LAMMPS, as opposed to circular disks. This means their moment of inertia is that of a sphere, as opposed to a disk.

New commands added by this patch are the following:

The following commands and styles are deleted by this patch:

All the options of the deleted commands can be invoked via the new commands.


18 Mar 2008

Enhanced the fix addforce and fix aveforce commands to store the forces on the group of atoms before modification, so those values can be accessed as part of thermodynamic or other output.


17 Mar 2008

Fixed a bug with atom-style variables when using a unary minus sign operator.

Thanks to June Zhong (Ames Lab) for identifying there was a problem.


12 Mar 2008

Forgot to add the two files for the Berendsen thermostat fix to the 11Mar08 patch. This patch remedies that.


11 Mar 2008

Added some flexibility to the various fixes that perform thermostatting and to the various compute commands that calculate temperature. The idea is to formulate the temperature computations as first removing a "bias" from atom velocities before the thermal temperature is calculatd. The thermostatting fix uses this temperature, and performs its thermostatting on atoms that have this bias removed from their velocities, before restoring the bias afterwards.

The 4 thermostatting fixes that now work in this manner are as follows: fix nvt, fix temp/rescale, fix langevin, and fix temp/berendsen. The Berendsen thermostat is new.

The temperature computes that include a bias term are as follows: compute temp/com, compute temp/partial, compute temp/region, compute temp/deform, and compute temp/ramp.

Basically, any of these temperature computes can be used with any of these thermostatting fixes. As before, the assignment of a temperature compute to a thermostatting fix is done via the fix_modify command. A standard temperature with no bias is the default; see the compute temp command.

Note that previously, the fix langevin and fix temp/rescale commands had options like region or partial to enable specific kinds of bias to be removed. This new capability is more general, so those command options have been removed.


10 Mar 2008

Fixed a bug that affected thermodynamic print-out of pressure when both total pressure and pressure tensor components were being printed, and the thermo_modify command was used to specify a user-defined pressure compute.

Thanks to LT Kong who showed up the bug.


5 Mar 2008

Added a compute temp/com command to allow temperature of a group of atoms to be compute, after subtracting out the center-of-mass velocity of the group. Useful if the group has a net velocity for some reason.


4 Mar 2008

Added a start option to the fix ave/time command to allow a delay in when it starts doing its final averaging. This is useful if you want to discard early non-equilibrium values from the output averages.


29 Feb 2008

Amended many typos in the doc pages as well as changed some files with DOS-style end-of-lines to the Unix standard.

Also undid the 14Feb08 IBM-specific patch since it's possible to use a compiler switch to fix this rather than a source code change.

Thanks to Tom Oppe who identified all these issues.


21 Feb 2008

Fixed a one-line bug in the pair_style hybrid command that was preventing in from working correctly with the compute group/group diagnostic.

Thanks to user Ganesh for sending a script with the problem.


20 Feb 2008

Enhanced the compute sum command to become the compute reduce command with a mode option to either sum, take a min, or take a max of per-atom values to produce a single global result.


19 Feb 2008

Fixed a one-line bug in the fix wall/lj126 command, where the wall force needed an additional 1/r factor.

Thanks to user Wende from the Soft Condensed Matter Physics Lab for pointing out the problem.


15 Feb 2008

Changed the way the 11Feb08 patch was implemented to work with a new atom_modify first group command. This is a cleaner and slightly faster implementation and also allows fixes, like time integration fixes, to take advantage of the atom ordering it induces, if appropriate.


14 Feb 2008

Added a one-line kludge to a LAMMPS source file to get around a problem caused by the IBM AIX compiler and a #define of a common variable name it uses in one of its system header files.


13 Feb 2008

Made a small correction to the way the virial (pressure) is compute in the TIP4P pair potential. This turned up when we implemented per-atom energy and virial tabulation for all LAMMPS potentials. Thanks to Ahmed Ismail (Sandia) for helping me work thru the intracacies of the force interactions generated by this potential.


12 Feb 2008

Added a compute group/group command to allow the total energy and force bewteen two groups of atoms (or the same group) to be calculated. These quantities can then be used in the usual ways by other output commands in LAMMPS.

Naveen Michaud-Agrawal (JHU) wrote an early version of this as a fix. This version is a compute which is compatible with current LAMMPS design.


11 Feb 2008

Added communicate group and neigh_modify include group commands to limit communication and pairwise neighbor list construction to atoms in a group. This is useful for models of lightweight background solvent we're developing, since they don't interact with solute particles via the usual pairwise style of interactions.


10 Feb 2008

Axel Kohlmeyer (U Penn) has written a user package for coarse-graining called USER-CG-CMM. From the README file in src/USER-CG-CMM:

The current version of this package should be considered beta quality. The CG potentials work correctly and well, but there will be optimizations, cleanups and additional tools to aid in setting up and analyzing simulations with this package added in the next months.

This package implements 4 commands which can be used in a LAMMPS input script:

See the documentation files for these commands for details.

There is also an cg-cmm example directory under examples/USER with sample inputs and outputs.

These styles allow coarse grained MD simulations with the parametrization of Shinoda, DeVane, Klein, Mol Sim, 33, 27 (2007) (cg/cmm), with extensions to simulate ionic liquids, electrolytes, lipids and charged amino acids (to be published soon).

Thanks for contributions, support and testing goes to


9 Feb 2008

Small bug fix for the dump xtc command provided by Axel Kohlmeyer (U Penn) that cleans up a memory allocation issue when a dump file is opened and closed multiple times.


8 Feb 2008

Added an option to the fix langevin command to allow the second term in the thermostat (random force) to be weighted differently than the first term (viscous force). This is useful is some thermostatting models where a different coupling constant to the background solvent is desired.


5 Feb 2008

Added the keywords xy, xz, yz as options to the thermo_style custom command, so the tilt factors of a triclinic (non-orthogonal) box can be monitored.


31 Jan 2008

Xiaowang Zhou (Sandia) has contributed two improvements to the Stillinger-Weber potential invoked by the pair_style sw command.

(1) A new parameter tol must be added on each line of the potential file. It specifies a tolerance value specifying the accuracy required for a virtual cut-off distance. The virtual cut-off is always less than the theoretical SW cut-off. Setting tol to zero forces LAMMPS to use the theoretical SW cut-off, reproducing the behavior of the old code. With a tolerance, less interactions are computed, speeding up the potential calculation.

(2) The treatment of the three-body energy for alloys has been enhanced to allow common literature alloy parametrizations. See the upgraded documentation page and the file potentials/GaN.sw for details.


29 Jan 2008

Fixed a bug in the delete_atoms overlap command with parallel execution.


26 Jan 2008

Enhanced the delete_atoms overlap command to work with two groups of atoms instead of atom types. This allows more flexibility in choosing what atoms get deleted, e.g. when deleting solvent that overlaps with macro-particles. Also fixed a bug that was preventing delete_atoms overlap from working with pair_style hybrid and hybrid_overlay due to the latest changes to neighbor list formats.


25 Jan 2008

Axel Kohlmeyer (U Penn) provided a new angle_style cosine/delta potential, similar to the angle_style cosine/squared potential except the interaction is proporational to the difference in cosines, rather than the difference squared.


24 Jan 2008

Fixed a bug in atom styles ellipsoid, granular, and dipole that prevented them from working correctly when used as part of the atom_style hybrid command.

Thanks to Georg Ganzenmueller for identifying there was a problem and posting an input script.


23 Jan 2008

Updated the doc pages for the various pair styles to reflect that all of them can now tally per-atom energy and stress so that they can be used with the compute pe/atom and compute stress/atom commands.


21 Jan 2008

Changed the random number function that generated random values based on a particles position. We observed some unwanted correlations in the previous method. The new method uses a hash function, the Jenkins one-at-a-time method, that is claimed to be very random.

IMPORTANT NOTE: This will change the result of velocity initialization when using the velocity command with the "loop geom" option. It will also affect the results of the set and displace_atoms commands for their random options. Thus it can affect the initial state and subsequent dynamics of a LAMMPS simulation, though only in a statistical sense.

Changed the compile-time -DGZIP flag to -DLAMMPS_GZIP to be compatible with other compile flags.

Changed the ID of the presure compute created automatically by thermodynamics from "thermo_pressure" to "thermo_press" to be compatible with pressure computes created by other fixes like fix npt.

Added support for the pair_style lj/coul and pair_style buck/coul potentials to the restart2data tool. Changed the format of the dihedral OPLS potential as written to data files by the restart2data tool by a factor of 2 so that the data file written by the tool is now the same as the data file that created the restart file.

These changes will be part of the next LAMMPS release in the next couple days.


20 Jan 2008

Fixed a one-line bug in the fix ave/time command where it failed to check for an incompatible fix argument correctly.

Thanks to Ahmed Ismail (Sandia) for stumbling into this one.


19 Jan 2008

Axel Kohlmeyer (U Penn) provided some upgrades to the functionality of the dump dcd and dump xtc commands, for creating DCD and XTC formatted dump files, suitable for input into various visualization programs.

For DCD files, the dump_modify command can now specify an unwrap option to write out coordinates in "unwrapped" form as if they had not been wrapped back into a periodic simulation box.

For XTC files, the unwrap and precision options are now provided via dump modify. Also, for machines that do not have the required XDR include files, a compatability mode is available, provided thru extra functions and an associated header file. The compatability mode is activated by using a compile-time switch -DLAMMPS_XDR in your lo-level Makefile. This means you should now be able to write out XTC formatted dump files on any platform. See the Restrictions section of the dump doc page for more details.


18 Jan 2008

Mike Brown (Sandia) made some updates to his PyMol apherical viz tool to fix some link issues with gcc4, and also to skip output of spheres that are tagged as fully transparent.

He also added some speed enhancements to the GayBerne ellipsoidal particle potential for sphere-sphere and sphere-ellipse interactions.


17 Jan 2008

Added per-atom energy and virial (pressure) tabulation to the last remaining pair potentials and fix, namely pair_style meam, pair_style airebo, pair_style lj_cut_coul_long_tip4p, and fix poems. These quantities can be computed by the compute pe/atom and compute stress/atom commands.

Thanks to Greg Wagner and Aidan Thompson (Sandia) for informative discussions about virial calculations, particularly as it relates to the MEAM potential.


16 Jan 2008

Fixed a bug in the xmovie tool with its memory allocation when more than 256 snapshots are read in.

Thanks to Carolyn Phillips (U Michigan) for finding and debugging the problem.


12 Jan 2008

Added the bookkeeping to the fix shake and fix rigid commands to enable per-atom virial (stress) calculation via the compute stress/atom command. Now all that's left to complete the options for per-atom stress and energy is a few manybody pair styles and long-range forces.


11 Jan 2008

Fixed a bug with the neighbor lists construction for pair hybrid/overlay, that could cause a partial list not to be copied correctly.

Thanks to Dave Heine (Corning) for running into this problem.


10 Jan 2008

Fixed a bug with variable formulas scanning the numbers in the formula string in the input script. There was an error in how it looked for scientific notation that would cause a string like "10-2" to be evaluated as 10 instead of 8.

Thanks to James Palko (Aerospace Corp) for an email about this issue.


9 Jan 2008

Altered and enriched the variable formula syntax for equal-style and atom-style variables, so that computes, fixes, and variables are all referenced in consistent ways. Any reference to a per-atom quantity is now done thru empty brackets, e.g. x[] or c_ID[] or c_ID[][2]. This also allows an equal-style variable to access a component of a per-atom quantity, e.g. c_ID[N], where N is a global atom ID. This is useful for debugging or cutomizing thermodynamic output.


8 Jan 2008

Fixed a bug in the way the hybrid potentials (pair_style hybrid, bond_style hybrid, etc) processed coefficients (pair_coeff, bond_coeff, etc) that could sometimes cause a problem if wild card coefficients were used.

Thanks to Zhang Junjie (Harbin Institute of Technology) for running into the bug.


7 Jan 2008

Gerolf Ziegenhain sent some add-on files for those who use the VIM editor which help in editing LAMMPS input scripts. This patch adds them to the tools directory.

Note: this patch got included with the 8Jan08 patch.


6 Jan 2008

Added a pair coul/debye potential, which is a like a cutoff Coulomb potential with an additional screening factor. Like the coul/cut and coul/long potentials, this can be combined via pair_style hybrid/overlay with other Lennard-Jones potentials, that don't have a debye option (only pair_style lj/cut/coul/debye does) to enable a wider variety of simulations using screened Coulombic interactions.

Thanks to Dongsheng Zhang for suggesting this option.


5 Jan 2008

Added fix coord/original and compute displace/atom commands to allow the displacement of each atom to be calculated and used with various output options such as being written to a dump file.

Thanks to Greg Wagner (Sandia) for suggesting these new features.


4 Jan 2008

This patch adds an uncompute command to delete previously defined computes. The functionality for this was implemented in the code, but without a hook for it in the input script parser.

Thanks to Vikas Varshney (Wright-Patterson AFB) for pointing out the deficiency.


3 Jan 2008

Added a tabulation capability to the fix nve/limit command so that it tallies the number of atom velocity/position updates that are limited by the maximum distance criterion. The result can be printed with thermodynamic output or other forms of LAMMPS output.


2 Jan 2008

This patch makes some significant changes and improvements to the options for LAMMPS output. See this section of the documentation for a summary of output options and a table that lists the interrelationships between output commands.

The following commands have been deleted, since they are no longer needed: "compute variable/atom", "compute variable", "compute sum/atom", "compute attribute/atom".

The following commands have an enriched syntax that allows them to directly reference computes, fixes, or variables as part of their list of inputs: fix ave/time, fix ave/spatial, fix ave/atom, compute sum, and dump custom.

Formulas for equal-style and atom-style variables are now written in a more familiar format. The former format was easier for the code to parse, but harder for users to write. The equation parser in LAMMPS was made more robust, so formulas can be written more straightforwardly. For example, to calculate a per-atom kinetic energy, you can now write one of these lines

variable ke atom 0.5*mass*(vx*vx+vy*vy+vz*vz)
variable ke atom "0.5*mass * (vx*vx + vy*vy + vz*vz)" 

in the usual format, rather than the previous format

variable ke atom mult(mult(0.5,mass),add(add(mult(vx,vx),mult(vy,vy)),mult(vz,vz))) 

Formulas for atom-style variables can now include references to other elements that calculate per-atom quantities: per-atom computes, per-atom fixes, or other atom-style variables. The details are given on the doc page for the variable command.