Description of the file

The file contains the training set data and tells the program how to calculate the cost function \(F = \Sigma ((y_i - y^{ref}_i) / acc_i)^2\) , which can be used to optimize the force field parameters. The uses molecule identifiers, or keys, defined in the DESCRP field of the geo file (in BGF format), or in the file, to compare force field derived geometries and energy differences to the reference values. The has a free format as far as numbers concerned, although it does require that fields are space-separated. Besides, the “-“, “+” and “/” symbols have a special meaning in the file and should not be used in identifiers. The file is divided into 5 sections listed below. Each section begins with a start keyword and ends with the corresponding end keyword. The words in “CELL PARAMETERS” and “ENDCELL PARAMETERS” must be separated by exactly one space.

Sections format

Block name Start keyword End keyword Format
charges CHARGE ENDCHARGE Key Acc Atom Ref
geometries GEOMETRY ENDGEOMETRY Key Acc [Atom1 [Atom2 [Atom3 [Atom4]]] Ref]
forces FORCES ENDFORCES Key Acc Atom Ref
energy differences ENERGY ENDENERGY Acc [+-] Key1/n1 … [+-] Key5/n5 Ref
heat of formation HEATFO ENDHEATFO Key Acc Ref

Key” is the molecule name from the geo file. “Atom” is an atom index in the corresponding molecule. “Acc” is a value of the target accuracy desired for the given error function contribution. This value is often called “weight” although in practice it is 1/weight. “Ref” is the reference value.

Format description

In the all sections except “ENERGY” each data line starts with the structure identifier (the Key), followed by the “Acc” of the data point. This is followed by a type identifier. Each section contains following data entries:


    In the CHARGE section the type identifier is the number of the atom in the molecule and the reference value is its charge. Example:

    #Key     Acc Atom  Ref
    chexane 0.1    1   -0.15

    In the GEOMETRY section the type ID is the list of atoms defining an internal coordinate (two for an interatomic distance, three for a valence and four for a torsion angle). When there is only one atom index specified, then the Eucledian distance for the given atom between the two geometries is calculated. When the index is -1 then an average Eucledian distance quantity between the two geometries is used instead. Please note that any reference value different from zero for the Eucledian distances does not make much sense. Besides, since these distances are computed in the Cartesian coordinates, which means that a simple translation of the molecule as a result of energy minimization may result in large Eucledian distances for otherwise similar geometries. If there is no identifier provided then it means that the ReaxFF RMS force will be compared with the reference (which should probably be zero in most cases). Example:

    #Key      Acc At1 At2 At3 At4  Ref
    chexane  0.01   1              0.0    # Eucledian distance between atom in the reference and the trial structure
    chexane  0.01  -1              0.0    # Average Eucledian distance between atoms in the two structures
    chexane  0.01   1   2          1.5    # Interatomic distance
    chexane  1.00   1   2   3      120.0  # Valence angle
    chexane  1.00   1   2   3   4  180.0  # Torsion angle
    chexane  1.00                  0.0    # RMS force

    In the CELL PARAMETERS section the type IDs are names of the corresponding lattice parameters. Example:

    #Key         Acc   Type     Ref
    chex_cryst  0.01    a      11.20
    chex_cryst  0.01    b      11.20
    chex_cryst  0.01    c      11.20
    chex_cryst  0.01    alpha  90.00
    chex_cryst  0.01    beta   90.00
    chex_cryst  0.01    gamma  90.00

    The HEATFO section does not require a type ID as compares the ReaxFF heat of formation with the reference value. Example:

    #Key      Acc   Ref
    methane  2.00 -17.80

    This section allows comparison of ReaxFF energy differences between structures to the reference data. In this case, each data line starts with the Acc of the data point, followed by up to five operator/identifier/divider parts and finishes with the reference value. The operator is either ‘+’ or ‘-‘ (‘+’ is the default). The energy associated with the identifier is divided by the divider, allowing comparison of condensed structures to monomers. The ‘/’ character in the ENERGY section data lines is optional. Example:

    #Acc op1  Key1  n1 op2  Key2   n2     DeltaE
    1.5   + butbenz/1  -  butbenz_a/1     -90.00
    1.5   + butbenz/1  -  butbenz_b/1     -71.00
    1.5   + butbenz/1  -  butbenz_c/1     -78.00