FFTArray: A Python Library for the Implementation of Discretized Multi-Dimensional Fourier Transforms
arXiv:2508.03697 · doi:10.21468/SciPostPhysCodeb.66
Abstract
Partial differential equations describing the dynamics of physical systems rarely have closed-form solutions. Fourier spectral methods, which use Fast Fourier Transforms (FFTs) to approximate solutions, are a common approach to solving these equations. However, mapping Fourier integrals to discrete FFTs is not straightforward, as the selection of the grid as well as the coordinate-dependent phase and scaling factors require special care. Moreover, most software packages that deal with this step integrate it tightly into their full-stack implementations. Such an integrated design sacrifices generality, making it difficult to adapt to new coordinate systems, boundary conditions, or problem-specific requirements. To address these challenges, we present FFTArray, a Python library that automates the general discretization of Fourier transforms. Its purpose is to reduce the barriers to developing high-performance, maintainable code for pseudo-spectral Fourier methods. Its interface enables the direct translation of textbook equations and complex research problems into code, and its modular design scales naturally to multiple dimensions. This makes the definition of valid coordinate grids straightforward, while coordinate grid specific corrections are applied with minimal impact on computational performance. Built on the Python Array API Standard, FFTArray integrates seamlessly with array backends like NumPy, JAX and PyTorch and supports Graphics Processing Unit acceleration. The code is openly available at https://github.com/QSTheory/fftarray under Apache-2.0 license.
Reworked introduction to chapter 2 and subsection 2.1 to address referee report
References in corpus (15)
- Array Programming with NumPy
- Atom Interferometry with up to 24-Photon-Momentum-Transfer Beam Splitters
- Twin-lattice atom interferometry
- Time-dependent unbounded Hamiltonian simulation with vector norm scaling
- Interacting quantum mixtures for precision atom interferometry
- Strong Error Bounds for Trotter & Strang-Splittings and Their Implications for Quantum Chemistry
- Universal Atom Interferometer Simulator -- Elastic Scattering Processes
- STE-QUEST -- Space Time Explorer and QUantum Equivalence principle Space Test: The 2022 medium-class mission concept
- GPU-accelerated solutions of the nonlinear Schrödinger equation for simulating 2D spinor BECs
- Robust double Bragg diffraction via detuning control
- A Python GPU-accelerated solver for the Gross-Pitaevskii equation and applications to many-body cavity QED
- Efficient numerical description of the dynamics of interacting multispecies quantum gases
- Probing the geometry dependence of the Casimir-Polder interaction by matter-wave diffraction at a nano-grating
- Large, ultra-flat optical traps for uniform quantum gases
- Measurement of Casimir-Polder interaction for slow atoms through a material grating