mod localkey

module localkey

Local two-shell topology keys (k-ART). Local topology keys, after k-ART.

A global contact-graph hash treats every isomer as unknown. k-ART hashes the neighbour graph of one atom (the atom and everything within two contact steps). Icosahedral isomers share those local keys; a Marks decahedron adds fivefold-join keys the icosahedral catalogue does not have.

The cutoff is a multiple of the structure’s own median nearest-neighbour distance, the same scale crate::graphkey uses for the global key.

Variables

const SHELLS: usize

Contact shells around the atom. Shrunk when a two-shell ball is the whole cluster, so LJ13 still distinguishes centre from vertex.

Functions

fn bag_key(keys: &[u64]) -> u64

Hash of the sorted multiset of local keys: the system’s local-topology bag.

fn bag_overlap(a: &[u64], b: &[u64]) -> usize

How many keys of a also appear in b (multiset intersection size).

fn local_key(x: ArrayView1<f64>, i: usize, cutoff: f64) -> u64

Canonical key of the two-shell contact graph around atom i.

fn local_keys(x: ArrayView1<f64>, cutoff: f64) -> Vec<u64>

Local key of every atom, in atom order.

fn median_nn(x: ArrayView1<f64>) -> f64

Median nearest-neighbour distance of x.