Improve Verlet buffer constraint estimate
commit7861aae58fea4aaa1dfbfe4ef26e94e9b3e55ff9
authorBerk Hess <hess@kth.se>
Tue, 21 Mar 2017 15:30:10 +0000 (21 16:30 +0100)
committerBerk Hess <hess@kth.se>
Fri, 26 May 2017 19:21:24 +0000 (26 21:21 +0200)
tree9e531c2bd059eeb226a83bce57c36fd55bc3c98e
parent9944f16b9d6aec6b9248ac5759dcb35f359f9383
Improve Verlet buffer constraint estimate

The displacement estimate for a constrained atom (typically H)
rotating around the COM with a partner atom was not thoroughly
derived and the code documentation was not fully correct.
Now there is an exact MSD integral. Approximating that gives
the same v/(1+av+bv^2) variance scaling formula with a=1/6, but b
changed from 5/180 to 8/180, slightly lowering the buffer size.
Note that we (still) use a Gaussian with matched variance, which
results in a much larger buffer than necessary, since the tail of
the distribution sets the buffer size and the Gaussian has a long
tail whereas the actual distribution has no tail.

Also added a test for this estimate.

Change-Id: Ie6fb817dcd55177e5992facc7b68616f318572a3
src/gromacs/mdlib/calc_verletbuf.cpp
src/gromacs/mdlib/calc_verletbuf.h
src/gromacs/mdlib/tests/CMakeLists.txt
src/gromacs/mdlib/tests/calc_verletbuf.cpp [new file with mode: 0644]