|Gromacs| 2022.5 release notes
------------------------------

This version was released on February 3rd, 2023. These release notes
document the changes that have taken place in |Gromacs| since the
previous 2022.4 version, to fix known issues. It also incorporates all
fixes made in version 2021.7 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
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Fix perturbed exclusion handling across PBC in small systems
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

Systems with up to a few hundred atoms where molecules with excluded
perturbed atoms were split over periodic boundary conditions could
have double counted Coulomb and LJ-PME interactions over long distances.
This led to very large errors in the energy and forces with PME and
reaction-field, which likely did not go unnoticed. With a plain Coulomb
cut-off the error is small and might not be noticed.

:issue:`4665`

Add missing net charge term when running PME on a GPU
"""""""""""""""""""""""""""""""""""""""""""""""""""""

When PME was running on a GPU, the term due to a net charge of the system was missing.
In normal runs this only changed the potential energy by a constant, which is usually
not relevant. In free-energy calculations where the net charge of the systen changes,
the would lead to incorrect dV/dlambda and Delta lambda values (but one should anyhow
avoid changing the net charge of a system with free-energy calculations).

:issue:`4668`

Foreign energy differences with the Gapsys soft-core function were zero
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

This caused all BAR and AWH non-bonded free-energy output to be zero,
so it is unlikely that incorrect results would go unnoticed.

:issue:`4705`

Fix mdrun -rerun energy output with update groups
"""""""""""""""""""""""""""""""""""""""""""""""""

In the, unlikely, case of using mdrun -rerun with domain decomposition
or GPU on a trajectory produced without domain decompostion and GPU,
the reported energies could be incorrect when update groups were used.
Update groups are typically used with biomolecular force fields with
h-bonds constrained only and domain decomposition on GPU.

:issue:`5067`

Fix checkpointing of expanded ensemble simulations with modular simulator
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

Expanded ensemble simulations would fail to write checkpoint files when the
modular simulator was used (which is the default setting for expanded ensemble
in |Gromacs| 2022). The investigation lead to the discovery of another bug, which
was also fixed: When restarting from checkpoint, a successful MC step in lambda
space that had happened on the step on which the checkpoint was written would
have been ignored. Since the checkpoint failed to be written in the first place,
this is unlikely to have lead to wrong results in |Gromacs| 2022.

The bug dropping successful MC steps on checkpoint steps upon simulation restarts
is also present in the legacy code path, which was the default in |Gromacs| 2021.7
and earlier. Simulations using the legacy code path no longer write checkpoint
files, and inform about this behavior in their log file.

:issue:`4629`

Fixes for ``gmx`` tools
^^^^^^^^^^^^^^^^^^^^^^^

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

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

Improve muParser detection and bumped internal version to v2.3.4
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Update internal muParser version that include all changes made by
us. Use muParser's CMake config to detect external muParser. Update
required version for external muParser to match the internal version.

:issue:`4614`

