Molecular Mechanics

For Molecular Mechanics (MM) engines to fit the AtomicInput/Result schema the following convention is used:

  • Method: The force field used such as MMFF94, GAFF, OpenFF-1.0.0.

  • Basis: The typing engine used to find the required paramters.

For all MM computations the input Molecule object must have connectivity and this will not be automatically assigned for you.

Example

>>> mol = qcel.models.Molecule(
>>>     symbols=["O", "H", "H"],
>>>     geometry=[[0, 0, 0], [0, 0, 2], [0, 2, 0]],
>>>     connectivity=[[0, 1, 1], [0, 2, 1]],
>>> )

>>> model = qcel.models.AtomicInput(
>>>     molecule=mol,
>>>     driver="energy",
>>>     model={"method": "openff-1.0.0", "basis": "smirnoff"},
>>> )
>>> ret = qcng.compute(model, "openmm")
>>> ret.return_result
0.011185654397410195

OpenMM

Currently OpenMM only supports the smirnoff typing engine from the openff-toolkit. Currently available force fields are the following:

Method

Basis

smirnoff99Frosst-1.1.0

smirnoff

openff-1.0.0

smirnoff

openff_unconstrained-1.0.0

smirnoff

Other forcefields may be available depending on your version of the openff-toolkit, see their docs for more information.

RDKit

RDKit force fields currently do not require a typing engine and the basis is omitted in all computations. Currently available force fields are the following:

Method

Basis

UFF

None

MMFF94

None

MMFF94s

None

xtb

Experimental access to force fields are available with the xtb engine. Note that the xtb engine will not require nor use a topology information provided in the input schema.

Method

Basis

Reference

GFN-FF

None

10.1002/anie.202004239