# Voronoi tessellation to identify local structures¶

Voronoi tessellation can be used for identification of local structure by counting the number of faces of the Voronoi polyhedra of an atom [1] [2]. For each atom a vector \(\langle n_3~n_4~n_5~n_6 \rangle\) can be calculated where \(n_3\) is the number of Voronoi faces of the associated Voronoi polyhedron with three vertices, \(n_4\) is with four vertices and so on. Each perfect crystal structure such as a signature vector, for example, bcc can be identified by \(\langle 0~6~0~8 \rangle\) and fcc can be identified using \(\langle 0~12~0~0 \rangle\). It is also a useful tool for identifying icosahedral structure which has the fingerprint \(\langle 0~0~12~0 \rangle\). In pyscal, the voronoi vector can be calculated using,

```
import pyscal.core as pc
sys = pc.System()
sys.read_inputfile('conf.dump')
sys.find_neighbors(method='voronoi')
sys.calculate_vorovector()
```

The vector for each atom can be accessed using `vorovector`

. Furthermore, the associated Voronoi
volume of the polyhedron, which may be indicative of the local structure, is also automatically calculated when finding
neighbors using `find_neighbors()`

. This value for each atom can be accessed by
`volume`

. An averaged version of the volume, which is averaged over the neighbors of an atom
can be accessed using `avg_volume`

.

[1] | Finney, J. L. PRS 319 ,1970 |

[2] | Tanemura et al., PTP 58, 1977 |

Note

Associated methods

`find_neighbors()`

`calculate_vorovector()`

`vorovector`

`volume`

`avg_volume`

Example