THOR: a GPU-accelerated and MPI-parallel radiative transfer code

Abstract

Emission and absorption line features are important diagnostics for the physics underlying extragalactic astronomy. The interpretation of observed signatures involves comparing against forward modeled spectra from galaxy formation simulations as well as more simplified geometries, while including the complex scattering radiative transfer (RT) of resonant emission lines. Here, we present thor, a modern C++ radiative transfer code focused initially on resonant emission lines. thor is a high-performance, distributed memory MPI-parallel, multi-target code, running on CPUs, GPUs and other accelerators, yielding large ~10-50x speed-ups compared to previous CPU-only codes. We support multiple grid-based and gridless data structures, enabling comparisons across different hydrodynamical codes as well as toy model geometries. We demonstrate its science capabilities with a number of example use cases across scales: (i) Lyman-alpha RT on simple shell-like gas distributions; (ii) Lyman-alpha RT applied to a high-resolution, high-redshift z~6 cosmological hydrodynamical galaxy formation simulation; (iii) Lyman-alpha and Magnesium-II halos, i.e. scattering and emission from the circumgalactic medium of z~1-2 galaxies drawn from cosmological magnetohydrodynamical simulations; (iv) the large-scale cosmic web in gas emission, a 6144³ volume-element RT scaling calculation; and (v) synthetic absorption spectra of the Lyman-alpha forest. Extensive verification and benchmarking validates our approach and its computational efficiency.