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

Scott Fredericks,Kevin Parrish,Dean Sayre,Qiang Zhu
DOI: https://doi.org/10.1016/j.cpc.2020.107810
2020-12-12
Abstract: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 soft ware 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 \url{<a class="link-external link-https" href="https://pyxtal.readthedocs.io" rel="external noopener nofollow">this https URL</a>}.
Materials Science,Computational Physics
What problem does this paper attempt to address?
The problem that this paper attempts to solve is: how to generate crystal structures with specific symmetries and chemical compositions for use in the research and prediction of material properties. Specifically, the author has developed a Python library named PyXtal, aiming to automatically generate trial structure models that satisfy certain constraints (such as chemical composition, symmetry, unit cell parameters, etc.). These problems are very important in materials science because understanding the atomic structure of materials is the key to understanding their physical and chemical properties. ### Core of the Problem 1. **Experimental and Theoretical Structure Determination**: - Experimental methods (such as X - ray diffraction, spectroscopy, microscopy, etc.) can determine the structure of materials, but sometimes can only provide partial information. - Theoretical methods (such as enhanced sampling, structure prediction, etc.) can guess the correct crystal structure through calculation. 2. **Iterative Generation of Trial Structures**: - In many cases, the structure needs to be iteratively solved by generating multiple trial structure models that satisfy certain constraints (such as chemical composition, symmetry, unit cell parameters, etc.). - Therefore, a computational code that can automatically generate these trial structures is required. ### Solution PyXtal solves the above problems in the following ways: - **Generate Random Symmetric Structures**: PyXtal can generate random structures with all possible symmetries for atomic and molecular systems. - **Automatically Select Wyckoff Positions**: The algorithm can automatically select appropriate Wyckoff positions according to the input chemical composition and symmetry information, and find suitable combinations through a step - by - step merging scheme. - **Support Crystals of Multiple Dimensions**: PyXtal supports various systems from zero - dimensional to three - dimensional, including point - group, rod - group, layer - group and space - group symmetries. - **Molecular Geometry Processing**: When given molecular geometry, PyXtal can generate organic crystals of different dimensions, where molecules occupy general and special Wyckoff positions. - **User - Defined Parameters**: PyXtal allows users to define additional parameters (such as unit cell parameters, minimum distance and Wyckoff positions) to further customize the generated structures. ### Application Scenarios PyXtal mainly serves the following three purposes: 1. **Generate Custom - made Structures**: Generate crystal structures with specific symmetries and chemical compositions according to user requirements. 2. **Modify Structures through Symmetry Relations**: Adjust existing structures by using symmetry relations. 3. **Interface with Existing Structure Prediction Codes**: Combine with other structure prediction codes to generate random symmetric structures. In addition, PyXtal also provides a variety of tools for structure analysis, geometric optimization and powder X - ray diffraction (XRD) simulation. ### Summary PyXtal greatly simplifies the process of structure prediction and analysis in materials science research by automatically generating crystal structures that satisfy specific symmetries and chemical compositions, thus accelerating the discovery and understanding of new materials.