Confusion regarding hbond output index (-hbn)

GROMACS version: 2020.4
GROMACS modification: No
I ran a simulation of 1000 TIP4P2005 water using OPLSAA. Looking at the index file outputted by -hbn I have several questions. Google Drive Link

Output from the calculation:
Select a group: 2
Selected 2: ‘TIP4P’
Select a group: 2
Selected 2: ‘TIP4P’
Calculating hydrogen bonds in TIP4P (4000 atoms)
Found 1000 donors and 1000 acceptors
Making hbmap structure…done.
Reading frame 0 time 0.000
Will do grid-search on 7x7x7 grid, rcut=0.34999999
Frame loop parallelized with OpenMP using 8 threads.
Last frame 5000 time 50000.000
Found 499496 different hydrogen bonds in trajectory
Found 499500 different atom-pairs within hydrogen bonding distance
Merging hbonds with Acceptor and Donor swapped

  • Reduced number of hbonds from 499496 to 499496
  • Reduced number of distances from 499500 to 499500
    Average number of hbonds per timeframe 1832.586 out of 500000 possible

In the hbonds section of the index file it lists the combinations of donor- hydrogen- acceptor.
For each oxygen it lists combinations with one hydrogen but not the other. Why is this, and does that mean the number of possible bonds calculated is wrong?

I noticed 500,000= (1000^2)/2 and 499,500= (1000*999)/2. Is that how these were calculated? Why are they different?
For the number 499,496 is that because some combinations never appear during the simulation?

Did you try to run gmx hbond with the option -merge no.
The default is -[no]merge (yes), that means that H-bonds between the same donor and acceptor, but with different hydrogen are treated as a single H-bond.
Best regards

I ran one with -merge no and the other hydrogens are now showing in the hbn file, but the average and total possible of number of bonds are exactly the same, meaning the “missing” hydrogens were not causing an error. Thanks for the help.