Skip to main content

Module uff

Module uff 

Source
Expand description

Universal Force Field (UFF) — geometry minimisation for all elements.

UFF is a purely rule-based force field covering the full periodic table (Rappé et al. J. Am. Chem. Soc. 1992, 114(25), 10024-10035). Unlike MMFF94 — which is parameterised only for common organic/heteroatoms — UFF can handle metal-ligand complexes, organometallics, and any covalent structure.

§Implemented energy terms

  • Bond stretching: harmonic with natural bond order correction
  • Angle bending: Fourier cosine series (C_0 + C_1·cos + C_2·cos(2θ))
  • van der Waals: Lennard-Jones (12-6) with UFF combining rules

Torsion and inversion terms are intentionally omitted here; they are less critical for initial 3D placement and can be added incrementally.

§Usage

use chematic_ff::{assign_uff_types, uff_total_energy, minimize_uff};

let types = assign_uff_types(&mol);
let coords: Vec<[f64; 3]> = ...; // initial geometry
let result = minimize_uff(&mol, &types, coords, 500);

Structs§

UffMinimizeResult
Result of UFF minimisation.

Enums§

UffType
UFF atom type, following the notation in Rappé 1992 Table 1.

Functions§

assign_uff_types
Assign a UFF atom type to each heavy atom in mol.
minimize_uff
Minimise UFF energy using steepest descent (convergence criterion: RMS gradient < 0.01 kcal/mol/Å).
uff_total_energy
Compute UFF total energy (bond + angle + vdW) in kcal/mol.