|Gromacs| 2021.6 release notes
------------------------------

This version was released on July 8th, 2022. These release notes
document the changes that have taken place in |Gromacs| since the
previous 2021.5 version, to fix known issues. It also incorporates all
fixes made in version 2020.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
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Extend error message for free-energy exclusion beyond rlist
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

With free-energy decoupling simulations an error for exclusions beyond rlist
can occur due to a too small box. This cause is now added to the error
message.

:issue:`3403`
:issue:`3808`

Fix running with LJ PME only
""""""""""""""""""""""""""""

Simulations with only LJ PME but not electrostatic PME would fail to run due
to an error in task assignment.

:issue:`4362`

Fix missing synchronization in CUDA update kernels
""""""""""""""""""""""""""""""""""""""""""""""""""

When using GPU update with SETTLE or LINCS constraints, virial calculations
could have been incorrect on Volta and newer NVIDIA GPUs, which in turn
would lead to incorrect pressure. The GPU update is not enabled by default,
so the error can only appear in simulations where it was manually selected,
and even in this case the error might be rare since we have not observed it
in practice in the testing we have performed.

To check whether your runs could have been affected, please examine your mdrun log file:

- Look for the line "GPU support:        CUDA";
- Look for the line "PP task will update and constrain coordinates on the GPU";
- Check whether any GPU the value of "compute cap." 7.0 or higher in the "GPU Info:" section.

If all three are present, than the bug could have perturbed the virial calculation and,
in turn, led to incorrect pressure coupling. All |Gromacs| version prior to 2021.6 and 2022.0
that allow offloading of the update and constraint calculations to GPUs are affected.

:issue:`4393`


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

Do not try to guess atom names in ``gmx rms`` unless needed
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

Guessing atomic masses based on atom names may sometimes fail.
When ``-nomw`` switch is used, atom masses are not needed, but ``gmx rms``
was trying to guess them anyway, throwing a fatal error when an unknown 
element was encountered. Now, the error is only raised when masses are
actually needed.

:issue:`4356`

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

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

Corrects units for AWH interval in the user guide
"""""""""""""""""""""""""""""""""""""""""""""""""

When applying AWH to angles or dihedrals, the units of bonds of the sampling
interval listed in the mdp section of the user guide are now stated to be
in degrees. The guide incorrectly stated that there were in radians, whereas
the code interprets the user input as degrees.

:issue:`4367`

Fix distance restraint force calculation in case of negative prefactor
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

When calculating distance restraint forces, the quadratic regime for weak
restraint violation and the linear regime for strong restraint violation were
interchanged in case of a negative force constant.

:issue:`4347`

