TNG-Cluster
TNG-Cluster is 352 cluster zoom simulations at TNG300-1 resolution, reconstructed into a single volume. Data format details are on the TNG-Cluster wiki.
File Structure
Unlike regular TNG boxes, TNG-Cluster stores each zoom halo's particles in dedicated chunk files:
- Snapshots (704 files per snapshot): For zoom halo index
i:snap_ZZZ.i.hdf5— particles inside FoF halossnap_ZZZ.(i+352).hdf5— particles outside FoF halos ("outer fuzz")
- Group catalogs (352 files):
fof_subhalo_tab_ZZZ.i.hdf5contains the catalog for zoom haloi
Do not load all files
Loading all 704 chunk files would mix overlapping low-resolution background particles from all 352 zooms. Always use file_ids to select a specific zoom halo.
FeXXV Emission (Cloudy MCRT)
A complete config for FeXXV (6.7 keV, 1.85 Å) emission from a TNG-Cluster halo, using Cloudy tables to compute emissivities. Example shown is for zoom halo i=0.
Key knobs: pbc: false (cutout, non-periodic), ghost_thickness: 0.1 (Voronoi boundary layer in box units, sufficient for typical halo cutouts), mesh_cache_mode: "auto" (caches the Voronoi mesh to disk). listsource emits one photon source per cell with emissivity above lum_threshold; luminosities use THOR's internal unit of 10⁴² erg/s.
Full configuration
dataset_type: 'pointcloud_voronoi'
driver_type: 'mcrtsimulation'
device: "cpu-openmp"
pointcloud_voronoi:
hilbert_bits: 8
mesh_cache_mode: "auto"
construction:
ghost_thickness: 0.1
loader: "gadget"
cloudy:
enabled: true
emission_table_path: "/path/to/grid_emissivities_lg.hdf5"
ion_table_path: "/path/to/grid_ions_lg_c23.hdf5"
redshift_interp: true
interpolation_order: 1
gadget:
path: "/path/to/TNG-Cluster/output/snapdir_099"
catalog_path: "/path/to/TNG-Cluster/output/groups_099"
file_ids: [0, 352] # zoom halo i=0: chunks 0 and 352
# Positions, Temperature, and Velocities are added automatically.
# Density is resolved as a dependency of the Cloudy emission field.
fields:
- "cloudyemission_Fe25 1.85040A_times_volume"
zoom_target:
hid: 0 # most massive halo in this zoom's catalog
rvir: 2 # cutout radius as multiple of virial radius
mcrtsimulation:
pbc: false # cutout, not periodic
hubble_flow: 70.0 # km/s/Mpc
redshift: 0.0
max_step: 0.01
max_dlambda: 10.0
outputpath: ./output
overwrite: true
linename: FeXXV
xcrit: 0
nphotons_max: 500000
nphotons_step_max: 500000
use_peeling: true
populate:
Emissivity: "cloudyemission_Fe25 1.85040A_times_volume"
peeling:
dist_max: 0.5
tau_max: 100.0
emissionmodel:
mode: "listsource"
listsource:
lum_threshold: 1e-15
nphotons_per_source_min: 1
nphotons_per_source_max: 10
nphotons_per_unit_lum: 10
loader: emissivity
File Selection
To process zoom halo i, set file_ids to load only that halo's two snapshot chunks:
How file_ids works
For zoom halo index i (the GroupOrigHaloID from the parent box): chunk i holds particles inside FoF halos, chunk i+352 holds the "outer fuzz". file_ids: [i] is usually enough; include i+352 only if you need outer-fuzz particles. The catalog reader receives the same file_ids and silently skips out-of-range IDs (the catalog has 352 files), correctly loading file i.
With file_ids restricted to a single zoom, the catalog contains only that zoom's halos, so hid: 0 (most massive FoF group) selects the primary zoom target.
See Also
- Datasets Reference —
zoom_target/zoom_box - Configuration Reference