Structure comparison¶
The client decides a match¶
job = structure_comparison reads matter1.con and matter2.con. It
writes results.dat with match, distance, and per_atom_norm.
match follows this section. Leave check_rotation off and set
indistinguishable_atoms. Same-element atoms may then pair in any order
inside distance_difference. The pairing is one-to-one. A crossed pair
can match. Two atoms cannot take one site. Set check_rotation alone
and the client removes the centroids. It then rotates with its Kabsch
routine and compares atoms in file order. Set both flags and the client
compares sorted neighbor-distance lists.
remove_translation defaults to true. Leave check_rotation off. Leave
no atom fixed on all three Cartesian components. The client then shifts
the first structure onto the second. The shift equals the mean
minimum-image displacement. A periodic cell that drifted as a whole still
matches. check_rotation skips the shift. A fully fixed atom skips it
too. The adaptive kinetic Monte Carlo server uses the same test for a
repeated saddle and for a state it already stores.
eon.atoms.rot_match is a separate helper. It calls iterative rotations
and assignments through pyeonclient when that routine is present. A
missing routine selects the helper’s own Kabsch test. An error from the
call selects that test too. eon.atoms.crystal_spacegroup reads the cell
and the atoms.
It returns an international symbol, an international number, and a Hall
number. The function does not decide whether two clusters match.
Configuration¶
[Structure Comparison]
- pydantic model eon.schema.StructureComparisonConfig[source]¶
- Fields:
energy_difference (float)distance_difference (float)indistinguishable_atoms (bool)check_rotation (bool)brute_neighbors (bool)neighbor_cutoff (float)use_covalent (bool)covalent_scale (float)remove_translation (bool)
- field energy_difference: float = 0.01¶
How different in energy two configurations must be to be considered different structures.
- field distance_difference: float = 0.1¶
The maximum distance two mapped atoms may be for two configurations to be considered equivalent.
- field indistinguishable_atoms: bool = True¶
Use an algorithm to compare structures that does not distinguish between atoms of the same element. The numbering of the atoms does not affect the structural comparison.
- field check_rotation: bool = False¶
Finds optimal overlap of structures via rotation before comparing them. Use this option in systems where structures can become rotated, such as nanoparticles.
- field brute_neighbors: bool = False¶
Determine neighbors by brute force (use this with nonorthogonal boxes).