Dispersion: 3-body terms#

Implementation of the 3-body Axilrod-Teller-Muto dispersion terms.

\[\begin{split}E_\text{disp}^{(3), \text{ATM}} &= \sum_\text{ABC} E^{\text{ABC}} f_\text{damp}\left(\overline{R}_\text{ABC}\right) \\ E^{\text{ABC}} &= \dfrac{C^{\text{ABC}}_9 \left(3 \cos\theta_\text{A} \cos\theta_\text{B} \cos\theta_\text{C} + 1 \right)} {\left(r_\text{AB} r_\text{BC} r_\text{AC} \right)^3} \\ f_\text{damp} &= \dfrac{1}{1+ 6 \left(\overline{R}_\text{ABC}\right)^{-16}}\end{split}\]
class tad_dftd4.dispersion.threebody.ATM(*, damping_fn=<tad_dftd4.damping.functions.ZeroDamping object>, charge_dependent=False)[source]#

D4’s Axilrod-Teller-Muto dispersion term. - C9 coefficients are approximated from C6 coefficients - Becke–Johnson cutoff radii (a1 * sqrt(3.0 * r4r2) + a2) - zero damping

\[\begin{split}E_\text{disp}^{(3), \text{ATM}} &= \sum_\text{ABC} E^{\text{ABC}} f_\text{damp}\left(\overline{R}_\text{ABC}\right) \\ E^{\text{ABC}} &= \dfrac{C^{\text{ABC}}_9 \left(3 \cos\theta_\text{A} \cos\theta_\text{B} \cos\theta_\text{C} + 1 \right)} {\left(r_\text{AB} r_\text{BC} r_\text{AC} \right)^3} \\ f_\text{damp} &= \dfrac{1}{1+ 6 \left(\overline{R}_\text{ABC}\right)^{-16}}\end{split}\]
Parameters:
calculate(numbers, positions, param, cn, model, q, r4r2, rvdw, cutoff)[source]#

Evaluate the energy for the dispersion term.

Parameters:
abstract get_c9(model, cn, q)[source]#

Approximate or exact C9 coefficients.

Parameters:
Return type:

Tensor

abstract get_radii(param, r4r2, rvdw)[source]#

Compute critical radii used in damping function.

Parameters:
Return type:

Tensor

charge_dependent: bool#

Whether the term is charge-dependent, i.e., requires atomic charges for the calculation.

damping_fn: Damping#

Damping function to be used for the dispersion term.

tad_dftd4.dispersion.threebody.get_atm_dispersion(numbers, positions, c9, radii, cutoff, damping_function=<tad_dftd4.damping.functions.ZeroDamping object>, s9=1.0, alp=16.0)[source]#

Axilrod-Teller-Muto dispersion term.

Parameters:
  • numbers (Tensor) – Atomic numbers for all atoms in the system of shape (..., nat).

  • positions (Tensor) – Cartesian coordinates of all atoms (shape: (..., nat, 3)).

  • c9 (Tensor) – Atomic C9 dispersion coefficients.

  • radii (Tensor) – Pairwise critical radii for all atom pairs (shape: (..., nat, nat)).

  • cutoff (Tensor) – Real-space cutoff.

  • damping_function (Damping, optional) – Damping function to use. Defaults to zero_damping().

  • s9 (Tensor, optional) – Scaling for dispersion coefficients. Defaults to 1.0.

  • alp (Tensor, optional) – Exponent of zero damping function. Defaults to 14.0.

Returns:

Atom-resolved ATM dispersion energy.

Return type:

Tensor

Parameters: