compute_orientorder
This keyword computes the local, rotationally invariant Steinhardt order parameters \(q_l\) and \(w_l\), as described in [Steinhardt1983] and [Mickel2013]. The results are written to the orientorder.out file.
For an atom \(i\), the parameter \(q_l(i)\) is defined as:
where the quantity \(q_{lm}(i)\) is obtained by summing the spherical harmonics over atom \(i\) and its neighbors \(j\):
If wl
is set to True
, the quantity \(w_l\) is computed. This is a weighted
average of the \(q_{lm}(i)\) values using Wigner 3-j symbols,
yielding a rotationally invariant combination:
If the wl_hat
parameter is True
, the \(w_l\) order parameter is normalized as:
If average
is True
, the averaging procedure replaces \(q_{lm}(i)\)
with \(\overline{q}_{lm}(i)\), which is the mean value of \(q_{lm}(k)\) over all
neighbors \(k\) of particle \(i\), including atom \(i\) itself:
Syntax
compute_orientorder <interval> <mode_type> <mode_parameters> <ndegrees> <degree1> <degree2> ... <average> <wl> <wlhat>
interval: perform the calculation every
interval
steps.mode_type: the neighbor selection mode. Currently supports
cutoff
ornnn
(nearest neighbor number).mode_parameters: - for
cutoff
mode, this is the cutoff distance; - fornnn
mode, this is the number of neighbors. Note: if an atom has fewer neighbors thannnn
within 6 Å, the result is set to 0.ndegrees: number of spherical harmonic degrees (\(l\)) to compute.
degree1..degreeN: individual degree values.
average: whether to calculate the averaged Steinhardt order parameter.
1
= True,0
= False. Defaults to False.wl: whether to compute the \(w_l\) version of the Steinhardt order parameter. Defaults to False.
wlhat: whether to compute the normalized \(w_l\) version. Defaults to False.
Examples
compute_orientorder 100 cutoff 4.0 3 4 6 8
→ Every 100 MD steps, compute three degrees (4, 6, and 8) using a 4 Å cutoff.compute_orientorder 50 nnn 12 2 4 6 0 1
→ Every 50 MD steps, compute two degrees (4 and 6) with 12 nearest neighbors. Additionally, compute the \(w_l\) version.compute_orientorder 100 nnn 12 2 4 6 1 1 1
→ Every 100 MD steps, compute two degrees (4 and 6) with 12 nearest neighbors. Use the averaged definition, and calculate both the original and the normalized \(w_l\) versions.