xnn.hybrid.models.dispersion#

D3(CSO) dispersion for BAMBOO (Schroeder, Creon & Schwabe 2015).

BAMBOO adds a Grimme-D3 dispersion correction in the CSO reformulation (Schroeder et al., J. Chem. Theory Comput. 11, 3163, 2015), which keeps only the C6 term and replaces the Becke-Johnson denominator with a smooth, coordination-independent damping:

E_disp = - sum_{i<j} C6_ij * m_ij / (r_ij^6 + R_c^6)
m_ij   = s6 + a1 / (1 + exp(r_ij - 2.5 * R0_ij))

with R0_ij = sqrt(3 * r2r4_i * r2r4_j) and a fixed inner cutoff R_c = 7.75 bohr. The coordination-number-dependent C6_ij is interpolated exactly as in ordinary D3.

Implementation note: this reuses the standard Grimme-D3 reference tables and the C6/coordination-number machinery already shipped with xnn (xnn.common.models.d3) rather than the upstream dftd3.pt blob, so the dispersion here is not on the machine-precision fidelity path (the paper excludes dispersion from the DFT training set entirely and only adds it during MD, so it never enters the trained BAMBOO weights). It is provided for MD/inference use and is off by default. Distances are handled in bohr and the returned per-atom energy is converted to BAMBOO’s native kcal/mol.

Module Attributes

HARTREE_KCAL_MOL

hartree -> kcal/mol (bytedance/bamboo utils/constant.py).

Classes

D3CSODispersion([s6, a1, rc_bohr, ...])

Grimme D3(CSO) dispersion energy on a neighbour graph.