topologies

The “topologies” object in the json is an array of “topology” objects. Each “topology” contains the key aspects of the molecule or molecules you wish to study. Inside a “topology” the following fields are specified

topology

Molecular Data keywords

Keyword

Brief

geometry

An array that contains the xyz coordinates of the molecular system

symbols

An array that contains the atomic symbols of each atom specified

fragment_formal_charges

An array of charges for each fragment, for a single molecule, this is a one element array [0]

fragment_multiplicities

Similar to fragment_formal_charges, an array of multiplicities, or a one element array for non-fragmented calculation

fragments

An array of arrays, each containing the indices of atoms belonging to a fragment. These indices are ZERO-INDEXED

connectivity

An array of three element arrays that specify the connectivity of the molecule.

xyz

A string that points to a standard format xyz file to use in place of the geometry and symbols structures. It is compatible with the fragmentation keywords.

geometry

An array that contains the xyz coordinates of the topology. The coordinates are arranged per atom, for example:

"geometry": [
  -4.3997, 1.0764, 7.7009,   // atom 0 -> (x0,y0,z0)
  -3.9597, 0.2664, 7.3109,  // atom 1 -> (x1,y1,z1)
  -4.4297, 0.9964, 8.7009  // atom 2 -> (x2,y2,z2)
],

symbols

An array that contains the atomic symbols of each atom specified. For example:

"symbols": ["O", "H", "H"]

fragment_formal_charges

An array of charges for each fragment, for a single molecule, this is a one element array. This field is not required by default. If not specified, the calculation will default to a charge of 0.

{
  "topologies": [
    {
      "geometry": [
        -4.3997, 1.0764, 7.7009,
        -3.9597, 0.2664, 7.3109,
        -4.4297, 0.9964, 8.7009
      ],
      "symbols": ["O", "H", "H"],
      "fragment_formal_charges": [0]
    }
  ]
}

fragment_multiplicities

Similar to fragment_formal_charges, an array of multiplicities, or a one element array for non-fragmented calculation similar to the fragment_formal_charges. This field is not required by default. If not specified, the calculation will assume a singlet.

{
  "topologies": [
    {
      "geometry": [
        -4.3997, 1.0764, 7.7009,
        -3.9597, 0.2664, 7.3109,
        -4.4297, 0.9964, 8.7009
      ],
      "symbols": ["O", "H", "H"],
      "fragment_formal_charges": [0],
      "fragment_multiplicities": [1]
    }
  ]
}

fragments

An array of arrays, each containing the indices of atoms belonging to a fragment. These indices are ZERO-INDEXED. For example, if we had five water molecules, with one water molecule per fragment:

"fragments": [
  [ 0, 1, 2 ], [ 3,4,5 ],[ 6,7,8 ], [9,10,11 ], [12,13,14]
],

connectivity

An array of three element arrays that specify the connectivity of the molecule. The array represents:

[atom_index_1, atom_index_2, bond_order]

The bond orders can be:

  • Single bond (1)

  • Double bond (2)

  • Triple bond (3)

The connectivity is not needed unless the calculation contains fragments that are connected via a covalent bond. For example:

{
"topologies": [
  {
          "geometry": [
      1.1851, -0.0039, 0.9875,
      0.7516, -0.0225, -0.0209,
      1.1669, 0.833, -0.5693,
      1.1155, -0.9329, -0.5145,
      -0.7516, 0.0225, 0.0209,
      -1.1669, -0.8334, 0.5687,
      -1.1157, 0.9326, 0.5151,
      -1.185, 0.0044, -0.9875,
      1.1851, 1.9961, 1.9875,
      0.7516, 1.9775, 0.9791,
      1.1669, 2.833, 0.4307,
      1.1155, 1.0671, 0.4855,
      -0.7516, 2.0225, 1.0209,
      -1.1669, 1.1666, 1.5687,
      -1.1157, 2.9326, 1.5151,
      -1.185, 2.0044, 0.0125
    ],
    "symbols": [
      "H",
      "C",
      "H",
      "H",
      "C",
      "H",
      "H",
      "H",
      "H",
      "C",
      "H",
      "H",
      "C",
      "H",
      "H",
      "H"
    ]
    "fragments": [
      [0, 1, 2, 3],
      [4, 5, 6, 7],
      [8, 9, 10, 11],
      [12, 13, 14, 15]
    ],
    "connectivity": [
      [1, 4, 1],
      [9, 12, 1]
    ],
    "fragment_formal_charges": [0, 0, 0, 0]
  }
]
}

This system has two ethanes which are fragmented across the C-C bond. The “connectivity” signals that there’s a single bond between atom indices 1 and 4, hence [1,4,1].

The fragmentation algorithm will iterate across the fragment list and check with the connectivity, if there’s a bond being broken between two fragments, it will cap each empty valence with a hydrogen. At the end of the fragmentation calculation this Hydrogen caps are automatically subtracted out.

xyz

A string that points to a standard format xyz file to use in place of the geometry and symbols structures. It is compatible with the fragmentation keywords.