VOLT

Polyhedral Template Matching

Classify each atom's local crystal structure, measure its lattice orientation and share the crystal clusters that OpenDXA and Elastic Strain read.

Polyhedral Template Matching (PTM) identifies the local crystal structure around each atom by comparing its nearest neighbors with ideal templates (FCC, HCP, BCC, ICO, SC, and with a diamond crystal also cubic and hexagonal diamond). Besides the structure, it gives each atom a lattice orientation and its RMSD from the best template. Use it as the first stage before dislocation analysis, elastic strain or any study of grains and orientations. It is more robust to thermal noise and strain than common neighbor analysis.

KeyVersionBuilds
polyhedral-template-matching2.4.2Linux, macOS, Windows, browser

How it works

For each atom, PTM takes the convex hull of its nearest neighbors and checks its topology against each template's. When the topology matches, it finds the rotation and scale that best superimpose the template on the neighbors and computes the root-mean-square deviation (RMSD) of the fit. The atom gets the structure with the lowest RMSD, provided that RMSD is under the cutoff; otherwise it is OTHER. The fit also yields the atom's orientation (a quaternion) and its interatomic distance.

After classification, the plugin groups neighboring crystalline atoms into crystal clusters and writes the cluster graph that dislocation analysis needs.

Inputs

  • Atom positions and the simulation cell. No cutoff is needed.
  • Atom types, only for Identify Ordering Types.

Arguments

ArgumentTypeDefaultAllowed valuesDescription
Crystal Structure crystal_structureselectFCCBCC, FCC, HCP, SC, CUBIC_DIAMOND, HEX_DIAMONDThe crystal of your material. It sets which templates PTM tries: SC, FCC, HCP, ICO and BCC for the first four, plus cubic and hexagonal diamond for the two diamond options. It is also the reference lattice of the crystal clusters shared with later stages.
RMSD rmsdnumber0.1≥ 0, step 0.01RMSD cutoff. Atoms whose best match has a larger RMSD become OTHER. Raise it for hot or strongly strained samples. 0 is a real cutoff, not "no cutoff": it rejects almost every atom.
Dissolve Small Clusters dissolve_small_clustersbooleanfalseAfter clustering, mark atoms that belong to small crystal clusters as OTHER.
Identify Ordering Types identify_orderingbooleanfalseAlso identify the chemical ordering of each crystalline atom from the atom types: PURE, L10, L12_A, L12_B, B2, ZINCBLENDE_WURTZITE, BORON_NITRIDE, or NONE. Needs a type column in the frame; without one the plugin logs a warning and skips it.

Outputs

ExposureWhat you get
Structure IdentificationA listing, and a 3D model of the atoms colored by structure type.
PTM AnalysisA listing of the frame's totals (atoms, structures found, the RMSD cutoff, and how many atoms the cutoff discarded with the smallest and median discarded RMSD), with structure_counts and, when ordering is on, ordering_counts sub-listings. Its tables Structure analysis results (count and fraction per structure) and Chemical ordering results appear under Results in the canvas.
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.
Per Atom PropertiesThe per-atom table, stored with the analysis. No listing.

The per-atom table has structure_id and structure_name for every atom. Atoms that matched a template also have rmsd, orientation (quaternion x, y, z, w), interatomic_distance and correspondences, plus ordering_type when ordering is on.

Feeds

  • OpenDXA, Elastic Strain and Line Reconstruction DXA read the cluster tables and neighbor lattice it shares. Put PTM before them in the same pipeline and set the same crystal structure in both.
  • Any later stage reads its structure_type column from the annotated frame it writes.

Notes

  • PTM finds each atom's neighbors itself, so there is no cutoff to tune; the RMSD cutoff is the main control.
  • For grain maps, Grain Segmentation runs PTM itself; you don't need a PTM stage before it.

Reference

P. M. Larsen, S. Schmidt, J. Schiøtz, "Robust structural identification via polyhedral template matching", Modelling Simul. Mater. Sci. Eng. 24, 055007 (2016).

On this page