GROMACS 2019.5 release notes
----------------------------

This version was released on December 23rd, 2019. These release notes
document the changes that have taken place in GROMACS since the
previous 2019.4 version, to fix known issues. It also incorporates all
fixes made in version 2018.8 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 the
   a space between the colon and number!

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

Fix use of uninitialized data on PME only ranks
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

When building GPU enabled versions of |Gromacs| with clang as either host only or host
and device side compiler, PME datastructures could be left uninitialized, leading
to the use of random values for LJ PME energies, virial and pressure.

The effect of this bug was that the potential and total energy could
be wrong, but not the Coulomb mesh energy. This didn't affect sampling.
The pressure could also be wrong, which would affect sampling when pressure
coupling is used, but likely the simulation would explode after a few steps.

This doesn't seem to have affected versions of |Gromacs| built
with gcc as the host side compiler.

:issue:`3120`

Fix out of range memory access with free-energy calculations
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

With free-energy calculations not using lambda states, an output
buffer would be accessed one element beyond it's allocated size.
We don't expect this to have caused incorrect results, but
a memory checker would complain.

:issue:`3173`

Work around broken Apple Clang compiler in Mac OS Catalina
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
In Mac OS Catalina, the default XCode compilers checks and
enforces stack alignment. This would have been a good idea
if Apple itself did not ship a C library that violates the
stack alignment with AVX instructions are enabled.

:issue:`3199`

Fix error with intermolecular interactions and domain decomposition
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

With intermolecular interactions at distances longer than the cutoff
and domain decomposition, mdrun could exit with an error message
about missing interactions.

:issue:`3204`

Fix issues with AWH with pull-geometry 'direction' to be periodic
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

Removed fatal error with AWH with periodic pull-geometry 'direction'
when the distance was within 2% of half the box size.
Changed an assertion failure when the AWH interval was larger than
the box size to a fatal error.
Clarified the documentation for pull geometry 'direction-periodic'.

:issue:`2946`

Remove assertion failure with AWH when not using the initial stage
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

:issue:`3217`

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

Make histogram output clearer
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

Output gave number of events included in histogram bar as *a.u.*,
which was not clear for users.


Fix dihedral angle calculation near 180 degree boundary
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

The analysis tools could incorrectly calculate properties of torsion angles and their averages
when close to the -180 or 180 degree boundary.

:issue:`3225`


Remove problematic output of gmx angle tool
"""""""""""""""""""""""""""""""""""""""""""

It could happen that the calculation of the standard deviation
for angles caused a divide by zero error for empty populations.
Because this standard deviation was meaningless, it has been
removed.

:issue:`3206`

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

Check that libhwloc headers and runtime match
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

It could happen that the libhwloc headers and library detection would
lead to a mismatch at compile or runtime that could cause cryptic
crashes while using mdrun.

:issue:`3200`

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

Fix .gro file formatting with large boxes
"""""""""""""""""""""""""""""""""""""""""

The |Gromacs| manual says the box components in the .gro file
format are separated by spaces. But no space was printed when
a box component, except for the first, was 1000 nm or larger
or an off-diagonal component was -100 nm or smaller.
Now at least one space is always printed. Content that was written
in a way that already had at least one space between components
is unchanged. Existing parsers that conform to the documentation
and expect whitespace separation will continue to work in all cases.

:issue:`3176`

Fix duplicate PDB CONECT record output
""""""""""""""""""""""""""""""""""""""

PDB "CONECT" record output was duplicated in some instances. Since |Gromacs| does
not use these anywhere, analysis was not affected. The behavior is now fixed.

:issue:`3206`

Fix performance issue with bonded interactions in wrong GPU stream
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

This could lead to a significant loss in performance.

:issue:`3241`