[gmx-developers] Double precision restarts are exact, single precision are not in gromacs 3.2.1
spoel at xray.bmc.uu.se
Thu Jul 21 19:23:17 CEST 2005
On Thu, 2005-07-21 at 11:52 -0500, Jay Mashl wrote:
> On Fri, 22 Jul 2005, Mark Abraham wrote:
> > After posting twice to gmx-users about this problem and apparently being
> > ignored, I've done yet more testing and discovered a clear difference in the
> > way single precision and double precision gromacs handle MD restarts in
> > version 3.2.1 (using Berendsen thermostat and barostat, and PME, on Pentium 4
> > architecture).
Sorry, I don't have answers to all questions. Berk is the person to
answer this, but apparently he is offline...
> > Single precision restarts using the previous run's trajectory (.trr) and
> > energy (.edr) files to obtain the configuration and other information (and
> > using unconstrained_start = yes, and gen_vel = no in the .mdp file to make
> > sure that the old configuration is preserved) do in fact reproduce the
> > configuration exactly, in that the energy components calculated by the force
> > field are identical in Step 0 of the restart with those of the final Step in
> > the previous run. However the total pressure is different, and by 10 steps
> > later (my next output interval), all energy components as well as the
> > pressure have diverged from those obtained for a run. This suggests that
> > values used to calculate the total pressure (e.g. the virial) are not being
> > preserved correctly across the restart, and this is subsequently perturbing
> > the system, at least through the barostat.
> > However double precision gromacs performs "correctly" - all energy components
> > and the total pressure are reproduced correctly in Step 0 of the restart, and
> > future steps agree exactly (within output precision over only a few tens of
> > MD steps) with those obtained from a run that extended over the restart time
> > from the original starting point.
Is your original trr in double? In that case try an original trr in
> > This suggests that something is being written or read at an inappropriate
> > precision in the .edr files. Can this be brought to the attention of somebody
> > who knows how that code is supposed to work, please? They may wish to see if
> > they can reproduce my observations & work out what is wrong.
> The file include/types/energy.h has a mixture of real and double types for
> variables that accumulate energy data. Maybe the doubles when changed to reals
> might work.
Don't meddle with these vars...
It could be that in order to retain precision one needs more double
David van der Spoel, PhD, Assoc. Prof., Molecular Biophysics group,
Dept. of Cell and Molecular Biology, Uppsala University.
Husargatan 3, Box 596, 75124 Uppsala, Sweden
phone: 46 18 471 4205 fax: 46 18 511 755
spoel at xray.bmc.uu.se spoel at gromacs.org http://xray.bmc.uu.se/~spoel
More information about the gromacs.org_gmx-developers