VOLT

Adaptive Common Neighbor Analysis

Classify atoms of a chosen crystal family with adaptive common neighbor analysis and share the crystal clusters OpenDXA reads.

Adaptive Common Neighbor Analysis (a-CNA) classifies each atom from the bonding topology of its nearest neighbors, using a cutoff that adapts to each atom's own neighbor distances. Use it as a fast structure identification stage for a known crystal, and as an alternative to Polyhedral Template Matching in front of dislocation analysis.

KeyVersionBuilds
adaptive-common-neighbor-analysis2.1.1Linux, macOS, Windows, browser

How it works

For each atom, the plugin takes the nearest neighbors the chosen crystal calls for (12 for FCC and HCP, 14 for BCC, 4 + 12 for diamond) and sets a local cutoff from their distances. For every neighbor bond it counts the common neighbors, the bonds among them and the longest chain of those bonds. The set of these signatures identifies the structure: 12 × (4,2,1) is FCC, 6 × (4,2,1) + 6 × (4,2,2) is HCP, 8 × (6,6,6) + 6 × (4,4,4) is BCC. Diamond uses the same idea on the second-neighbor shell.

The plugin only looks for the structures of the crystal family you choose:

Crystal StructureStructures it can assign
FCC, HCPFCC, HCP
BCCBCC
CUBIC_DIAMOND, HEX_DIAMONDCubic diamond, hexagonal diamond, and the first and second neighbor shells of diamond atoms

Every other atom is OTHER. After classification it groups crystalline atoms into crystal clusters and writes the cluster graph dislocation analysis needs.

Inputs

  • Atom positions and the simulation cell. No cutoff is needed.

Arguments

ArgumentTypeDefaultAllowed valuesDescription
Crystal Structure crystal_structureselectFCCBCC, FCC, HCP, CUBIC_DIAMOND, HEX_DIAMONDThe crystal of your material. It sets the neighbor count, the structures searched for (see the table above) and the reference lattice of the crystal clusters.
Dissolve Small Clusters dissolve_small_clustersbooleanfalseAfter clustering, mark atoms that belong to small crystal clusters as OTHER.

Outputs

ExposureWhat you get
Structure IdentificationA listing, and a 3D model of the atoms colored by structure type.
CNA AnalysisThe frame's totals, stored with the analysis. No listing.
Structure Counts ChartA bar chart of atoms per structure.
Clusters Table, Clusters Transitions, Neighbor LatticeFiles shared with later stages as clusters_table, clusters_transitions and neighbor_lattice. No listing.

The workflow declares the per-atom properties structure_type (Structure Type) and coordination (Coordination number).

Feeds

  • OpenDXA, Elastic Strain and Line Reconstruction DXA read the cluster tables and neighbor lattice it shares. Put it before them in the same pipeline.
  • Later stages read the structure_type column of the annotated frame it writes.

Notes

  • Choose HCP or FCC to see stacking faults and twin boundaries in an FCC metal: both settings search FCC and HCP, and the faulted planes come out as HCP.
  • It never assigns ICO. For icosahedral order in metallic glasses or clusters, use Polyhedral Template Matching or Ackland-Jones Analysis.

Reference

A. Stukowski, "Structure identification methods for atomistic simulations of crystalline materials", Modelling Simul. Mater. Sci. Eng. 20, 045021 (2012). Common neighbor analysis: J. D. Honeycutt, H. C. Andersen, J. Phys. Chem. 91, 4950 (1987).

On this page