# [gmx-users] Velocity Verlet integrator

Michael Shirts mrshirts at gmail.com
Wed Oct 15 15:52:24 CEST 2014

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