Simulation package for solving dynamic diffraction problems in deformed crystals. Bragg, Laue geometry, asymmetric reflections, bend crystals, dislocations, crystals with arbitrary shapes, strain distributions and time dependent problems
Jacek Krzywinski, Aliaksei Halavanau
TL;DR
The work addresses dynamic x-ray diffraction in distorted crystals with arbitrary shapes by employing a Fast Fourier Transform Beam Propagation Method (FFT-BPM) that evolves slowly varying envelopes for forward and backward beams under a two-beam approximation. The method updates via a parabolic, diffraction-inclusive equation, incorporating deformation through δε and u fields, and is validated across Bragg, Laue, and asymmetric geometries, including bent crystals and dislocations. It demonstrates strong agreement with Takagi–Taupin results and XOP benchmarks while offering a compact, parallelizable Python implementation suitable for 3D finite crystals and time-dependent problems. The public fftbpm package, along with Jupyter notebooks and a standardized 75-parameter configuration, enables rapid, scalable simulations on HPC systems and supports integration into CXDI and related dynamical diffraction analyses.
Abstract
We demonstrate the use of the Fast Fourier Transform Beam Propagation Method (FFT BPM) to simulate dynamic diffraction effects, including scattering from deformed crystals with arbitrary shapes in Bragg, Laue, and asymmetric geometries. The method's straightforward algorithm, combined with FFT, enables fast computation and is easy to implement in Python. It successfully reproduces literature results for bent crystals, dislocations, and finite-shaped crystals simulated using the Takagi-Taupin equations. Python implementations for each case are provided in a public GitHub repository, with the code structured for parallel computing.
