Centrosymmetry parameter#

Centrosymmetry parameter (CSP) was introduced by Kelchner et al. to identify defects in crystals. The parameter measures the loss of local symmetry. For an atom with \(N\) nearest neighbors, the parameter is given by,

\[ \mathrm{CSP} = \sum_{i=1}^{N/2} \big | \textbf{r}_i + \textbf{r}_{i+N/2} \big |^2 \]

\(\textbf{r}_i\) and \(\textbf{r}_{i+N/2}\) are vectors from the central atom to two opposite pairs of neighbors. There are two main methods to identify the opposite pairs of neighbors as described in this publication. Pyscal uses the first approach called Greedy Edge Selection(GES) and is implemented in LAMMPS and Ovito. GES algorithm calculates a weight \(w_{ij} = |\textbf{r}_i + \textbf{r}_j|\) for all combinations of neighbors around an atom and calculates CSP over the smallest \(N/2\) weights.

A centrosymmetry parameter calculation using GES algorithm can be carried out as follows. First we can try a perfect crystal.

from pyscal3 import System
import matplotlib.pyplot as plt
sys = System.create.lattice.fcc(lattice_constant=4.0, repetitions=(3,3,3))
csm = sys.calculate.centrosymmetry(nmax = 12)
plt.plot(csm, 'o')
[<matplotlib.lines.Line2D at 0x7f17ccec9f50>]
../_images/1720824277ac4f56ff6ecf6a2e64a68722000a8d1e876b5a2cae22552c02b04a.png

We can visualise the system

sys.show.continuous_property(sys.atoms.centrosymmetry)