many velocity-verlet combinations do not produce exact restarts - Redmine #1883
NVE and Nose-Hoover+MTTK work correctly with an argon box, but all other combinations have some issue. Often the restart step + 1 has KE that is clearly wrong. It seems there are issues with trying to save a KE quantity to the checkpoint, restart, and then do some (unnecessary?) computation before we enter the loop, then skip the first velocity update, then continue normally. It ought to be straightforward to compare two runs in a debugger, but I can’t do that right now.
https://gerrit.gromacs.org/#/c/5472 was created to probe this question, and this issue has resulted.
Attached is a tarball that permits reproduction at least as far back as release-4-6 HEAD. Haven’t tried 4.5, but my suspicion is that the issue has been there since inception.
(from redmine: issue id 1883, created on 2015-12-24 by mark.j.abraham, closed on 2016-05-08)
- Changesets:
- Revision bc0538dc by Michael Shirts on 2016-01-07T08:13:55Z:
Fixes two problems related to restarts for vv.
The first problem is more serious; in addition to causing problems
with restarts in most cases for vv + either berendsen or v-rescale,
temperature coupling was called twice, which makes the distribution of
kinetic energies too broad (but with the correct average). Affected
vv + either v-rescale berendsen T-controls, other choices were unaffected.
In the second problem, the initial step after restarts with vv +
v-rescale and berendsen temperature control had too high a pressure
because an empty virial matrix that was only filled with MTTK pressure
control. The effects of this bug are very small; it only affected the
volume integration for one step on restarts.
Refs #1883
Change-Id: I8d807c8430bf4c18b0a4800af62d7f10839b7d59
- Revision f5061cec86df8412bea70c08ffad2cb75e848362 by Mark Abraham on 2016-01-07T08:14:09Z:
Update md-vv tests
This bug fix requires transformAtoB be updated, so also updated the
other test cases that use vv and either v-rescale or Berendsen, in the
interests of ensuring they remain stable.
Refs #1883
Change-Id: I2f57ff35f7790e40131e82bf63359119362a4e25
- Revision 849aee34 by Mark Abraham on 2016-01-07T09:20:41Z:
Backport md-vv fixes
This corrects non-Trotter md-vv temperature-coupling behaviour, and
fixes the first step of md-vv pressure-coupling volume integration
after restarts.
Refs #1883
Change-Id: I8d807c8430bf4c18b0a4800af62d7f10839b7d59
- Revision df7f271635122778443b8ec15abb6a233a95e804 by Mark Abraham on 2016-01-07T09:50:50Z:
Backport updates for md-vv fixes
Refs #1883
Change-Id: I2f57ff35f7790e40131e82bf63359119362a4e25
- Revision efa13a69 by Mark Abraham on 2019-08-27T16:51:43Z:
Add integration tests for exact restarts
These tests demonstrates the extent to which mdrun checkpoint restarts
reproduce the same run that would have taken place without the
restart.
I've been working on these, and the bugs they exposed, for a few
years, but the code has been fixed for a few years now.
The tests don't run with OpenCL because they have caused driver out of
memory issues.
Refs #1137, #1793, #1882, #1883
Change-Id: I8bc441d945f13158bbe10f097e772ea87cc6a559
- Uploads: