# OBForceFieldMMFF94

This class is a partial implementation of the all-atom MMFF94 force field.

References:

- Thomas A. Halgren, J. Comput. Chem., 17, 490-519 (1996).
- Thomas A. Halgren, J. Comput. Chem., 17, 520-552 (1996).
- Thomas A. Halgren, J. Comput. Chem., 17, 553-586 (1996).
- Thomas A. Halgren and Robert B. Nachbar, J. Comput. Chem., 17, 587-615 (1996).
- Thomas A. Halgren, J. Comput. Chem., 17, 616-641 (1996).
- Thomas A. Halgren, J. Comput. Chem., 20, 720-729 (1999).
- Thomas A. Halgren, J. Comput. Chem., 20, 730-748 (1999).

The intent in the future is to produce a full, validated MMFF94 implementation.

## Contents

### Bond Stretching

#### Energy

: bond stretching force constant (mmffbnond.prm)

: ideal bond length (mmffbnond.prm)

: bond length between atoms a and b

: cubic stretching constant (-2.0)

The bond length can be calculated from the coordinates of the atoms and .

#### Parameters

#### Forces

We can also calculate the forces on each atom by calculating the negative gradient.

note: the force is a vector, the energy is a scalar.

We start by calculating the partial derivative with respect to .

For and we find and .

### Angle Bending

: angle bending force constant (mmffang.prm)

: ideal angle (mmffang.prm)

: angle

: cubic bending constant (-0.007)

The angle can be calculated from the coordinates of the atoms , and .

We can also calculate the forces on each atom by calculating the negative gradient.

We start by calculating the partial derivative with respect to .