[gmx-users] Re: mdrun -rerun question

Michael Shirts mrshirts at stanford.edu
Sat Dec 20 01:32:00 CET 2003


OK, so I diagnosed the problem, or at least most of it.

In the .edr file, most of the statistics are for step i.  However, the
dispersion correction and the box size are for step i+1, which isn't correct.
This is because the mdebin structure (which .edr comes from) is updated
after the box is updated, and the dispersion correction depends on the box.

The remedy is (mostly) simple.  A new structure of type tensor called "oldbox"
needs to be declared, and parm->box should be copied over near the beginning
of each step.  This oldbox, instead of parm->box, should be fed into
upd_mdebin, and into calc_dispcorr.  This appears to take care of almost
everything, but there be more subtleties that I'm missing, and it couldn't
hurt to see if there's anything else that's accidentally for step i+1.  The
one thing that's left is that at step 0 and at the last step, the box and the
dispersion are still the same between the original .edr and the rerun .edr,
and I haven't been able to figure out why.  But at every other step, they
are now the same.  If anybody else has any suggestions, let me know.

Cheers,
Michael Shirts
Stanford Chemistry




On Tue, 16 Dec 2003, Michael Shirts wrote:

>
> I'm trying to understand what the -rerun option does exactly.
>
> So, here's my problem.  I ran mdrun, outputting a .trr with coordinates every
> 500 steps (0.002 ps step length, 100 ps total).  I then used g_energy and the
> .edr file to generate an .xvg with a number of observables (listed below).  I
> then ran a mdrun -rerun using the output .trr file, generating a new .edr
> file, and a new .xvg.  All programs were run complied in double precision.  I
> then took the difference between the numbers in the two files, and got the
> following results.  Why any difference?  Shouldn't it produce the same
> energies?
>
> Some particularly odd things -- why is the box length different between the
> two .edrs?  If it's just taking snapshots, the box should be the same at every
> step.  Instead, there's a difference.  Secondly, the differences are multiples
> of the same number, which is some negative power of two.  For example, in the
> LJ energy column, all energies are different by multiples of 1/2048.  In the
> short range coulomb column, the multiples appear to be of 1/512 (I'm just
> giving the first 20 here - I generated 100 ps worth).  Only the box length
> (and therefore the dispersion correction, which is proportional to the volume,
> and the potential energy, which includes the dispcorr) isn't following this
> pattern.  Is this an artifact of the .edr format?  If so, why is it appearing
> at such a low resolution?  The total LJ energy is approximately 6000 kJ/mol,
> so these errors are of order 10^-6 or 10^-7, much too low for double
> precision.  And why is it different, if it's going through the same energy
> routines?  I guess I could understnd some sort of rounding error for the
> energies, but the box size error is of order 10^-4; a box problem I might
> account for the energy differences, too, as the total energies would change as
> the periodic boundary conditions change.
>
> Any suggestions?
>
> Also, the "averages" output of g_energy from a rerun file are incorrect, as
> they appear to have the numerator of the coordinate output frequency, but the
> denominator of the original run, giving incorrect averages for these
> snapshops.
>
>
> Thanks,
> Michael Shirts
>
> Differences between .edr's
>
>  time(ps)  LJ(SR)     DispCorr  Coulomb(S) Coulomb(L)  Potential   Box-X
>  0.00000   0.004394   0.000030  -0.007813   0.000000   0.000000   0.000000
>  1.00000   0.000000  -0.090805  -0.003907  -0.000976  -0.089844  -0.000357
>  2.00000  -0.001953  -0.004547  -0.001953  -0.000976  -0.007812  -0.000018
>  3.00000  -0.001465  -0.064651   0.005859   0.000976  -0.062500  -0.000265
>  4.00000  -0.003907   0.104446   0.000000  -0.000976   0.121093   0.000409
>  5.00000   0.003418   0.174408  -0.003906   0.000977   0.175781   0.000675
>  6.00000  -0.003418   0.029098   0.001953   0.000000   0.027344   0.000115
>  7.00000   0.001953   0.077423  -0.001953   0.000976   0.078125   0.000307
>  8.00000   0.000488  -0.055603  -0.001953   0.000000  -0.054687  -0.000223
>  9.00000   0.002441   0.052551   0.000000   0.000976   0.054687   0.000207
> 10.00000   0.000000  -0.132507  -0.003906   0.000000  -0.113282  -0.000518
> 11.00000  -0.001953   0.001907   0.007812   0.000976   0.007813   0.000008
> 12.00000  -0.001953  -0.029938   0.003906   0.000000  -0.027343  -0.000122
> 13.00000  -0.004883  -0.017075   0.000000   0.000000  -0.019531  -0.000067
> 14.00000  -0.003906  -0.049790   0.000000   0.000000  -0.050781  -0.000196
> 15.00000  -0.003418   0.042145   0.007812   0.001953   0.046875   0.000168
> 16.00000   0.002930   0.065643   0.000000   0.000976   0.070313   0.000260
> 17.00000   0.003418   0.003525  -0.001953  -0.000976   0.007812   0.000014
> 18.00000   0.004394   0.092026  -0.003907   0.000000   0.093750   0.000371
> 19.00000  -0.001464  -0.082428   0.003907   0.000977  -0.078125  -0.000327
> 20.00000  -0.000489  -0.103592  -0.003907  -0.000976  -0.105469  -0.000410
>
>
>
>


Cheers,
Michael




More information about the gromacs.org_gmx-users mailing list