lammps/doc/html/_sources/compute_orientorder_atom.txt

145 lines
4.9 KiB
Plaintext

.. index:: compute orientorder/atom
compute orientorder/atom command
================================
Syntax
""""""
.. parsed-literal::
compute ID group-ID orientorder/atom keyword values ...
* ID, group-ID are documented in :doc:`compute <compute>` command
* orientorder/atom = style name of this compute command
* one or more keyword/value pairs may be appended
.. parsed-literal::
keyword = *cutoff* or *nnn* or *ql*
*cutoff* value = distance cutoff
*nnn* value = number of nearest neighbors
*degrees* values = nlvalues, l1, l2,...
Examples
""""""""
.. parsed-literal::
compute 1 all orientorder/atom
compute 1 all orientorder/atom degrees 5 4 6 8 10 12 nnn NULL cutoff 1.5
Description
"""""""""""
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 :ref:`Steinhardt et al. <Steinhardt>` as a way to
characterize the local orientational order in atomic structures.
For each atom, *Ql* is a real number defined as follows:
.. image:: Eqs/orientorder.jpg
:align: center
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
:doc:`hexorder/atom <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 *Q*\ 2 and all odd-degree
order parameters are zero for atoms in cubic crystals
(see :ref:`Steinhardt <Steinhardt>`), the default order parameters
are *Q*\ 4, *Q*\ 6, *Q*\ 8, *Q*\ 10, and *Q*\ 12. For the
FCC crystal with *nnn*\ =12, *Q*\ 4 = sqrt(7/3)/8 = 0.19094....
The numerical values of all order parameters up to *Q*\ 12
for a range of commonly encountered high-symmetry structures are given
in Table I of :ref:`Mickel et al. <Mickel>`.
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.
.. note::
If you have a bonded system, then the settings of
:doc:`special_bonds <special_bonds>` command can remove pairwise
interactions between atoms in the same bond, angle, or dihedral. This
is the default setting for the :doc:`special_bonds <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
:doc:`rerun <rerun>` command to compute the order parameter for
snapshots in the dump file. The rerun script can use a
:doc:`special_bonds <special_bonds>` command that includes all pairs in
the neighbor list.
**Output info:**
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.
These values can be accessed by any command that uses
per-atom values from a compute as input. See :ref:`Section_howto 15 <howto_15>` for an overview of LAMMPS output
options.
Restrictions
""""""""""""
none
Related commands
""""""""""""""""
:doc:`compute coord/atom <compute_coord_atom>`, :doc:`compute centro/atom <compute_centro_atom>`, :doc:`compute hexorder/atom <compute_hexorder_atom>`
Default
"""""""
The option defaults are *cutoff* = pair style cutoff, *nnn* = 12, *degrees* = 5 4 6 8 9 10 12 i.e. *Q*\ 4, *Q*\ 6, *Q*\ 8, *Q*\ 10, and *Q*\ 12.
----------
.. _Steinhardt:
.. _Mickel:
**(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).
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Section_commands.html#comm