Calculating temperature-dependent X-ray structure factors of α-quartz with an extensible Python 3 package.
John P SutterJames PittardJacob FilikAlfred Q R BaronPublished in: Journal of applied crystallography (2022)
The design of X-ray optics based on diffraction from crystals depends on the accurate calculation of the structure factors of their Bragg reflections over a wide range of temperatures. In general, the temperature dependence of the lattice parameters, the atomic positions and the atomic thermal vibrations is both anisotropic and nonlinear. Implemented here is a software package for precise and flexible calculation of structure factors for dynamical diffraction. α-Quartz is used as an example because it presents the challenges mentioned above and because it is being considered for use in high-resolution X-ray spectroscopy. The package is designed to be extended easily to other crystals by adding new material files, which are kept separate from the package's stable core. Python 3 was chosen as the language to allow the easy integration of this code into existing packages. The importance of a correct anisotropic treatment of the atomic thermal vibrations is demonstrated by comparison with an isotropic Debye model. Discrepancies between the two models can be as much as 5% for strong reflections and considerably larger (even to the level of 100%) for weak reflections. A script for finding Bragg reflections that backscatter X-rays of a given energy within a given temperature range is demonstrated. The package and example scripts are available on request. Also discussed, in detail, are the various conventions related to the proper description of chiral quartz.