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
Keyword |
Brief |
---|---|
An array that contains the xyz coordinates of the molecular system |
|
An array that contains the atomic symbols of each atom specified |
|
An array of charges for each fragment, for a single molecule, this is a one element array [0] |
|
Similar to fragment_formal_charges, an array of multiplicities, or a one element array for non-fragmented calculation |
|
An array of arrays, each containing the indices of atoms belonging to a fragment. These indices are ZERO-INDEXED |
|
An array of three element arrays that specify the connectivity of the molecule. |
|
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.