# [gmx-users] Velocity Verlet integrator

Mario Fernández Pendás mariofp77 at gmail.com
Wed Oct 15 16:05:28 CEST 2014

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
> > >> 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.
>