Back to main menu

## Mode: local symmetry

#### Syntax

`atomsk --local-symmetry <file> [options]`

#### Description

This mode computes a local symmetry parameter for each atom. Depending on each atom's environment, the central symmetry parameter is computed, and/or a parameter based on dihedral angles. The purpose of this calculation is to easily distinguish between a (quasi-) perfect environment and atoms at or near crystal defects.

The central symmetry parameter was first introduced in C.L. Kelchner, Phys. Rev. B 58 (1998) 11085, and later modified in its implementation in the visualization software Atomeye. The mode "--local-symmetry" of Atomsk follows the latter, i.e. the central symmetry parameter is unitless and defined by:

ci = ( ∑ |dj+dk|2 ) / ( 2 ∑ |dj|2 )

where the atoms j and k are opposite neighbors of the central atom i, and the sum runs over all pairs of opposite neighbors.

This central symmetry parameter was designed for mono-atomic materials. In fcc metals each atom has 12 nearest neighbors; in bcc metals each atom has 8 nearest neighbors. In perfect lattices each neighbor has a counterpart, so that the central symmetry is perfect and for each atom ci=0. When the symmetry is broken, e.g. in surfaces where some neighbors are missing, in stacking faults or in dislocations where the environment is distorted, the atoms will have a parameter ci>0.

Atomsk can also compute this parameter in other types of materials, when they possess some kind of central symmetry. It is the case, for instance, of some binary materials with the rock-salt lattice (NaCl, MgO, LiF...), or ternary materials with the perovskite lattice (SrTiO3, BaTiO3...). In such lattices Atomsk computes the central symmetry parameter using only the neighbors that belong to the same species as the first neighbor. For instance in NaCl, for a central atom i of natrium (Na) only chloride (Cl) neighbors are used in the computation of ci, and vice-versa. In SrTiO3, the first neighbors are oxygen ions for Sr, oxygen ions for Ti, and oxygen ions for oxygen.

Note that the central symmetry parameter cannot be expected to be meaningful in systems that do not have some sort of central symmetry, for instance in diamond, zincblende, or hexagonal lattices. In non-cubic perovskites, the lattice may not be centrosymmetric, making this parameter less relevant.

If an atom has 4 neighbours, then in addition to the central symmetry parameter defined above, Atomsk also computes the angles formed by neighboring vectors. For a central atom i and neighboring atoms j and k, the dihedral angle is defined as the angle between the two vectors joining the central atom, θjik = (rj - ri , rk - ri). The difference between the cosine of this angle and the expected angle in a perfect tetrahedon (θ0≈109.471°) is computed, squared and summed over all neighbours:

βi = ∑ [ cos(θjik) − cos(θ0) ]2

This additional parameter is naught when the atom is in a perfect tetrahedral site (e.g. atoms in diamond lattice), and positive otherwise. It is computed only for atoms that possess exactly 4 neighbours. Then, if its value is smaller than the value of the central symmetry parameter, then it replaces it.

Finally, if an atom has 3 neighbours, then Atomsk also computes the dihedral angles, and compares them to the expected angle in an sp2 environment (θ0 = 120°):

γi = ∑ [ cos(θjik) − cos(θ0) ]2

This parameter is naught for atoms in a perfect sp2 environment, as found for instance in graphite or graphene, and positive otherwise. If its value is smaller than the value of the central symmetry parameter, then it replaces it.

If this mode is used with one or several options they will be applied to the system before computing the central symmetry parameter.

Note that this mode assumes that the atom coordinates are wrapped, i.e. that all atoms are inside of the simulation box. If it is not the case then the calculation may be wrong. Coordinates can be wrapped thanks to the option `-wrap`.

#### Examples

- `atomsk --local-symmetry Al_dislocation.cfg Al_centrosymm.cfg -wrap`

  This will read the file `Al_dislocation.cfg`, and compute the central symmetry parameter for each atom. The final result will be output to `Al_centrosymm.cfg`.

- `atomsk --local-symmetry SrTiO3.xsf SrTiO3_centrosymm.cfg -wrap`

  This will read the file `SrTiO3.xsf`, and compute the central symmetry parameter for each atom. The final result will be output to `SrTiO3_centrosymm.cfg`.

Back to main menu