PyXtal is an open source Python package for generating random crystal structures based on symmetry constraints. The package allows for generation of both atomic and molecular crystals, with both general and special Wyckoff positions. These structures can exported to various structural formats for further study. The package also allows users to easily access symmetry group information. See the documentation for information about installation and usage.
PyXtal is an open-source project which was initiated by Qiang Zhu and Scott Fredericks at department of Physics and Astronomy, University of Nevada Las Vegas. To contribute to this project, please check How to contribute?.
- Random generation of atomic (3D, 2D, and 1D) crystals and point group clusters for a given symmetry group and stoichiometry
- Random generation of (rigid) molecular crystals (3D, 2D, and 1D), with special Wyckoff positions. Molecules in special Wyckoff positions are automatically oriented to preserve the space group symmetry
- Interfaces with Pymatgen and ASE for structural manipulation and analysis
- Easy access to symmetry group information, including Wyckoff positions, site symmetry operations, and point group symbols
- X-ray diffraction analysis
- Geometry optimization via different exploratory algorithms.
To install the code, one just needs to do
$ pip install pyxtal
or
$ pip install --upgrade git+https://github.com/qzhu2017/PyXtal.git@master
Fredericks S, Sayre D, Zhu Q*(2019) PyXtal: a Python Library for Crystal Structure Generation and Symmetry Analysis
@article{pyxtal,
title={PyXtal: a Python Library for Crystal Structure Generation and Symmetry Analysis},
author={Scott Fredericks and Dean Sayre and Qiang Zhu},
year={2019},
eprint={1911.11123},
archivePrefix={arXiv},
primaryClass={cond-mat.mtrl-sci}
}
This is an open-source project. Its growth depends on the community. To contribute to PyXtal, you don't necessarily have to write the code. Any contributions from the following list will be helpful.
- Star the PyXtal project via GitHub and recommend it to your colleagues/friends
- Open an issue to report the bug or address your wishlist
- Suggestions to improve our documentation
- Fork the repository
- Suggest and implement new functions
- Send us the pull request