pyscal- A python module for structural analysis of atomic environments¶
pyscal is a python module for the calculation of local atomic structural environments including Steinhardt’s bond orientational order parameters [1] during post-processing of atomistic simulation data. The core functionality of pyscal is written in C++ with python wrappers using pybind11 which allows for fast calculations and easy extensions in python.
Steinhardt’s order parameters are widely used for the identification of crystal structures [3]. They are also used to distinguish if an atom is in a solid or liquid environment [4]. pyscal is inspired by the BondOrderAnalysis code, but has since incorporated many additional features and modifications. The pyscal module includes the following functionalities:
Highlights¶
- calculation of Steinhardt’s order parameters and their averaged version [2].
- links with the Voro++ code, for the calculation of Steinhardt parameters weighted using the face areas of Voronoi polyhedra [3].
- classification of atoms as solid or liquid [4].
- clustering of particles based on a user defined property.
- methods for calculating radial distribution functions, Voronoi volumes of particles, number of vertices and face area of Voronoi polyhedra, and coordination numbers.
- calculation of angular parameters to identify diamond structure [5].
[1] | Steinhardt, P. J., Nelson, D. R., & Ronchetti, M. (1983). Physical Review B, 28. |
[2] | Lechner, W., & Dellago, C. (2008). The Journal of Chemical Physics, 129. |
[3] | (1, 2) Mickel, W., Kapfer, S. C., Schröder-Turk, G. E., & Mecke, K. (2013). The Journal of Chemical Physics, 138. |
[4] | (1, 2) Auer, S., & Frenkel, D. (2005). Advances in Polymer Science, 173. |
[5] | Uttormark, M. J., Thompson, M. O., Clancy, P. (1993). Physical Review B, 47. |