X2top not generating listed interactions correctly

GROMACS version: 2026.1
GROMACS modification: No

Hi,
I am trying to generate the topology for two refrigerant molecules (1233zd and 1234ze) using gmx x2top.
These are my force field files: workflow-refrigerants/example/refrigerants.ff at main · MicPellegrino/workflow-refrigerants · GitHub
And this is the call to x2top:

gmx x2top -f HFO-1234zeE.gro -ff refrigerants -name HFO-1234zeE -o HFO-1234zeE.top -alldih -v

The configuration .gro file is the follwoing:

LIGPARGEN GENERATED GRO FILE
    9
    1UNK    F00    1   0.100   0.100   0.000
    1UNK    C01    2  -0.034   0.100   0.000
    1UNK    H02    3  -0.074   0.100   0.101
    1UNK    C03    4  -0.103   0.100  -0.114
    1UNK    C04    5  -0.251   0.100  -0.121
    1UNK    F05    6  -0.295   0.099  -0.249
    1UNK    F06    7  -0.304  -0.009  -0.060
    1UNK    F07    8  -0.305   0.209  -0.060
    1UNK    H08    9  -0.051   0.100  -0.209
   2.50000   2.50000   2.50000

The resulting bond, angle and dihedral parameters are inconsistent with the values in refrigerants.ff, for example:

[ bonds ]
;  ai    aj funct            c0            c1            c2            c3
    1     2     1  1.340000e-01  4.000000e+05  1.340000e-01  4.000000e+05 
    2     3     1  1.090000e-01  4.000000e+05  1.090000e-01  4.000000e+05 
    2     4     1  1.330000e-01  4.000000e+05  1.330000e-01  4.000000e+05 
    4     5     1  1.480000e-01  4.000000e+05  1.480000e-01  4.000000e+05 
    4     9     1  1.080000e-01  4.000000e+05  1.080000e-01  4.000000e+05 
    5     6     1  1.350000e-01  4.000000e+05  1.350000e-01  4.000000e+05 
    5     7     1  1.360000e-01  4.000000e+05  1.360000e-01  4.000000e+05 
    5     8     1  1.360000e-01  4.000000e+05  1.360000e-01  4.000000e+05

The bond distance bewteen 4 and 5 should be 0.1511 nm instead of 0.148. Where do these numbers come from? They seem completely arbitrary to me. Also, I assume that c2 and c3 are ignored since funct=1. However, c1 (spring constant) seems set to a sort of default value and not the one specified in the FF files.

As a side note, I wonder how gmx x2top can distinguish between atom types that are bonded to atoms with the same periodic table name. For example, I have two types of flourine atoms (FCM and FCT), the former bonded to a CM carbon (alone), while the latter bonded to a CT carbon (with other 2 FCT atoms). They differer in the partial charge and the non-bonded parameters. Since the .n2t file only calls for bonds to determine the topology (i.e. no angles or dihedrals), and the bond length is very similar, x2top mistakenly attributes the parameters of FCM to FCT.

I hope my question is clear. You can have a look to my GitHub repo (GitHub - MicPellegrino/workflow-refrigerants: Workflow for wettability and free energy simulations of refrigerants using GROMACS · GitHub) to replicate the issue.

Regards,

Michele