GROMACS 2025.4 release notes
----------------------------

This version was released on November 21st, 2025. These release notes
document the changes that have taken place in |Gromacs| since the
previous 2025.3 version, to fix known issues. It also incorporates all
fixes made in version 2024.6 and earlier, which you can find described
in the :ref:`release-notes`.

.. Note to developers!
   Please use """"""" to underline the individual entries for fixed issues in the subfolders,
   otherwise the formatting on the webpage is messed up.
   Also, please use the syntax :issue:`number` to reference issues on GitLab, without
   a space between the colon and number!

Fixes where mdrun could behave incorrectly
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The Parrinello-Rahman barostat can give too large volume fluctutations
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

The increase of the default :mdp:`nstpcouple` value in the |Gromacs| 2023 release
can cause too large fluctuations of the volume of the simulation box.
This, in turn, can lead to instabilities, in particular when anisotropic
pressure coupling is used. The average volume is not affected. This issue
is solved by requiring at least 200 integration steps per period (tau_p)
for the Parrinello-Rahman barostat.

:issue:`5424`

The C-rescale barostat can give too large volume fluctutations
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

The increase of the default :mdp:`nstpcouple` value in the |Gromacs| 2023 release
can cause too large fluctuations of the volume of the simulation box.
The average volume is not affected. The is only an issue when tau_p is smaller
than the recommended value of 5 ps, in combination with a timestep of 2 fs or larger.
This is solved by requiring at least 25 integration steps per period (tau_p)
for the C-rescale barostat.

:issue:`5425`

PME tuning could exit with an assertion failure
"""""""""""""""""""""""""""""""""""""""""""""""

When using OpenMP threading and an unlucky combination of PME grid dimensions,
mdrun could exit during PME tuning with an assertion failure for gridSize.

:issue:`5406`
:issue:`5417`

mdrun would report incorrect kinetic energy values when interrupted
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

When mdrun was interrupted and did not stop at a step that was a multiple
of :mdp:`nstcalcenergy`, the kinetic energy, temperature, pressure and
energy drift reported for the last step were incorrect when using the
leap-frog integrator. Note that such an incorrect frame was removed
when the simulation was continued with concatenation of output files.

:issue:`5433`

Direct halo communication could cause mdrun to exit with an MPI error
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

The direct halo communication in mdrun, which needs to be enabled by setting
an environment variable, could cause mdrun to stop with an MPI error.
This is very unlikely to have led to incorrect results.

:issue:`5418`

Expanded ensemble replica exchange output could contain concatenated numbers
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

With 100 or more replicas, spaces would be missing between values and indices.
Also other large values could lead to no whitespace being printed.

:issue:`5248`
       
Fixes for ``gmx`` tools
^^^^^^^^^^^^^^^^^^^^^^^

Fix DSSP tool
"""""""""""""

Fixed legend formatting in ``gmx dssp`` tool. Data for plotting a graph from .xvg format
is now compatible with XMGrace.

:issue:`5409`

Fixes that affect portability
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Fix CUDA build on Windows
"""""""""""""""""""""""""

Building |Gromacs| with CUDA on Windows would sometimes fail at CMake
stage with ``Could NOT find OpenMP_CUDA`` error. Added a workaround for that.

:issue:`5431`

Enable ``-Wpointer-arith`` flag for LLVM-based compilers
""""""""""""""""""""""""""""""""""""""""""""""""""""""""

Building |Gromacs| with LLVM-based compilers would get the ``-Wpointer-arith`` flag tested,
but the result of the test wasn't used. This is now fixed.

:issue:`5447`

Fix SurfaceAreaTest failure when ARM SVE SIMD is used
"""""""""""""""""""""""""""""""""""""""""""""""""""""

Some versions of GCC miscompile test code when targeting ARM machines with SVE support,
leading to false-positive failures in ``SurfaceAreaTest.Computes100PointsWithTriclinicPBC``.
This has been observed with GCC 13 and 14 on systems with 256-bit and 512-bit SVE vectors.
As a workaround, we disable compiler optimizations for the affected test function.
This only affects test code and does not impact simulation performance.

:issue:`5440`

Fixes to the Colvars library
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This release fixes several bugs in the Colvars library, affecting the correctness of applied
forces for certain variables.

The following is a list of bugfix pull requests in the`Colvars repository
<https://github.com/Colvars/colvars>`_:

* Tests and fixes to multiple gradients (`Colvars PR 838
  <https://github.com/Colvars/colvars/pull/838>`_)

* Fixing the orientation sign (`Colvars PR <https://github.com/Colvars/colvars/pull/829>`_)

* Fix the gradients of the eigenvector CVC (`Colvars PR 828
  <https://github.com/Colvars/colvars/pull/828>`_)

* Fix a potential issue of "fit gradients" for non-scalar components with only centering but not
  rotating (`Colvars PR 824 <https://github.com/Colvars/colvars/pull/824>`_)

* Fix the calculation of bias factor with off-grid hills (`Colvars PR 808
  <https://github.com/Colvars/colvars/pull/808>`_)

* Fix indentation of 'Init CVC' message in standard output (`Colvars PR 755
  <https://github.com/Colvars/colvars/pull/755>`_)

Miscellaneous
^^^^^^^^^^^^^

Disable floating point exceptions in CUDA builds
""""""""""""""""""""""""""""""""""""""""""""""""

With CUDA 13 / NVIDIA driver 580, a floating-point exception can occur in the PTX JIT
compiler. This is harmless in itself but would cause program termination if the
floating-point exceptions are enabled. So, we don't enable them for CUDA builds anymore.

:issue:`5493`

