Coordination number: EEQ#

Calculation of coordination number for the EEQ model.

tad_mctc.ncoord.eeq.cn_eeq(numbers, positions, counting_function=<function erf_count>)[source]#

Compute fractional coordination number using an exponential counting function.

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

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

  • counting_function (CountingFunction, optional) – Counting function used for the EEQ coordination number. Defaults to the error function counting function tad_mctc.ncoord.count.erf_count().

Returns:

Coordination numbers for all atoms (shape: (..., nat)).

Return type:

Tensor

tad_mctc.ncoord.eeq.cn_eeq_en(numbers, positions, counting_function=<function erf_count>)[source]#

Compute the electronegativity-weighted coordination number using the Pauling scale stored in tad_mctc.data.en.

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

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

  • counting_function (CountingFunction, optional) – Counting function used for the EEQ coordination number. Defaults to the error function counting function tad_mctc.ncoord.count.erf_count().

Returns:

Electronegativity-weighted coordination numbers for all atoms (shape: (..., nat)).

Return type:

Tensor

tad_mctc.ncoord.eeq.cut_coordination_number(cn, cn_max=8.0)[source]#

Apply the smooth logarithmic cutoff used throughout mctc projects.

Parameters:
  • cn (Tensor) – Coordination numbers.

  • cn_max (Tensor | float | int, optional) – Maximum coordination number. Large values disable the cutoff.

Returns:

Cut coordination numbers.

Return type:

Tensor