xnn.ffnn.models.dreidinglib#

DREIDING parameter library and generation rules.

DREIDING (Mayo, Olafson & Goddard, J. Phys. Chem. 94, 8897, 1990) is a rule-generated force field: instead of tabulating parameters per bond, angle or torsion type, it derives every valence term from a handful of per-atom generators and global constants by hybridization rules.

  • Bonds (eqs 6-9): R0_IJ = R0_I + R0_J - delta with delta = 0.01 A from the per-type bond radii of Table I, and one force constant K(n) = n * 700 (kcal/mol)/A^2 (well depth D(n) = n * 70 kcal/mol for the Morse variant) scaled by the bond order n.

  • Angles (eqs 10-12): the equilibrium angle theta0 depends only on the central atom (Table I) and every angle shares K = 100 (kcal/mol)/rad^2.

  • Torsions (eqs 13-23): the barrier V, periodicity n and equilibrium angle phi0 follow from the hybridizations of the two central atoms and the bond order between them; the barrier is a per-bond total, divided evenly over the dihedrals sharing that central bond (TORSION_RULES, torsion_rule()).

  • Inversions (eqs 28): one spectroscopic umbrella term per listed planar (or stereo) center, all three axis choices averaged with weight 1/3.

  • van der Waals: per-type (R0, D0) for the Lennard-Jones form (eq 31’) or (R0, D0, zeta) for the exponential-6 form (eq 32’), with geometric combination of well depths and arithmetic (LJ default, eq 36c) or geometric combination of radii.

  • Hydrogen bonds (eq 38): an explicit 12-10 term on donor-H…acceptor triplets involving the dedicated H__HB hydrogen type.

The per-atom generators come from the SEAMM dreiding.frc distribution shipped with xnn (variants "dreiding" for Lennard-Jones and "dreiding/X6" for exponential-6 nonbonds), which also carries the SMARTS templates that assign DREIDING atom types to a structure. The global rule constants are the published ones and live here. A library can also be round-tripped through the native JSON format of this module (DreidingLibrary.save() / read_dreiding()) to persist retrained parameters.

Functions

element_of(type_name)

Chemical element implied by a DREIDING type mnemonic.

hybridization(type_name)

Hybridization class of a DREIDING atom type, from its mnemonic.

read_dreiding([spec])

Read a DREIDING library from a .frc variant or a native JSON.

torsion_rule(lib, t_i, t_j, t_k, t_l[, order])

DREIDING torsion rule for one dihedral I-J-K-L (eqs 14-23).

Classes

DreidingLibrary([atom_types, radius, ...])

The per-atom-type generators of a DREIDING parameter set.