Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
24d917e
add a NOTE about MC-only for fix atom/swap
sjplimp Oct 18, 2025
cd937e3
tweaked the note
sjplimp Oct 18, 2025
37ff829
add MC progress sentence to doc page Note
sjplimp Nov 5, 2025
3168053
simplied MC hint per Aidan's suggestion
sjplimp Nov 27, 2025
746a607
Merge branch 'develop' into doc-page-mc-only-hint
akohlmey Nov 27, 2025
1e621df
whitespace
akohlmey Nov 27, 2025
8c9ce03
fully integrate fix wall/harmonic/outside address rst syntax issues
akohlmey Dec 10, 2025
a5a8499
add versionadded tags
akohlmey Dec 10, 2025
55ac8f3
add missing escapes and make formatting consistent with other doc files
akohlmey Dec 10, 2025
05b796c
Merge branch 'develop' into last-minute-fixes
akohlmey Dec 10, 2025
572790a
correct reference
akohlmey Dec 10, 2025
88500a1
Merge branch 'develop' into last-minute-fixes
akohlmey Dec 10, 2025
56806c0
correct reference for recently changed command name
akohlmey Dec 10, 2025
4e80714
spelling
akohlmey Dec 10, 2025
213edd7
apply fixes from static code analysis
akohlmey Dec 10, 2025
1aa5c6c
address minor issues flagged by coverity scan
akohlmey Dec 10, 2025
396b36b
Update version strings for a 10 December 2025 release date
akohlmey Dec 10, 2025
cbb089f
Merge remote-tracking branch 'github/develop' into next_release
akohlmey Dec 10, 2025
3127d2a
update tag
akohlmey Dec 10, 2025
0aa0811
update release step docs for lack of Jenkins processing and immutable…
akohlmey Dec 10, 2025
9e8296d
Merge remote-tracking branch 'github/develop' into last-minute-fixes
akohlmey Dec 10, 2025
9f9e7e2
Merge remote-tracking branch 'github/develop' into last-minute-fixes
akohlmey Dec 10, 2025
96a15e2
add missing false positive
akohlmey Dec 10, 2025
5362692
plug tiny memory leak
akohlmey Dec 10, 2025
cda77b8
simplify logic to free allocated plan buffers
akohlmey Dec 10, 2025
df27384
translate remap memory leak fix to KOKKOS
akohlmey Dec 10, 2025
78da5f9
need explicit destructor to free bond/angle/dihedral/improper lists i…
akohlmey Dec 10, 2025
5ca3545
Merge remote-tracking branch 'github/doc-page-mc-only-hint' into last…
akohlmey Dec 10, 2025
33499fd
Merge pull request #4805 from akohlmey/last-minute-fixes
akohlmey Dec 10, 2025
d065633
Merge branch 'develop' into next_release
akohlmey Dec 10, 2025
47ea8be
add a few more version tags
akohlmey Dec 10, 2025
341ea48
correct indentation
akohlmey Dec 10, 2025
62b9d8a
avoid malloc(0)
akohlmey Dec 10, 2025
cd8851c
Merge pull request #4806 from akohlmey/next_release
akohlmey Dec 11, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 30 additions & 15 deletions .github/release_steps.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,14 @@ release and should not contain any other changes. (Exceptions: this
document, last minute trivial(!) changes).

This PR shall not be merged before **all** pending tests have completed
and cleared. We currently use a mix of automated tests running on
either Temple's Jenkins cluster or GitHub workflows. Those include time
consuming tests not run on pull requests. If needed, a bug-fix pull
request should be created and merged to clear all tests.
and cleared. We currently use automated tests with GitHub workflows.
There is also a Coverity Scan run with static code analysis done every
thursday evening or when triggered manually. That output should be
checked for any significant issues before a release, too. In addition
there is a nightly static code analysis run that can be checked at
https://downloads.lammps.org/analysis/
If needed, a bug-fix pull request should be created and merged to clear
pending issues.

### Create release on GitHub

Expand All @@ -45,9 +49,9 @@ cleared testing, the 'next\_release' branch is merged into 'develop'.

Check out or update the 'develop' branch locally, pull the latest
changes, merge them into 'release' with a fast forward(!) merge, and
apply a suitable release tag (for historical reasons the tag starts with
"patch_" followed by the date, and finally push everything back to
GitHub. There should be no commits made to 'release' but only
apply a suitable release tag (for historical reasons the tag starts
with "patch_" followed by the date, and finally push everything back
to GitHub. There should be no commits made to 'release' but only
fast forward merges. Example:

```
Expand All @@ -60,17 +64,20 @@ git tag -s -m "LAMMPS feature release 4 February 2025" patch_4Feb2025
git push [email protected]:lammps/lammps.git --tags develop release
```

Applying this tag will trigger two actions on the Temple Jenkins cluster:
- The online manual at https://docs.lammps.org/ will be updated to the
After applying this tag two steps will need to be executed manually
(they used to be run automatically, but this is currently not available).
- The online manual at https://docs.lammps.org/ needs to be updated to the
state of the 'release' branch. Merges to the 'develop' branch will
trigger updating https://docs.lammps.org/latest/ so by reviewing the
version of the manual under the "latest" URL, it is possible to preview
what the updated release documentation will look like.
- A downloadable tar archive of the LAMMPS distribution that includes the
html format documentation and a PDF of the manual will be created and
uploaded to the download server at https://download.lammps.org/tars
html format documentation and a PDF of the manual needs to be created
and uploaded to the download server at https://download.lammps.org/tars
Note that the file is added, but the `index.html` file is not updated,
so it is not yet publicly visible.
so it is not yet publicly visible. The index file is updated manually
with a local script after symlinks and SHASUM files have been updated
as well.

Go to https://github.com/lammps/lammps/releases and create a new (draft)
release page with a summary of all the changes included and references
Expand All @@ -81,9 +88,17 @@ a tag" drop-down list. Go to the bottom of the list and select the "Set
as pre-release" checkbox. The "Set as the latest release" button is
reserved for stable releases and updates to them.

If everything is in order, you can click on the "Publish release"
button. Otherwise, click on "Save draft" and finish pending tasks until
you can return to edit the release page and publish it.
Releases are now "immutable", so neither the tag hash nor any uploaded
assets can be changed after the release is published. Only the
release notes text may be changed, e.g. to document issues with the
uploaded assets.

Thus only when *everything* is in order *and* all required assets (source,
binary packages for different platforms, manual PDF) are uploaded in
a suitable version, you can click on the "Publish release" button.
Otherwise, click on "Save draft" and finish pending tasks until you can
return to edit the release page, update assets, and publish it when
it is ready.

### Prepare pre-compiled packages, update packages to GitHub

Expand Down
4 changes: 2 additions & 2 deletions doc/lammps.1
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
.TH LAMMPS "1" "10 September 2025" "2025-09-10"
.TH LAMMPS "1" "10 December 2025" "2025-12-10"
.SH NAME
.B LAMMPS
\- Molecular Dynamics Simulator. Version 10 September 2025
\- Molecular Dynamics Simulator. Version 10 Decmber 2025

.SH SYNOPSIS
.B lmp
Expand Down
1 change: 1 addition & 0 deletions doc/src/Commands_fix.rst
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,7 @@ OPT.
* :doc:`wall/gran (k) <fix_wall_gran>`
* :doc:`wall/gran/region <fix_wall_gran_region>`
* :doc:`wall/harmonic <fix_wall>`
* :doc:`wall/harmonic/outside <fix_wall>`
* :doc:`wall/lj1043 <fix_wall>`
* :doc:`wall/lj126 <fix_wall>`
* :doc:`wall/lj93 (k) <fix_wall>`
Expand Down
2 changes: 1 addition & 1 deletion doc/src/Developer_unittest.rst
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ additional tests.
FFT Testing Infrastructure
""""""""""""""""""""""""""

.. versionadded:: TBD
.. versionadded:: 10Dec2025

The FFT tests (``test_fft3d.cpp`` and ``test_fft3d_kokkos.cpp``)
validate the LAMMPS FFT wrapper implementations for both standard (CPU)
Expand Down
12 changes: 7 additions & 5 deletions doc/src/compute_reduce.rst
Original file line number Diff line number Diff line change
Expand Up @@ -243,18 +243,20 @@ scalar or vector values from a compute as input. See the :doc:`Howto
output <Howto_output>` doc page for an overview of LAMMPS output
options.

.. versionadded:: 10Dec2025

This compute supports automatically generated thermo column names when
using :doc:`thermo_modify colname auto <thermo_modify>`. The thermo column
names are 'c_', followed by the compute ID, followed by a colon, followed
names are "c\_", followed by the compute ID, followed by a colon, followed
by the reduction operation (*mode*), followed by the compute being operated
on in parentheses. E.g., for the first in-text example above, the first
printed thermo column name would be 'c_2:min(c_myPress[1])', rather than
the default 'c_2[1]'. If the *replace* keyword is used, *vec1* of the
printed thermo column name would be "c\_2:min(c_myPress[1])", rather than
the default "c\_2[1]". If the *replace* keyword is used, *vec1* of the
*replace* keyword is listed after the colon, followed by '<-', followed by
the reduction operation, followed by *vec2* of the *replace* keyword in
parentheses. E.g., for the second in-text example above, the first printed
thermo column name would be 'c_3:c_batoms[1]<-max(c_blength)' rather than
the default 'c_3[1]'.
thermo column name would be "c\_3:c\_batoms[1]<-max(c\_blength)" rather than
the default "c\_3[1]".

All the scalar or vector values calculated by this compute are
"intensive", except when the *sum*, *sumabs*, or *sumsq* modes are used on
Expand Down
1 change: 1 addition & 0 deletions doc/src/fix.rst
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,7 @@ accelerated styles exist.
* :doc:`wall/gran <fix_wall_gran>` - frictional wall(s) for granular simulations
* :doc:`wall/gran/region <fix_wall_gran_region>` - :doc:`fix wall/region <fix_wall_region>` equivalent for use with granular particles
* :doc:`wall/harmonic <fix_wall>` - harmonic spring wall
* :doc:`wall/harmonic/outside <fix_wall>` - harmonic spring wall for containing particles
* :doc:`wall/lj1043 <fix_wall>` - Lennard-Jones 10--4--3 wall
* :doc:`wall/lj126 <fix_wall>` - Lennard-Jones 12--6 wall
* :doc:`wall/lj93 <fix_wall>` - Lennard-Jones 9--3 wall
Expand Down
2 changes: 1 addition & 1 deletion doc/src/fix_addtorque_atom.rst
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Examples
Description
"""""""""""

.. versionadded:: TBD
.. versionadded:: 10Dec2025

This fix is intended to add a peratom torque of each individual
finite-sized atom in the group to the specified values. Unlike
Expand Down
2 changes: 1 addition & 1 deletion doc/src/fix_addtorque_group.rst
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Examples
Description
"""""""""""

.. versionchanged:: TBD
.. versionchanged:: 10Dec2025
Fix *addtorque* was renamed to fix *addtorque/group*

Add a set of forces to each atom in
Expand Down
4 changes: 2 additions & 2 deletions doc/src/fix_align_self.rst
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Examples
Description
"""""""""""

.. versionadded:: TBD
.. versionadded:: 10Dec2025

Add a torque to each atom in the group due to a self-alignment toward an
intrinsic orientation. The torque is given by :
Expand Down Expand Up @@ -122,7 +122,7 @@ Related commands

:doc:`fix propel/self <fix_propel_self>`,
:doc:`fix brownian <fix_brownian>`,
:doc:`fix addtorque <fix_addtorque>`
:doc:`fix addtorque/group <fix_addtorque_group>`

Default
"""""""
Expand Down
32 changes: 21 additions & 11 deletions doc/src/fix_atom_swap.rst
Original file line number Diff line number Diff line change
Expand Up @@ -49,17 +49,27 @@ atoms of the other given atom types. The specified scaling temperature
*T* is used in the Metropolis criterion dictating swap probabilities.

Perform *X* swaps of atoms of one type with atoms of another type
according to a Monte Carlo probability. Swap candidates must be in the
fix group, must be in the region (if specified), and must be of one of
the listed types. Swaps are attempted between candidates that are chosen
randomly with equal probability among the candidate atoms. Swaps are not
attempted between atoms of the same type since nothing would happen.

All atoms in the simulation domain can be moved using regular time
integration displacements (e.g., via :doc:`fix nvt <fix_nh>`), resulting
in a hybrid MC+MD simulation. A smaller-than-usual timestep size may be
needed when running such a hybrid simulation, especially if the swapped
atoms are not well equilibrated.
according to a Monte Carlo probability. Swap candidates must be in
the fix group, must be in the region (if specified), and must be of
one of the listed types. Swaps are attempted between candidates that
are chosen randomly with equal probability among the candidate
atoms. Swaps are not attempted between atoms of the same type since
nothing would happen.

All atoms in the simulation domain can also be moved using regular
time integration displacements (e.g., via :doc:`fix nvt <fix_nh>`),
resulting in a hybrid MC+MD simulation, where $X$ MC swap attempts are
made once every $N$ MD steps. A smaller-than-usual timestep size may
be needed when running such a hybrid simulation, especially if the
swapped atoms are not well equilibrated.

.. note::

To run an MC-only simulation (no MD), you should define no
time-integration fix, set the :doc:`thermo <thermo>` command to 1,
set *N* to 1, and set *X* small enough to see the MC evolution of
the system. But if *X* is too small, the overhead at the start and
stop of MC moves each timestep will slow down the simulation.

The *types* keyword is required. At least two atom types must be
specified. If not using *semi-grand*, exactly two atom types are
Expand Down
8 changes: 5 additions & 3 deletions doc/src/fix_bond_react.rst
Original file line number Diff line number Diff line change
Expand Up @@ -836,12 +836,14 @@ There is one quantity in the global vector for each *react* argument:

(1) cumulative number of reactions that occurred

.. versionadded:: 10Dec2025

This fix supports automatically generated thermo column names when using
:doc:`thermo_modify colname auto <thermo_modify>`. The thermo column names
are 'f_', followed by the fix ID, followed by a colon, followed by the
are "f\_", followed by the fix ID, followed by a colon, followed by the
react-ID. E.g., the first example in the Examples section above would
print a thermo column name of 'f_rxns:diels_alder', compared to the default column
output name of 'f_rxns[1]'.
print a thermo column name of "f\_rxns:diels_alder", compared to the default column
output name of "f\_rxns[1]".

No parameter of this fix can be used with the *start/stop* keywords
of the :doc:`run <run>` command. This fix is not invoked during :doc:`energy minimization <minimize>`.
Expand Down
41 changes: 25 additions & 16 deletions doc/src/fix_gcmc.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

.. index:: fix gcmc

fix gcmc command
Expand Down Expand Up @@ -80,22 +81,30 @@ isotherms in microporous materials, or computing vapor-liquid
coexistence curves.

Every *N* timesteps the fix attempts both GCMC exchanges (insertions or
deletions) and MC moves of gas atoms or molecules. On those timesteps,
the average number of attempted GCMC exchanges is *X*, while the average
number of attempted MC moves is *M*. For GCMC exchanges of either
molecular or atomic gasses, these exchanges can be either deletions or
insertions, with equal probability.

The possible choices for MC moves are translation of an atom,
translation of a molecule, and rotation of a molecule. The relative
amounts of each are determined by the optional *mcmoves* keyword (see
below). The default behavior is as follows. If the *mol* keyword is
used, only molecule translations and molecule rotations are performed
with equal probability. Conversely, if the *mol* keyword is not used,
only atom translations are performed. *M* should typically be chosen to
be approximately equal to the expected number of gas atoms or molecules
of the given type within the simulation cell or region, which will
result in roughly one MC move per atom or molecule per MC cycle.
deletions) and MC moves of gas atoms or molecules. On those timesteps, the
average number of attempted GCMC exchanges is *X*, while the average number
of attempted MC moves is *M*. For GCMC exchanges of either molecular or
atomic gasses, these exchanges can be either deletions or insertions, with
equal probability.

.. note::

To run an MC-only simulation (no MD), you should define no
time-integration fix, set the :doc:`thermo <thermo>` command to 1,
set *N* to 1, and set *X+M* small enough to see the MC evolution of
the system. But if *X+M* is too small, the overhead at the start
and stop of MC moves each timestep will slow down the simulation.

The possible choices for MC moves are translation of an atom, translation
of a molecule, and rotation of a molecule. The relative amounts of each are
determined by the optional *mcmoves* keyword (see below). The default
behavior is as follows. If the *mol* keyword is used, only molecule
translations and molecule rotations are performed with equal probability.
Conversely, if the *mol* keyword is not used, only atom translations are
performed. *M* should typically be chosen to be approximately equal to the
expected number of gas atoms or molecules of the given type within the
simulation cell or region, which will result in roughly one MC move per
atom or molecule per MC cycle.

All inserted particles are always added to two groups: the default group
"all" and the fix group specified in the fix command. In addition,
Expand Down
8 changes: 8 additions & 0 deletions doc/src/fix_neighbor_swap.rst
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,14 @@ The algorithm implemented by this fix is as follows:
using the energy change of the system and the specified temperature
*T*.

.. note::

To run an MC-only simulation (no MD), you should define no
time-integration fix, set the :doc:`thermo <thermo>` command to 1,
set *N* to 1, and set *X* small enough to see the MC evolution of
the system. But if *X* is too small, the overhead at the start and
stop of MC moves each timestep will slow down the simulation.

Here are a few comments on the computational cost of the swapping
algorithm.

Expand Down
8 changes: 5 additions & 3 deletions doc/src/fix_nh.rst
Original file line number Diff line number Diff line change
Expand Up @@ -642,14 +642,16 @@ by tchain for eta_dot, followed by ndof for omega, etc:
* KE_etap_dot[pchain] = kinetic energy of each barostat thermostat velocity (energy units)
* PE_strain[1] = scalar strain energy (energy units)

.. versionadded:: 10Dec2025

This fix supports automatically generated thermo column names when using
:doc:`thermo_modify colname auto <thermo_modify>`. The thermo column names
are 'f_', followed by the fix ID, followed by a colon, followed by a
are "f\_", followed by the fix ID, followed by a colon, followed by a
keyword listed above, followed by an index for that keyword. Indices range
from 1 to the number of values for that keyword. E.g., the first example
in the Examples section above would print a thermo column name of
'f_1:eta[1]', compared to the default column output name of 'f_1[1]'.
Similarly, f_1:eta_dot[1] would be printed instead of the default 'f_1[4]'.
"f\_1:eta[1]", compared to the default column output name of "f\_1[1]".
Similarly, "f\_1:eta_dot[1]" would be printed instead of the default "f\_1[4].

These fixes can ramp their external temperature and pressure over
multiple runs, using the *start* and *stop* keywords of the
Expand Down
2 changes: 1 addition & 1 deletion doc/src/fix_pimd.rst
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@ support for bosonic normal modes.
(:math:`\sum_{i=1}^P \frac{1}{2}m\omega_P^2(q_i - q_{i+1})^2`, :math:`m` is always the
actual mass of the particles).

.. versionchanged:: TBD
.. versionchanged:: 10Dec2025

*sp* keyword added to *fix pimd/langevin*

Expand Down
2 changes: 1 addition & 1 deletion doc/src/fix_reaxff_species.rst
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ an equal-style :doc:`variable <variable>`. When using the
first Nsteps timesteps of the first run (after reading either a data or
restart file).

.. versionadded:: TBD
.. versionadded:: 10Dec2025

The *delete_subgroup* keyword enforces a requirement that deleted molecules
must have at least one atom in the group specified by the keyword's
Expand Down
10 changes: 5 additions & 5 deletions doc/src/fix_settorque_atom.rst
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Examples
Description
"""""""""""

.. versionadded:: TBD
.. versionadded:: 10Dec2025

This fix is intended to set the peratom torque of individual finite-size
atoms in the fix group to the specified values. Unlike :doc:`fix
Expand Down Expand Up @@ -80,10 +80,10 @@ to it.
This fix is not (currently) designed to be used with rigid fixes.
While it will set the torque of all of the atoms in a rigid body as
described above, there is not always an easy mapping between these
peratom torques and the torque experienced by the body. The exception
may be when used in conjunction to :doc:`fix setforce <set_force>` to
simultaneously zero forces and torques to freeze a rigid body.

peratom torques and the torque experienced by the body. The exception
may be when it is used in conjunction with
:doc:`fix setforce <fix_setforce>` to simultaneously zero forces and
torques to freeze a rigid body.

----------

Expand Down
2 changes: 1 addition & 1 deletion doc/src/fix_shake.rst
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ will be fulfilled to the desired accuracy within a few MD steps
following the minimization. The default value for *kbond* depends on the
:doc:`units <units>` setting and is 1.0e9*k_B.

.. versionadded:: TBD
.. versionadded:: 10Dec2025

The *store* keyword controls whether the fix stores the constraint
(or restraint) forces as a per-atom property.
Expand Down
2 changes: 1 addition & 1 deletion doc/src/fix_srd.rst
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@ big particles or walls have a thermostatting effect on the colliding particles,
so it may not be necessary to thermostat the SRD particles on a bin by bin
basis in that case.

.. versionadded:: TBD
.. versionadded:: 10Dec2025

The *unbiased* keyword controls how the thermostat operates if there is a streaming
velocity associated with the system, e.g. due to use of the
Expand Down
4 changes: 2 additions & 2 deletions doc/src/fix_store_state.rst
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ Syntax
*com* value = *yes* or *no*
*thresh* args = variable operator value
variable = equal style or compatible variable reference
operator = "<" or "<=" or ">" or ">=" or "==" or "!=" or "|^"
operator = "<" or "<=" or ">" or ">=" or "==" or "!=" or "\|^"
value = numeric value to compare to


Expand Down Expand Up @@ -111,7 +111,7 @@ If the *com* keyword is set to *yes* then the *xu*, *yu*, and *zu*
inputs store the position of each atom relative to the center-of-mass
of the group of atoms, instead of storing the absolute position.

.. versionadded:: TBD
.. versionadded:: 10Dec2025

If the *thresh* keyword is used, data is only stored on steps where also
the threshold condition following the keyword is met. The first
Expand Down
Loading