graphdot.graph.adjacency.atomic module

class graphdot.graph.adjacency.atomic.AtomicAdjacency(shape='tent1', length_scale='vdw_radius', zoom=1.0)[source]

Bases: object

Converts interatomic distances into edge weights using the equation \(a(i, j) = w(\frac{\lVert\mathbf{r}_{ij}\rVert}{\sigma_{ij}})\), where \(w\) is a weight function that generally decays with distance, and \(\sigma_{ij}\) is a length scale parameter betweens atom \(i\) and \(j\) and loosely corresponds to the typically distance of interatomic interactions between the atoms.

Parameters:
  • shape (str or callable) –

    If string, must match one of the following patterns:

    • tent[n]: e.g. tent1, teng2, etc. Tent.
    • gaussian: Gaussian.
    • compactbell[a,b]: e.g. compactbell4,2, CompactBell.
  • length_scale (str) –

    The atomic property to be used to determine the range and strength of edges to be constructed between pairs of atoms. The strength will generally fall to zero at roughly a distance 3 times the length scale. Possible values are:

    • atomic_radius
    • atomic_radius_rahm
    • vdw_radius (default)
    • vdw_radius_bondi
    • vdw_radius_truhlar
    • vdw_radius_rt
    • vdw_radius_batsanov
    • vdw_radius_dreiding
    • vdw_radius_uff
    • vdw_radius_mm3
    • vdw_radius_alvarez
    • covalent_radius_cordero
    • covalent_radius_pyykko
    • covalent_radius_bragg
    • covalent_radius_pyykko_double
    • covalent_radius_pyykko_triple
    • metallic_radius
    • metallic_radius_c12
  • zoom (float) – A zooming factor to be multiplied with the length scales to extend the range of interactions.
__call__(n1, n2, r)[source]

compute adjacency between atoms

Parameters:
  • n1 (int) – Atomic number of the element
  • n2 (int) – Same as n1
  • r (float) – Distance between the two atoms
Returns:

A non-negative weight

Return type:

float

cutoff(elements)[source]
graphdot.graph.adjacency.atomic.copying_lru_cache(*args, **kwargs)[source]
graphdot.graph.adjacency.atomic.get_length_scales(*args, **kwargs)[source]
graphdot.graph.adjacency.atomic.get_ptable(*args, **kwargs)[source]