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§
- UffMinimize
Result - 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.