eon.atoms

Atoms / structure helpers for the eOn Python server.

Storage and I/O :class:eon.structure.Structure (alias :class:Atoms) is the in-memory working type. On disk, structures are readcon.ConFrame values (see :func:eon.structure.Structure.from_conframe).

Geometry kernels PBC, neighbor lists (vesin), and process-atom selection live under :mod:eon.geometry. This module re-exports them for compatibility and keeps structure-matching / CNA helpers plus the element table.

Module Contents

Functions

identical

True if two structures match when same-element atoms are interchangeable.

match

point_energy_match

points_energies_match

rot_match

rotm

Gives the matrix representing a rotation of theta radians about axis

cna

Returns a list of cna numbers for all atoms in p Inspired by the CNA code provided by Asap (wiki.fysik.dtu.dk/asap)

not_HCP_or_FCC

Returns a list of indices for the atoms with cna = 0

cnat

Returns a list of cna numbers for all atoms in p Inspired by the CNA code provided by Asap (wiki.fysik.dtu.dk/asap)

cnar

Returns a list of cna numbers for all atoms in p Inspired by the CNA code provided by Asap (wiki.fysik.dtu.dk/asap)

not_TCP

Returns a list of indices for the atoms with cna = 0

not_TCP_or_BCC

Returns a list of indices for the atoms with cna = 0

get_mappings

A recursive depth-first search for a complete set of mappings from atoms in configuration a to atoms in configuration b. Do not use the mappings argument, this is only used internally for recursion.

get_rotation_matrix

rotate

internal_motion

Takes two atoms objects and returns the motion from a to b that is entirely internal - no rotation or translation, in the form of a new atoms object.

Data

API

eon.atoms.logger

‘getLogger(…)’

eon.atoms.identical(atoms1, atoms2, epsilon_r)[source]

True if two structures match when same-element atoms are interchangeable.

Parameters

atoms1, atoms2 : Structure Configurations to compare (same box within 1e-4). epsilon_r : float Max allowed MIC displacement (Å) for a pair to count as the same site.

eon.atoms.match(a, b, eps_r, neighbor_cutoff, indistinguishable, check_rotation=False, use_identical=False)[source]
eon.atoms.point_energy_match(file_a, energy_a, file_b, energy_b, eps_e, eps_r, neighbor_cutoff, check_rotation=False, use_identical=False)[source]
eon.atoms.points_energies_match(file_a, energy_a, files_b, energies_b, eps_e, eps_r, neighbor_cutoff, check_rotation=False, use_identical=False)[source]
eon.atoms.rot_match(a, b, eps_r)[source]
eon.atoms.rotm(axis, theta)[source]

Gives the matrix representing a rotation of theta radians about axis

eon.atoms.cna(p, cutoff, brute=False)[source]

Returns a list of cna numbers for all atoms in p Inspired by the CNA code provided by Asap (wiki.fysik.dtu.dk/asap)

eon.atoms.not_HCP_or_FCC(p, cutoff, brute=False)[source]

Returns a list of indices for the atoms with cna = 0

eon.atoms.cnat(p, cutoff, brute=False)[source]

Returns a list of cna numbers for all atoms in p Inspired by the CNA code provided by Asap (wiki.fysik.dtu.dk/asap)

eon.atoms.cnar(p, cutoff, brute=False)[source]

Returns a list of cna numbers for all atoms in p Inspired by the CNA code provided by Asap (wiki.fysik.dtu.dk/asap)

eon.atoms.not_TCP(p, cutoff, brute=False)[source]

Returns a list of indices for the atoms with cna = 0

eon.atoms.not_TCP_or_BCC(p, cutoff, brute=False)[source]

Returns a list of indices for the atoms with cna = 0

eon.atoms.get_mappings(a, b, eps_r, neighbor_cutoff, mappings=None)[source]

A recursive depth-first search for a complete set of mappings from atoms in configuration a to atoms in configuration b. Do not use the mappings argument, this is only used internally for recursion.

Returns None if no mapping was found, or a dictionary mapping atom indices a to atom indices b.

Note: If a and b are mirror images, this function will still return a mapping from a to b, even though it may not be possible to align them through translation and rotation.

eon.atoms.get_rotation_matrix(axis, theta)[source]
eon.atoms.rotate(r, axis, center, angle)[source]
eon.atoms.internal_motion(a, b)[source]

Takes two atoms objects and returns the motion from a to b that is entirely internal - no rotation or translation, in the form of a new atoms object.

eon.atoms.elements

None

eon.atoms.numElements

119