xnn.hybrid.models.dispersion.D3CSODispersion#

class xnn.hybrid.models.dispersion.D3CSODispersion(s6=1.0, a1=0.86, rc_bohr=7.75, disp_cutoff=10.0, references='2010')[source]#

Bases: Module

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

Parameters:
  • s6 (float, optional) – Global C6 scaling, by default 1.0 (upstream DFTD3CSO).

  • a1 (float, optional) – Damping amplitude, by default 0.86 (upstream DFTD3CSO).

  • rc_bohr (float, optional) – Inner-damping cutoff R_c in bohr, by default 7.75.

  • disp_cutoff (float or None, optional) – Real-space cutoff in Angstrom for the coordination-number damping; None disables it. Default 10.0.

  • references (str, optional) – D3 reference systems, "2010" (default; Grimme’s original tables, as in upstream BAMBOO) or "2024" (current simple-dftd3 references, Fr-Pu re-parametrized); see xnn.common.models.d3.legacy_c6_table().

Variables:

rc_bohr (s6, a1,) – The damping parameters above.

forward(atomic_numbers, edge_vec, edge_index, n_atoms)[source]#

Per-atom D3(CSO) dispersion energy, in kcal/mol.

Parameters:
  • atomic_numbers (Tensor) – Per-atom atomic numbers (N,).

  • edge_vec (Tensor) – Edge displacement vectors (E, 3) in Angstrom (both directions).

  • edge_index (Tensor) – Edge index (2, E) as [src, dst].

  • n_atoms (int) – Number of atoms N.

Returns:

Per-atom dispersion energy (N,) in kcal/mol.

Return type:

Tensor