forked from lijiext/lammps
145 lines
4.9 KiB
Plaintext
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
|