complete documentation with examples available here.
pyscal is a python module for the calculation of local atomic structural environments including Steinhardt's bond orientational order parameters 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 with possibilities for easy expansion in python.
Steinhardt's order parameters are widely used for identification of crystal structures. They are also used to identify if an atom is solid or liquid. pyscal is inspired by BondOrderAnalysis code, but has since incorporated many additions and modifications. pyscal module includes the following functionality-
- fast and efficient calculations using C++ and expansion using python.
- calculation of Steinhardt's order parameters and their averaged version and disorder parameters.
- links with Voro++ code, for calculation of Steinhardt parameters weighted using face area of Voronoi polyhedra.
- classification of atoms as solid or liquid.
- clustering of particles based on a user defined property.
- methods for calculating radial distribution function, voronoi volume of particles, number of vertices and face area of voronoi polyhedra and coordination number.
- calculation of angular parameters such as for identification of diamond structure and Ackland-Jones angular parameters.
- Centrosymmetry parameter for identification of defects.
- Adaptive common neighbor analysis for identification of crystal structures.
For python 3
pyscal can be installed directly using Conda from the conda-forge channel by the following statement-
conda install -c conda-forge pyscal
From repository
pyscal can be built from the repository by-
git clone https://github.com/srmnitc/pyscal.git
cd pyscal
python setup.py install --user
complete documentation with examples available here.
Install documentation requirements
cd docs
pip install -r requirements.txt
Build API reference
cd docs
make html
The built docs will be available in docs/html
Building complete documentation including examples
git clone https://github.com/srmnitc/pyscal-webpage.git
cd pyscal-webpage
pip install -r requirements.txt
jupyter-book build pyscal/
The built pages will be available in pyscal-webpage/pyscal/_build/html
If you use pyscal in your work, the citation of the following article will be greatly appreciated:
Sarath Menon, Grisell Díaz Leines and Jutta Rogal (2019). pyscal: A python module for structural analysis of atomic environments. Journal of Open Source Software, 4(43), 1824, https://doi.org/10.21105/joss.01824
Citation in bib format can be downloaded here.