Steinhardt parameter pro

Added in version 3.17.0.

This modifier computes the per-particle Steinhardt bond-orientational order parameters \(q_l\), which characterize the angular arrangement of the nearest neighbors of each particle and are widely used to distinguish local crystalline environments (FCC, BCC, HCP, icosahedral) from disordered ones. The method was introduced in:

For each particle \(i\), the complex bond-order vector components are accumulated over its neighbors \(j\):

\[q_{lm}(i) = \sum_{j} w_j \, Y_{lm}(\theta_{ij}, \varphi_{ij}),\]

where \(Y_{lm}\) are the spherical harmonics evaluated for the direction of the neighbor vector \(\mathbf{r}_{ij}\) and \(w_j\) are normalized per-neighbor weights (\(\sum_j w_j = 1\)). The rotationally invariant order parameter of degree \(l\) is

\[q_l(i) = \sqrt{\frac{4\pi}{2l+1} \sum_{m=-l}^{l} \left| q_{lm}(i) \right|^2 }.\]

The modifier computes \(q_l\) for all degrees \(l = 2, \dots, l_\mathrm{max}\), with the maximum degree \(l_\mathrm{max}\) set by the user.

Neighbor selection

The set of neighbors \(j\) and their weights \(w_j\) entering the \(q_{lm}\) sums is controlled by the Neighbor selection option. The modifier supports three different modes of operation:

Automatic (Voronoi faces)

The neighbors of a particle are given by the faces of its Voronoi cell, and each neighbor is weighted by the relative area of the shared Voronoi face, \(w_j = A_j / \sum_j A_j\), following W. Mickel et al., J. Chem. Phys. 138, 044501 (2013). This method is parameter-free and yields order parameters that vary continuously with the particle positions.

Nearest neighbors

The \(N\) nearest neighbors of the particle are used with uniform weights \(w_j = 1/N\). This matches the conventional Steinhardt definition and allows direct comparison with literature values, which are typically reported for a fixed number of neighbors (e.g. 12 for FCC/HCP or 14 for BCC).

Fixed cutoff radius

All neighbors within the specified cutoff distance are used with uniform weights \(w_j = 1/n_i\), where \(n_i\) is the number of neighbors of particle \(i\) found within the cutoff.

Neighbor-averaged parameters

The option Compute neighbor-averaged parameters (Lechner-Dellago) additionally computes the averaged order parameters \(\bar{q}_l\) introduced by W. Lechner and C. Dellago, J. Chem. Phys. 129, 114707 (2008). Here, the bond-order vectors are first averaged over the particle itself and all of its neighbors,

\[\bar{q}_{lm}(i) = \frac{1}{N_i + 1} \left( q_{lm}(i) + \sum_{j} q_{lm}(j) \right),\]

before the rotational invariants \(\bar{q}_l\) are formed. The added second-shell information considerably improves the ability to discriminate between different crystal structures.

Reference values

Values of selected order parameters for particles in perfect crystal lattices (nearest-neighbor mode):

Structure (neighbors)

\(q_4\)

\(q_6\)

FCC (12)

0.19094

0.57452

HCP (12)

0.09722

0.48476

BCC (14)

0.03637

0.51069

Simple cubic (6)

0.76376

0.35355

Modifier outputs

The modifier outputs the computed invariants as vector particle properties, with one named component per degree \(l\):

Steinhardt \(q_l\)

The local order parameters \(q_l\), stored in the vector components q2, q3, etc., up to the selected maximum degree \(l_\mathrm{max}\), of the property Steinhardt.

Steinhardt \(\bar{q}_l\)

The neighbor-averaged order parameters \(\bar{q}_l\), stored in the vector components q2, q3, etc. of the property Smooth Steinhardt. This property is only generated if the option Compute neighbor-averaged parameters (Lechner-Dellago) is enabled.

The individual vector components can subsequently be used for color coding of particles or for expression-based selection of particles located in certain structural environments.

Usage notes

The option Use only selected particles restricts the analysis to the currently selected particles. Unselected particles will be ignored (as if they did not exist): they do not act as neighbors of other particles, and their own output values are set to 0. This option is useful if you want to analyze a sub-lattice made only of atoms of a certain species.

Particles without any neighbors (e.g. isolated particles) are assigned the output value 0 for all order parameters.