[gmx-developers] do_update_md

Berk Hess hess at kth.se
Fri Jun 9 14:51:25 CEST 2017


On 2017-06-09 14:29, Mark Abraham wrote:
> Hi,
>
> That looks like a bug that was silently fixed during the adoption of 
> the velocity-rescale thermostat of Bussi (see commit 
> 333641e040ae824badf9d9531290a46ad581ed53). It may be that the issue 
> wasn't noticed because people often used parameters that produce lg == 
> 1...
Is debatable if one should call that a bug. The original Berendsen 
thermostat that this code was written for did not produce the correct 
ensemble anyhow, so it was likely purposely coded this way to give 
better/more scaling with consistently too high temperature, as would 
happen with the group cut-off scheme and no pair list buffering. With 
the V-rescale thermostat you should scale the velocity you computed the 
temperature for, which are the minus half-step velocities, as is now 
correctly done.
In practice it will be difficult to detect a difference between these 
two codes.
>
> I would strongly advise avoiding doing development work on unsupported 
> versions of the software more than five years old... ;-) Get the git 
> master branch and stay up to date with the hundreds of bugs that have 
> been fixed since :-)
His mail didn't imply he is using an old version for development, it 
could just be for trying to understand the code or porting changes from 
an old version to master, which is good!

Cheers,

Berk
>
> Mark
>
> On Fri, Jun 9, 2017 at 2:01 PM Zachmann, Martin <m.zachmann at tum.de 
> <mailto:m.zachmann at tum.de>> wrote:
>
>     Hello community!
>
>     i hope someone can help me understand some code changes in the
>     do_update_md() function in update.cpp.
>
>     In the case where it advances r and v in the leap-frog scheme
>     together with the berendsen thermostat
>
>     (last two else if { } and else { }) in version 4.0.7. it looks
>     like this
>
>     vv = lg*(vn + f[n][d]*w_dt);
>
>     where lg is the lambda-scaling factor from the thermostat and w_dt
>     is dt/m.
>
>     Instead in version 4.5. and higher:
>
>      vv = lg*vn + f[n][d]*w_dt;
>
>
>     The original paper (The Journal of Chemical Physics 81, 3684
>     (1984); doi: 10.1063/1.448118) seems to scale
>
>     both old velocity and force. Btw in do_update_visc() scaling is
>     done to both.
>
>     What is the purpose of this?
>
>     any help is much appreciated,
>
>     regards Martin
>
>
>     --
>     Gromacs Developers mailing list
>
>     * Please search the archive at
>     http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List
>     before posting!
>
>     * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
>
>     * For (un)subscribe requests visit
>     https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers
>     or send a mail to gmx-developers-request at gromacs.org
>     <mailto:gmx-developers-request at gromacs.org>.
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-developers/attachments/20170609/8625dd7b/attachment.html>


More information about the gromacs.org_gmx-developers mailing list