[gmx-users] gmxcheck and GROMOS96 bonds

Reid Van Lehn rvanlehn at gmail.com
Tue Jan 8 16:56:18 CET 2013

Hi Gromacs users,

I was using gmxcheck to check a simple trajectory of surfactants, and get
many errors of the type "Distance between atoms X and Y is 0.153, should be
0.023" where the actual distance is always approximately correct and the
"correct" value is the square of the actual distance. This always occurs
for G96 type bonds, where I am defining the bonds using the macros in the
ffbonded.ff file for the gromos53a6.ff force field (e.g. gb_27 in that
example). A typical line from my topology is then:

[ bonds ]
3   4   2   gb_27

I also noticed the same errors when using gmxcheck on the output of the
energy minimization in Justin Lemkul's KALP-15 tutorial, which also uses
GROMOS96 bonds. I did not get errors for other steps in that tutorial,
presumably because the bonds are constrained using LINCs.

I am using Gromacs 4.5.5 and it appears that the relevant lines from the
source code in gmxcheck.c are:

switch (ftype) {
    case F_BONDS:
    case F_G96BONDS:
      b0 = idef->iparams[type].harmonic.rA;
    case F_MORSE:
      b0 = idef->iparams[type].morse.b0;
    case F_CUBICBONDS:
      b0 = idef->iparams[type].cubic.b0;
    case F_CONSTR:
      b0 = idef->iparams[type].constr.dA;

It's not clear to me why b0 would be squared here since the switch
statement doesn't look to discriminate between function 1 and function 2
bonds (if I interpret this correctly). Do you think I have something
incorrectly defined in my topology, or does gmxcheck not correctly process
G96 bonds? Since the actual bond lengths look correct I'm not too worried
about it, but I want to resolve any errors if they do exist since right now
gmxcheck cannot really be used to find actual bonding errors. I apologize
if this is something obvious that I missed as I am a beginner in Gromacs.

Thank you and please let me know if more information is necessary to help
figure this out!

More information about the gromacs.org_gmx-users mailing list