eon.geometry.neighbors

Neighbor lists via vesin (PBC-aware).

Historically eOn used a Python sweep-and-prune or an O(N²) brute loop. Both paths now go through :class:vesin.NeighborList, which is the supported geometry kernel for pair finding. The brute flag is retained for API compatibility but no longer selects a different algorithm.

Module Contents

Functions

neighbor_list

Return neighbors within cutoff for each atom (PBC, full undirected list).

brute_neighbor_list

Alias of :func:neighbor_list (historical name).

neighbor_list_vectors

Neighbor list with minimum-image vectors from center → neighbor.

coordination_numbers

least_coordinated

Indices of free atoms with the lowest coordination number.

Data

API

eon.geometry.neighbors.StructureLike

None

eon.geometry.neighbors.neighbor_list(p: eon.geometry.neighbors.StructureLike, cutoff: float, brute: bool = False) List[List[int]]

Return neighbors within cutoff for each atom (PBC, full undirected list).

Parameters

p Structure with .r (N,3) and .box (3,3). cutoff Pair cutoff distance. brute Ignored; kept so callers using config.comp_brute_neighbors need no change.

eon.geometry.neighbors.brute_neighbor_list(p: eon.geometry.neighbors.StructureLike, cutoff: float) List[List[int]]

Alias of :func:neighbor_list (historical name).

eon.geometry.neighbors.neighbor_list_vectors(p: eon.geometry.neighbors.StructureLike, cutoff: float, brute: bool = False) List[List[numpy.ndarray]]

Neighbor list with minimum-image vectors from center → neighbor.

eon.geometry.neighbors.coordination_numbers(p: eon.geometry.neighbors.StructureLike, cutoff: float, brute: bool = False) List[int]
eon.geometry.neighbors.least_coordinated(p: eon.geometry.neighbors.StructureLike, cutoff: float, brute: bool = False) List[int]

Indices of free atoms with the lowest coordination number.