[gmx-developers] Inacurracies / bug with continuation in first time step

Kutzner, Carsten ckutzne at mpinat.mpg.de
Wed Apr 6 16:27:55 CEST 2022

Dear devs,

I am investigating an issue which surfaced during FMM development.
A while ago, after merging in GROMACS master, one of our unit tests that checks 
that FMM and PME results are the same, started to fail.

The failing test system is a 3651 atom AKE protein with virtual sites.

The reason for the failure are slight (but well above tolerance) differences in 
FMM vs PME electrostatic energy in the first time step when continuation is true.
With .mdp parameter continuation = no, or with a rerun, the tests pass. Also for 
the time steps after the first one, the differences are negligible.

Example (double precision, serial):
Step 0 with E_PME = -68646.6 and E_FMM = -68638.3 (difference 8.3121)  <--- !!!
Step 1 with E_PME = -68651.3 and E_FMM = -68651.2 (difference 0.048572)
Step 2 with E_PME = -68663.8 and E_FMM = -68663.7 (difference 0.0724816)

When setting GMX_DD_SINGLE_RANK=0, the test passes again:
Step 0 with E_PME = -68638.3 and E_FMM = -68638.3 (difference 0.0195857)
Step 1 with E_PME = -68651.3 and E_FMM = -68651.3 (difference 0.0175216)
Step 2 with E_PME = -68663.8 and E_FMM = -68663.7 (difference 0.0181637)

When writing to file the positions x for the PME cases above for step 0 at the
start of do_force(), then sorting and comparing them, there are no differences.

The differences are also showing up when changing from PME to a plain cutoff
Snippets from .xvg output from .edr:
@    xaxis  label "Time (ps)"
@ s0 legend "Coulomb-14"
@ s1 legend "Coulomb (SR)"

With continuation=yes, GMX_DD_SINGLE_RANK=1
    0.000000  37799.296875  -70127.710938
    0.002000  37800.109375  -70292.289062

With continuation=yes, GMX_DD_SINGLE_RANK=0
    0.000000  37799.296875  -70173.804688
    0.002000  37800.085938  -70262.812500

With continuation=no, the .xvg energy results do not depend on the setting of

GROMACS results have changed with commit 01b234357f0d68d5 "Also use DD partitioning in serial".
Coulomb energy for the AKE example using plain cutoffs:
Commit 01b234357f0d68d5: -70127.710938
Commit just before that: -70173.804688

Maybe someone has an idea what could be the cause of this behavior or what
I could do to shed some more light on this.

I can file a bug report and attach my test system if anyone is interested to
make some further checks.


Dr. Carsten Kutzner
Max Planck Institute for Multidisciplinary Sciences
Theoretical and Computational Biophysics
Am Fassberg 11, 37077 Göttingen, Germany
Tel. +49-551-2012313, Fax: +49-551-2012302

More information about the gromacs.org_gmx-developers mailing list