Public development project of the LAMMPS MD software package

Overview
This is the LAMMPS software package.

LAMMPS stands for Large-scale Atomic/Molecular Massively Parallel
Simulator.

Copyright (2003) Sandia Corporation.  Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software.  This software is distributed under
the GNU General Public License.

----------------------------------------------------------------------

LAMMPS is a classical molecular dynamics simulation code designed to
run efficiently on parallel computers.  It was developed at Sandia
National Laboratories, a US Department of Energy facility, with
funding from the DOE.  It is an open-source code, distributed freely
under the terms of the GNU Public License (GPL).

The primary author of the code is Steve Plimpton, who can be emailed
at [email protected]  The LAMMPS WWW Site at lammps.sandia.gov has
more information about the code and its uses.

The LAMMPS distribution includes the following files and directories:

README                     this file
LICENSE                    the GNU General Public License (GPL)
bench                      benchmark problems
cmake                      CMake build files
doc                        documentation
examples                   simple test problems
fortran                    Fortran wrapper for LAMMPS
lib                        additional provided or external libraries
potentials                 interatomic potential files
python                     Python wrappers for LAMMPS
src                        source files
tools                      pre- and post-processing tools

Point your browser at any of these files to get started:

https://lammps.sandia.gov/doc/Manual.html         LAMMPS manual
https://lammps.sandia.gov/doc/Intro.html          hi-level introduction
https://lammps.sandia.gov/doc/Build.html          how to build LAMMPS
https://lammps.sandia.gov/doc/Run_head.html       how to run LAMMPS
https://lammps.sandia.gov/doc/Commands_all.html   Table of available commands
https://lammps.sandia.gov/doc/Library.html        LAMMPS library interfaces
https://lammps.sandia.gov/doc/Modify.html         how to modify and extend LAMMPS
https://lammps.sandia.gov/doc/Developer.html      LAMMPS developer info

You can also create these doc pages locally:

% cd doc
% make html                # creates HTML pages in doc/html
% make pdf                 # creates Manual.pdf
Comments
  • cmake: major refactor

    cmake: major refactor

    Use more modern cmake paradigms.

    • [x] Remote old style include_directories() calls
    • [x] Remove old style add_definitions() calls
    • [x] Create imported target for
      • [x] NetCDF
      • [x] QUIP
    • [x] turn linalg, mpi_stubs in ${PKG_LIB} in object libraries - Nope, CMake-3.10 doesn't have full support for OBJECT libs yet
    • [x] Create exported target for lammps library
    • [x] Drop pkg-config files? - Nope
    • [x] Update old style (without PRIVATE/ PUBLIC keyword) target_link_libraries() calls
    cmake ready_for_merge 
    opened by junghans 106
  • Develop native support for KIM simulator models

    Develop native support for KIM simulator models

    Summary

    This PR will create built-in support for KIM Simulator Models

    Author(s)

    Ryan S. Elliott (U. Minnesota) Ellad B. Tadmor (U. Minnesota) Axel Kohlmeyer (Temple U)

    Licensing

    By submitting this pull request, I agree, that my contribution will be included in LAMMPS and redistributed under either the GNU General Public License version 2 (GPL v2) or the GNU Lesser General Public License version 2.1 (LGPL v2.1).

    Implementation Notes

    Most of the new commands work by essentially generating LAMMPS commands, either individually or from a file and feeding them to the LAMMPS instance. For clarity, they will generated begin/end markers to show the generated LAMMPS commands like in the following example log output segments:

    kim_init        SW_StillingerWeber_1985_Si__MO_405512056662_005 real
    #=== BEGIN kim-init ==========================================
    units real
    #=== END kim-init ============================================
    
    kim_interactions Si
    #=== BEGIN kim_interactions ==================================
    pair_style kim SW_StillingerWeber_1985_Si__MO_405512056662_005
    pair_coeff * * Si 
    #=== END kim_interactions ====================================
    
    kim_package update 
    opened by ellio167 90
  • ML potentials with proper orthogonal descriptors

    ML potentials with proper orthogonal descriptors

    Summary

    This pull request implements the fitting and calculation of a new machine-learning interatomic potential (ML-IAP) based on proper orthogonal descriptors (POD). The implementation is located in the folder src/ML-POD, while the documentation is located in the folder doc/src. The new features of this pull request include:

    • Users can train POD potentials inside LAMMPS.
    • Users can perform MD simulations with the trained POD potentials.
    • Users can combine POD and SNAP to create hybrid POD-SNAP potentials.
    • Users can make linear and quadratic POD, POD-SNAP potentials.

    Related Issue(s)

    This pull request does not address any open GitHub issue.

    Author(s)

    Ngoc Cuong Nguyen, Department of Aeronautics and Astronautics, Massachusetts Institute of Technology, 77 Massachusetts Avenue, Cambridge, 02139, MA. Email: [email protected] and [email protected]

    Andrew Rohskopf, Sandia National Laboratories. Email: [email protected]

    Licensing

    By submitting this pull request, I agree, that my contribution will be included in LAMMPS and redistributed under either the GNU General Public License version 2 (GPL v2) or the GNU Lesser General Public License version 2.1 (LGPL v2.1).

    Backward Compatibility

    This pull request should not break backward compatibility for inputs.

    Implementation Notes

    In this pull request, three new C++ classes were created, including mlpod, pair_mlpod, and fitpod_command, to implement the fitting command and pair style for POD. Examples are provided in the examples/mlpod folder to demonstrate the implementation and its performance.

    This pull request should not affect other features in LAMMPS.

    Post Submission Checklist

    • [x] The feature or features in this pull request is complete
    • [x] Licensing information is complete
    • [x] Corresponding author information is complete
    • [x] The source code follows the LAMMPS formatting guidelines
    • [x] Suitable new documentation files and/or updates to the existing docs are included
    • [x] The added/updated documentation is integrated and tested with the documentation build system
    • [x] The feature has been verified to work with the conventional build system
    • [x] The feature has been verified to work with the CMake based build system
    • [x] Suitable tests have been added to the unittest tree.
    • [x] A package specific README file has been included or updated
    • [x] One or more example input decks are included

    Further Information, Files, and Links

    The original code of this pull request is hosted at https://github.com/cesmix-mit. The Github repository https://github.com/cesmix-mit/pod_examples contains additional examples for this pull request.

    More information about the authors can be found on their personal websites https://www.mit.edu/~cuongng/ and https://rohskopf.github.io/. Technical details about the methodology implemented in this pull request can be found in the paper https://arxiv.org/abs/2209.02362.

    The research of Dr. Nguyen is supported by Center for the Exascale Simulation of Materials in Extreme Environments https://computing.mit.edu/cesmix/.

    enhancement 
    opened by exapde 57
  • A shifted Tersoff Potential

    A shifted Tersoff Potential

    Summary

    This potential is designed for simulations of closely matched van der Waals heterostructures. For instance, let's consider the case of a system with few-layers graphene atop a thick hexagonal boron nitride (h-BN) substrate simulated using periodic boundary conditions. The experimental lattice mismatch of ~1.8% between graphene and h-BN is not well captured by the equilibrium lattice constants of available potentials, thus a small in-plane strain will be introduced in the system when building a periodic supercell. To minimize the effect of strain on simulation results, the tersoff/shift style is proposed that allows adjusting the equilibrium bond length of one of the two materials (e.g., h-BN). Validitation, benchmark tests and applications of the tersoff/shift style can be found in ACS Nano 13, 7603 (2019) and J. Chem. Theory Comput. 16, 666 (2020).

    Related Issue(s)

    Author(s)

    Wengen Ouyang, Tel Aviv University, Email: [email protected] Davide Mandelli, Istituto Italiano di Tecnologia

    Licensing

    By submitting this pull request, I agree, that my contribution will be included in LAMMPS and redistributed under either the GNU General Public License version 2 (GPL v2) or the GNU Lesser General Public License version 2.1 (LGPL v2.1).

    Backward Compatibility

    The backward compatibility is kept

    Implementation Notes

    The tersoff/shift style computes the energy E of a system of atoms, whose formula is the same as the original Tersoff potential. The only modification is that the original equilibrium bond length r_0 of the system is shifted to r_0-\delta, where values of \delta < 0 will result in elongation of the bond length, while values of \delta > 0 will result in shrinking of the bond length.

    Post Submission Checklist

    • [x] The feature or features in this pull request is complete
    • [x] Licensing information is complete
    • [x] Corresponding author information is complete
    • [x] The source code follows the LAMMPS formatting guidelines
    • [x] Suitable new documentation files and/or updates to the existing docs are included
    • [x] The added/updated documentation is integrated and tested with the documentation build system
    • [x] The feature has been verified to work with the conventional build system
    • [x] The feature has been verified to work with the CMake based build system
    • [x] Suitable tests have been added to the unittest tree.
    • [ ] A package specific README file has been included or updated
    • [x] One or more example input decks are included

    Further Information, Files, and Links

    Validitation, benchmark tests and applications of the tersoff/shift style can be found in https://pubs.acs.org/doi/10.1021/acsnano.9b00645 and https://pubs.acs.org/doi/10.1021/acs.jctc.9b00908.

    user_misc_package 
    opened by oywg11 47
  • ML_PACE with extrapolation grade / active learning

    ML_PACE with extrapolation grade / active learning

    Summary

    Extension of ML-PACE to compute extrapolation grade for active learning applications

    Author(s) Yury Lysogorskiy ([email protected])

    Licensing

    By submitting this pull request, I agree, that my contribution will be included in LAMMPS and redistributed under either the GNU General Public License version 2 (GPL v2) or the GNU Lesser General Public License version 2.1 (LGPL v2.1).

    Backward Compatibility

    no breaking of backward compatibility is expected

    Implementation Notes

    New pair style pace/al

    Every gamma_grade_eval_freq steps call more expensive ACEBEvaluator using B-basis in YAML format. The relation between potential.yaml and potential.yace currently being used in ML-PACE is shown here.

    ACEBEvaluator computes extrapolation grade (following MaxVol algorithm similar to Shapeev's MTP potentials) : current_atom_gamma_grade is computed for each atom here . This value is stored into per-atom array extrapolation_grade_gamma[i] here. The maximum per-atom extrapolation grade is aggregated over MPI processes here and if this max_gamma_grade_per_structure exceeds some thresholds gamma_lower_bound and gamma_upper_bound - dump this value and dump the current structure, and stop (if exceed upper bound).

    The per-atom array extrapolation_grade_gamma[i] and per-structure scalar max_gamma_grade_per_structure are accessible to new compute class ComputePaceAtom here and here. This compute style is always created by pair-style pace/al here, and try to "register" in LAMMPS list of computes here. If compute style is invoked in different timestep from gamma_grade_eval_freq frequency, then additional computation of pair_style::compute is invoked here and here.

    Dump class to optionally store extrapolative structures is created here but not "registered" into lammps lists.

    Post Submission Checklist

    • [ ] The feature or features in this pull request is complete
    • [ ] Licensing information is complete
    • [ ] Corresponding author information is complete
    • [ ] The source code follows the LAMMPS formatting guidelines
    • [ ] Suitable new documentation files and/or updates to the existing docs are included
    • [ ] The added/updated documentation is integrated and tested with the documentation build system
    • [ ] The feature has been verified to work with the conventional build system
    • [ ] The feature has been verified to work with the CMake based build system
    • [ ] Suitable tests have been added to the unittest tree.
    • [ ] A package specific README file has been included or updated
    • [ ] One or more example input decks are included

    Further Information, Files, and Links

    the ACEBEvaluator and related functionality are represented in ML-PACE/ace, whereas current ML-PACE library sources are in ML-PACE/ace-evaluator
    Also, CMakeLists.txt file is added here

    pace_package 
    opened by yury-lysogorskiy 45
  • Add faster method for multi neighboring

    Add faster method for multi neighboring

    Summary

    This pull request contains a slightly modified implementation of a new polydisperse neighboring method developed by Tom Shire, Kevin Stratford, and Kevin Hanley (references below). In the current multi implementation, there is a single binlist with a bin size set by the smallest interaction length. A separate stencil is then constructed for each atom type. For each itype, the stencil extends to the maximum interaction distance with other particles. In the new implementation, a separate binlist is used for each atom type and ~ntype^2 stencils are then constructed for itype-jtype pairs. Stencils extend up to the itype-jtype interaction distance.

    This approach greatly speeds up the construction of neighbor lists and may also allow fewer ghost atoms to be communicated. If Newton is on and there are only half neighborlists, one only needs to loop through small particles to look for large neighbors to find cross-interactions. Therefore, small ghost atoms only need to be communicated a distance set by the small-small interaction. In all cases tested, the new method improves performance over the old multi method by a factor of 3+. Therefore, we renamed the old method multi/old and replaced multi with this new method.

    In addition to upgrading multi, this pull request also cleans up redundancies in the nstencil classes. Previously, most stencil classes had a full, half+newton, and half+newtoff variety. However, the full and half+newtoff classes were redundant as both created what one might consider a fully "spherical" stencil. This contrasts to half+newton where stencils only included bins to the upper right creating a "hemi-spherical" stencil. To remove this redundancy, all half+newtoff stencils were removed and half+newton stencils were renamed half stencils. The logic in neighbor->choose_stencil() was accordingly updated.

    Related Issue(s)

    NA

    Author(s)

    Tom Shire (U. Glasgow) Kevin Stratford (U. Edinburgh) Kevin Hanley (U. Edinburgh) Joel Clemmer (SNL - [email protected])

    Licensing

    By submitting this pull request, I agree, that my contribution will be included in LAMMPS and redistributed under either the GNU General Public License version 2 (GPL v2) or the GNU Lesser General Public License version 2.1 (LGPL v2.1).

    Backward Compatibility

    No foreseen issues, input scripts using the old multi style will automatically use the new multi style

    Implementation Notes

    This PR is still in progress. Remaining tasks include:

    • [x] Allow users to create custom categories by grouping different types to avoid ntype^2 overhead
    • [x] Add check in comm_init() to confirm a full neighborlist isn't used with hierachical communication (small-to-large lookups)
    • [x] Resize bins and atom2bin arrays (# atoms in group vs nall)
    • [ ] Check compatibility of new stencils with Kokkos
    • [x] Add examples
    • [x] Update documentation when arguments are finalized (reference new paper)
    • [x] Add size_one methods to granular pairstyles
    • [x] Add option to specify collections by cutoff intervals
    • [x] Add option to specify non-sequential collections of types
    • [x] Revamp multi neighbor and comm to use a new, separate collection array of size nlocal+nghost

    Extra items (probably a different PR):

    1. Update fix pour to work with >1 atom types
    2. Update fix pour/adapt to work with multi if atom radii can change

    Post Submission Checklist

    • [x] The feature or features in this pull request is complete
    • [x] Licensing information is complete
    • [x] Corresponding author information is complete
    • [x] The source code follows the LAMMPS formatting guidelines
    • [x] Suitable new documentation files and/or updates to the existing docs are included
    • [x] The added/updated documentation is integrated and tested with the documentation build system
    • [ ] The feature has been verified to work with the conventional build system
    • [x] The feature has been verified to work with the CMake based build system
    • [ ] Suitable tests have been added to the unittest tree.
    • [ ] A package specific README file has been included or updated
    • [x] One or more example input decks are included

    Further Information, Files, and Links

    Relevant links: Journal article for old method Journal article for new method Technical document for new method Original implementation of new method

    neighborlist_feature 
    opened by jtclemm 41
  • Fix active

    Fix active

    Purpose

    This adds a simple fix that applies a constant force along a vector dependent on the atoms' current orientation quaternion. I think this could have been achieved by using addforce and per-vector variables but adding this stuff to a fix seems like a cleaner solution and allows for more easy extension of more advanced features later.

    Author(s)

    Stefan Paquay @ Brandeis University.

    Backward Compatibility

    Yes; just adds new feature.

    Implementation Notes

    This fix applies a constant force to an atom along the "body-frame" z-axis. Therefore, if the atom rotates (due to fix langevin for instance) the force also rotates with it. One check I did is to make sure that, when using fix viscous with a constant friction, the velocity of non-interacting particles converges to the right velocity (given by force magnitude / friction coefficient).

    Post Submission Checklist

    Please check the fields below as they are completed

    • [X] The feature or features in this pull request is complete
    • [X] Suitable new documentation files and/or updates to the existing docs are included
    • [X] One or more example input decks are included
    • [X] The source code follows the LAMMPS formatting guidelines
    enhancement documentation user_misc_package work_in_progress 
    opened by Pakketeretet2 41
  • Support for distributed grids

    Support for distributed grids

    Summary

    Refactor the GridComm class into Grid2d and Grid3d classes which partition and communicate distributed grid data across and between processors for 2d and 3d simulations. "Distributed" means the grid cells or points and the data they store are spread across processors. Each processor owns the points within its subdomain. Note that Grid2d/3d do not store any per-grid data. The data is stored by the calling classes which use Grid2d/3d.

    Existing classes that used distributed grids now use these grid classes: PPPM, MSM, fix ttm/grid, pair amoeba/hippo.

    Added additional infrastructure to allow computes and fixes to create and output multiple grids (per compute or fix) and multiple data fields on each grid. Added a few new commands to work with distributed per-grid data:

    compute property/grid fix ave/grid dump grid dump grid/vtk

    Fix ave/grid can either time average per-atom data within each grid cell, or time-average per-grid data directly. The former use case is similar to fix ave/chunk for regular 2d or 3d bins, except that that all processors own a copy of all the bins. So it is less scalable than the new fix ave/grid.

    Also added options to dump image and dump_modify to color grid cells in output viz images by grid data.

    The motivation for this PR is to standardize how per-grid data is used within LAMMPS and add infrastructure that makes it easier for developers to create their own pair styles or other models which need to use grids in conjunction with particles.

    New commands being thought about for future PRs: compute fft/grid fix grid (internal command for use by other styles) others to suggest ?

    See the "Howto grid" doc page for an overview of per-grid (distributed) data.

    Related Issue(s)

    Implements and thus closes #2269

    Author(s)

    Steve Plimpton, SNL

    Licensing

    By submitting this pull request, I agree, that my contribution will be included in LAMMPS and redistributed under either the GNU General Public License version 2 (GPL v2) or the GNU Lesser General Public License version 2.1 (LGPL v2.1).

    Backward Compatibility

    Implementation Notes

    Post Submission Checklist

    • [ ] The feature or features in this pull request is complete
    • [ ] Licensing information is complete
    • [ ] Corresponding author information is complete
    • [ ] The source code follows the LAMMPS formatting guidelines
    • [ ] Suitable new documentation files and/or updates to the existing docs are included
    • [ ] The added/updated documentation is integrated and tested with the documentation build system
    • [ ] The feature has been verified to work with the conventional build system
    • [ ] The feature has been verified to work with the CMake based build system
    • [ ] Suitable tests have been added to the unittest tree.
    • [ ] A package specific README file has been included or updated
    • [ ] One or more example input decks are included

    Further Information, Files, and Links

    enhancement ready_for_merge refactor 
    opened by sjplimp 40
  • Add compute born/matrix command to compute elastic stress

    Add compute born/matrix command to compute elastic stress

    Summary

    This is a first implementation of the Born term for stress-stress elastic constant computation (see: here or here).

    Related Issue(s)

    N/A

    Author(s) Germain Clavier - Technilogische Universiteit Eindhoven, The Netherlands - [email protected] - github.com/Bibobu

    Licensing

    By submitting this pull request, I agree, that my contribution will be included in LAMMPS and redistributed under either the GNU General Public License version 2 (GPL v2) or the GNU Lesser General Public License version 2.1 (LGPL v2.1).

    Backward Compatibility

    None known so far.

    Implementation Notes

    The method needs coefficients derived from the potential and a configuration dependent part. Since analytical derivation of the potential is needed for the potential coefficient, a specific function needs to be coded for every potential component, if possible. A function signature has been added in each base class for simplicity. Only the pair_lj_cut potential has been modified with a proper method. The compute_born is supposed to make the computation of the configuration part and call the energy coefficient computation when needed for every component.

    • compute_born.cpp and compute_born.h are added to the src directory. For now method concerning bonds, angles and dihedral are commented waiting for test cases. Improper method has not been coded yet.
    • pair.h, bond.h, angle.h, dihedral.h and improper.h have an int born_enable declaration and void born method for proper namespace referencing. The new integer value is set to 0 in the respective .cpp files.
    • pair_lj_cut.h and pair_lj_cut.cpp where modified to include a functional born method. Test on Argon crystal gave comparable results with this article although the implementation was done in a different code: C11=2.27 GPa; C12=1.20 GPa; C44=1.39 GPa. Input script for the test case can be added if needed.

    Post Submission Checklist

    • [ ] The feature or features in this pull request is complete
    • [ ] Licensing information is complete
    • [ ] Corresponding author information is complete
    • [ ] The source code follows the LAMMPS formatting guidelines
    • [ ] Suitable new documentation files and/or updates to the existing docs are included
    • [ ] The added/updated documentation is integrated and tested with the documentation build system
    • [ ] The feature has been verified to work with the conventional build system
    • [ ] The feature has been verified to work with the CMake based build system
    • [ ] Suitable tests have been added to the unittest tree.
    • [ ] A package specific README file has been included or updated
    • [ ] One or more example input decks are included

    Further Information, Files, and Links

    enhancement 
    opened by Bibobu 40
  • Support for tiled decompositions in PPPM

    Support for tiled decompositions in PPPM

    Summary

    Add support to PPPM for load-balanced decompositions produced by balance and fix balance rcb, i.e. tiled decompositions. The majority of changes for this are in the GridComm class which now stores a regular or tiled decomposition of the FFT grids used by PPPM and does forward and reverse communication of the charge and efield values on those grids. This change should support both orthogonal and triclinic domains and all the options that the PPPM class supports. By the time it is ready to merge all variant PPPM classes, including accelerator versions, should be supported.

    Related Issues

    N/A

    Author(s)

    Steve

    Licensing

    By submitting this pull request, I agree, that my contribution will be included in LAMMPS and redistributed under either the GNU General Public License version 2 (GPL v2) or the GNU Lesser General Public License version 2.1 (LGPL v2.1).

    Backward Compatibility

    Non-tiled decompositions should work as before.

    Implementation Notes

    Post Submission Checklist

    • [ ] The feature or features in this pull request is complete
    • [ ] Licensing information is complete
    • [ ] Corresponding author information is complete
    • [ ] The source code follows the LAMMPS formatting guidelines
    • [ ] Suitable new documentation files and/or updates to the existing docs are included
    • [ ] The added/updated documentation is integrated and tested with the documentation build system
    • [ ] The feature has been verified to work with the conventional build system
    • [ ] The feature has been verified to work with the CMake based build system
    • [ ] Suitable tests have been added to the unittest tree.
    • [ ] A package specific README file has been included or updated
    • [ ] One or more example input decks are included

    Further Information, Files, and Links

    enhancement kspace_package test_runs test_for_regression ready_for_merge 
    opened by sjplimp 40
  • Contribute USER-CAC package for multi-scale modeling

    Contribute USER-CAC package for multi-scale modeling

    Summary

    Provides an implementation of the CAC method as presented in: Chen, Y. Reformulation of microscopic balance equations for multiscale materials modeling. The Journal of Chemical Physics 130, 134706, (2009).

    The implementation is designed for scalability with both uniform and multi-resolution models.

    Author(s)

    Adrian Diaz (University of Florida) Email: [email protected]

    Licensing

    By submitting this pull request, I agree, that my contribution will be included in LAMMPS and redistributed under either the GNU General Public License version 2 (GPL v2) or the GNU Lesser General Public License version 2.1 (LGPL v2.1).

    Backward Compatibility

    Clear of Conflict (at least without accounting for unforeseen bugs)

    Implementation Notes

    Several styles are implemented to carry forth the calculations required for the CAC method to be solved in parallel; this includes atom, comm, fix, dump, min, and compute styles. In addition several parent interfaces are added to for operation such as neighbor.cpp.

    Correctness was verified with several example CAC and pure MD simulations (to make sure changes didn't break the original LAMMPS code execution). A couple of these examples can be found in the examples folder for USER-CAC.

    Post Submission Checklist

    Please check the fields below as they are completed after the pull request has been submitted. Delete lines that don't apply

    • [ ] The feature or features in this pull request is complete
    • [ ] Licensing information is complete
    • [ ] Corresponding author information is complete
    • [ ] The source code follows the LAMMPS formatting guidelines
    • [ ] Suitable new documentation files and/or updates to the existing docs are included
    • [ ] The added/updated documentation is integrated and tested with the documentation build system
    • [ ] The feature has been verified to work with the conventional build system
    • [ ] The feature has been verified to work with the CMake based build system
    • [ ] A package specific README file has been included or updated
    • [ ] One or more example input decks are included

    Further Information, Files, and Links

    documentation needs_work 
    opened by Adrian-Diaz 37
  • Collected small fixes and changes

    Collected small fixes and changes

    Summary

    The pull request combines multiple small changes and fixes

    Related Issue(s)

    N/A

    Author(s)

    Axel Kohlmeyer, Temple U

    Licensing

    By submitting this pull request, I agree, that my contribution will be included in LAMMPS and redistributed under either the GNU General Public License version 2 (GPL v2) or the GNU Lesser General Public License version 2.1 (LGPL v2.1).

    Backward Compatibility

    N/A

    Implementation Notes

    The following individual changes are included:

    • small cleanup in the mliappy code for Kokkos support to address reports from static analysis with CodeQL
    • always build the C++-only "mesocnt" styles even if no Fortran is available and mesont/tpm cannot be built.
    • handle dependency of bond style mesont on bond style harmonic
    • conditionally add CONFIGURE_DEPENDS keyword to CMake globbing. We do this by defining the variable ${CONFIGURE_DEPENDS} to either by the keyword or empty for CMake prior to 3.12. This will make it easy to turn it always on when we increase the minimum CMake version required. With this change CMake now automatically recognizes when files are added to or removed from the a source folder and re-runs CMake to update the build rules.

    Post Submission Checklist

    • [ ] The feature or features in this pull request is complete
    • [x] Licensing information is complete
    • [x] Corresponding author information is complete
    • [x] The source code follows the LAMMPS formatting guidelines
    • [ ] Suitable new documentation files and/or updates to the existing docs are included
    • [ ] The added/updated documentation is integrated and tested with the documentation build system
    • [ ] The feature has been verified to work with the conventional build system
    • [x] The feature has been verified to work with the CMake based build system
    • [ ] Suitable tests have been added to the unittest tree.
    • [ ] A package specific README file has been included or updated
    • [ ] One or more example input decks are included
    python_module cmake refactor 
    opened by akohlmey 0
  • [BUG] _LJ/Cut/Intel Incompatable with Ellipsoids

    [BUG] _LJ/Cut/Intel Incompatable with Ellipsoids

    Summary I am trying to run an Intel accelerated simulation of lammps using a hybrid gayberne lj/coul/cut/long potential. After much troubleshooting, I’ve found that the combination of ellipsoids and the LJ/cut/intel potential eventually leads to a particle (seemingly spontaneously) gaining enormous pair energy or thermal energy. The same code with just an LJ/cut (no intel) pair potential runs fine.

    LAMMPS Version and Platform LAMMPS (22 Dec 2022) Red Hat Enterprise Linux Server 7.9 (Maipo) Dual 32core Intel Ice Lake 2.6GHz Node and LAMMPS (29 Oct 2020) CentOS Linux 7 (Core)

    Expected Behavior When using LJ/cut, the system runs to completion with appropriate thermostatting.

    Actual Behavior When using LJ/cut/intel, the system will eventually (typically in < 2e8 steps) gain large amounts of pair energy and/or kinetic energy (>1e6 in lj units), causing one of the atoms to eventually get lost and the simulation to fail. I have tested langevin damping parameters of 1 & 1000, and several of random seeds with the lj/cut/intel always failing, and the lj/cut never failing. The erratic behavior occurs much sooner (~100,000 steps) for larger systems (1000 atoms).

    Steps to Reproduce I run an "sbatch lammpssubmit2.txt" command. It runs inp.txt which reads the datafile data.txt, and outputs out.txt

    Further Information, Files, and Links data.txt inp.txt lammpssubmit2.txt out.txt

    bug user_intel_package 
    opened by friday20 0
  • [BUG] Can't build CUDA KOKKOS with CUDA 12 and cmake

    [BUG] Can't build CUDA KOKKOS with CUDA 12 and cmake

    Summary

    Trying to use cmake for LAMMPS compilation with KOKKOS fails if CUDA 12 is installed.

    LAMMPS Version and Platform

    Current develop

    Expected Behavior

    Cmake should correctly prepare files for compilation.

    Actual Behavior

    An error appears: nvcc fatal : Value 'sm_35' is not defined for option 'gpu-architecture'

    Followed by errors from the cmake itself:

    CMake Error at /tmp/lammps/lib/kokkos/cmake/kokkos_compiler_id.cmake:12 (STRING):
      STRING sub-command REPLACE requires at least four arguments.
    Call Stack (most recent call first):
      /tmp/lammps/lib/kokkos/cmake/kokkos_compiler_id.cmake:53 (kokkos_internal_have_compiler_nvcc)
      /tmp/lammps/lib/kokkos/cmake/kokkos_tribits.cmake:215 (INCLUDE)
      /tmp/lammps/lib/kokkos/CMakeLists.txt:188 (KOKKOS_SETUP_BUILD_ENVIRONMENT)
    
    
    -- SERIAL backend is being turned on to ensure there is at least one Host space. To change this, you must enable another host execution space and configure with -DKokkos_ENABLE_SERIAL=OFF or change CMakeCache.txt
    -- Using -std=c++14 for C++14 standard as feature
    CMake Error at /tmp/lammps/lib/kokkos/cmake/kokkos_test_cxx_std.cmake:132 (MESSAGE):
      Invalid compiler for CUDA.  The compiler must be nvcc_wrapper or Clang or
      NVC++ or use kokkos_launch_compiler, but compiler ID was GNU
    Call Stack (most recent call first):
      /tmp/lammps/lib/kokkos/cmake/kokkos_tribits.cmake:242 (INCLUDE)
      /tmp/lammps/lib/kokkos/CMakeLists.txt:188 (KOKKOS_SETUP_BUILD_ENVIRONMENT
    

    Steps to Reproduce

    Install CUDA 12.0, and run following lines:

    git clone https://github.com/lammps/lammps
    cd lammps
    mkdir build
    cd build
    cmake -D PKG_KOKKOS=yes -D Kokkos_ENABLE_CUDA=yes ../cmake
    

    The issue also appears if a GPU architecture is specified, e.g. -D Kokkos_ARCH_AMPERE86=yes is added.

    Further Information, Files, and Links

    The issue arises from the nvcc_wrapper script which uses sm_35 as a default architecture and it was removed in CUDA 12: https://github.com/lammps/lammps/blob/f84b64bc869003320ccc3b83e8cfe428d9b87f0f/lib/kokkos/bin/nvcc_wrapper#L15-L16

    This problem is solved if the line with sm_35 is commented and the next one uncommented, but I think it should documented somewhere.

    bug 
    opened by mkanski 7
  • [BUG] _Fix rigid/npt does not keep bond lengths and angles rigid in SWM4-ndp water molecules

    [BUG] _Fix rigid/npt does not keep bond lengths and angles rigid in SWM4-ndp water molecules

    Summary

    Fix rigid/npt does not keep bond lengths and angle rigid of the SWM4-ndp water molecules.

    LAMMPS Version and Platform

    LAMMPS (3 Nov 2022) Operating system: CentOS Linux release 7.9.2009 (Core) Hardware/CPU: Intel(R) Xeon(R) CPU E5-2683 v4 @ 2.10GHz

    Expected Behavior

    Fix rigid/npt keeps bond lengths and angles constant, or with very small variations (machine precision).

    Actual Behavior

    Bond lengths (O-M and O-H) vary with at least up to 0.3 Å over time (several ns). H-O-H angle also varies by 0.3 degrees in much shorter time.

    Steps to Reproduce

    Run in.example.txt using data.swm4-ndp.txt as data (system) file.

    Further Information, Files, and Links

    Input file, data file and output files attached.

    in.example.txt log.lammps.txt OH_bond.dump.txt OM_bond.dump.txt data.swm4-ndp.txt HOH_angle.dump.txt

    bug 
    opened by gullbrekken 1
  • Updates to the DIELECTRIC package

    Updates to the DIELECTRIC package

    Summary

    This PR includes maintenance changes to the pair and kspace dielectric styles to ensure consistency with non-dielectric counterparts.

    Related Issue(s)

    N/A

    Author(s)

    Trung Nguyen (UChicago)

    Licensing

    By submitting this pull request, I agree, that my contribution will be included in LAMMPS and redistributed under either the GNU General Public License version 2 (GPL v2) or the GNU Lesser General Public License version 2.1 (LGPL v2.1).

    Backward Compatibility

    Should maintain backward compatibility.

    Implementation Notes

    Previously the pair and kspace styles use the atom charges (atom->q) scaled by local epsilon's. This PR renames the variables so that atom->q has consistent meaning with other packages as unscaled values. The pair and kspace dielectric styles now operate on the scaled values instead. There are also changes to the pppm/dielectric to match the elong value given by the scaled charges with the elong value given by regular pppm with a global dielectric constant. This is a nontrivial issue as electrostatic energy is not linearly dependent upon charge density.

    The documentation stays unchanged with the changes in this PR, unless suggested otherwise.

    Post Submission Checklist

    • [x] The feature or features in this pull request is complete
    • [x] Licensing information is complete
    • [x] Corresponding author information is complete
    • [x] The source code follows the LAMMPS formatting guidelines
    • [ ] Suitable new documentation files and/or updates to the existing docs are included
    • [ ] The added/updated documentation is integrated and tested with the documentation build system
    • [x] The feature has been verified to work with the conventional build system
    • [x] The feature has been verified to work with the CMake based build system
    • [ ] Suitable tests have been added to the unittest tree.
    • [ ] A package specific README file has been included or updated
    • [ ] One or more example input decks are included

    Further Information, Files, and Links

    maintenance dielectric_package 
    opened by ndtrung81 5
  • Fix init arguments and some join stuff for Kokkos 4

    Fix init arguments and some join stuff for Kokkos 4

    Summary

    Update LAMMPS to work with upcoming Kokkos 4.0 release

    Author(s)

    Christian Trott [email protected]

    Licensing

    By submitting this pull request, I agree, that my contribution will be included in LAMMPS and redistributed under either the GNU General Public License version 2 (GPL v2) or the GNU Lesser General Public License version 2.1 (LGPL v2.1).

    Backward Compatibility

    Should be backward compatible, including to pre Kokkos 4 releases of Kokkos.

    Implementation Notes

    Did a bunch of compilation and run tests with bench and examples directory

    Post Submission Checklist

    • [ ] The feature or features in this pull request is complete
    • [ ] Licensing information is complete
    • [ ] Corresponding author information is complete
    • [ ] The source code follows the LAMMPS formatting guidelines
    • [ ] Suitable new documentation files and/or updates to the existing docs are included
    • [ ] The added/updated documentation is integrated and tested with the documentation build system
    • [ ] The feature has been verified to work with the conventional build system
    • [ ] The feature has been verified to work with the CMake based build system
    • [ ] Suitable tests have been added to the unittest tree.
    • [ ] A package specific README file has been included or updated
    • [ ] One or more example input decks are included
    kokkos_package 
    opened by crtrott 4
Releases(patch_22Dec2022)
  • patch_22Dec2022(Dec 22, 2022)

    Changes since the 3 November 2022 release:

    • new package ML-POD with a pair style for machine learning potentials using "proper orthogonal descriptors" (POD) and a command for training (Ngoc Cuong Nguyen, MIT and Andrew Rohskopf, SNL) PR #3449
    • new command reset_atoms that is a front end for reset_atom_ids and reset_mol_ids and the new sub-command reset_atoms image to reset image flags consistently for molecule fragments (Axel Kohlmeyer, Temple U) PR #3530
    • new features and updates to the ELECTRODE package (Ludwig Ahrens-Iwers and Robert Meißner, Hamburg U of T and Shern Tee, U of Queensland) PR #3544
    • new fix sgcmc command in the MC package imported from the external USER-VCSGC package (Aidan Thompson, SNL and Axel Kohlmeyer, Temple U) PR #3556
    • add KOKKOS versions of fix viscous and fix dt/reset (Michal Kanksi, Jagiellonian University) PR #3522
    • refactored distributed grids code to be more general and add new commands that can access those grids or compute/process/output grid properties (Steve Plimpton) PR #3405
    • new Python classes and functions to build tables for pair style, bond style, angle style, and dihedral style table (Axel Kohlmeyer, Temple U) PR #3559
    • updates, bugfixes, and a few new features for fix bond/react (Jake Gissinger, NASA Langley) PR #3514
    • some more updates to the LAMMPS Fortran interface module (Karl Hammond, U of Missouri) PR #3547
    • remove style suffixes when writing binary restart files allowing to restart non-accelerated runs from accelerated runs (Axel Kohlmeyer, Temple U and Stan Moore, SNL) PR #3538
    • Many small bug fixes, minor code improvements and refactoring, and coding style, build system, documentation, formatting updates (multiple authors) PR #3516, PR #3517, PR #3521, PR #3524, PR #3525, PR #3527, PR #3529, PR #3533, PR #3534, PR #3539, PR #3541, PR #3548, PR #3550, PR #3552, PR #3553, PR #3555, PR #3558, PR #3560, PR #3562, PR #3566

    Backward compatibility notices:

    • The checks for valid floating-point and integer numbers have been improved and are more strict now. This can lead to old inputs failing because of invalid numbers
    • The Si.b.meam.sw.spline had to be corrected for an invalid floating-point number (see previous note. here the "e" in the exponent was missing and thus the exponent was incorrectly ignored). Most calculations, but not all, will be unaffected since this only concerned the spline coefficients at the very beginning of the table.
    • The syntax for the python source command has changed slightly to be more consistent with the other features of the command.
    • The commands reset_atom_ids and reset_mol_ids have been renamed to reset_atoms id and reset_atoms mol, respectively. When the original commands are used, a warning is printed and the commands changed to the new versions.
    • The box command has been removed. The error check that it was used for to disable has been changed to a warning. If the box command is used, it is ignored and a warning is printed.
    • Binary restarts written with KOKKOS enabled for older versions of LAMMPS may not read back correctly with this version due an inconsistency in the restart output. Those restarts must be converted into data files using the old executable to be readable.
    Source code(tar.gz)
    Source code(zip)
  • stable_23Jun2022_update2(Nov 3, 2022)

    This is an update to the 23 June 2022 stable release that fixes a few bugs that have been reported since then and updates some libraries, dependencies, and build system support. There is no new functionality added.

    The following individual fixes and changes are included:

    • restore consistent handling of dump output frequency
    • backport corrections to the DIELECTRIC package
    • update/correct documentation for building the ELECTRODE package with the traditional make procedure
    • avoid race condition when downloading potential files in CMake
    • adapt VTK support in CMake to be compatible with VTK 9.0 and later
    • correct/improve OpenMP detection for CMake 3.10+
    • relax minimum required OpenMP version for KOKKOS package (based on improved OpenMP detection)
    • prefer versioned cythonize command over unversioned if it matches the selected python version
    • update default downloaded plumed library version to 2.8.1
    • adjustments for correct HTML output of the manual with sphinx 5.1+
    • add workaround for activate inactive hyperlinks for Fortran functions in manual
    • correctly report mixing for CLASS2 pair styles
    • increase buffer for internal regex function to accommodate larger strings
    • correctly apply offsets to shake types in molecule files
    • correct outdated neighborlist issues when calling delete_atoms or create_bonds multiple times
    • fix buffer allocation issue for atom style dumps
    • avoid segmentation faults when using the clear command with atomfile variables and pair/only package flags
    • update broken URLs in the manual
    • add support to detect Windows 10 22H2 in OS version info
    Source code(tar.gz)
    Source code(zip)
  • patch_3Nov2022(Nov 3, 2022)

    Changes since the 15 September 2022 patch release:

    • New ML-IAP package unified python interface (Steven Anaya and Nicholas Lubbers, LANL) PR #3458
    • Partial Kokkos support for the ML-IAP package, (Matt Bettencourt and Markus Hrywniak, NVIDIA) PR #3487
    • New pair style ylz (Mehdi Baghaee,SUSTech Shenzhen) PR #3491
    • Updates and fixes to the BPM package (Joel Clemmer, SNL) PR #3448
    • Updates to the ML-PACE package introducing extrapolation grade / active learning (Yury Lysogorskiy, Ruhr-Uni Bochum) PR #3315, PR #3479, PR #3490, PR #3501
    • Updates and corrections to the SPIN package (Julien Tranchida, CEA) RP #3461
    • Updates to the Fortran module (Karl Hammond, U Missouri) PR #3396, PR #3470, PR #3508
    • Update bundled Kokkos library to version 3.7.0 (Stan Moore, SNL and the Kokkos developers) PR #3474
    • Performance improvements/consistency for the KOKKOS versions of SNAP and Tersoff (Evan Weinberg, NVIDIA) PR #3465, PR #3488
    • GPU package initialization improvements (Mike Brown, Intel) PR #3478
    • Support for quartic interaction in pair style list (Tiedong Sun) PR #3473
    • Support requesting a full neighbor list with pair style zero (Drew Rohskopf, SNL) PR #3471
    • Integrate Peridynamics user guide PDF as Howto into the LAMMPS manual (Axel Kohlmeyer, Temple U) PR #3462
    • Many small bug fixes, minor code improvements and refactoring, and coding style, build system, documentation, formatting updates (multiple authors) PR #3450, PR #3454, PR #3455, PR #3456, PR #3459, PR #3463, PR #3468, PR #3475, PR #3477, PR #3480, PR #3482, PR #3485, PR #3489, PR #3495, PR #3497, PR #3498, PR #3500, PR #3502, PR #3503, PR #3504, PR #3507, PR #3510

    Backward compatibility notes:

    • the default setting for neighbor list rebuilds has been changed from delay 10 to delay 0 to guarantee correctness at some modest performance loss. This can lead to more frequent neighbor list rebuilds or neighbor list rebuilds on different timesteps and thus diverging trajectories.
    • Unlike other variables, atomfile style variables are now deleted with the clear command. This avoids segmentation faults due to trying to access a deleted fix store/peratom instance.
    Source code(tar.gz)
    Source code(zip)
  • patch_15Sep2022(Sep 15, 2022)

    Changes since the 3 August 2022 patch release:

    • Add basic support for symbolic types aka type labels (Jake Gissinger, NASA, Yaser Afshar, UMN, Steve Plimpton, SNL, Axel Kohlmeyer, Temple U) PR #2531
    • New fix pair command to access per-atom quantities computed by pair styles, also dump_modify skip option to skip writing dump frames depending on a condition (Steve Plimpton, SNL) PR #3369
    • Major update of the mesocnt pair style with addition of mesocnt bond and angle styles and more to complete the functionality (Philipp Kloza, U Cambridge) PR #3421
    • Updates and corrections for plugin handling in LAMMPS and the MDI package (Christian Negre, LANL, and Taylor Barnes, MOLSSI, and Steve Plimpton, SNL) PR #3366
    • Add support for using fix shake and fix rattle during minimization by replacing the constraints with strong restraints (Axel Kohlmeyer, Temple U) PR #3244
    • Remove some bias from the operation of fix bond/swap caused by how LAMMPS stores neighbors and bonds (Steve Plimpton, SNL) PR #3444
    • Add support to fix latte so it can be used in combination with fix gcmc and similar (Steve Plimpton, SNL) PR #3436
    • Split internal fix STORE command into fix STORE/GLOBAL and fix STORE/PERATOM (Axel Kohlmeyer, Temple U) PR #3379
    • Update embedded fmtlib code to version 9.1.0 (Axel Kohlmeyer, Temple U) PR #3381, PR #3418
    • Tune INTEL package code for better performance with the new LLVM based Intel compiler (Michael Brown, Intel) PR #3410
    • Various contributions from participants at the LAMMPS Code Clinic event (multiple authors).
    • Many small bug fixes, minor code improvements and refactoring, and coding style, build system, documentation, formatting updates (multiple authors) PR #3378, PR #3380, PR #3382, PR #3383, PR #3384, PR #3387, PR #3388, PR #3389, PR #3390, PR #3392, PR #3393, PR #3395, PR #3406, PR #3409, PR #3414, PR #3419, PR #3420, PR #3422, PR #3425, PR #3432, PR #3433, PR #3440, PR #3442 , PR #3443

    Compatibility with external tools:

    • TopoTools in VMD must be at least version 1.9 to be compatible with type labels. To update your VMD TopoTools plugin, you can download it from the TopoTools release page on GitHub
    • OVITO is going to be compatible with data files containing type labels soon

    Backward compatibility notes:

    • external LAMMPS code that uses fix STORE will need to be updated
    • the update of the mesocnt styles is not backward compatible
    • comments in data and data files must have a blank between the last valid input and the comment character '#'
    • the mandatory fourth argument (NULL) for fix latte is no longer required. Its function is moved to the coulomb keyword
    Source code(tar.gz)
    Source code(zip)
  • stable_23Jun2022_update1(Aug 6, 2022)

    This is an update to the 23 June 2022 stable release that fixes a few bugs that have been reported since then and updates some libraries, dependencies and the CMake support for plugins on Windows.

    The following individual changes are included: The following individual fixes and changes are included:

    • Fix corner case with if-then-else Boolean logic where there is just a single string argument.
    • Also remove references to comparing strings with Boolean operaters like "<" or ">=" in the documentation.
    • Add missing atom->grow() to Kokkos unpack_exchange to avoid segmentation fault
    • Fix small memory leak in ML-SNAP
    • Avoid possible out-of-bounds data access in ML-RANN
    • Bugfixes to fix bond/react
    • Bugfixes to pair style mgpt
    • Avoid segfault in dump vtk when used without a region
    • Allow ramp(x,y) variable function to be used in between runs (returning x) and avoid division by zero when used with run 0.
    • Allow vdisplace(), swiggle(), and cwiggle() functions to be used in between runs and disallow using them with fix dt/reset.
    • Prevent view bounds error when building the Kokkos neigh list and a proc has no atoms
    • Add missing GPU <--> CPU data transfer in Kokkos minimize, gave wrong results when using comm no or comm/reverse no running on the GPU
    • fixes for CMake scripts used for building plugins to cross-compile with MPI on Windows
    • CMake scripting updates to fix multiple issues building the n2p2 library on Ubuntu 18.04LTS and 20.04LTS
    • add CMake script code to provide a "make package" target when cross-compiling plugins to Windows
    • mention dump style cfg/uef in the main dump manual page
    • add missing support for dump_modify colname to local dumps
    • add more unit tests to improve test coverage of boolean evaluations
    • must not search for MPI package when MPI is disabled to avoid issues with testing the LAMMPS Fortran module
    • update embedded Kokkos library to bugfix release version 3.6.1
    • update googletest library from a snapshot to release version 1.12.1
    • update the Viscosity howto input script example to simulate liquid argon as advertised
    • avoid deprecation warnings when building the manual
    • update python package version requirements for building the manual
    Source code(tar.gz)
    Source code(zip)
  • patch_3Aug2022(Aug 3, 2022)

    Changes since the 23 June 2022 patch release:

    • New AMOEBA package with an implementation of the AMOEBA and HIPPO polarizable force fields from the Tinker MD code (Josh Rackers and Steve Plimpton, SNL and Trung Nguyen U Chicago) PR #2898
    • New compute styles sna/grid and sna/grid/local for the ML-SNAP package (Aidan Thompson, SNL and Lenz Fiedler, HZDR) PR #3305
    • New pair style srp/react in the MISC package (Vaibhav Palkar, Clemson) PR #3337
    • Enhancements to the MDI Package with expanded functionality (Steve Plimpton, SNL and Taylor Barnes, MolSSI) PR #3307, PR #3336
    • Rename CG-SDK package to CG-SPICA and rename all related commands, new functional form LJ12-5 (in addition to LJ12-6 and LJ12-4, and LJ9-6) (Yusuke Miyazaki, Okayama U) PR #3343
    • Add KOKKOS package version of the MEAM package (Naga Vydyanathan, NVIDIA and Stan Moore, SNL) PR #3328
    • Update bundled Kokkos library to version 3.6.1 (Stan Moore, SNL and the Kokkos developers) PR #3329
    • New "threebody on/off" keyword for pair style sw that allows turning off the three-body term calculation and enabling performance optimizations for that case (Jackson Elowitt, U Utah) PR #3316
    • Optimizations for reading large blocks of input (Steve Plimpton, SNL) PR #3323
    • Corrections and enhancements to how groups are processed in compute contact/atom (Joel Clemmer, SNL) PR #3339
    • Add "pair_modify neigh/trim yes/no" option to allow to build optimized, trimmed neighbor lists for hybrid/overlay (Stan Moore, SNL) PR #3341
    • Add "timestep yes/no" option to the read_dump command to simplify simulation loops where atoms are added from a dump file (Axel Kohlmeyer, Temple U) PR #3344
    • Improved detection of Python interpreter and libraries in CMake to be more consistent across platforms, CMake versions and better honor the documented ways to override the automatic choice (Axel Kohlmeyer, Temple U) PR #3355
    • Update of bundled linalg library to LAPACK version 3.10.1 plus adding ZHEEVD and dependencies and a new CMake setting -DUSE_INTERNAL_LINALG to allow preferring the bundled library over external ones (Axel Kohlmeyer, Temple U) PR #3360
    • Many small bug fixes, minor code improvements and refactoring, and coding style, build system, documentation, formatting updates (multiple authors) PR #3317, PR #3319, PR #3322, PR #3327, PR #3298, PR #3330, PR #3331, PR #3340 , PR #3342, PR #3346, PR #3349, PR #3350, PR #3358, PR #3359, PR #3361, PR #3364, PR #3365, PR #3370, PR #3372, PR #3374, PR #3377

    Backward compatibility notes:

    • the command fix mdi/aimd has been renamed to fix mdi/qm
    • the new pair_modify neigh/trim option defaults to yes. Use it with no in case simulations with hybrid/overlay fail and report the details in a new issue here
    • the CG-SDK package has been renamed CG-SPICA, all style have been renamed accordingly, but backward compatibility to the old names is included
    Source code(tar.gz)
    Source code(zip)
  • stable_23Jun2022(Jun 22, 2022)

    Below is a list of major changes since the last stable release 29 September 2021

    This stable release adds about 3000 commits since the previous stable release. This includes many contributions from beyond the core LAMMPS developers, but also continues the internal refactoring of the code base to make it more consistent and reliable yet also take more advantage of C++ features where they help to simplify the code and easier to modify, maintain, and contribute to.

    With this release we will remove the previously used branches master and unstable and use the current equivalents develop and release. The stable keeps its name, but since we published bugfix updates to the last stable release it will now run parallel to develop and be explicitly synchronized with it (technically speaking, the patch_23Jun2022 and the stable_23Jun2022 tags will point to different commit hashes due to the difference in their histories, but the content will be identical).

    General Changes

    • Continued refactoring of the core LAMMPS code and many packages to increase code reuse, simplify new additions, improve consistency, and benefit from C++11 features. Several convenience functions and classes were added in the process.
    • New platform namespace with abstractions for platform specific operations or getting information about platforms and tools. This includes dynamic loading of shared objects and file and directory operations.
    • start ongoing project to change how errors and warnings are reported and documented
    • Improved portability, especially to Windows. It is now possible to build most of LAMMPS (including unit testing) natively on Windows with Visual Studio 2022 and MSVC++ compilers or Clang or Intel OneAPI compilers. Settings for Visual Studio are included.
    • Improved plugin mechanism and option to automatically load custom plugins that are either not distributed with LAMMPS or depend on libraries that have licensing terms or technical requirements preventing linking them into LAMMPS directly. Examples for how to build such plugins for the KIM and the ML-PACE package are included. For the latter also a NSIS script to build an installer for Windows.
    • Semi-automatic refactoring with clang-tidy: this has updated the coding style to take advantage of C++11 features and make things more explicit, so the compiler can warn more easily about problems. Also, clang-format is now applied to more files.
    • update force style unit tests to work with Kokkos + OpenMP
    • Refactor handling of thermodynamic output for better readability and add new thermo_style "yaml"
    • Automatically load plugins in folders listed in the LAMMPS_PLUGIN_PATH environment variable
    • More content and improvements for the Programmer Guide section of the Manual

    Updates and new commands or styles or packages:

    • New fix acks2/reaxff for ACKS2 charge equilibration and updates to fix qeq/reaxff that add support for fix efield to both charge equilibration methods.
    • New fix mol/swap for swapping of atom types within a single, randomly selected molecule
    • Add support for multi-species potentials to ML-PACE package
    • Allow GPU package pair styles to be used with newton_pair on
    • New pair style sw/mod providing an empirically modified Stillinger-Weber potential suitable for compounds like MoS2
    • New pair style nm/cut/split and bond style fene/nm for coarse grain polymer models
    • Support for binary native dump files for read_dump and rerun
    • Updated singularity/apptainer definition files
    • New compute ave/sphere/atom to compute averaged properties in a sphere around atoms
    • Support writing to dump files at regular time interface for variable timestep simulations
    • Add centroid atomic stress support for shake, rattle and rigid/small fixes
    • Add new pair style harmonic/cut providing a repulsive-only harmonic potential
    • Add new fix numdiff/virial for deriving virial stress from potential energy via numerical differences
    • Add two new interlayer pair styles ilp/tmd and saip/metal
    • new option for multi-file dumps to have files that are more evenly sized to address post-processing and visualization issues for simulations of very large systems
    • accelerator support (including KOKKOS) and improvements for dynamical_matrix and third_order commands
    • re-implementation of the tools/eam_database Fortran code in Python
    • update setup.py and install.py for python module to use setuptools instead of deprecated distutils and build a binary wheel file
    • Add computes for local components of the pressure tensor in cartesian and spherical coordinates
    • Major update of the LATBOLTZ package
    • Code optimization for several KOKKOS styles
    • Add fixes for damping of rotational and translational energy for extended particles
    • Add support for an inner cutoff switching function to SNAP related commands that smoothly turns of SNAP descriptors at short range
    • Memory usage optimization and bugfix for mesocnt pair style
    • new BPM package for bonded particle models
    • new ELECTRODE package
    • updates and additions to the DIELECTRIC package
    • new compute fep/ta for the FEP package implementing test-area perturbation
    • new pair styles ilp/graphene/hbn/opt, ilp/tmd/opt, and saip/metal/opt for the OPT package with 2x speedup
    • new pair styles smatb and smatb/single for the SMTBQ package
    • new dump_style yaml command in the EXTRA-DUMP package
    • add Kspace support to the PLUGIN package
    • enhancements and additions for the MDI package. This obsoletes the MESSAGE package.
    • additions to the BROWNIAN package to support different rotational and translational temperatures and option to constrain rotation in a plane in 3d
    • additions to PyTorch support in ML-IAP packge
    • new compute born/matrix command to compute elastic stress
    • add KOKKOS package versions of the pair styles from the DPD-BASIC package
    • add KOKKOS package version of pair style adp
    • new colname option for dump_modify and thermo_modify to replace the column header strings for thermo output or in dump files
    • add support for writing yaml format files to fix ave/time and also support fix_modify colname similar to thermo and dump
    • add support for angle styles to fix adapt and add or update "extract()" methods to some angle/bond styles and make the extract arguments more consistent
    • add region style ellipsoid
    • add "aveabs" and "sumabs" options to compute reduce
    • add "variable" option to delete_atoms command
    • bugfix for DOF handling in compute temp/profile
    • more consistent behavior of dynamic groups through moving the invocation of the internal fix to a later time in the timestep
    • make time thermo property restartable and implement a reset_timestep time option to set it manually
    • remove support for legacy GPU hardware and CUDA toolkits in the GPU package
    • Update of the bundled Kokkos library to version 3.6.0
    • Update of the bundled Colvars library to version 2022-05-24
    • Add KOKKOS package version of the pace pair style from the ML-PACE package
    • New pair styles "sw/angle/table" and "threebody/table" for the MANYBODY package
    • Add support for GPU accelerated FFTs with HIP and KOKKOS
    • Add support for SO3 descriptors to the ML-IAP package
    • New "overlap" option for create_atoms random that will avoid close contacts
    • New "mesh" option for create_atoms to approximate meshes from STL files with atoms
    • Add timer style variables for measuring wall time in seconds from the input script

    Backward compatibility notices:

    • delete_atoms porosity has been renamed to delete_atoms random and uses/supports different options
    • The CC.Lebedeva interlayer potential file has been updated. It now uses by default parameters for "normal" conditions. The previous default parameters are tuned for high-pressure conditions and are still available when using "C1" instead of "C" as element.
    • Using the PyLammps python module now requires the presence of numpy
    • The new version of make install-python will not install a package over an existing package as the old version did. Instead, it will attempt to uninstall the old package and then install the new version. Packages installed with distutils, like the old version of make install-python, must be manually uninstalled (they don't store a suitable manifest). This should only be needed once, since from then on uninstall should be possible.
    • The update to the LATBOLTZ package is a significant update that changes the syntax of the fix lb/fluid command in a way that is not backward compatible. Inputs must be updated accordingly. Also fixes lb/pc and lb/pc/rigid/sphere have been removed and fixes nve and rigid should be used in their stead.
    • The thermodynamic output format is slightly changed. This may break parser implementations for analysis of LAMMPS log files that are not indifferent to whitespace changes and width of fields.
    • the MESSAGE package has been removed. its functionality is provided in a more general way by the MDI package
    • the GPU package using CUDA now requires CUDA toolkit version 8 or later and GPU architector 3.0 (aka Kepler or later). When compiling for OpenCL, driver support for OpenCL 1.2 is required. OpenCL can provide support for GPUs not supported by the CUDA toolkit anymore.
    • the bug fix to the DOF calculation in compute temp/profile changes the results (usually by a small margin)
    Source code(tar.gz)
    Source code(zip)
  • patch_23Jun2022(Jun 22, 2022)

    This patch contains the final changes to update the 2 June 2022 release to the 23 June 2022 stable release.

    There are no substantial new features in this patch, only a variety of small updates and bug fixes for reported issues and based on extended testing. Notable changes are:

    • Refactoring of the plugin examples and a new example building the ML-PACE package as plugin including creating a windows installer. (Axel Kohlmeyer, Temple U) PR #3290
    • Bugfix for atom style dielectric
    • Bugfix for dump style xtc on Windows (Issue #3292)
    • Bugfix for dump style yaml when running in parallel PR #3309
    • Change "remap semantics" for the read_restart command to always use the remap option by default and offer an "noremap" option to be able to change to the old behavior. (Issue #3078)
    • Bugfix for accessing local computes in Python via NumPy, support LMP_SIZE_VECTOR as alias for LMP_SIZE_ROWS with local computes PR #3309
    • Updates and bugfixes for the "Fortran2" and "Fortran_dftb" Fortran interfaces, PR #3312
    • Improvements to compute ave/sphere/atom (Stan Moore, SNL) PR #3293
    • Fix integer overflow bug in Kokkos version of ReaxFF (Stan Moore, SNL) PR #3295
    • Updates to singularity/apptainer container definition files PR #3290
    • GitHub actions updates PR #3299, PR #3301, PR #3303, PR #3304
    • Recover building binary python wheel file after upgrade to use venv instead of virtualenv. When running with an active virtual environment, the wheel will be installed into the virtual environment as to be expected instead of the system or user site-packages folder PR #3306
    • Various small improvements and small corrections to build system, compiler settings, and documentation. PR #3296, PR #3300
    Source code(tar.gz)
    Source code(zip)
  • patch_2Jun2022(Jun 3, 2022)

    This is the first release candidate for the next stable release of LAMMPS. Please test thoroughly and report bugs immediately.

    Changes since the 4 May 2022 patch release:

    • Update of the bundled Kokkos library to version 3.6.0 (Stan Moore, SNL and the Kokkos developers) PR #3251
    • Update of the bundled Colvars library to version 2022-05-24 (Giacomo Fiorin, NIH and the Colvars deverlopers) PR #3260, PR #3286
    • Add KOKKOS package version of the pace pair style from the ML-PACE package (Stan Moore, SNL) PR #3264, PR #3278
    • New pair styles "sw/angle/table" and "threebody/table" for the MANYBODY package (Christoph Scherer, Max Planck Institute for Polymer Research Mainz) PR #3279
    • Add support for GPU accelerated FFTs with HIP and KOKKOS (Emily Kahl, The University of Queensland) PR #3237
    • Add support for SO3 descriptors to the ML-IAP package (Aloïs Castellano, University of Liège) PR #3263
    • New "overlap" option for create_atoms random that will avoid close contacts (Eugen Rožić, Institute Ruđer Bošković, and Steve Plimpton, SNL) PR #3119
    • New "mesh" option for create_atoms to approximate meshes from STL files with atoms (Axel Kohlmeyer, Temple U and Joel Clemmer, SNL) PR #3258
    • Add timer style variables for measuring wall time in seconds from the input script (Steve Plimpton, SNL) PR #3255
    • Optimizations for compute orientorder/atom (Tomas Oppelstrup, LLNL and Stan Moore, SNL) PR #2988
    • Many small bug fixes, minor code improvements and refactoring, and coding style, build system, documentation, formatting updates (multiple authors) PR #3250, PR #3259, PR #3262, PR #3267, PR #3268, PR #3269, PR #3271, PR #3272, PR #3275, PR #3276, PR #3277, PR #3280, PR #3281, PR #3284, PR #3285, PR #3288, PR #3289

    Backward compatibility notices:

    • The delete_atoms porosity option has been renamed to random and generalized to support multiple sub-styles that have adjustable behavior with respect to exactness and performance of the deletion.
    Source code(tar.gz)
    Source code(zip)
  • patch_4May2022(May 5, 2022)

    Changes since the 24 March 2022 patch release:

    • new BPM package for bonded particle models (Joel Clemmer, SNL) PR #2906
    • new ELECTRODE package (Ludwig Ahrens-Iwers and Robert Meißner, Hamburg University of Technology and Shern Tee, University of Queensland) PR #3194
    • updates and additions to the DIELECTRIC package (Trung Nguyen, U Chicago) PR #3212
    • new compute fep/ta for the FEP package implementing test-area perturbation (Shifeng Ke, Zhejiang University) PR #3192
    • new pair styles ilp/graphene/hbn/opt, ilp/tmd/opt, and saip/metal/opt for the OPT package with 2x speedup (Ping Gao and Xiaohui Duan, National Supercomputing Center in Wuxi) PR #3228, PR #3242
    • new pair styles smatb and smatb/single for the SMTBQ package (Daniele Rapetti - Politecnico di Torino) PR #3031
    • new dump_style yaml command in the EXTRA-DUMP package (Axel Kohlmeyer, Temple U) PR #3205
    • add Kspace support to the PLUGIN package (Jinzhe Zeng, Rutgers University) PR #3188
    • enhancements and additions for the MDI package. This obsoletes the MESSAGE package. (Steve Plimpton, SNL and Taylor Barnes, MolSSI) PR #2921, PR #3207, PR #3218
    • additions to the BROWNIAN package to support different rotational and translational temperatures and option to constrain rotation in a plane in 3d (Sam Cameron, University of Bristol) PR #3193
    • additions to PyTorch support in ML-IAP packge (Charlie Sievers) PR #3182
    • new compute born/matrix command to compute elastic stress (Germain Clavier - TU Eindhoven) PR #3093
    • add KOKKOS package versions of the pair styles from the DPD-BASIC package (Matt Bettencourt, Nvidia) PR #3198
    • add KOKKOS package version of pair style adp (Vladislav Galigerov and Vsevolod Nikolskiy, Higher School of Economics, Russia) PR #3247
    • KOKKOS optimizations and bugfixes: GPU optimizations for neighbor lists and ReaxFF (Stan Moore, SNL and Evan Weinberg, NVIDIA) PR #3187, PR #3195, PR #3203
    • new colname option for dump_modify and thermo_modify to replace the column header strings for thermo output or in dump files (Axel Kohlmeyer, Temple U) PR #3197
    • add support for writing yaml format files to fix ave/time and also support fix_modify colname similar to thermo and dump (Axel Kohlmeyer, Temple U) PR #3240
    • add support for angle styles to fix adapt and add or update "extract()" methods to some angle/bond styles and make the extract arguments more consistent (Steve Plimpton, SNL) PR #3229, PR #3236
    • add region style ellipsoid (Evangelos Voyiatzis, NovaMechanics Ltd) PR #2871
    • add "aveabs" and "sumabs" options to compute reduce (Tim Bernhard, ETH Zürich) PR #3246
    • add "variable" option to delete_atoms command (Axel Kohlmeyer, Temple U) PR #3243
    • bugfix for DOF handling in compute temp/profile (Stephen Sanderson, University of Queensland) PR #2667
    • more consistent behavior of dynamic groups through moving the invocation of the internal fix to a later time in the timestep (Steve Plimpton, SNL with an assist from Davie Quigley, U Warwick) #3224
    • make time thermo property restartable and implement a reset_timestep time option to set it manually (Axel Kohlmeyer, Temple U) PR #3248
    • remove support for legacy GPU hardware and CUDA toolkits in the GPU package (Axel Kohlmeyer, Temple U) PR #3213
    • start project to change how errors and warnings are reported and documented (Axel Kohlmeyer, Temple U and Steve Plimpton, SNL) PR #3226, PR #3227, PR #3231
      • Error and warning message docs from header files are removed
      • A new document is started collecting and discussing/explaining errors that are frequently discussed or looked up. Each paragraph is assigned an error code, corresponding error messages have a string added with an URL to the online documentation pointing to those newly added paragraphs
      • Individual "short" error messages like "Illegal xxxx command" are expanded to provide more details to make them (mostly) self-explanatory and thus reduce the need to look them up in the source code
    • Many small bug fixes, minor code improvements and refactoring, and coding style, build system, documentation, formatting updates (multiple authors) PR #3186, PR #3189, PR #3191, PR #3196, PR #3199, PR #3201, PR #3202, PR #3206, PR #3208, PR #3210, PR #3211, PR #3214, PR #3215, PR #3216, PR #3217, PR #3219, PR #3220, PR #3221, PR #3222, PR #3223, PR #3225, PR #3230, PR #3232, PR #3233, PR #3234, PR #3238, PR #3241

    Backward compatibility notes:

    • the MESSAGE package has been removed. its functionality is provided in a more general way by the MDI package
    • the GPU package using CUDA now requires CUDA toolkit version 8 or later and GPU architector 3.0 (aka Kepler or later). When compiling for OpenCL driver support for OpenCL 1.2 is required, which usually supports GPUs not supported by the CUDA toolkit anymore.
    • the bug fix to the DOF calculation in compute temp/profile changes the results (usually by a small margin)
    Source code(tar.gz)
    Source code(zip)
  • stable_29Sep2021_update3(Mar 24, 2022)

    This is the third and final update to the 29 September stable release that fixes bugs that have been reported since the second update and backported from the develop branch.

    The following individual changes are included:

    • remove obsolete check so that larger systems can be run with ReaxFF
    • update the Fortran source code in tools/eam_database to produce files with fewer oscillations and better precision. add python version.
    • fix problems causing crashes with the MSM kspace style when continuing a run without and with changing box settings
    • avoid using an outdated list of special neighbors when applying the angle constraint in fix bond/create/angle
    • fix bug in fix rigid/npt/small and fix rigid/nvt/small leading to NaNs for 2d systems
    • fix memory leaks and avoid accessing uninitialized data
    • fix a tag caching and skip list generation issue causing crashes when using pair style sw/intel with hybrid pair styles
    • fix off-by-one bug in dihedral style fourier/intel
    • fix neighborlist and buffer creation bug in pair style lj/long/coul/long/intel
    • fix uninitialized data bug in pair style lj/cubic when mixed coefficients where specified explicitly
    • fix bug in write_coeff that could not correctly operate on full pathnames
    • fix a problem loading the shared library under MacOS after installing the LAMMPS python module with "make install-python"
    • adjust package list to avoid compilation failures when using the "most" preset
    • improve cythonize detection on machines using bourne shells different from bash (e.g. debian/ubuntu)
    • correct handling of make package-update for ML-IAP package
    • python 3 compatibility updates scripts in tools/python
    • try harder to find the stub version of libcuda.so as provided by the CUDA toolkit in case there is no CUDA driver installation
    • fixes to CMake build for ML-QUIP package when using CMake 3.16 and newer or recent Cray Programming Environment versions
    Source code(tar.gz)
    Source code(zip)
  • patch_24Mar2022(Mar 24, 2022)

    Changes since the 17 February 2022 patch release:

    • Add computes for local components of the pressure tensor in cartesian and spherical coordinates (Olav Galteland, Norwegian U of Science and Technology) PR #3165
    • Major update of the LATBOLTZ package (Colin Denniston and collaborators, UWO) PR #3167
    • Code optimization for several KOKKOS styles (Nicholas Curtis and Leopold Grinberd and Gina Sitaraman, AMD, Stan Moore, SNL) PR #3147, PR #3158, PR #3169
    • Add fixes for damping of rotational and translational energy for extended particles (Jibril B. Coulibaly. Northwestern U) PR #3181
    • Add support for an inner cutoff switching function to SNAP related commands that smoothly turns of SNAP descriptors at short range (Aidan Thompson, SNL) PR #3173
    • Refactor code for neighbor list requests so that no direct access to the list of requests is needed and settings are as automatic and consistent as possible (Axel Kohlmeyer, Temple U) PR #3159
    • Refactor handling of thermodynamic output for better readability and add new thermo_style "yaml" (Axel Kohlmeyer, Temple U) PR #3179
    • Replace usage of non-reentrant strtok() and improve file reading and parsing using file reader and tokenizer classes (Axel Kohlmeyer, Temple U) PR #3180
    • Memory usage optimization and bugfix for mesocnt pair style (Philipp Kloza, Cambridge U) PR #3162
    • Refactor python/install.py script and change installation of the LAMMPS python module via make install-python from using distutils to setuptools. This is now a 2-step process of first creating a binary wheel (.whl) package and then installing it via pip.
    • Automatically load plugins in folders listed in the LAMMPS_PLUGIN_PATH environment variable (Axel Kohlmeyer, Temple U) PR #3170
    • Add tests for various compute (Axel Kohlmeyer, Temple U) PR #3163
    • More content and improvements for the Programmer Guide section of the Manual (multiple authors) PR #3146
    • update sphinx theme for the HTML version of the manual (Axel Kohlmeyer, Temple U) PR #3178
    • Many small bug fixes, minor code improvements, and coding style, build system, documentation, formatting updates (multiple authors) PR #3138, PR #3139, PR #3141, PR #3142, PR #3145, PR #3148, PR #3153, PR #3155, PR #3156, PR #3161, PR #3164, PR #3166, PR #3168, PR #3171, PR #3174, PR #3177, PR #3185

    Backward compatibility notices:

    • The new version of make install-python will not install a package over an existing package as the old version did. Instead, it will attempt to uninstall the old package and then install the new version. Packages installed with distutils, like the old version of make install-python, must be manually uninstalled (they don't store a suitable manifest). This should only be needed once, since from then on uninstall should be possible.
    • The update to the LATBOLTZ package is a significant update that changes the syntax of the fix lb/fluid command in a way that is not backward compatible. Inputs must be updated accordingly. Also fixes lb/pc and lb/pc/rigid/sphere have been removed and fixes nve and rigid should be used in their stead.
    • The thermodynamic output is slightly changed. This may break parser implementations for analysis of LAMMPS log files that are not indifferent to whitespace changes and width of fields. Please note the addition of thermo style "yaml" that should provide a mechanism that should make the process of extracting thermodynamic output data more reliable and easier to realize.
    Source code(tar.gz)
    Source code(zip)
  • patch_17Feb2022(Feb 17, 2022)

    Changes since the 7 January 2022 patch release:

    • Add new pair style harmonic/cut providing a repulsive-only harmonic potential (Axel Kohlmeyer, Temple U) PR #3087
    • Add new fix numdiff/virial for deriving virial stress from potential energy via numerical differences (Aidan Thompson, SNL and Charlie Sievers, UC Davies) PR #3105
    • Add two new interlayer pair styles ilp/tmd and saip/metal (Wengen Ouyang, Wuhan University) PR #3125
    • Refactor source code to replace use of the virtual keyword in derived classes with the equivalent override which allows to detect some common problems at compile time (Richard Berger, Temple U) PR #3090
    • new option for multi-file dumps to have files that are more evenly sized to address post-processing and visualization issues for simulations of very large systems (Stan More, SNL) PR #3097, PR #3110
    • accelerator support (including KOKKOS) and improvements for dynamical_matrix and third_order commands (Charlie Sievers, UC Davis) PR #2233
    • performance improvements and added unit tests for oxdna atom style (Oliver Henrich, Strathclyde U) PR #3104
    • Portability updates for PyLammps (Richard Berger, Temple U) PR #3115
    • re-implementation of the tools/eam_database Fortran code in Python (Germain Clavier, TU Eindhoven) PR #3126
    • port bundled unit tests and external OpenCL ICD loader to be compiled and run on Windows using the MSVC toolchain (Axel Kohlmeyer, Temple U) PR #3102, PR #3116, PR #3127
    • update force style unit tests to work with Kokkos + OpenMP (Richard Berger, Temple U) PR #3035
    • update setup.py in python module to use setuptools instead of deprecated distutils (Richard Berger, Temple U) PR #3101
    • various optimizations, corrections, refactoring, and compatibility updates for the KOKKOS package (Stan Moore, SNL and multiple collaborators) PR #3082, PR #3088, PR #3092, PR #3100, PR #3111
    • Many small bug fixes, minor code improvements, and coding style, build system, documentation, formatting updates (multiple authors) PR #3089, PR #3091, PR #3095, PR #3103, PR #3117, PR #3120, PR #3123, PR #3124, PR #3129, PR #3130, PR #3133, PR #3134, PR #3136

    Backward compatibility notices:

    • Using the PyLammps python module now requires the presence of numpy
    Source code(tar.gz)
    Source code(zip)
  • stable_29Sep2021_update2(Jan 7, 2022)

    This is the second update to the 29 September stable release that fixes bugs that have been reported since the first update and backported from the develop branch.

    The following individual changes are included:

    • fix bug in compute temp/rotate due to uninitialized data cause by a class member shadowing a base class member
    • plug minor memory leaks in MACHDYN package
    • plug memory and file descriptor leak when reading ReaxFF potential files
    • fix internal fix and compute ID clash when using fix reaxff/species multiple times
    • fix segmentation fault when using atom style smd as part of a hybrid pair style
    • fix communication bug in pair style local/density
    • fix segmentation fault due to an uninitialized array in fix nve/gpu when the group is not "all" but there is only one atom type
    • fix bugs in eam/cd pair style reported in issue #3074
    • correct documentation and potential parameters for Lebedeva interlayer potential
    • update names and description of git branches in the manual to reflect the current status and policies
    • avoid issues when testing dump commands in parallel
    • avoid issues from oversubscribing processors with parallel tests using MPI
    • correct error in the documentation for pair style granular
    • fix bug in cmake parsing of the version.h file for stable branch. Fixes #3038
    • fix bug in bond/angle style table reported in PR #3076 (but fixed differently)
    Source code(tar.gz)
    Source code(zip)
    bugfixes_for_stable_29Sep2021_update2.patch.gz(42.65 KB)
  • patch_7Jan2022(Jan 7, 2022)

    Changes since the 14 December 2021 patch release:

    • New compute ave/sphere/atom to compute averaged properties in a sphere around atoms (Stan Moore with Mitch Wood, SNL) PR #2996
    • Support writing to dump files at regular time interface for variable timestep simulations (Michal Kanski, Jagiellonian U, and Steve Plimpton, SNL) PR #3052
    • Add centroid atomic stress support for shake, rattle and rigid/small fixes (Donatas Surblys, Tohoku U) PR #3046
    • Update fmtlib to version 8.1.1 (Axel Kohlmeyer and Richard Berger, Temple U) PR #3073
    • Many small bug fixes, minor code improvements, and coding style, build system, documentation, formatting updates (multiple authors) PR #3021, PR #3060, PR #3062, PR #3064, PR #3065, PR #3068, PR #3069, PR #3071, PR #3072

    Backward compatibility notices:

    • Forces and energies from class2 angle styles may differ due to a bugfix. Previously distances from the BondBond terms were used for BondAngle terms. Commonly those distance settings would be the same and in those cases the results will match.
    Source code(tar.gz)
    Source code(zip)
  • patch_14Dec2021(Dec 14, 2021)

    Changes since the 27 October 2021 patch release:

    • Update bundled copy of the Kokkos library to version 3.5.0 (Stan Moore, SNL and the Kokkos developers) PR #3019, PR #3053
    • Allow GPU package pair styles to be used with newton_pair on (Trung Nguyen, Northwestern) PR #2867
    • New update to delete_atoms porosity so that atoms can now be selected by region and group (Steve Plimpton, SNL) PR #2984
    • New pair style sw/mod providing an empirically modified Stillinger-Weber potential suitable for compounds like MoS2 (Jin-Wu Jiang, Shanghai University, Wengen Ouyang, Wuhan University) PR #3041
    • New pair style nm/cut/split and bond style fene/nm for coarse grain polymer models (Joseph Dietz, Robert Hoy, USF) PR #2958
    • Support for binary native dump files for read_dump and rerun (Lixin Sun, Harvard) PR #3054, PR #3059
    • Update included fmtlib sources to version 8.0.1 (Richard Berger and Axel Kohlmeyer, Temple U) PR #2809
    • Refactoring of access to lists of computes, fixes and regions that do not require access to internal data structures (Axel Kohlmeyer, Temple U) PR #3001
    • Refactoring of data file section reading and writing for fixes for more consistency and simpler, more intuitive input (Axel Kohlmeyer, Temple U) PR #3012
    • Updated singularity container definition files for building LAMMPS (Richard Berger, Temple U) PR #3043
    • Added labels "slow" and "unstable" to some unit tests run with ctest so they can be easily excluded (Richard Berger, Temple U) PR #3033
    • Improved support for multi-configuration builds (required on Windows) and passing settings to external projects (Axel Kohlmeyer, Temple U) PR #2940
    • Many small bug fixes, minor code improvements, and coding style, build system, documentation, formatting updates (multiple authors) PR #3011, PR #3013, PR #3014, PR #3015 , PR #3017, PR #3020, PR #3027, PR #3032, PR #3034, PR #3040, PR #3044, PR #3049, PR #3055, PR #3056, PR #3058

    Backward compatibility notices:

    • delete_atoms porosity requires a group as an additional argument
    • The CC.Lebedeva interlayer potential file has been updated. It now uses by default parameters for "normal" conditions. The previous default parameters are tuned for high-pressure conditions and available when using "C1" instead of "C" as element.
    Source code(tar.gz)
    Source code(zip)
  • stable_29Sep2021_update1(Nov 9, 2021)

    This is an update to the 29 September stable release that fixes some bugs that have been reported since then and addresses some issues related to compatibility with GitHub, Python and Python package versions used to build the manual, and running the automated unit tests.

    The following individual changes are included:

    • Corrections to double precision support detection for the GPU package. Only report compatible GPUs. Also consider single-precision FFT requirement for pppm when running unit tests.
    • Fix bugs leading to deadlocks when loading INTERLAYER package potential files in parallel
    • Correct thermo output when expanding per-atom properties
    • Fix compilation issue for QM/MM front end code
    • Fix bugs in dump style custom when using custom per-atom data for thresholds
    • Update VTK package to compile and work with custom per-atom arrays
    • plug some minor memory leaks
    • fix some bugs in the KOKKOS package
    • update required python package versions for building the documentation to be compatible with python 3.10
    • fix memory allocation bug in angle and bond style gaussian leading to memory corruption on 32-bit machines
    • fix false positives in python unit tests when LAMMPS is compiled with an external KOKKOS library
    • update the citation info for the new LAMMPS paper
    • change references to git:// protocol to use https:// protocol instead due to heightened security requirements at GitHub
    • document size limitations when sorting dumps
    • avoid false positives in unit testing due to numerics and oversubscribing of MPI processes
    Source code(tar.gz)
    Source code(zip)
    bugfixes_for_stable_29Sep2021_update1.patch.gz(80.91 KB)
  • patch_27Oct2021(Oct 28, 2021)

    Important note about branch names

    The LAMMPS project has changed the names of its main branches in the git repository to better represent the state of the code. The master branch was renamed to develop and the unstable branch became release. If you are following the git repository to obtain the LAMMPS source code, please update your checkouts and forks accordingly. For a limited time the master and unstable branches will be kept in sync with develop and release (through fast forwarding), but those branches will be removed eventually and then you will be required to use the new branch names or not have access to updates anymore.

    Changes since the 29 September 2021 patch release:

    • New fix acks2/reaxff for ACKS2 charge equilibration and updates to fix qeq/reaxff that add support for fix efield to both charge equilibration methods. (Metin Aktulga, MSU and Stan Moore, SNL) PR #2931
    • New fix mol/swap for swapping of atom types within a single, randomly selected molecule (Steve Plimpton, SNL) PR #2992
    • Add support for multi-species potentials to ML-PACE package (Yury Lysogorskiy and the PACE library developers) PR #2968
    • Preliminary support for OpenMPTarget in KOKKOS package (Rahul Gayatri, NERSC, Chris Knight, ANL, Stan Moore, SNL) PR #2997
    • Implemented and applied a new namespace platform with abstractions of functionality that has either different behavior or uses different APIs on different platforms and operating systems. This reduces code redundancy and enhances platform neutrality of the core LAMMPS code. (Axel Kohlmeyer, Temple U) PR #2979
    • Implemented and applied a utility function to parse boolean arguments to keywords (yes/no, on/off, true/false) (Axel Kohlmeyer, Temple U), PR #2951
    • Semi-automatic code refactoring using clang-tidy. See issue #2946 for a discussion of individual changes. (Axel Kohlmeyer, Temple U) PR #2990, PR #2994, PR #3002
    • Many small bug fixes, minor code improvements, and coding style, build system, documentation, formatting updates (multiple authors) PR #2973, PR #2975, PR #2976, PR #2977, PR #2983, PR #2985, PR #2989, PR #2991, PR #2993, PR #2998, PR #3003, PR #3004, PR #3007 , PR #3009

    Backward compatibility notices:

    • Most keywords that accept "yes/no" or "on/off" parameters will now accept "yes/no", "on/off", or "true/false" as valid arguments. This is not (yet) reflected in the manual. Some cases where there are more than just two choices have been adapted accordingly, but not all. Backward compatibility is retained. All tests pass.
    Source code(tar.gz)
    Source code(zip)
  • stable_29Sep2021(Sep 30, 2021)

    Below is a list of major changes since the last stable release 29 October 2020

    Same as the last time, this stable release contains over 4000 commits since the previous stable release. This includes many contributions from beyond the core LAMMPS developers, but also continues the internal refactoring of the code base to make it more consistent and reliable yet also take more advantage of C++ features where they help to simplify the code and easier to modify, maintain, and contribute to.

    The LAMMPS homepage has been moved from https://lammps.sandia.gov to https://www.lammps.org which is now hosted at Temple U. This lifts bandwidth and access limitations and addresses some reliability issues.

    General changes:

    • Continued refactoring of the core LAMMPS code and many packages to increase code reuse, simplify new additions, improve consistentcy, and benefit from C++11 features. Several convenience functions and classes were added in the process.
    • Reorganization of packages: the "USER" prefix has been dropped, some packages have prefixes to group them (CG-, DPD-, EXTRA-, ML-) and the contents of the USER-MISC package have been moved to appropriate existing or new packages. There are now EXTRA-PAIR, EXTRA-COMPUTE, EXTRA-FIX, EXTRA-DUMP, EXTRA-MOLECULE packages for the less commonly used styles. We recommend that external packages (i.e. those not included in the LAMMPS distribution) adopt a USER- prefix to make them recognizable as external package.
    • Refactored multi-cutoff neighbor list support resulting in significant performance improvements for polydisperse granular systems.
    • Continued improvements to the build systems, especially the CMake based version.
    • Refactored the handling of embedded citation strings to make them more visible.
    • Updates and additions to the programmer guide section of the manual including updated guidelines and information for contributing code to LAMMPS.
    • Add support for using clang-format in the src tree with a configuration file and suitable comments in the source files. This is recommended for new contributions and will be gradually applied to existing .cpp files as the reformatting can interfere with the readability in some cases.
    • Scripts to support building LAMMPS and its documentation via CMake on systems without direct internet access.

    Updates and new commands or styles or packages:

    • Expanded support for machine learning potentials in the ML-IAP package and the added ML-HDNNP, ML-PACE, ML-RANN packages
    • New MDI package to allow client/server mode coupling of LAMMPS to other code using the MolSSI Driver Interface API
    • New BROWNIAN package for Brownian dynamics time integration of point and extended particles plus updates for fix propel/self
    • New DIELECTRIC package with boundary element solvers for computing induced charges at interfaces
    • Major refactoring of the REAXFF package to eliminate dead code and inconsistencies, modernize force field file parsing, and correctly handle computing of the virial stress under different settings and with OpenMP
    • Updates to the library interface and corresponding changes to the LAMMPS python module: bug fixes, additional introspection support and support for setting callbacks for fix external and other associated properties with C and Python callbacks/functions possible.
    • Updated GPU package with improved support for OpenCL which enables using the GPU package with GPUs embedded in Intel processors (Iris, UHD, and HD graphics using the "NEO" OpenCL runtime).
    • Diverse updates, performance improvements, and bugfixes for the following packages: DRUDE, PLUMED, COLVARS, KOKKOS, KIM, ML-IAP, SNAP, REACTION
    • Many bugfixes, updates, and individual contributed commands and styles.

    Backward compatibility notes:

    • The LAMMPS python module is now a folder with multiple Python script files instead of a single lammps.py file. This should not affect how the module can be used "in-place" by setting environment variables. The python module contains a version check that should help detecting when a LAMMPS shared library that does not match the python module.
    • Multi-cutoff neighbor list and communication is using a new and more flexible code path with a few additional constraints over the old code path, which is still available as a backup that must be explicitly requested.
    • KIM package commands have been reorganized into a single wrapper and multiple sub-commands: kim_<something> has become kim <something>
    • The CMake preset "minimal" has been renamed to "basic". There are no more "make yes/no-standard" and "make yes/no-user" due to the package reorganization; instead "make yes/no-basic" and a "make yes/no-most" targets have been added to reflect the corresponding CMake presets
    Source code(tar.gz)
    Source code(zip)
    bugfixes_for_stable_29Sep2021.patch.gz(99.24 KB)
  • patch_29Sep2021(Sep 30, 2021)

    This patch includes some final changes and bugfixes to create the stable release.

    There are no substantial new features in this patch, only a variety of small updates and bug fixes for reported issues and based on extended testing with instrumented code and on platforms or with settings we do not run automatic tests for. Notable changes:

    • bugfix for EAM/alloy pair style with KOKKOS on GPUs (Stan Moore, SNL) PR #2956
    • bugfix for hybrid pair styles not enforcing a single pair_coeff statements for potentials that require it (Axel Kohlmeyer, Temple U) PR #2963
    • logging of queried KIM collections locations with kim init (Ryan Elliott, UMN) PR #2949
    • added section on parallel algorithms to manual adapted from new LAMMPS paper, PR #2917
    • small bugfix for COLVARS package (Jerome Henin and Giacomo Fiorin) PR #2959
    • small bugfix for handling of nevery keyword in fix bond/react (Jake Gissinger, NASA) PR #2969
    • bugfix to neighbor list: prevent it from copying "unique" stencil/bin data (Stan Moore and Steve Plimpton, SNL) PR #2965
    • updates to traditional make build system to enable C++11 compliance by default, list packages in alphabetical order and make package maintenance commands less verbose (Axel Kohlmeyer, Temple U) PR #2961
    • collected small changes (Axel Kohlmeyer, Temple U) PR #2952, PR #2962, PR #2966
      • improved detection of double precision hardware with OpenCL and a workaround for neighbor list issues on sparse systems in the GPU package
      • improved C++ standard compliance for improved compatibility with compilers in C++20 mode
      • improved C library standard compliance by avoiding calling memset() and fwrite() with a null pointer
      • fix bug in traditional make build system support for ML-PACE package
      • add missing documentation for building with threaded FFTW3 support using non-standard library locations
      • plug memory leaks and compilation issue with 64-bit atom ids in MSCG package
      • avoid division by zero in fix dt/reset
      • fix portability issues and detect incompatibilities when compiling external libraries using CMake
      • prohibit KOKKOS from lowering the requested C++ standard
    Source code(tar.gz)
    Source code(zip)
  • patch_20Sep2021(Sep 21, 2021)

    This is the release candidate for the next stable release. We will only accept urgent bugfixes and updates to documentation until then. For people packaging stable LAMMPS releases into binary packages, please note that you have about one week left to submit any changes to LAMMPS where you have discovered issues related to building and packaging that we have overlooked. Once the stable release is out, you will have to maintain such changes as external patches until the next stable release or package a following patch release with those changes included.

    Changes since the 31 August 2021 patch release:

    • Updates and additions to the programmer guide section of the manual. Specifically, updated guidelines and information for contributing code to LAMMPS (Axel Kohlmeyer, Temple U) PR #2927
    • Add new command line flag -skiprun testing input files for syntax error as this will skip main loops in run, minimize and similar commands PR #2919
    • Avoid crashes when loading modules like NumPy multiple times into deleted/cleared LAMMPS instances. For that Py_Finalize() needs to be treated like MPI_Finalize() and thus called from main.cpp or a wrapper function in the library interface (Axel Kohlmeyer and Richard Berger, Temple U) PR #2923
    • Many small bug fixes, minor code improvements, and coding style, build system, documentation, formatting updates (multiple authors) PR #2919, PR #2924, PR #2925, PR #2929, PR #2935, PR #2939, PR #2941
    Source code(tar.gz)
    Source code(zip)
  • patch_31Aug2021(Aug 31, 2021)

    Changes since the 30 July 2021 patch release:

    • Add KOKKOS accelerated styles for shear flow simulations with the nvt/sllod integrator (Emily Kahl, The University of Queensland) PR #2882
    • New fix ttm/grid with improved file handling and distributed grid. The existing ttm fixes are refactored and modernized. This also generalizes and unbundles the grid communication class from the KSPACE package and thus updates all PPPM and MSM kspace style variants accordingly (Steve Plimpton, SNL) #2902
    • New pair style coul/exclude to remove excluded Coulomb interactions to be used with kspace style scafacos for molecular systems (Axel Kohlmeyer, Temple U) PR #2886
    • Add functionality to fix property/atom to support per-atom arrays in addition to per-atom vectors (Steve Plimpton SNL) PR #2342, PR #2889 PR #2903
    • Update the COLVARS package to version 2021-08-06 (Giacomo Fiorin, NIH, and the colvars developers) PR #2863 and PR #2866
    • Update to fix bond/swap to support a second kind of bond swapping model (Steve Plimpton, SNL) PR #2888
    • File reader refactor, bug fixes, and unit tests for INTERLAYER package pair styles (Axel Kohlmeyer, Temple U) PR #2879, PR #2897
    • Optimizations for SNAP with KOKKOS for large systems (enabled via config option) (Evan Weinberg, Nvidia) PR #2905
    • Various updates and bugfixes for the KOKKOS package (Stan Moore, SNL) PR #2890, #2900
    • Update factory functions to create or replace fixes and computes to return a pointer to the created class instance (Axel Kohlmeyer, Temple U) PR #2869
    • Updates to the introductory pages of the LAMMPS documentation (Axel Kohlmeyer, Temple U) PR #2893
    • Many small bug fixes, minor code improvements, and coding style, build system, documentation, formatting updates (multiple authors) PR #2804, PR #2862, PR #2861, PR #2865, PR #2868, PR #2876, PR #2880, PR #2881, PR #2885, PR #2887, PR #2889, PR #2891 , PR #2895, PR #2896, PR #2904, PR #2908, PR #2909, PR #2910, PR #2911, PR #2912, PR #2913, PR #2914

    Backward compatibility notices:

    • MC package fixes atom/swap, gcmc, widom, and charge/regulation were under some circumstances calling fixes that normally would be called at the "end_of_step()" stage during a time step instead in the "pre_exchange()" stage. This could lead to unexpected output or use of data from the previous time step (e.g. with fix print, fix ave/time etc.). These calls have been removed and the expected behavior has been restored.
    • the output file format for the fix ttm electron temperature grid files has changed
    Source code(tar.gz)
    Source code(zip)
  • patch_30Jul2021(Jul 30, 2021)

    Changes since the 28 July 2021 patch release:

    This patch release contains a fix for a serious bug reported in issue #2858 that was present in LAMMPS since the 10 February 2021 patch release. We urge everybody that are using this version or any other versions released since then to upgrade to this patch release.

    In addition, this patch release contains mostly minor code refactoring changes and a few fixes for issues were either a result of the recent package reorganization or were exposed by it. PR #2856, PR #2857, and PR #2860

    Source code(tar.gz)
    Source code(zip)
  • patch_28Jul2021(Jul 28, 2021)

    Changes since the 2 July 2021 patch release:

    • Completion of the package reorganization started in the 2 July 2021 release (Axel Kohlmeyer, Temple U) PR #2829
    • Significant refactor of the REAXFF package and some updates to the QEQ package and corresponding code in the OPENMP and KOKKOS packages to have it better aligned with LAMMPS coding conventions, remove obsolete and dead code and implement missing features like support for compute stress/atom in the OpenMP version of the reaxff pair style. (Axel Kohlmeyer, Temple U, Aidan Thompson, SNL) PR #2708
    • New fix pair/tracker and pair style tracker to track properties of pair interactions (Joel Clemmer, SNL) PR #2788
    • New lammps_gather_bonds() function in the C library interface and corresponding Python module wrappers (Axel Kohlmeyer, Temple U, and Robert Meißner, TU Hamburg) PR #2850
    • Updates to the CG-DNA package including a new atom style to address issues with tracking contact pairs (Oliver Henrich, Strathclyde U) PR #2827 and PR #2835
    • Updates to the INTEL package to better support the new LLVM based Intel compilers and transition to use OpenMP pragmas for SIMD (Mike Brown, Intel) PR #2842 and PR #2849
    • Add support for atom_modify map hash in the KOKKOS package (Stan Moore, SNL) PR #2815
    • Updates to the C library interface and Python module to support all fix external functionality and make those behave more consistently, also document the calls (Axel Kohlmeyer, Temple U) PR #2837
    • A new compute for the TALLY package to measure virial heat flow from one group of atoms to another (Donatas Surblys, Tohoku U) PR #2841
    • Address issues and inconsistent behavior when using pair_modify nofdotr and compute stress/atom for pair styles in the MANYBODY and OPENMP packages. Add functionality to the unit tests to check for consistency in energy and global pressure (Axel Kohlmeyer, Temple U) PR #2736
    • Various small bug fixes, coding style, build system, documentation and formatting updates (multiple authors) PR #2823, PR #2826, PR #2824, PR #2828, PR #2830, PR #2831, PR #2832, PR #2833, PR #2836, PR #2838, PR #2839, PR #2844, PR #2848, PR #2853, PR #2854, #2855

    Backward compatibility notices:

    • This patch release completes the package reorganization from the 2 July 2021 release. The USER-MISC package has been removed and its contents distributed to existing packages or one of the new packages INTERLAYER, ORIENT, EXTRA-COMPUTE, EXTRA-DUMP, EXTRA-FIX, EXTRA-MOLECULE, EXTRA-PAIR. Also some styles from MISC, MOLECULE and the src folder have been moved to more suitable packages. In case you are missing a style in your executable, LAMMPS should report which package contains the missing style and needs to be added.
    • Some semantics of the fix external support functions to set global energy and virial have been changed to be more consistent.
    Source code(tar.gz)
    Source code(zip)
  • patch_2Jul2021(Jul 2, 2021)

    Changes since the 27 May 2021 patch release:

    • New package DIELECTRIC with boundary element solvers for computing induced charges at interfaces (Trung Nguyen and Monica Olvera del la Cruz, Northwestern) PR #2793
    • New SO3 descriptor for the MLIAP package (Byungkyun Kang and Qiang Zhu, UNLV) PR #2796
    • New fabric tensor compute (Joel Clemmer, SNL and Ishan Srivastava, LBL) PR #2795
    • Variable pH support and bugfixes for Ewald self-energy in fix charge/regulation (Tine Curk, Northwestern) PR #2802
    • Correctly handle KOKKOS package initialization with the library interface and the fact that the Kokkos library may only be initialized once (Stan Moore, SNL) PR #2470
    • GPU package fixes for compilation with the ROCm/HIP backend (Richard Berger, Temple U) PR #2789
    • Updates to Python package and examples (Richard Berger, Temple U) PR #2787
    • Various small bug fixes, coding style, build system, documentation and formatting updates (multiple authors) PR #2786, PR #2790, PR #2798, #2803, #2810, #2813, #2817

    Backward compatibility notes:

    • The LAMMPS home page has been moved to https://www.lammps.org
    • To reflect changes in the development process and the overall code quality we no longer differentiate between "standard" and "user packages. Thus many packages have been renamed. There are no more "user" packages included in LAMMPS except for USER-MISC. Also some packages have been renamed to better represent their content and also to group similar ones (e.g. machine learning or coarse grain or DPD packages). Some more reorganization of individual style files will follow in the next patch release.
    • There is a new package (DPD-BASIC) and several dpd pair styles have been moved there from USER-MISC or the src folder.
    • The "minimal.cmake" preset has been renamed to "basic.cmake" to match the corresponding "yes/no-basic" target in the conventional build and to avoid conflicts.
    Source code(tar.gz)
    Source code(zip)
  • patch_27May2021(May 27, 2021)

    Changes since the 14 May 2021 patch release:

    • New package USER-HDNNP which provides a new pair style hdnnp, which is an interface to the N2P2 library for Behler-Parinello neural network potentials (Andreas Singraber, U Vienna) PR #2626
    • New package USER-RANN which provides a new pair style rann and matching potential files for using "rapid atomistic neural network (RANN) potentials (Christopher Barrett and Doyl Dickel, Mississippi State) PR #2570
    • Update of the bundled Kokkos library to version 3.4.1 (Stan Moore, SNL and the Kokkos developers) PR #2783
    • Update references to the LAMMPS homepage to reference www.lammps.org and docs.lammps.org instead of lammps.sandia.gov and add tool to check for it and convert such links, also corresponding updates to the LAMMPS manual itself. (Axel Kohlmeyer and Richard Berger, Temple U) PR #2778, PR #2768
    • Various small bug fixes, coding style and formatting updates (multiple authors) PR #2640, PR #2770, PR #2771, PR #2772, PR #2773, PR #2775, PR #2776, PR #2777, PR #2781, PR #2782, PR #2784

    Backward compatibility notes:

    • the LAMMPS home page has been moved from https://lammps.sandia.gov to https://www.lammps.org (please report cases where links need to be updated).
    Source code(tar.gz)
    Source code(zip)
  • patch_14May2021(May 15, 2021)

    Changes since the patch release 8 April 2021:

    • New package USER-PACE which provides a new pair style pace computing interactions using the Atomic Cluster Expansion (ACE) (Yury Lysogorskiy and collaborators at ICAMS, Ruhr-Uni Bochum) PR #2699
    • New Package USER-BROWNIAN for Brownian dynamics time integration of point and extended particles plus updates for fix propel/self (Sam Cameron, U Bristol) PR #2511
    • New Package USER-MDI to enable client/server mode coupling of LAMMPS with other codes using the MolSSI Driver Interface (MDI) (Taylor Barnes, MolSSI) PR #2611
    • New fix style "charge/regulation" which implements Monte Carlo sampling of charge regulation (Tine Curk, Northwestern U and Jiaxing Yuan, Shanghai Jiao Tong U) PR #2585
    • New generalized DPD pair styles: dpd/ext and dpd/ext/tstat (Martin Svoboda, Karel Sindelka, and Martin Lisal, ICPF) PR #2710
    • Faster and more flexible support for multi style neighbor lists (Joel Clemmer, SNL) PR #2536
    • New pair style hybrid/scaled that allows combining contributions from different pair styles with constant or variable scaling factors (Axel Kohlmeyer, Temple U) PR #2702
    • Updated version of pair style bop with bugfixes and performance improvements (Xiaowang Zhou, SNL) PR #2750, PR #2753
    • New base class Command that all command styles are now derived from instead of the Pointers class (Axel Kohlmeyer, Temple U) PR #2707
    • GPU package version of pair style lj/smooth (Gurgen Melikyan, HSE University) PR #2706
    • Update of the bundled Kokkos library to version 3.4.0 (Stan Moore, SNL and the Kokkos developers) PR #2733
    • Support for atom style spin in the KOKKOS package (Julien Tranchida, Stan Moore, and Svetoslav Nikolov, SNL) PR #2693
    • New clang-format configuration file in src tree. All files in that tree are prepared so that clang-format can be applied without destroying functionality. (Axel Kohlmeyer, Temple U) PR #2762
    • Refactoring of core LAMMPS code and packages to increase code reuse and readability, simplify text parsing, improve thread safety (Richard Berger and Axel Kohlmeyer, Temple U) PR #2704, PR #2719, PR #2727, PR #2738, PR #2749
    • Bugfixes and updates for the GPU package addressing issues caused by the changes/improvements in PR #2603 (Mike Brown, Intel Corp., Trung Nguyen, Northwestern U, and Richard Berger, Temple U) PR #2711, PR #2720, PR #2723, PR #2744, PR #2745, PR #2756
    • More unit tests for MPI load balancing and file operations (Richard Berger and Axel Kohlmeyer, Temple U) PR #2642, PR #2725
    • Scripts to support building LAMMPS and its documentation on systems without direct internet access (Richard Berger, Temple U) PR #2742
    • Various small bug fixes, coding style and formatting updates (multiple authors) PR #2703, PR #2705, PR #2712, PR #2713, PR #2714, PR #2715, PR #2717, PR #2721, PR #2722, PR #2724, PR #2726, PR #2737, PR #2739, PR #2741, PR #2743, PR #2748, PR #2756, PR #2758, PR #2760, PR #2761, PR #2765, PR #2769

    Backward compatibility notes:

    • using comm_modify multi now requires to also use neighbor multi. In case the new neighbor multi functionality causes problems, it is possible to revert to the previous implementation with neighbor multi/old. In that case comm_modify multi/old and comm_modify cutoff/multi/old need to be used for enabling and customizing multi-cutoff ghost atom communication.
    • binary restart files containing data for pair style coul/cut will be incompatible due to bugfixes (but they were broken anyway)
    • external packages that add command styles will have to be adapted to the changes to the class topology in PR #2707
    Source code(tar.gz)
    Source code(zip)
  • patch_8Apr2021(Apr 7, 2021)

    Changes since the patch release 10 March 2021:

    • New PLUGIN package providing a "plugin" command that allows loading and unloading of LAMMPS styles from separately compiled shared object files at runtime (Axel Kohlmeyer, Temple U) PR #2650
    • Refactoring of core LAMMPS code and packages to increase code reuse and readability, simplify text parsing, simplify internal fix/compute generation, improve thread safety (Richard Berger and Axel Kohlmeyer, Temple U) PR #2655, PR #2657, PR #2674, PR #2678, PR #2683, PR #2685, PR #2694, PR #2700
    • Additional unit test tools and test inputs to increase coverage of automated testing (Richard Berger and Axel Kohlmeyer, Temple U) PR #2308, PR #2653, PR #2658, PR #2679, PR #2681, PR #2682, PR #2695
    • Updates and additions to PyLammps examples (Richard Berger, Temple U and Evangelos Voyiatzis, Royal DSM) PR #2662, PR #2664
    • Updates and bugfixes to the USER-REACTION package (Jake Gissinger, NASA) PR #2675
    • Updates and bugfixes to the KOKKOS package (Stan Moore, SNL) PR #2677
    • Updates and bugfixes to the GPU package (Mike Brown, Intel Corp. and Nicholas Curtis, AMD, and Richard Berger, Temple U) PR #2691, PR #2692
    • Improved error/exception detection and handling in the LAMMPS python module (Richard Berger, Temple U) PR #2668
    • Various small bug fixes, coding style and formatting updates (multiple authors) PR #2654, PR #2659, PR #2661, PR #2663, PR #2666, PR #2670, PR #2671, PR #2685, PR #2686, PR #2689, PR #2690, PR #2696, PR #2697, PR #2698

    Backward compatibility notes:

    • there are more strict checks about the order of rigid fixes and fixes that change box dimensions. LAMMPS will now correctly error out where it previously would silently ignore some fixes.
    • checks for using run_style verlet versus run_style respa have been made consistent across the code and fully aware of suffixes
    • the meaning of the request ID argument for accessing neighbor lists through the library and python interface has changed. it will function the same for the typical case of having just a single neighbor lists, but see the manual for other cases.
    Source code(tar.gz)
    Source code(zip)
  • patch_10Mar2021(Mar 10, 2021)

    Changes since the patch release 10 February 2021:

    • Major update of the GPU package with significant performance and compatibility improvements (Mike Brown and Nitin Dhamankar, Intel Corp.) PR #2603, PR #2610, use statically linked OpenCL driver loader with CMake (Axel Kohlmeyer, Temple U) PR #2617, HIP compilation fixes (Richard Berger, Temple U) PR #2622
    • New pair style lj/relres which allows fine-grained/coarse-grained simulations for lj/cut type interactions (Mark Chaimovich, Russian School of Mathematics, and Aviel Chaimovich, Drexel University) PR #2590
    • Refactoring of the KIM package commands. Instead of multiple kim_<something> commands there is now only the kim command which accepts <something> as subcommand. Additional cleanups and improvements to the kim commands (Yaser Afshar, Ryan S. Elliott, Ellad Tadmor UMN) PR #2620, PR #2625, PR #2649
    • Direct support for neural network (nn) models added to MLIAP package (Pedro Antonio Santos Florez, University of Nevada - Las Vegas) PR #2641
    • Multiple small improvements and bugfixes to the USER-REACTION package (Jake Gissinger, NASA) PR #2600, PR #2616, PR #2627
    • Reader classes for LAMMPS log files and fix ave/chunk output added to the LAMMPS Python module (Richard Berger, Temple U) PR #2631
    • Unit tester tools for dihedrals and impropers with inputs for most styles (Abhishek Shandilya, RPI and Axel Kohlmeyer, Temple U) PR #2290
    • Cleanup and small performance updates for SNAP support in KOKKOS on GPU (Evan Weinberg, Nvidia) PR #2599
    • Various small bug fixes, coding style and formatting updates (multiple authors) PR #2601, PR #2602, PR #2604, PR #2609, PR #2612, PR #2613, PR #2614, PR #2615, PR #2618, PR #2624, PR #2629, PR #2632, PR #2633, PR #2634, PR #2635, PR #2637, PR #2638, PR #2644, PR #2651, PR #2652

    Backward compatibility notes:

    • The STUBS library is compiled with C++ so there are no symbol name collisions when a serial LAMMPS library and mpi4py are loaded into a Python interpreter at the same time
    • All KIM package commands of the kind kim_<command> are renamed to kim <command>
    • There are several changes to the package gpu command:
      • The Ngpu parameter to the package now accepts 0 (for automatic determination of number of GPUs)
      • The gpuID keyword now only takes 1 argument.
      • The device keyword is replaced with 'platform' and 'device_type'
      • The automatic OpenCL platform detection will choose the platform with the best GPU (in terms of compute cores)
      • OpenCL, device configuration parameters for NVIDIA, AMD, INTEL are automatically determined at runtime More details about this are in the manual
    • Since the changes to the GPU package were substantial, some remaining bugs and compatibility issues are to be expected
    Source code(tar.gz)
    Source code(zip)
  • patch_10Feb2021(Feb 11, 2021)

    Changes since the patch release 24 December 2020:

    • Add support for machine learning potentials using python frameworks to the MLIAP package (Nicholas Lubbers, LANL, and Aidan Thompson, SNL) PR #2508
    • Add 'shift' keyword for multiple Tersoff pair style variants to allow adjusting lattice constants in the case of hetero materials (Wengen Ouyang, Tel Aviv University, Davide Mandelli, Istituto Italiano di Tecnologia, Aidan Thompson, SNL) PR #2514
    • New 'eam/he' pair style for modeling He bubbles in metals (Xiaowang Zhou, SNL) PR #2556
    • New Wang-Frenkel pair style ('wf/cut'), a smooth, short range Lennard-Jones like potential (Xipeng Wang and Simón Ramírez-Hinestrosa, Chinese Academy of Sciences, U Cambridge) PR #2435
    • New potential files in version 2 format for the AGNI pair style and support for reading/processing those potential files (James Chapman, Lawrence Livermore National Lab) PR #2479
    • Update of bundled Kokkos library to version 3.3.1 (Stan Moore, SNL, and the Kokkos developers) PR #2540
    • Optimizations for running SNAP potentials with KOKKOS on GPUs (Evan Weinberg, Nvidia) PR #2549
    • Add capability to fix bond/react to have reactions create atoms (Jake Gissinger, NASA) PR #2584
    • Standardize the way how contributions from fix styles to energy and virial are handled. Remove THERMO_ENERGY fix mask. (Steve Plimpton, SNL) PR #2560
    • Replace redundant 3-vector inline functions from pair styles and math_vector.h with calls to MathExtra namespace functions. Obsolete math_vector.h and math_complex.h header files that were using common c++ class names without a protecting namespace (Axel Kohlmeyer, Temple U) PR #2558
    • More granular control over communication for pair style and fixes with KOKKOS (Stan Moore, SNL) PR #2532
    • Refactor processing of embedded citation strings to make them more visible (Axel Kohlmeyer, Temple U and Steve Plimpton, SNL) PR #2545
    • Add introspection support for compile time settings of accelerator packages (Axel Kohlmeyer, Temple U), PR #2554
    • Add ArgInfo class for simpler processing of references to computes, fixes, variables and more. Refactor the code using those (Axel Kohlmeyer, Temple U) PR #2571
    • Add `utils::strdup()`` convenience function and apply it to many files to collapse repetitive multi-line code to a single line (Axel Kohlmeyer, Temple U) PR #2583
    • Detect non-ASCII characters in input and try to correct known cases where equivalent UTF-8 characters are used (Axel Kohlmeyer, Temple U) PR #2564
    • Add version check to the LAMMPS python module so that the version of the python module must match the version in the shared library. (Axel Kohlmeyer, Temple U) PR #2589
    • Change sign conventions for forward/reverse Fourier transforms in LAMMPS to be aligned with common conventions (Steve Plimpton and Stan Moore, SNL) PR #2506
    • Move definition of "INVOKED_*" bitmap constants to an enumerator in the compute.h header file for consistency (Axel Kohlmeyer, Temple U) PR #2572
    • Add to CI checks runs via GitHub Actions (instead of Jenkins on ci.lammps.org): Static code analysis for C++ and Python via CodeQL, and compilation and unit tests on MacOS. (Axel Kohlmeyer and Richard Berger, Temple U) PR #2401
    • Various small bug fixes, coding style and formatting updates (multiple authors) PR #2547, PR #2553, PR #2555, PR #2557, PR #2559, PR #2561, PR #2562, PR #2565, PR #2566, PR #2567, PR #2569, PR #2576, PR #2579, PR #2580, PR #2582, PR #2586, PR #2591, PR #2592, #2594, #2596

    Backward compatibility notice:

    • the processing and meaning of fix_modify energy and fix_modify virial has been changed. It is now only available for fixes that contribute to the potential energy and the virial. The energy contributions from thermostats and similar fixes can be accessed with the thermo keyword ecouple and the conserved quantity (i.e. etotal + ecouple) is available as econserve. There are corresponding changes to the implementation, so external fixes will have to be adapted or they will no longer compile. All affected fixes in the LAMMPS distribution have been updated.
    • the LAMMPS python module now contains a version check: When installing the python module, the current LAMMPS version is stored in a __version__ module variable and upon initialization of a LAMMPS instance it is checked against the output from the lammps.version() method which returns the version of the loaded shared library. If they don't match an exception is raised. This helps to detect inconsistent installations of the shared library or module or incorrectly setting LD_LIBRARY_PATH or PYTHONPATH.
    • Arguments to LAMMPS commands that contain references to compute, fixes, or variables (c_ID, f_ID, v_ID with and without indices) are now more strictly checked for correctness. Inputs that are incorrect but have previously worked by chance will now cause failures.
    • the KOKKOS package option "cuda/aware" has been renamed to "gpu/aware" since Kokkos now also supports AMD GPUs via HIP.
    • this release has several "invasive" changes to core parts of LAMMPS, so there is an increased risk that something has been broken in a part of the code that is not (yet) covered by our automated tests (which currently cover about 1/3rd of the total code base).
    Source code(tar.gz)
    Source code(zip)
Owner
LAMMPS Developers
Development of the LAMMPS Molecular Dynamics Simulator and Related Projects
LAMMPS Developers
Public/backup repository of the GROMACS molecular simulation toolkit. Please do not mine the metadata blindly; we use https://gitlab.com/gromacs/gromacs for code review and issue tracking.

Welcome to the official version of GROMACS! If you are familiar with Unix, it should be fairly trivial to compile and install GROMACS. GROMACS uses o

Gromacs 487 Jan 7, 2023
✔️The smallest header-only GUI library(4 KLOC) for all platforms

Welcome to GUI-lite The smallest header-only GUI library (4 KLOC) for all platforms. 中文 Lightweight ✂️ Small: 4,000+ lines of C++ code, zero dependenc

null 6.6k Jan 8, 2023
This is a tool for software engineers to view,record and analyse data(sensor data and module data) In the process of software development.

![Contributors][Huang Jianyu] Statement 由于工具源码在网上公开,除使用部分开源项目代码外,其余代码均来自我个人,工具本身不包含公司的知识产权,所有与公司有关的内容均从软件包中移除,软件发布遵循Apache协议,任何人均可下载进行修改使用,如使用过程中出现任何问

HuangJianyu 36 Dec 25, 2022
Rp-pppoe - Public repository for RP-PPPoE PPPoE client and server software

RP-PPPoE - a PPPoE client, relay and server for Linux RP-PPPoE is a PPPoE client, relay and server for Linux. It can run completely in user-mode or us

Dianne Skoll 22 Dec 21, 2022
This is the Secure Software Development Project fork of Checked C

Checked C This is the Secure Software Development Project fork of Checked C. The Checked C extension was originally developed at Microsoft from 2016-2

Secure Software Development Project 6 Dec 21, 2022
Spack is a package manager, and package managers should be trivial to install.

?? Spack with batteries included (linux/x86_64) Spack is a package manager, and package managers should be trivial to install. This repo offers a sing

Harmen Stoppels 22 Dec 1, 2022
BakePKG is a package archive that can install itself without without a package manager.

BakePKG A bad way of packaging applications. Introduction BakePKG is a package archive that can install itself without without a package manager. The

bread 3 Sep 3, 2022
MasterPlan is a project management software / visual idea board software. It attempts to be easy to use, lightweight, and fun.

MasterPlan is a customizeable graphical project management software for independent users or small teams. If you need to share plans across a whole co

SolarLune 444 Dec 23, 2022
Public repository for Beerbox project.

Beerbox v1.0 - Public Repository This is a public repository for an "IoT Project"-course project called Beerbox. Difference between the private and pu

null 2 Dec 23, 2021
CS 244B project to use a public blockchain as a two-phase commit coordinator to securely commit an atomic transaction across any two systems of a database.

blockchain-2pc CS 244B project to use a public blockchain as a two-phase commit coordinator to securely commit an atomic transaction across any two sy

null 4 Jun 13, 2022
U++ is a C++ cross-platform rapid application development framework focused on programmer's productivity. It includes a set of libraries (GUI, SQL, Network etc.), and integrated development environment (TheIDE).

Ultimate++ Ultimate++ is a C++ cross-platform rapid application development framework focused on programmers productivity. It includes a set of librar

Ultimate++ 564 Jan 8, 2023
Mastering-Cpp-Game-Development - Code files for Mastering C++ Game Development, published by Packt

Mastering C++ Game Development This is the code repository for Mastering C++ Game Development, published by Packt. It contains all the supporting proj

Packt 74 Jan 2, 2023
Frog is an integration of memory-based natural language processing (NLP) modules developed for Dutch. All NLP modules are based on Timbl, the Tilburg memory-based learning software package.

Frog - A Tagger-Lemmatizer-Morphological-Analyzer-Dependency-Parser for Dutch Copyright 2006-2020 Ko van der Sloot, Maarten van Gompel, Antal van den

Language Machines 70 Dec 14, 2022
Frog is an integration of memory-based natural language processing (NLP) modules developed for Dutch. All NLP modules are based on Timbl, the Tilburg memory-based learning software package.

Frog - A Tagger-Lemmatizer-Morphological-Analyzer-Dependency-Parser for Dutch Copyright 2006-2020 Ko van der Sloot, Maarten van Gompel, Antal van den

Language Machines 70 Dec 14, 2022
A software serial driver package by using the hardware timer capture / comparison functionality.

Soft serial 1.简介 Soft serial 是利用硬件定时器捕获/比较功能实现软件模拟串口的软件包。 1.1目录结构 Soft serial 软件包目录结构如下所示: soft_serial ├───inc // 头文件目录 │

齐永忠 2 Jul 14, 2022
OpenFOAM is a free, open source computational fluid dynamics (CFD) software package

acousticStreamingFoam About OpenFOAM OpenFOAM is a free, open source computational fluid dynamics (CFD) software package released by the OpenFOAM Foun

Bruno 3 Oct 28, 2022
Detours is a software package for monitoring and instrumenting API calls on Windows.

Detours is a software package for monitoring and instrumenting API calls on Windows. It is distributed in source code form.

Microsoft 3.9k Jan 4, 2023
Simple Software Application Package Installer for CachyOS which helps setting up & installing applications

cachyos-packageinstaller Simple Software Application Package Installer. Requirements C++20 feature required (tested with GCC 11.1.0 and Clang 13(clang

CachyOS 3 Jul 1, 2022
SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages.

SWIG (Simplified Wrapper and Interface Generator) Version: 4.1.0 (in progress) Tagline: SWIG is a compiler that integrates C and C++ with languages

SWIG 4.8k Jan 5, 2023
CQC (Charmed Quark Controller) a commercial grade, full featured, software based automation system. CQC is built on our CIDLib C++ development system, which is also available here on GitHub.

The CQC Automation System What It Is CQC is a commercial quality, software based automation system, suitable for residential or commercial application

Dean Roddey 61 Dec 13, 2022