Bug #2032
Nose-Hoover multiple time stepping issue
Description
With leap-frog, Nose-Hoover and nsttcouple>1, the same velocity scaling is applied for nsttcouple steps in a row, instead of applying a larger correction at a single step, as was intended with the reversible integrator. Since tau_t should be large compared with nsttcouple*dt, the effect of this bug is very small (the conserved energy quantity still seems to be conserved well).
Related issues
Associated revisions
History
#1 Updated by Gerrit Code Review Bot over 4 years ago
Gerrit received a related patchset '8' for Issue #2032.
Uploader: Berk Hess (hess@kth.se)
Change-Id: Iae5e787f1338b99c2338c9d0c1f14e90393e9252
Gerrit URL: https://gerrit.gromacs.org/6110
#2 Updated by Berk Hess over 4 years ago
- Status changed from In Progress to Fix uploaded
- Target version changed from 2016.1 to 2018
#3 Updated by Berk Hess over 4 years ago
- Status changed from Fix uploaded to Resolved
Applied in changeset 69470fc4e9fd990eb53b22c17dc7a699c583d126.
#4 Updated by David van der Spoel about 4 years ago
- Status changed from Resolved to Closed
I have some indication to think this effect is not small.
#5 Updated by David van der Spoel about 4 years ago
- Status changed from Closed to Resolved
Moving back to resolved. Coming back with more information tomorrow, but this (and possibly #2031) may be the cause of poorly reproducible simulations of liquids.
#6 Updated by Mark Abraham almost 4 years ago
Where are we at with this?
#7 Updated by David van der Spoel almost 4 years ago
- Status changed from Resolved to Closed
Let's close this. I have not been able to see a difference due to this fix as Berk indicates.
#8 Updated by Berk Hess about 2 years ago
- Related to Bug #2749: Strange Fluctuations with NH+PR coupling in GROMACS 2018.3 added
Restructure leap-frog integrators
There are now 2 template function for MD leap-frog integration
instead of 4 branches in multiple functions.
In addition to invmass, mdatoms now contains invMassPerDim.
invMassPerDim is set to zero for encode frozen dimensions, so LF
update functions no longer need to check the freeze groups.
Also removed the conditionals for vsites and shells in the LF update
functions. Their velocities are now set to zero at startup.
A template function for the most common leap-frog integrator setups
allows for full SIMD acceleration, at least for AVX with gcc5.
Changed dt from double to real in the update, since we need far less
than real precision.
Changed calculation of alpha for VV to real, as it is passed as real.
Fixed multiple time stepping with Parrinello-Rahman and Nose-Hoover.
Fixes #2031.
Fixes #2032.
Change-Id: Iae5e787f1338b99c2338c9d0c1f14e90393e9252