July 2026 Update: Absorption Lines and Tracers
Two new analysis operators extend THOR's ray-tracing workflows: mock absorption-line spectra from sightlines and field-aligned tracing along curved trajectories.
Absorption sightlines
The new sightline operator records every gas cell intersected by a ray and integrates its optical depth τ(λ). Peculiar velocity shifts each cell's contribution, while temperature sets its line width, producing a velocity-resolved absorption spectrum.
The sightline-absorption cookbook follows the pipeline from per-cell output to a mock observation with a QSO continuum, an instrument line-spread function, and photon noise, including a comparison with Trident. Any ion with a Cloudy-tabulated density can be integrated, with multiple metal lines handled together. Below, one CGM sightline shows the same gas in O VI, C IV, and Si IV.
THOR synthesizes millions of absorption-line sightlines in minutes on a single GPU:
The absorption-lines comparison documents the benchmark setup and accuracy cross-check.
Tracing properties along rays
The tracer operator records requested fields along a trajectory and groups samples into segments. Segments may close at every cell boundary or through a configurable rule, with statistics such as path length and field means stored for each.
Trajectories can be redirected at each cell crossing, allowing rays to follow local magnetic or velocity fields. Magnetic coherence lengths are measured by closing a segment once the field direction changes beyond a threshold. This method is applied in Magnetogenesis by galactic processes (Ramesh, Garaldi & Byrohl 2026) to compare magnetic topology across cosmological seeding models.
The coherence-length cookbook covers straight and field-aligned rays, velocity and magnetic fields, and pooled statistics from random ray sources.
Also in this release
This release also adds distributed ray tracing across MPI ranks, device-side Voronoi construction, and multi-observer peeling on HEALPix grids. The Apptainer images now combine CUDA, ROCm, CPU, and MPI support in a single build.

