22 Dec 2014

Anupama Kurpad (Intel) has added automatic setting of CPU core affinity to the USER-INTEL package to allow for better offload performance on machines with hyperthreading disabled. This update also allows the same binary to be used on nodes with and without a coprocessor. A bug is also fixed that would occasionally cause a deadlock during simulation setup.

Aidan Thompson (Aidan) added a logfreq2() function to the variable command, to allow a different style of logarthimcally spaced output, e.g. when using the function in an equal-style variable specified with the thermo or dump_modify every commands.


19 Dec 2014

Fixed a bug with union and intersect regions whose sub-regions are dynamic (move/rotate) or have variable shape. These attributes were ignored by the combined region.

Changed the tensor output of the compute gyration and compute gyration/molecule commands to be squared values instead of taking their sqrt(). This is necessary because the off-diagonal elements of the squared tensor can be negative values.

Thanks to Alex Stukowski (Technische Universitat Darmstadt) for pointing out the region issue within the code.


17 Dec 2014

Fixed a bug with variable evaluation of atom values such as fx[N], which didn't check if the specified atom ID was out of bounds, e.g. greater than the maximum existing atom ID.

Thanks to Jinho Ryu for posting an input script that illustrated the problem.


9 Dec 2014

Axel Kohlmeyer (Temple U) provided an update to the collective variables library that includes significant refactoring. The code is now ported to VMD, so analysis or simulation data with this module can now also done from within VMD, where also custom collective ariables - scripted in VMD/Tcl - may be applied. with that port came a bunch of generalizations and bugfixes.

Also a couple of bug fixes to the compute atom/molecule command.


26 Nov 2014

Chris Knight and Yuxing Peng (U Chicago) have implemented a fix pimd command which enables path-integral molecular dynamics (PIMD). In contrast to the fix ipi command released in the 24Nov14 patch, which implements PIMD by wrapping LAMMPS with a Python wrapper which contains the PIMD algorithm, the fix pimd command implements the PIMD algorithm natively inside LAMPS (in the fix) and uses multi-replica mode to replicate the original system, once per bead in the rings of the PIMD ring polymer model.


24 Nov 2014

Michele Ceriotti (EPFL) and Axel Kohlmeyer (Temple U) have added a colored noise thermostat/integrator, to perform Generalized Langevin Equation (GLE) dynamics. This is implemented as a fix gle command.

Michele also provided a version of his i-PI tool with features unrelated to LAMMPS removed, which is now in the tools/i-pi directory. I-PI is a Python wrapper on molecular dynamics codes which allows them to perform path-integral molecular dynamics (PIMD) simulations. This is enabled by a new fix ipi command in LAMMPS. Example scripts are in the examples/USER/ipi directory.

Tim Sirk (ARL) added a soft segmental repulsive potential (SRP) as a new pair_style srp command that acts between pairs of bonds. It's useful for preventing bonds from passing through one another when a soft non-bonded potential acts between beads in, for example, DPD polymer chains.

Paul Coffman (IBM) has added MPI-IO capabilities for the dump cfg style, similar to what he did previously for the atom, custom, and xyz styles.


23 Nov 2014

Fixed some bugs with the relatively new comm_style tiled command that prevented it from working correctly with some commands that perform irregular migration of atoms, like change_box and displace_atoms. Ditto for using comm_style tiled with some commands that required their own internal communication.

Thanks to Alex Stukowski (Technische Universitat Darmstadt) for sending an input script that triggered the problems.


22 Nov 2014

Added compute force/molecule and compute vcm/molecule commands.

NOTE: We removed the compute force/molecule command a couple of patches later. We realized it is redundant with the compute atom/molecule command, which can already calculate this quantity!

A stride2() function was added to the variable command. This allows thermo or dump output to be generated on both a coarse and fine time scale, which can be useful for debugging. E.g. to output diagnostic info every timestep near the time a problem occurs.

Made a bug fix and added an error check for using fix pour with fix rigid/small for granular rigid bodies.


20 Nov 2014

Niall Jackson (Imperial College) has added a fix ave/spatial/sphere command, to allow spatial averaging of per-atom properties within "bins" which are spherical shells.

Also added bound and discard options to the fix ave/spatial commmand. The former allows only a portion of the simulation box to be binned. The latter gives more control over how particles outside the bin extent are treated.


19 Nov 2014

Kevin Hanley (Imperial College) discoverd and fixed an issue with the single() function in the granular pair styles that track contact history, that led to incorrect pairwise force values when using the handful of options that invoke the single() function (e.g. for dump local files).

Also fixed some issues with using the Nose/Hoover and Berendsen thermostats with dynamic groups, where the set of atoms being thermostatted can change over time.

Thanks to Tianhao Wu for calling attention to this issue.


5 Nov 2014

Bug fix from Trung Nguyen for per-atom energies with the kspace_style pppm/gpu command.


31 Oct 2014

Andrew Jewett contributed some code for a create_atoms rotate option to allow specification of the orientation of a single added molecule.


30 Oct 2014

Various small bug fixes and other tweaks, including:


29 Oct 2014

Trung Nguyen (ORNL) and Axel Kohlmeyer (Temple U) have made some bug fixes and upgrades to the GPU package.


28 Oct 2014

Fixed a bug in the pair_modify pair command.

Axel Kohlmeyer (U Temple) sent a new version of the USER-COLVARS package and its underlying library.

This fixes a few bugs, including one that was quite significantly limiting its usability, and it also adds support for multiple replica (so-called multi-walker) collective variables. right now only for the ABF functionality, but it will be generalized to other variants.

This way, one can get enhanced sampling by running the same input with the partition flag and the multiple collective variable instances exchange and collect their respective biasing information.


21 Oct 2014

Various small changes and small bug fixes brought up on the mail list. Also changed a comment line at the top of all the src files to make the filetype recognizable by Emacs.


9 Oct 2014

Aidan Thompson (Sandia) added an annotation with date, contributor, and citation info to every potential file in the potentials dir. The DATE field is now printed out to the screen and log file when an input script uses one of the files. This allows you to more easily track (occasional) changes that are made to the potential files and whether that affects your simulation results. See the potentials/README file for more info.


8 Oct 2014

Added a file in the USER-CUDA directory accidentally left out of yesterday's patch.

Fixed a memory bug with the molecule command when reading molecules without special bond lists.

Made an update to the fix colvars command and its underlying COLVARS library in lib/colvars.

Fixed an issue with the fix adapt and fix qeq commands and how they update per-atom charges and interface with the various Kspace solvers

Thanks to Axel Kohlmeyer (U Temple) who had a hand in all these updates.


7 Oct 2014

Added a src/Make.py tool that can be used to perform one-line builds of LAMMPS with any packages (accelerator or otherwise), auxiliary libraries, and tailored Makefile.settings.

Here are examples of build tasks you can perform with Make.py:

Install/uninstall packages Make.py -p no-lib kokkos omp intel
Build specific auxiliary libs Make.py lib-atc lib-meam
Build libs for all installed packages Make.py -p cuda gpu -gpu mode=double arch=31 lib-all
Create a Makefile from scratch with compiler and MPI settings Make.py -m none -cc g++ -mpi mpich file
Augment Makefile.serial with settings for installed packages Make.py -p intel -intel cpu -m serial file
Add JPG and FFTW support to Makefile.mpi Make.py -m mpi -jpg -fft fftw file
Build LAMMPS with a parallel make using Makefile.mpi Make.py -j 16 -m mpi exe
Build LAMMPS and libs it needs using Makefile.serial with accelerator settings Make.py -p gpu intel -intel cpu lib-all file serial

From the src directory, type one of these to get started:

Make.py
python Make.py 

Section 2.4 of the manual has more info.


30 Sep 2014

Fixed an issue with the write_dump command when it is used to output values produced by a per-atom compute. LAMMPS now checks more carefully that the compute values are current, similar to the checks done when a variable is evaluated before or in-between runs.


25 Sep 2014

Aidan Thompson (Sandia) has changed some small details of the minimize command to make its results more understanable.

We made the "quadratic" line-search algorithm the default (see the min_modify command), and now the original default "backtrack" should stop for more obvious reasons, i.e. when it runs out of steam. It will generally stop when the quadratic method can go futher, to a higher tolerance minimum.

BACKWARD COMPATIBILITY: The default line-search method for the minimize command is now quadratic instead of backtrack.

We also restructured the src/MAKE directory, to put some simple universal Makefiles in the top level dir, and others in MAKE/OPTIONS and MAKE/MACHINES. There is also now a MAKE/MINE directory where users can put their own new or edited Makefiles to avoid any conflicts when LAMMPS is updated. Nearly all of the original Makefiles are still there, some have been renamed to be more consistent.


18 Sep 2014

Minor update to last patch to fix a couple small things.


11 Sep 2014

Added a "-pk" command-line switch, which can be used when LAMMPS is launched to specify settings for the package command. This allows an existing input script, to be run with any of the 6 accelerator packages available in LAMMPS (USER-CUDA, GPU, USER-INTEL, KOKKOS, USER-OMP, OPT) by specifying any available options from the command line.

As part of this change, the syntax of the package command was altered to be more uniform across the various accelerator packages, as well as to expose more options like the newton and neigh_modify binsize setting via the command line. See the cuda, gpu, intel, and kokkos sub-dirs within the examples dir, and also the FERMI and KOKKOS sub-dirs within the bench dir, for scripts and README files using these features.

The goal here is to make it as easy as possible to run an input scripts with any of the accelerator packages. This lets you do that without needing to edit the script. You still need to have an LAMMPS executable built with the appropriate packages, which can be non-trivial. We're also working to simply that with some auto-build tools and scripts. Stay tuned.

BACKWARD COMPATIBILITY: The syntax for the package command and some of its options has changed.


8 Sep 2014

Ray Shan (Sandia) has added a general purpose charge equilibration capability, in the form of several new fix qeq/variant commands. The supported variants in this release are dynamic, point, shielded, and slater. This can be used with any pair style that defines per-atom charge and computes Coulombic interactions. A new examples/qeq directory illustrates how to use it.


5 Sep 2014

Aidan Thompson and collaborators at Sandia have developed a new spectral neighbor analysis potential (SNAP) which is fit to a pre-computed archive of quantum DFT data. Like the GAP potential of Bartok, Csanyi and co-workers, it uses bispectrum components to characterize the local neighborhood of each atom in a very general way.

The release includes a new SNAP package, with a pair_style snap command and 3 supporting computes. Also included in the release is an accurate new potential for tantalum.


29 Aug 2014

Due to work by Sikandar Mashayak (UIUC) and Christian Trott (Sandia), a new version of the KOKKOS package has been released. This has support for additional styles, as well as an updated version of the underlying Kokkos library itself.


28 Aug 2014

Albert Power identified a bug with the pair_modify tail command when used with pair_style hybrid. The tail contributions from each of the sub-styles was not being summed to the total energy or pressure of the system.


27 Aug 2014

Jan Waldmann identified a bug with the read_dump label command option that was giving an error even when the command was correctly specified.


15 Aug 2014

Release of a new USER-INTEL package, authored by Mike Brown at Intel. The package does two things.

It adds optimized pair styles for Intel CPUs, which support single, mixed, and double precision calculations with vectorization. In extreme cases, such as for the Gay-Berne potential, this can provide speedups over 3.5x on a CPU.

Second, it adds support for offloading calculations to Intel coprocessors (Xeon Phi). This can provide an additional speedup of over 2x depending on the hardware configuration and the simulation model.

The package also works in conjunction with the USER-OMP package to accelerate other portions of the simulation.

A new Section 5.9 of the manual explains how to build and run LAMMPS with the new package.

Example scripts with expected performance numbers are include in a new examples/intel directory; see examples/intel/README for details.

The package currently includes support for these pair styles: lj/cut, lj/cut/coul/long, lj/charmm/coul/long, and gayberne, however offload support (Xeon Phi) for lj/cut is not yet released.

Future additions that continue to improve performance for current and future hardware are planned.

Also added a wildcard type option to the delete_bonds command and changed the syntax for the undo keyword to take positive type(s) as an argument, not negative types.

BACKWARD COMPATIBILITY: The syntax for delete_bonds undo changed to require positive types, not negative.


8 Aug 2014

Added a recursive coordinate bisectioning (RCB) option to the balance and fix balance commands for static and dynamic load balancing. RCB is a fast geometric 3d load-balancer that can be used to balance the number of atoms per processor and speed-up simulations with an irregular density distribution. A simple 2d movie showing how it works is here. There is also a new examples/balance directory with the script that creates the movie.

Note that support for using the RCB option with triclinic geometries, the comm_modify mode multi command, and the PPPM and MSM long-range solvers still needs to be added.


6 Aug 2014

Another upgrade to the pair_style kim command which interfaces to the KIM repository of potentials.

Also various files with changes and additions to enable 3d load-balancing. This option is still disabled, but it's getting close to release.


1 Aug 2014

Added a subbox option to the dump image command, so that processor sub-domain boundaries can be drawn in snapshot images of the simulation. This is useful for seeing the results of load-balancing via the balance or fix_balance commands.


29 Jul 2014

Added var and set keywords to the create_atoms command so that a variable formula can be defined as a function of an atom's x,y,z coordinates which is used to accept or reject the creation of the atom. This allows atoms to be created so as to "fill" an irregular shape, so long as the shape can be specified by an equal-style variable formula. The create_atoms doc page shows an example of a sinusoidal (bumpy) surface created using the new command.


22 Jul 2014

Fixed an issue with the reset_timestep command needing to force occasional neighbor lists to be rebuilt when next used. Without this fix, the neighbor lists could become out-of-date in some scenarios.

Thanks to Luis Sandoval (LANL) for sending a test script that illustrated the problem.


11 Jul 2014

Berk Onat and collaborators (Harvard) developed new EAM potential for Cu-Ni alloys that has been added as potentials/CuNi.eam.alloy. The citation for their work is at the top of the file.

Paul Crozier (Sandia) fixed a bug in the fix gcmc command.

Morteza Jalalvand found a fixed a bug in the fix gravity command, when using an equal-style variable to time-vary some of the input parameters that support that option.


28 Jun 2014

Paul Crozier (Sandia) had made an upgrade to the fix gcmc command, so that it now uses the molecule templates read-in and defined by the molecule command.

Two new options were added to the group command. Namely clear to remove all atoms currently in a group, and include molecule to add atoms to a group that have the same molecule ID as atoms already in the group.

BACKWARD COMPATIBILITY: The syntax for some of the fix gcmc options changed.


27 Jun 2014

This patch contains the following upgrades. Thanks to various folks for making these changes: Loukas Peristeras and collaborators (Scienomics), Alex Kohlymeyer (U Temple), Trung Nguyen (ORNL), Ryan Elliott (U Minn), Daniel Schwen (LANL).


14 Jun 2014

An optional "remap" flag was added to the read_restart command, and to the -restart restartfile remap datafile command-line switch.

This enables "invalid" restart files to be read in an input script or converted to data files on the command line. In this contex "invalid" means one or more of their atoms is outside the simulation box which triggers the read_restart command to print an error about lost atoms. (This should not happen if LAMMPS wrote the restart file correctly.) But if the error occurs, adding the new remap flag should allow you to read the restart file without error. The flag causes each atom to be remapped back into the simulation box (if necessary), updating its image flags as well.


10 Jun 2014

Fixed a bug with reading restart files for triclinic boxes that have a shrink-wrapped boundary that sometimes caused atoms to be lost.

Thanks to Niraj Gupta for posting an example script that had the problem.


6 Jun 2014

Added an examples/MC directory which has a script showing how to use LAMMPS as an energy-evaluation engine in a Monte Carlo loop to perform energy relaxation. It's for a simple toy 2d problem, but is a fairly sophisticated input script in its use of variables, looping, and an if-then-else statement for performing trial moves and accepting/rejecting them via the Boltzmann criterion.

There is also a Python version of this same algorithm which uses LAMMPS to do the same energy calculations through its library interface. See python/examples/mc.py. This implements a lot of the logic in the LAMMPS input script in Python itself, which is a real scripting language. It also runs about 2x faster from Python due to LAMMPS not needing to re-parse the MC loop repeatedly and re-evaluate all the variables.


4 Jun 2014

Changed the default settings for the USER-CUDA and KOKKOS package to "off" instead of "on". This is controlled via the "-c on/off" and "-k on/off" command-line switches. This is so builds of LAMMPS that include most or all of its packages can be run in standard LAMMPS mode without the effect of those 2 packages being instantiated.

BACKWARD COMPATIBILITY: Running scripts that use the USER-CUDA and KOKKOS packages will now require use of the run-time -c on or -k on command-line switch, which didn't use to be the case.


29 May 2014

With the heavy-lifting done by Christian Trott (Sandia) we've created an initial version of a KOKKOS package which enables certain LAMMPS kernels (pair and fix styles, neighbor list building, inter-processor communication) to run efficiently on accelerator hardware, including GPUs and many-core chips (via OpenMP or pthreads).

Kokkos is a C++ library that provides two key abstractions useful when writing source code for an application like LAMMPS. First, it allows a single implementation of an application kernel (e.g. a pair style) to run efficiently on different kinds of hardware (GPU, Intel Phi, many-core chip). The choice of hardware to run on is selected at build time.

Second, it adjusts the memory layout of basic data structures like 2d and 3d arrays, used in LAMMPS to store atom coordinates or forces or neighbor lists, specifically for the chosen hardware. This is to optimize performance on different platforms. Again this operation occurs behind the scenes, and does not affect the coding of the single implementation of the kernel operation.

See these sections of the manual for details about building with the Kokkos package, and running input scripts with it:

See these directories in the distro for Kokkos-related files:

Note that the only Kokkos-enabled styles in this release are:

More styles will be added this summer.


27 May 2014

Made some logic changes to the fix rigid and fix rigid/small commands to re-compute rigid body properties before each run, instead of once initially. This allows the user to change per-atom properties, like mass or velocity, before or between runs, and have the rigid bodies reflect the changes.

This does becomes yet another way to shoot yourself in the foot, so use with care.

Thanks to Trung Nguyen (ORNL) and Axel Kohlmeyer (ICTP, Italy) for help in thinking through the issues associated with this change.


23 May 2014

Fixed a bug when using the compute cluster/atom command with dynnmic groups.

Thanks to Rodrigo Freitas (UC Berkeley) for posting a test script with the problem.


22 May 2014

A few small changes:


13 May 2014

This is a maintenance patch to make some low-level changes in preparation for releasing some new load-balancing options as part of the balance and fix balance commands. These changes are to underlying data structures to allow for more irregular partitioning of the simulation box.

The following commands are affected:

Note that the old communicate command has been replaced by the comm_style and comm_modify commands, which are more compatible with how other LAMMPS commands and options are structured.

BACKWARD COMPATIBILITY: The communicate command has been removed, and replaced by the comm_style and comm_modify commands. The syntax for the balance and fix balance commands has changed.


11 May 2014

Agilio Padua (U Blaise Pascal Clermont-Ferrand) has contributed a USER-FEP package for performing free-energy perturbation computations, via a new fix adapt/fep and compute fep commands. The package also includes several core-softened versions of pair styles, which are useful in that context.

Also fixed a bug with the original fix adapt command for per-atom properties (diameter, charge) which wasn't updating ghost atom properties correctly. The fix now also allows the original per-atom parameters to be restored via the reset keyword.


10 May 2014

Small change to enable restart files to launch more reproducible simulations.

Also a fix to a small temperature issue yesterday's patch produced.


9 May 2014

Fixed a small bug with compute_modify dynamic yes which is typically used for systems that gain/lose atoms to insure the degrees-of-freedom for the temperature calculation stays current. It wasn't inlcuding adjustements to the DOF due to constraints, like fix shake, when used with evaporating water molecules via fix evaporate.

Thanks to Shengfeng Cheng (Virginia Tech) for pointing this out.


8 May 2014

Enhanced the fix pour and fix deposit commands to alllow for insertion of different molecule types at user-specified probabilities using a molecule template that defines multiple molecules.


4 May 2014

Ray Shan (Sandia) enabled pair-style reax/c to work with pair_style hybrid and hybrid/overlay, meaning it can now be used in conjunction with other pair styles for mixture systems.

Axel Kohlmeyer (ICTP, Italy) also made some bug fixes to the new atom_style template capability with respect to building neighbor lists when SHAKE is enabled, using it as part of a hybrid atom style, and writing data files.


3 May 2014

Enhanced the syntax for formulas used in the variable command to allow the indices of atom, compute, fix, and variable references to themselves be variables instead of just simple integer indices.


2 May 2014

Fixed a couple issues with variables with global dependencies not evaluating properly when some processors have no atoms.


30 Apr 2014

Extended the molecule option in the delete_atoms command to work with all the styles, so that entire molecules can be deleted if desired.

Also, fixed a periodic boundary bug with the tad command, that could cause events to triggered spuriously when atoms crossed periodic boundaries.

Thanks to Yaset Acevedo for identifying the TAD bug.


29 Apr 2014

Trung Nguyen (ORNL) added NVE/NVT/NPH/NPT variants for the fix rigid/small command, similar to what he had done previously for the fix rigid command.


18 Apr 2014

Daniel Schwen (LANL) added a new "occupation" option to the compute voronoi/atom command to allow tracking of what atoms are in initial Voronoi tesselation volumes.

Axel Kohlmeyer (ICTP, Italy) fixed a bug with the molecule option when defining two molecules in the fix gcmc command.

Colin Deniston (U Waterloo) released an upgrade to his USER-LB package for lattice Boltzmann. This enables use of Nevery > 1, so that the LB background fluid effects can be invoked less frequently during a simulation.

Fixed a bug with writing restart files when the timestep has exceeded a 4-byte integer (timesteps > ~2.1 billion). LAMMPS wasn't triggering a re-neighbor on those steps which could lead to not being able to read the restart file without a losing-atoms error. Thanks to Gary Grest (Sandia) for sending some test files which illustrated the issue.

Fixed a bug with molecule IDs in the fix deposit command when it's used for depositing molecules. Thanks to Leo Silbert (SIU) for pointing this out.


17 Apr 2014

This patch adds an upgraded version of the fix bond/create command, which allows for adding inferred angles, dihedrals, impropers when a bond is created. It also removes the restriction that the command can only be used with special_bonds * 1 1 settings, which means that either all-atom or coarse-grained models can be used.

In the future we plan to add other options to this command, as well as to fix bond/break to allow more control over the state of the system before vs after a bond is broken/created.


16 Apr 2014

Some updates to the new fix bond/break command to insure information is communicated far enough to enable 3- and 4-body interactions to be broken as well. Before the test for this was an estimate, now it is more rigorous.

Also fixed a logic bug in the fix bond/create command, though we are close to releasing a new version that also induced 3- and 4-body interactions when a bond is created.


12 Apr 2014

Enhanced the fix bond/break command so that when a bond is broken, all angles/dihedrals/impropers that contain the bond are also broken. This removes the restriction that the command can only be used with special_bonds * 1 1 settings, which means that either all-atom or coarse-grained models can be used.


11 Apr 2014

Fixed an issue with neighbor lists requested by computes or fixes on an occasional basis, that their neighbor lists could be erroneous due to the delay since normal reneighboring was performed.

Also fixed an issue with fix bond/swap command, that it could be using out-of-date neighbor information.

BACKWARD COMPATIBILITY: The syntax for the fix bond/swap command changed to add an Nevery parameter, since the operation is now done at a different point in the timestep, and can be invoked with a user-specified frequency.


10 Apr 2014

The various KSpace solvers were not detecting when the number of charged atoms in the system had changed (e.g. due to evaporation or deposition), which meant the long-range energy term (not dynamics) could be incorrect. This patch adds a check for that.

Thanks to Shengfeng Cheng (VTech U) for pointing this out.


9 Apr 2014

Fixed a couple small issues with bookkeeping the molecule IDs when pouring rigid granular particles via the fix pour and fix rigid/small commands.


8 Apr 2014

Fixed a logic error in fix bond/create that wasn't converting atoms that reached their bond limit to new atom types correctly in some cases.

Thanks to Lan Huang (Beijing University of Chemical Technology) for sending an input script that illustrated the problem.


5 Apr 2014

Axel Kohlmeyer has created a fix qmmm command, in the USER-QMMM package, to enable LAMMPS to be used as part of a coupled quantum mechanics/molecular mechaincs (QM/MM) calculation. A library for coupling specifically to Quantum ESPRESSO is provided. The interface is flexible enough that it should be possible for users to extend the coupling to other quantum DFT codes as well.


4 Apr 2014

Andrew Jewett has released an updated version of the moltemplate tool which supports the OPLSAA and AMBER-GAFF force fields.


2 Apr 2014

Some more small bug fixes.


31 Mar 2014

Three small bug fixes in this patch.


20 Mar 2014

Trung Nguyen (ORNL) added the pair dpd and dpd/tstat potentials to the GPU package.


19 Mar 2014

Axel Kohlmeyer (ICTP, Italy) sent a corrected version of the new fix temp/csvr command, to make it work for more complex systems. Also an update to the msi2lmp tool that adds optional explanatory comment for styles to the data file it produces.

Also a bug-fix from Andrew Baczewski (Sandia) for fix gld for generalized Langevin dynamics so that it now allows for more than one term in the Prony series representation.

Also some upgrades to the kspace_style msm command from Stan Moore (Sandia) for a faster method of computing scalar pressure.


14 Mar 2014

Paul Coffman (IBM) has implemented an alternate method for performing the data movement required in parallel FFTs for the long-range Coulombic solver used by PPPM via the kspace_style pppm command (and its variants). It uses an MPI_All2allv collective (on sub-groups of processors), rather than point-to-point communication. It is a faster method on the IBM BG/Q machine, and may be beneficial on other machines with fast MPI collectives and hardware to support them. The new option is only the default on BG/Q, but can be turned on for any machine via the kspace_modify collective command.


12 Mar 2014

Maintenance patch including some small changes to the LAMMPS core to accommodate a new package we will release soon, called Kokkos, which will allow pair styles, fixes, etc to be written in a portable manner for execution on multi-core nodes (threaded), GPUs, or the Intel Phi.


10 Mar 2014

Axel Kohlmeyer (ICTP, Italy) made some changes to the msi2lmp tool for non-orthogonal boxes.

Axel also added a new fix temp/csvr thermostat, and a fix oneway command for modeling semi-permeable membranes.


6 Mar 2014

Luis Sandoval (LANL) flagged an issue with the fix deposit command and computation of center-of-mass values that include newly deposited atoms. Turns out that when molecule deposition was recently added, a line for image flag assignment in the atom-deposition case was accidentally dropped. This patch fixes it.


4 Mar 2014

Stan Moore (Sandia) fixed a bug with some of the KSpace solvers mis-estimating the error tolerance when used with a dielectric value not equal to 1.0.


26 Feb 2014

Several small bug fixes, flagged by several folks.


14 Feb 2014

Luis Sandoval and Enrique Martinez (LANL) fixed some problems with the parallel replica dynamics (PRD) implementation in LAMMPS. Dephasing was not accounting for the possibility that new transitions could occur; such events are now properly rejected. And the tallying of clock time (across all replicas) was being systematically over-estimated by not adjusting for the randomness of when the event occurs within the small time chunks of successive runs. The over-estimation could be significant when large numbers of replicas are used. We also added an option to allow the PRD run to be specified in steps per replica (default) or clock time for the ensemble of replicas.


13 Feb 2014

Added an examples/DIFFUSE directory with scripts that compute a diffusion coefficient by using the compute msd command for mean-squared displacement (MSD) and by using the compute vacf command for the velocity auto-correlation function (VACF).


12 Feb 2014

Added an option to the pair_modify command for pair_style hybrid to allow settings to be made for individual sub-styles of the hybrid pair style.

Added an argument to the compute stress/atom command for a temperature compute, so that the kinetic energy component of the per-atom stress can include biasing, just as it does for the global "compute pressure_doc/compute_pressure.html command.

BACKWARD COMPATIBILITY: The syntax for the compute stress/atom command changed because the additional temperature compute is now required, though it can also be specified as NULL. This syntax is now consistent with the compute pressure command.

Thanks to a suggestion and some sample code from Charlles Abreu (Federal University of Rio de Janeiro, Brazil) for the pair_style hybrid feature.


11 Feb 2014

Axel Kohlmeyer (ICTP, Italy) fixed a bug in fix bond/create that allowed it to create too many bonds when used with a long-range kspace_style solver.


10 Feb 2014

Enabled the Boolean expressions in the if-then-else command to work with strings, not just with numeric values. That means something like this is now possible in an input script:

if "${element} == Au" then ... 

8 Feb 2014

Added dynamic groups via a new option on the group command. Flagging a group as dynamic will update the atoms in the group every N steps, based on a parent group, being in a region, or the value of an atom-style variable.

Thanks to Axel Kohlmeyer (ICTP, Italy) and Aidan Thompson (Sandia) for suggestions on useful features for this option.


7 Feb 2014

Rezwanur Rahman and John Foster (UTSA) added new Peridynamic capabilities to LAMMPS. Namely a new pair_style peri/eps for elastic-plastic solid (EPS) modeling, and two new diagnostic computes for assessing the status of a Peridynamic system, compute dilatation/atom and compute plasticity/atom.


5 Feb 2014

Added a fix vector command to accumulate values periodically into a global vector. This can be used, for example, to time integrate a correlation value using the variable trap() function, e.g. to compute a diffusion coefficient from the velocity auto-correlcation function (VACF).


4 Feb 2014

Axel Kohlmeyer (ICTP, Italy) sent an upgraded version of the USER-COLVARS package.


3 Feb 2014

The U Florida group that developed the COMB3 potential (Tao Liang, Susan Sinnott, Simon Phillpot) has created an update, which includes the following modifications:


2 Feb 2014

Andrew Jewett (UCSB) sent a new version 1.17 of his moltemplate tool.


1 Feb 2014

Fixed an issue with the timestep as used by damped dynamics minimizers, namely QuickMin and FIRE. The appropriate scaling factor was not applied consistently for different choice of units. It was correct for Lennard-Jones units, but not for metal and real units, which effectively resulted in too small a timestep being used, which in turn could slow down convergence. This also affects the neb and tad commands, since they use the damped dynamic minimizers.

As part of this bug fix, the min_style keyword was removed from the "tad" command, and a neb_step keyword was added. The quench minimization style for TAD is now set by the min_style command, just as it is for PRD when using the prd command. Since the TAD dynamics uses the timestep chosen by the timestep command, a larger timestep for NEB within TAD can now be set by the neb_step keyword.

Also fixed a bug when using the dump cfg command with Peridynamics models.

BACKWARD COMPATIBILITY: The min_style option for the tad command was removed.

As described at the top of this page, this version is considered "stable".


31 Jan 2014

Stan Moore (Sandia) extended the kspace 2D slab correction to work for point dipoles in the kspace_style ewald/disp command.


30 Jan 2014

A few more tweaks were needed to merge the new atom_style template command with the recent 64-bit atom ID and molecule ID patches.


29 Jan 2014

Added a template style to the atom_style command. This allows systems with a large number of small molecules (of one or a few types) to have their molecular topology defined (bonds,angles,etc including special bond neighbors) through a molecule template as defined by the molecule command.

This can be a memory savings to not have to store or communicate the topology info.


28 Jan 2014

Dan Bolintineanu (Sandia) fixed an issue with the fix srd command when using its bin-shifting option. It should now conserve energy better even when not thermostatting.

Thanks to Sridhar Kumar Kannam for calling attention to this issue.


27 Jan 2014

Paul Coffman (IBM) has added MPI-IO capabilities for dump output with 3 new dump styles, namely atom/mpiio, custom/mpiio, and xyz/mpiio. They take the same arguments as their non MPI-IO counterparts, and write one dump file in the same format, but using parallel I/O. MPI-IO should be part of any MPI you are using on your system from version 2.0 onward.


26 Jan 2014

Added support for 64-bit molecule IDs, so that molecular systems with up to 2^63 = ~9e19 molecules can be modeled. An addition to the patch a few days for atom IDs. See Section 2.4 of the manual for how to enable this option at build time, via the -DLAMMPS_BIGBIG switch.

Also extended the molecule command to allow specification of molecule templates that contain more than one molecule.


24 Jan 2014

Paul Coffman (IBM) has added MPI-IO capabilities to the reading and writing of restart files. This allows parallel writing/reading of one large file. MPI-IO should be part of any MPI you are using on your system from version 2.0 onward.

Similar options for writing dump files will be released soon.


22 Jan 2014

Two more bug fixes to the rRESPA integrator. Rolf Isele-Holder (U Aachen) fixed a tallying issue for per-atom energy and stress across the rRESPA levels. Per-atom force was also not being synced for end-of-timestep use by any fixes that accessed it.


21 Jan 2014

Rolf Isele-Holder (U Aachen) made some upgrades to his kspace_style pppm/disp command, and added new options to the kspace_modify comand, as follows:

The new version of the pppm/disp has a better performance. In the old version, the neighbor list is build redundantly. Moreover, in the new version geometric mixing can be enforced to the dispersion coefficients. Moreover the solver has been extended to cases when mixing rules do not apply. Finally, accuracies for the real and kspace part of the dispersion solver can be set separately. This is a more convenient way for generating grid parameters than setting them manually, as was is recommended for the old implementation.


17 Jan 2014

Added support for 64-bit atom IDs, so that molecular systems with up to 2^63 = ~9e19 atoms can be modeled. Atomic systems (without atom IDs) could already be that large. See Section 2.4 of the manual for how to enable this option at build time, via the -DLAMMPS_BIGBIG switch.

This option is not yet supported by all packages. If you attempt to build LAMMPS with the -DLAMMPS_BIGBIG setting, with one of the unsupported packages installed, a compile-time error message will be generated. Unsupported packages are GPU, POEMS, REAX, USER-COLVARS, USER-CUDA, USER-MISC, USER-OMP, USER-MOLFILE, USER-PHONON, USER-REAXC.

As each of these packages is enabled for 64-bit atom IDs, the compile-time error message will be removed.


13 Jan 2014

Trung Ngyuen (ORNL) has upgraded the GPU package, with these changes:


11 Jan 2014

Added a charge keyword to the fix property/atom command, so per-atom charge can be easily added to an atom_style that doesn't include it.


10 Jan 2014

Removed the requirement to use a molecular atom_style when depositing or pouring molecules, so that these commands can be used with the ReaxFF force field.


7 Jan 2014

Added a molecule option to the create_atoms command to allow a collection of molecules to be created, instead of individual atoms. This can be done for a single molecule, for a set of random positions, or on a collection of lattice points. The molecule coordinates and topology are defined in a file, as specified by the molecule command.