compute orientorder/atom command
compute ID group-ID orientorder/atom keyword values ...
ID, group-ID are documented in compute command
orientorder/atom = style name of this compute command
one or more keyword/value pairs may be appended
keyword = cutoff or nnn or degrees or components cutoff value = distance cutoff nnn value = number of nearest neighbors degrees values = nlvalues, l1, l2,... components value = ldegree
compute 1 all orientorder/atom compute 1 all orientorder/atom degrees 5 4 6 8 10 12 nnn NULL cutoff 1.5 compute 1 all orientorder/atom degrees 4 6 components 6 nnn NULL cutoff 3.0
Define a computation that calculates a set of bond-orientational order parameters Ql for each atom in a group. These order parameters were introduced by Steinhardt et al. as a way to characterize the local orientational order in atomic structures. For each atom, Ql is a real number defined as follows:
The first equation defines the spherical harmonic order parameters. These are complex number components of the 3D analog of the 2D order parameter qn, which is implemented as LAMMPS compute hexorder/atom. The summation is over the nnn nearest neighbors of the central atom. The angles theta and phi are the standard spherical polar angles defining the direction of the bond vector rij. The second equation defines Ql, which is a rotationally invariant scalar quantity obtained by summing over all the components of degree l.
The optional keyword cutoff defines the distance cutoff used when searching for neighbors. The default value, also the maximum allowable value, is the cutoff specified by the pair style.
The optional keyword nnn defines the number of nearest neighbors used to calculate Ql. The default value is 12. If the value is NULL, then all neighbors up to the specified distance cutoff are used.
The optional keyword degrees defines the list of order parameters to be computed. The first argument nlvalues is the number of order parameters. This is followed by that number of integers giving the degree of each order parameter. Because Q2 and all odd-degree order parameters are zero for atoms in cubic crystals (see Steinhardt), the default order parameters are Q4, Q6, Q8, Q10, and Q12. For the FCC crystal with nnn =12, Q4 = sqrt(7/3)/8 = 0.19094…. The numerical values of all order parameters up to Q12 for a range of commonly encountered high-symmetry structures are given in Table I of Mickel et al..
The optional keyword components will output the components of the normalized complex vector Ybar_lm of degree ldegree, which must be explicitly included in the keyword degrees. This option can be used in conjunction with compute coord_atom to calculate the ten Wolde’s criterion to identify crystal-like particles, as discussed in ten Wolde.
The value of Ql is set to zero for atoms not in the specified compute group, as well as for atoms that have less than nnn neighbors within the distance cutoff.
The neighbor list needed to compute this quantity is constructed each time the calculation is performed (i.e. each time a snapshot of atoms is dumped). Thus it can be inefficient to compute/dump this quantity too frequently.
If you have a bonded system, then the settings of special_bonds command can remove pairwise interactions between atoms in the same bond, angle, or dihedral. This is the default setting for the special_bonds command, and means those pairwise interactions do not appear in the neighbor list. Because this fix uses the neighbor list, it also means those pairs will not be included in the order parameter. This difficulty can be circumvented by writing a dump file, and using the rerun command to compute the order parameter for snapshots in the dump file. The rerun script can use a special_bonds command that includes all pairs in the neighbor list.
This compute calculates a per-atom array with nlvalues columns, giving the Ql values for each atom, which are real numbers on the range 0 <= Ql <= 1.
If the keyword components is set, then the real and imaginary parts of each component of (normalized) Ybar_lm will be added to the output array in the following order: Re(Ybar_-m) Im(Ybar_-m) Re(Ybar_-m+1) Im(Ybar_-m+1) … Re(Ybar_m) Im(Ybar_m). This way, the per-atom array will have a total of nlvalues+2*(2l+1) columns.
These values can be accessed by any command that uses per-atom values from a compute as input. See the Howto output doc page for an overview of LAMMPS output options.
The option defaults are cutoff = pair style cutoff, nnn = 12, degrees = 5 4 6 8 10 12 i.e. Q4, Q6, Q8, Q10, and Q12.
(Steinhardt) P. Steinhardt, D. Nelson, and M. Ronchetti, Phys. Rev. B 28, 784 (1983).
(Mickel) W. Mickel, S. C. Kapfer, G. E. Schroeder-Turkand, K. Mecke, J. Chem. Phys. 138, 044501 (2013).
(tenWolde) P. R. ten Wolde, M. J. Ruiz-Montero, D. Frenkel, J. Chem. Phys. 104, 9932 (1996).