[gmx-users] Saving velocities of one atom at every timestep

Mark Abraham mark.j.abraham at gmail.com
Mon Mar 31 11:12:23 CEST 2014


On Mar 31, 2014 12:20 AM, "Justin Lemkul" <jalemkul at vt.edu> wrote:
>
>
>
> On 3/30/14, 5:40 PM, Andrew DeYoung wrote:
>>
>> Hi,
>>
>> I have a rather large system (~10,000 atoms) -- at least, I consider it
>> rather large since I'm using a cluster, not a supercomputer.
>>
>> I want to save the velocities of a single atom of interest at every
>> timestep, so that I can use g_velacc to calculate the velocity
>> autocorrelation function.  I only care about the single atom of interest;
>> I'm not interested in the coordinates, velocities, and forces of the
other
>> many thousands of atoms in my system.
>>
>> In other words, I have enough disk space to save the velocities of the
atom
>> of interest for every timestep for, say, several millions of steps.  But
I
>> don't have enough space to save the velocities of all 10,000 atoms for
every
>> timestep for several millions of steps.
>>
>> I'm running Gromacs version 4.5.5.  Setting nstxtcout = 1 allows one to
save
>> the coordinates of the groups specified in xtc-grps to the xtc
trajectory.
>> Is there any built-in way to save velocities -- rather than coordinates
--
>> for only a specified group (a single atom, in this situation)?
>>
>
> No such mechanism exists.
>
>
>> Or would it be possible to use the xtc to save the coordinates of the
atom
>> of interest at every timestep, and then somehow convert these
coordinates to
>> velocities so that I can use g_velacc?  I'm using the leapfrog integrator
>> (integrator = md).
>>
>
> Possibly, but recall that with a leap-frog integrator, velocities and
positions do not co-exist.  Velocities are interpolated from t+dt/2 and
t-dt/2.  That's true whether or not you back-calculate the velocities or
save them on the fly, though.
>
> I can think of two alternatives:
>
> 1. Break your calculation into segments.  Run mdrun for as long as disk
space will allow, stop and run trjconv on the .trr file to save only the
atom of interest, delete the full trajectory, and use tpbconv to extend as
you would any other simulation.  Loop to repeat.  You'll lose a bit of
performance, but not as bad as the I/O cost of writing to a trajectory
every single step.

On some clusters, a queue exists precisely for this kind of postprocessing,
so that you can chain the queue requests while not wasting the resources of
the cluster while doing a serial call to trjconv. Ask and you may receive!

Mark

> 2.  You can save the coordinates of interest using xtc-grps and set
nstxout=nstfout=0 and nstvout=1 to reduce overall trajectory volume.
 You'll still get the velocities of all the atoms, but you'll still have a
compressed trajectory with the coordinates and the full-precision
velocities at every time step.
>
> -Justin
>
> --
> ==================================================
>
> Justin A. Lemkul, Ph.D.
> Ruth L. Kirschstein NRSA Postdoctoral Fellow
>
> Department of Pharmaceutical Sciences
> School of Pharmacy
> Health Sciences Facility II, Room 601
> 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.


More information about the gromacs.org_gmx-users mailing list