[gmx-users] Velocity Verlet integrator

Mario Fernández Pendás mariofp77 at gmail.com
Wed Oct 15 17:55:50 CEST 2014


Thank you very much for this reference. I will take a look at it carefully.

We are trying to develop and implement this integrators for hybrid Monte
Carlo simulations and our interest is not really related to time saving but
to sampling efficiency.

Right now it doesn't look straightforward to me to adapt GROMACS to this
integration schemes.

2014-10-15 17:05 GMT+02:00 Michael Shirts <mrshirts at gmail.com>:

> Yes, I've been using the theory here:
>
> http://arxiv.org/abs/1301.3800
>
> Which describes how to concantenate integrator steps in a formal way.
>
> I can say that the time savings you get by concatenating integrators is
> VERY small.  The only time it is nonnegligible is when there is a LOT of
> communication, and even then, there are better ways to make simulations
> faster.  It's not an area where there is a lot of improvement that can be
> made.
>
> When doing temperature and pressure control, there are many cases that you
> cannot really join the steps as well.
>
> On Wed, Oct 15, 2014 at 10:05 AM, Mario Fernández Pendás <
> mariofp77 at gmail.com> wrote:
>
> > Thank you very much Professor Shirts.
> >
> > I have these doubts because I am trying to implement new integrators
> based
> > in the concatenation of two VV steps to make a single step. The idea
> > follows the integrators suggested in
> > http://web.mit.edu/~ripper/www/research/efficient_md_integrators.pdf
> >
> > This is why it is important for me to know where each step starts and
> > finishes.
> >
> > 2014-10-15 15:52 GMT+02:00 Michael Shirts <mrshirts at gmail.com>:
> >
> > > Because the 'start' of the vv integrator step is halfway through the
> > loop.
> > > This is a byproduct of 1) putting leapfrog and velocity verlet in the
> > same
> > > loop and 2) minimizing communication and output.  It is not as elegant
> as
> > > it should be.  There are efforts to clean this up, but it's a lot of
> > > reorganization, and has gone slowly.
> > >
> > > On Wed, Oct 15, 2014 at 8:46 AM, Mario Fernández Pendás <
> > > mariofp77 at gmail.com
> > > > wrote:
> > >
> > > > Yes, I understand that. But my question is more about why the two
> > > velocity
> > > > updates are implemented before the position update and not the other
> > way
> > > > round?
> > > >
> > > > From the theoretical point of view I would think more in one of the
> > > > following schemes:
> > > >
> > > >
> > > >    1. Calculate: [image: \vec{v}\left(t + \tfrac12\,\Delta t\right) =
> > > >    \vec{v}(t) + \tfrac12\,\vec{a}(t)\,\Delta t\,]
> > > >    2. Calculate: [image: \vec{x}(t + \Delta t) = \vec{x}(t) +
> > > >    \vec{v}\left(t + \tfrac12\,\Delta t\right)\, \Delta t\,]
> > > >    3. Derive [image: \vec{a}(t + \Delta t)] from the interaction
> > > potential
> > > >    using [image: \vec{x}(t + \Delta t)]
> > > >    4. Calculate: [image: \vec{v}(t + \Delta t) = \vec{v}\left(t +
> > > >    \tfrac12\,\Delta t\right) + \tfrac12\,\vec{a}(t + \Delta t)\Delta
> > t,]
> > > >
> > > >
> > > >
> > > >    1. Calculate: [image: \vec{x}(t + \Delta t) = \vec{x}(t) +
> > > \vec{v}(t)\,
> > > >    \Delta t+\tfrac12 \,\vec{a}(t)\,\Delta t^2]
> > > >    2. Derive [image: \vec{a}(t + \Delta t)] from the interaction
> > > potential
> > > >    using [image: \vec{x}(t + \Delta t)]
> > > >    3. Calculate: [image: \vec{v}(t + \Delta t) = \vec{v}(t) +
> > > >    \tfrac12\,\left(\vec{a}(t)+\vec{a}(t + \Delta t)\right)\Delta t\,]
> > > >
> > > >
> > > > This is why my confusion arises.
> > > >
> > > >
> > > > 2014-10-15 14:05 GMT+02:00 Justin Lemkul <jalemkul at vt.edu>:
> > > >
> > > > >
> > > > >
> > > > > On 10/15/14 7:30 AM, Mario Fernández Pendás wrote:
> > > > >
> > > > >> Dear all,
> > > > >>
> > > > >> I am still interested in some integrator related issues.
> > > > >>
> > > > >> I understand that the easiest way to implement velocity Verlet was
> > to
> > > > >> split
> > > > >> the updates in two updates. But I don't understad the order of
> those
> > > > >> updates.
> > > > >> I mean why there are two updates for velocities and then the
> update
> > > for
> > > > >> positions?
> > > > >> My intuitive idea would be to update first one half for
> velocities,
> > > > then a
> > > > >> full step for positions and, finally, using these new positions
> the
> > > > second
> > > > >> half for velocities.
> > > > >>
> > > > >
> > > > > Yes, there are two separate half-step updates for velocities.  The
> > > > > comments in the md.cpp code are quite verbose if you want to trace
> > > > through.
> > > > >
> > > > > -Justin
> > > > >
> > > > > --
> > > > > ==================================================
> > > > >
> > > > > Justin A. Lemkul, Ph.D.
> > > > > Ruth L. Kirschstein NRSA Postdoctoral Fellow
> > > > >
> > > > > Department of Pharmaceutical Sciences
> > > > > School of Pharmacy
> > > > > Health Sciences Facility II, Room 629
> > > > > University of Maryland, Baltimore
> > > > > 20 Penn St.
> > > > > Baltimore, MD 21201
> > > > >
> > > > > jalemkul at outerbanks.umaryland.edu | (410) 706-7441
> > > > > http://mackerell.umaryland.edu/~jalemkul
> > > > >
> > > > > ==================================================
> > > > >
> > > > > --
> > > > > Gromacs Users mailing list
> > > > >
> > > > > * Please search the archive at http://www.gromacs.org/
> > > > > Support/Mailing_Lists/GMX-Users_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-users
> > or
> > > > > send a mail to gmx-users-request at gromacs.org.
> > > > >
> > > > --
> > > > Gromacs Users mailing list
> > > >
> > > > * Please search the archive at
> > > > http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_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-users
> or
> > > > send a mail to gmx-users-request at gromacs.org.
> > > >
> > > --
> > > Gromacs Users mailing list
> > >
> > > * Please search the archive at
> > > http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_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-users or
> > > send a mail to gmx-users-request at gromacs.org.
> > >
> > --
> > Gromacs Users mailing list
> >
> > * Please search the archive at
> > http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_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-users or
> > send a mail to gmx-users-request at gromacs.org.
> >
> --
> Gromacs Users mailing list
>
> * Please search the archive at
> http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_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-users or
> send a mail to gmx-users-request at gromacs.org.
>


More information about the gromacs.org_gmx-users mailing list