PyXtal: A Python Library for Crystal Structure Generation and Symmetry Analysis

Document Type


Publication Date


Publication Title

Computer Physics Communications



First page number:


Last page number:



© 2021 Elsevier B.V. We present PyXtal, a new package based on the Python programming language, used to generate structures with specific symmetry and chemical compositions for both atomic and molecular systems. This software provides support for various systems described by point, rod, layer, and space group symmetries. With only the inputs of chemical composition and symmetry group information, PyXtal can automatically find a suitable combination of Wyckoff positions with a step-wise merging scheme. Further, when the molecular geometry is given, PyXtal can generate different dimensional organic crystals with molecules occupying both general and special Wyckoff positions. Optionally, PyXtal also accepts user-defined parameters (e.g., cell parameters, minimum distances and Wyckoff positions). In general, PyXtal serves three purposes: (1) to generate custom structures, (2) to modulate the structure by symmetry relations, (3) to interface the existing structure prediction codes that require the generation of random symmetric structures. In addition, we provide several utilities that facilitate the analysis of structures, including symmetry analysis, geometry optimization, and simulations of powder X-ray diffraction (XRD). Full documentation of PyXtal is available at https://pyxtal.readthedocs.io. Program summary: Program Title: PyXtal CPC Library link to program files: http://dx.doi.org/10.17632/wfyxyhjzwx.12 Licensing provisions: MIT [1] Programming language: Python 3 Nature of problem: Knowledge of structure at the atomic level is the key to understanding materials’ properties. Typically, the structure of a material can be determined either from experiment (such as X-ray diffraction, spectroscopy, microscopy) or from theory (e.g., enhanced sampling, structure prediction). In many cases, the structure needs to be solved iteratively by generating a number of trial structure models satisfying some constraints (e.g., chemical composition, symmetry, and unit cell parameters). Therefore, it is desirable to have a computational code that is able to generate such trial structures in an automated manner. Solution method: The PyXtal package is able to generate many possible random structures for both atomic and molecular systems with all possible symmetries. To generate the trial structure, the algorithm can either start with picking the symmetry sites randomly from high to low multiplicities, or use sites that are predefined by the user. For molecules, the algorithm can automatically detect the molecules’ symmetry and place them into special Wyckoff positions while satisfying their compatible site symmetry. With the support of symmetry operations for point, rod, layer and space groups, PyXtal is suitable for the computational modeling of systems from zero, one, two, and three dimensional bulk crystals. References: [1] https://opensource.org/licenses/MIT


Crystallography; Global optimization; Phase transition; Structure prediction; Symmetry; Wyckoff sites


Computer Sciences | Software Engineering



UNLV article access

Search your library