This page contains a comprehensive description of the simulation snapshots, group catalogs, merger trees, and supplementary data sets. Differences and additions in TNG with respect to the original Illustris public data release are noted: aspects which have changed, or which are new in TNG, are marked in blue, while those marked in green are identical to Illustris.

Table of Contents


1. Snapshots

Organization

There are 100 snapshots stored for every run. These include all particles/cells in the whole volume. The complete snapshot listings, spacings and redshifts can be found in the API. Note that, unlike in Illustris, TNG contains two different types of snapshots: 'full' and 'mini'. While both encompass the entire volume, 'mini' snapshots only have a subset of particle fields available (detailed below). In TNG twenty snapshots are full, while the remaining 80 are mini. The 20 full snapshots are:

Snap Scale factor Redshift
2 0.0769 12
3 0.0833 11
4 0.0909 10
6 0.1 9
8 0.1111 8
11 0.125 7
13 0.1429 6
17 0.1667 5
21 0.2 4
25 0.25 3
33 0.3333 2
40 0.4 1.5
50 0.5 1
59 0.5882 0.7
67 0.6667 0.5
72 0.7143 0.4
78 0.7692 0.3
84 0.8333 0.2
91 0.9091 0.1
99 1 0

Every snapshot is stored in a series of "chunks", i.e. more manageable, smaller-size files. The number of chunks per snapshots is different for the different runs:

Run Alt. Name Total NumPart (DM) Chunks per Snapshot Full Snapshot Size Avg Groupcat Size Total Data Volume
L35n270TNG TNG50-4 19,683,000 11 5.2 GB 20 MB 0.6 TB
L35n270TNG_DM TNG50-4-Dark 19,683,000 4 1.2 GB 10 MB 0.1 TB
L35n540TNG TNG50-3 157,464,000 11 44 GB 130 MB 7.5 TB
L35n540TNG_DM TNG50-3-Dark 157,464,000 4 9.4 GB 50 MB 0.6 TB
L35n1080TNG TNG50-2 1,259,712,000 128 350 GB 860 MB 18 TB
L35n1080TNG_DM TNG50-2-Dark 1,259,712,000 85 76 GB 350 MB 4.5 TB
L35n2160TNG TNG50-1 10,077,696,000 680 2.7 TB 7.2 GB ~320 TB
L35n2160TNG_DM TNG50-1-Dark 10,077,696,000 128 600 GB 2.3 GB 36 TB
L75n455TNG TNG100-3 94,196,375 8 27 GB 110 MB 1.5 TB
L75n455TNG_DM TNG100-3-Dark 94,196,375 4 5.7 GB 40 MB 0.4 TB
L75n910TNG TNG100-2 753,571,000 56 215 GB 650 MB 14 TB
L75n910TNG_DM TNG100-2-Dark 753,571,000 8 45 GB 260 MB 2.8 TB
L75n1820TNG TNG100-1 6,028,568,000 448 1.7 TB 4.3 GB 128 TB
L75n1820TNG_DM TNG100-1-Dark 6,028,568,000 64 360 GB 1.7 GB 22 TB
L205n625TNG TNG300-3 244,140,625 16 63 GB 340 MB 4 TB
L205n625TNG_DM TNG300-3-Dark 244,140,625 4 15 GB 130 MB 1 TB
L205n1250TNG TNG300-2 1,953,125,000 100 512 GB 2.2 GB 31 TB
L205n1250TNG_DM TNG300-2-Dark 1,953,125,000 25 117 GB 810 MB 7.2 TB
L205n2500TNG TNG300-1 15,625,000,000 600 4.1 TB 14 GB 235 TB
L205n2500TNG_DM TNG300-1-Dark 15,625,000,000 75 930 GB 5.2 GB 57 TB

Note that the snapshot data is not organized according to spatial position. Rather, particles within the snapshot files are sorted according to their group/subgroup memberships, according to the FoF or Subfind algorithms. Within each particle type, the sort order is: GroupNumber, SubgroupNumber, BindingEnergy, where particles belonging to the group but not to any of its subgroups ("fuzz") are included after the last subgroup. The following figure provides a schematic view of the particle organization within a snapshot, for one particle type. Note that the truncation of a snapshot in chunks is arbitrary, thus halos may happen to be stored across multiple, subsequent chunks. Similarly, the different particle types of a halo can be stored in different sets of chunks.

Caption. Schematic diagram of the organization of particle/cell data within the snapshots for a single particle type. Within a type, particle order is determined by a global sort of the following fields in this order: FoF group number, Subfind subhalo number, binding energy, nearest FoF group number. This implies that FOF halos are contiguous, although they can span file chunks. Subfind subhalos are only contiguous within a single group, being separated between groups by an "inner fuzz" of all FOF particles not bound to any subhalo. Here $N_c$ indicates the number of file chunks, $n_F$ the number of FOF groups, and $N_{S,j}$ the number of subhalos in $j^{\rm th}$ FoF group.

Contents

Every HDF5 snapshot contains several groups: "Header", "Parameters", "Configuration", and five "PartTypeX" groups, for the following particle types (the DM only runs have a single PartType1 group):

  • PartType0 - GAS
  • PartType1 - DM
  • PartType2 - (unused)
  • PartType3 - TRACERS
  • PartType4 - STARS & WIND PARTICLES
  • PartType5 - BLACK HOLES

The most important fields of the Header group are given in the following table.

Header
Field Dimensions Units Description
BoxSize 1 $ ckpc/h $ Spatial extent of the periodic box (in comoving units).
MassTable 6 $ 10^{10} M_\odot/h $ Masses of particle types which have a constant mass (only DM).
NumPart_ThisFile 6 - Number of particles (of each type) included in this (sub-)file.
NumPart_Total 6 - Total number of particles (of each type) across all (sub-)files of this snapshot, modulo $ 2^{32} $.
NumPart_Total_HighWord 6 - Total number of particles (of each type) across all (sub-)files of this snapshot, divided by $ 2^{32} $ and rounded downwards.
Omega0 1 - The cosmological density parameter for matter.
OmegaLambda 1 - The cosmological density parameter for the cosmological constant.
Redshift 1 - The redshift corresponding to the current snapshot.
Time 1 - The scale factor a (=1/(1+z)) corresponding to the current snapshot.
NumFilesPerSnapshot 1 - Number of file chunks per snapshot.

The Parameters and Configuration provide the complete set of parameter file options and run-time configuration options used to run TNG. That is, they encode the fiducial "TNG Galaxy Formation Model". Many will clearly map to Table 1 of Pillepich et al. (2018a), while others deal with more numerical/technical options. In the future, together with the release of the TNG initial conditions and the TNG code base of AREPO, this will enable any of the TNG simulations to be reproduced.

The complete snapshot field listings of the PartTypeX groups, including dimensions, units and descriptions, are given for all the particles types in the following large table. Rows in orange are new or different in some way with respect to original Illustris, while those in green are unchanged.

PartType0 (gas)
Field Full Snaps Mini Snaps Subbox Snaps Dims Units Description
CenterOfMass - N,3 $ ckpc/h $ Spatial position of the center of mass, which in general differs from the geometrical center of the Voronoi cell (the offset should be small). Comoving coordinate.
Coordinates N,3 $ ckpc/h $ Spatial position within the periodic box of size 75000 ckpc/h. Comoving coordinate.
Density N $ (10^{10} M_\odot/h) / (ckpc/h)^3 $ Comoving mass density of cell (calculated as mass/volume).
ElectronAbundance N - Fractional electron number density with respect to the total hydrogen number density, so $n_e = \rm{ElectronAbundance} * n_H$ where $n_H = X_H * \rho / m_p$. Use with caution for star-forming gas (see comment below for NeutralHydrogenAbundance).
EnergyDissipation - N,3 $ (1/a) 10^{10} M_{\odot}/\rm{ckpc} (\rm{km/s})^3 $ Shock finder output: the dissipated energy rate (amount of kinetic energy irreversibly transformed into thermal energy). Note units correspond to (Energy/Time). Multiply by $1/a$ to obtain physical units.
GFM_AGNRadiation - N $ erg / s / cm^{2} $ Bolometric intensity (physical units) at the position of this cell arising from the radiation fields of nearby AGN.
GFM_CoolingRate - N $ erg\,\,cm^{3} / s $ The instantaneous net cooling rate experienced by this gas cell, in cgs units (e.g. $ \Lambda_{\rm net} / n_H^2 $).
GFM_Metallicity N - The ratio $ M_Z / M_{total} $ where $ M_Z $ is the total mass all metal elements (above He). Is NOT in solar units. To convert to solar metallicity, divide by 0.0127 (the primordial solar metallicity).
GFM_Metals - N,10 - Individual abundances of nine species: H, He, C, N, O, Ne, Mg, Si, Fe (in this order). Each is the dimensionless ratio of mass in that species to the total gas cell mass. The tenth entry contains the 'total' of all other (i.e. untracked) metals.
GFM_MetalsTagged - N,6 - Six additional metal-origin tracking fields in this order: SNIa (0), SNII (1), AGB (2), NSNS (3), FeSNIa (4), FeSNII (5). Each keeps track of heavy elements arising from particular processes. Full description below.
GFM_WindDMVelDisp - N $ km/s $ Equal to SubfindVelDisp (redundant).
GFM_WindHostHaloMass - N $ 10^{10} M_{\odot}/h $ Mass of the parent FoF halo of this gas cell (redundant).
InternalEnergy N $ (km/s)^2 $ Internal (thermal) energy per unit mass for this gas cell. See FAQ for conversion to gas temperature. This field holds the corrected values, and is generally recommended for all uses, see the data release background for details.
InternalEnergyOld - (^) N $ (km/s)^2 $ Old internal (thermal) energy per unit mass for this gas cell. See FAQ for conversion to gas temperature. This field holds the original values, and is not recommended for use, see the data release background for details. (^) Note that subboxes do not have corrected values, so the InternalEnergy field for subboxes contains the uncorrected values, and no InternalEnergyOld exists.
Machnumber - N - Shock finder output: The Mach number (ratio of fluid velocity to sound speed) of the gas cell, zero if no shock is present.
MagneticField - N,3 $ (h/a^2) (\rm{UnitPressure})^{1/2} $ The (comoving) magnetic field 3-vector (x,y,z) of this gas cell. Multiply by $h/a^2$ to obtain physical code units, then by $ \rm{UnitPressure}^{1/2} = (\rm{UnitMass} / \rm{UnitLength})^{1/2} / \rm{UnitTime}$ $= (10^{10} M_{\odot} / \rm{kpc})^{1/2} * (\rm{km/s}) / \rm{kpc} = 2.60 \times 10^{-6}$ to obtain CGS units (Gauss).
MagneticFieldDivergence - N $ (h^3/a^2) (10^{10} M_{\odot})^{1/2} \rm(km/s) (\rm{ckpc})^{-5/2} $ The divergence of the magnetic field in this cell. Units are (area)*MagneticFieldUnits/(volume).
Masses N $ 10^{10} M_\odot/h $ Gas mass in this cell. Refinement/derefinement attempts to keep this value within a factor of two of the targetGasMass for every cell.
NeutralHydrogenAbundance - N - Fraction of the hydrogen cell mass (or density) in neutral hydrogen, so $ n_{H_0} = \rm{NeutralHydrogenAbundance} * n_H $. (So note that $n_{H^+} = n_H - n_{H_0}$). Use with caution for star-forming gas, as the calculation is based on the 'effective' temperature of the equation of state, which is not a physical temperature.
ParticleIDs N - The unique ID (uint64) of this gas cell. Constant for the duration of the simulation. May cease to exist (as gas) in a future snapshot due to conversion into a star/wind particle, accretion into a BH, or a derefinement event.
Potential - N $ (km/s)^2 / a $ Gravitational potential energy.
StarFormationRate N $ M_\odot / yr $ Instantaneous star formation rate of this gas cell.
SubfindDMDensity - - N $ (10^{10} M_\odot/h) / (ckpc/h)^3 $ The local total comoving mass density, estimated using the standard cubic-spline SPH kernel over all DM particles within a radius of SubfindHsml.
SubfindDensity - - N $ (10^{10} M_\odot/h) / (ckpc/h)^3 $ The local total comoving mass density, estimated using the standard cubic-spline SPH kernel over all particles/cells within a radius of SubfindHsml.
SubfindHsml - - N $ ckpc/h $ The comoving radius of the sphere centered on this cell enclosing the 64±1 nearest dark matter particles.
SubfindVelDisp - - N $ km/s $ The 3D velocity dispersion of all dark matter particles within a radius of SubfindHsml of this cell.
Velocities N,3 $ km\sqrt{a}/s $ Spatial velocity. Multiply this value by $ \sqrt{a} $ to obtain peculiar velocity.
PartType1 (dm)
Field Full Snaps Mini Snaps Subbox Snaps Dims Units Description
Coordinates N,3 $ ckpc/h $ Spatial position within the periodic box of size 75000 ckpc/h. Comoving coordinate.
ParticleIDs N - The unique ID (uint64) of this DM particle. Constant for the duration of the simulation.
Potential - N $ (km/s)^2 / a $ Gravitational potential energy (note: not available in DM-only runs).
SubfindDMDensity - - N $ (10^{10} M_\odot/h) / (ckpc/h)^3 $ The local total comoving mass density, estimated using the standard cubic-spline SPH kernel over all DM particles within a radius of SubfindHsml.
SubfindDensity - - N $ (10^{10} M_\odot/h) / (ckpc/h)^3 $ The local total comoving mass density, estimated using the standard cubic-spline SPH kernel over all particles/cells within a radius of SubfindHsml.
SubfindHsml - - N $ ckpc/h $ The comoving radius of the sphere centered on this particle enclosing the 64±1 nearest dark matter particles.
SubfindVelDisp - - N $ km/s $ The 3D velocity dispersion of all dark matter particles within a radius of SubfindHsml of this cell.
Velocities N,3 $ km\sqrt{a}/s $ Spatial velocity. Multiply this value by $ \sqrt{a} $ to obtain peculiar velocity.
PartType3 (tracers)
Field Full Snaps Mini Snaps Subbox Snaps Dims Units Description
FluidQuantities (*) - (*) N - Of the various quantities recorded for tracers in Illustris, we now have kept only one, similar to "Last_Star_Time". Therefore, this dataset is now a single number for each tracer, and contains information on the previous presence of the tracer inside a particle of type 4 (either a real star, or wind, particle). If the tracer has never been in a particle of type 4, the value is 0. (i) For tracers that are currently in gas cells or black holes, the range of possible values is [-All.TimeMax, All.TimeMax], as follows: if the tracer was last seen in a 'real' star particle, the value is simply the time it came back to the gas phase, i.e. the possible range of values is [0, All.TimeMax]. If the tracer was last seen in a wind particle, the value is the time it came back to the gas phase, multiplied by (-1), i.e. the possible range of values is [-All.TimeMax, 0]. (ii) For tracers that are currently in a 'real' star particle, the value is fixed at 2*All.TimeMax. (iii) For tracers that are currently in a wind particle, the value equals whatever value they had before joining the wind plus 3*All.TimeMax, i.e. the possible range of values is [2*All.TimeMax, 4*All.TimeMax]. Note (*): field only exists for TNG100, removed in TNG300 and TNG50.
ParentID (**) N - The unique ID (uint64) of the parent of this tracer. Could be a gas cell, star, wind phase cell, or BH. Note (**): TNG100 tracers saved only in the (20) full snapshots! They are saved in all 100 snapshots for TNG300 and TNG50.
TracerID (**) N - The unique ID (uint64) of this tracer. Constant for the duration of the simulation. Note (**): TNG100 tracers saved only in the (20) full snapshots! They are saved in all 100 snapshots for TNG300 and TNG50.
PartType4 (stars / wind particles)
Field Full Snaps Mini Snaps Subbox Snaps Dims Units Description
BirthPos - N,3 $ ckpc/h $ Spatial position within the periodic box where this star particle initially formed. Comoving coordinate.
BirthVel - N,3 $ km \sqrt{a}/s $ Spatial velocity of the parent star-forming gas cell at the time of formation. The peculiar velocity is obtained by multiplying this value by $a^{1/2}$.
Coordinates N,3 $ ckpc/h $ Spatial position within the periodic box of size 75000 ckpc/h. Comoving coordinate.
GFM_InitialMass N $ 10^{10} M_\odot/h $ Mass of this star particle when it was formed (will subsequently decrease due to stellar evolution).
GFM_Metallicity N - See entry under PartType0. Inherited from the gas cell spawning/converted into this star, at the time of birth.
GFM_Metals - N,10 - See entry under PartType0. Inherited from the gas cell spawning/converted into this star, at the time of birth.
GFM_MetalsTagged - N,6 - See entry under PartType0. This field is identical for star particles, and note that it is simply inherited at the time of formation from the gas cell from which the star was born. It does not then evolve or change in any way (i.e. no self-enrichment), so these values describe the 'inherited' wind/SN/NSNS material from the gas.
GFM_StellarFormationTime N - The exact time (given as the scalefactor) when this star was formed. Note: The only differentiation between a real star (>=0) and a wind phase gas cell (<0) is the sign of this quantity.
GFM_StellarPhotometrics - N,8 $ \rm{mag} $ Stellar magnitudes in eight bands: U, B, V, K, g, r, i, z. In detail, these are: Buser's X filter, where X=U,B3,V (Vega magnitudes), then IR K filter + Palomar 200 IR detectors + atmosphere.57 (Vega), then SDSS Camera X Response Function, airmass = 1.3 (June 2001), where X=g,r,i,z (AB magnitudes). They can be found in the filters.log file in the BC03 package. The details on the four SDSS filters can be found in Stoughton et al. 2002, section 3.2.1.
Masses N $ 10^{10} M_\odot/h $ Mass of this star or wind phase cell.
ParticleIDs N - The unique ID (uint64) of this star/wind cell. Constant for the duration of the simulation.
Potential - N $ (km/s)^2 / a $ Gravitational potential energy.
StellarHsml - N $ \rm{ckpc/h} $ The comoving radius of the sphere centered on this particle enclosing the 32±1 nearest particles of this same type. Useful for visualization.
SubfindDMDensity - - N $ (10^{10} M_\odot/h) / (ckpc/h)^3 $ The local total comoving mass density, estimated using the standard cubic-spline SPH kernel over all DM particles within a radius of SubfindHsml.
SubfindDensity - - N $ (10^{10} M_\odot/h) / (ckpc/h)^3 $ The local total comoving mass density, estimated using the standard cubic-spline SPH kernel over all particles/cells within a radius of SubfindHsml.
SubfindHsml - - N $ ckpc/h $ The comoving radius of the sphere centered on this star particle enclosing the 64±1 nearest dark matter particles.
SubfindVelDisp - - N $ km/s $ The 3D velocity dispersion of all dark matter particles within a radius of SubfindHsml of this cell.
Velocities N,3 $ km\sqrt{a}/s $ Spatial velocity. Multiply this value by $ \sqrt{a} $ to obtain peculiar velocity.
PartType5 (black holes)
Field Full Snaps Mini Snaps Subbox Snaps Dims Units Description
BH_BPressure N $ (h^4/a^4) 10^{10} M_{\odot} (\rm{km/s})^2/\rm{ckpc}^3 $ The mean magnetic pressure of gas cells within a radius of BH_Hsml, kernel and volume weighted (kernel weight clipped at a maximum of wt=2.5). Units are those of MagneticField$^{2}$. Note: is still in Heavyside-Lorentz, not Gauss, so multiply by $4\pi$ to be unit consistent with MagneticField.
BH_CumEgyInjection_QM N $ 10^{10} M_\odot/h (ckpc/h)^2 / (0.978Gyr/h)^2$ Cumulative amount of thermal AGN feedback energy injected into surrounding gas in the high accretion-state (quasar) mode, total over the entire lifetime of this blackhole. Field summed during BH-BH merger.
BH_CumEgyInjection_RM N $ 10^{10} M_\odot/h (ckpc/h)^2 / (0.978Gyr/h)^2$ Cumulative amount of kinetic AGN feedback energy injected into surrounding gas in the low accretion-state (wind) mode, total over the entire lifetime of this blackhole. Field summed during BH-BH merger.
BH_CumMassGrowth_QM N $ (10^{10} M_\odot/h) $ Cumulative mass accreted onto the BH in the high accretion-state (quasar) mode, total over the entire lifetime of this blackhole. Field summed during BH-BH merger.
BH_CumMassGrowth_RM N $ (10^{10} M_\odot/h) $ Cumulative mass accreted onto the BH in the low accretion-state (kinetic wind) mode, total over the entire lifetime of this blackhole. Field summed during BH-BH merger.
BH_Density N $ (10^{10} M_\odot/h) / (ckpc/h)^3 $ Local comoving gas density averaged over the nearest neighbors of the BH.
BH_HostHaloMass N $ 10^{10} M_\odot/h $ Mass of the parent FoF halo of this blackhole.
BH_Hsml N $ ckpc/h $ The comoving radius of the sphere enclosing the 64,128,256 (for TNG100-3, -2, and -1 resolutions) ±4 nearest-neighbor gas cells around the BH.
BH_Mass N $ 10^{10} M_\odot/h $ Actual mass of the BH; does not include gas reservoir. Monotonically increases with time according to the accretion prescription, starting from the seed mass.
BH_Mdot N $(10^{10} M_\odot/h) / (0.978Gyr/h)$ The mass accretion rate onto the black hole, instantaneous.
BH_MdotBondi N $(10^{10} M_\odot/h) / (0.978Gyr/h)$ Current estimate of the Bondi accretion rate for this BH. Calculated as $\dot {M}_{\rm bondi}=(\alpha 4\pi G^{2}M_{BH}^{2}\rho )/(c_{s}^{2}+v_{BH}^{2})^{3/2}$ with $\alpha =1$ and $v_{BH}=0$ for TNG.
BH_MdotEddington N $(10^{10} M_\odot/h) / (0.978Gyr/h)$ Current estimate of the Eddington accretion rate for this BH. Calculated as $\dot {M}_{\rm edd}=(4\pi GM_{BH}m_{p})/(\epsilon _{r}\sigma _{T}c)$ where $\epsilon_{r}=0.2$ is the radiative efficieny parameter.
BH_Pressure N $ (10^{10} M_\odot/h) / (ckpc/h) / (0.978Gyr/h)^2 $ Physical gas pressure (in comoving units) near the BH, defined as $ (\gamma-1) \rho u $, where $ \rho $ is the local comoving gas density (BH_Density, as above) $u$ is BH_U (defined below). If this pressure is lower than the reference gas pressure, $ P_{ref} $, the BH accretion rate is lowered by $ (P_{ext}/P_{ref})^2 $.
BH_Progs N - Total number of BHs that have merged into this BH.
BH_U N $ (km/s)^2 $ Thermal energy per unit mass in quasar-heated bubbles near the BH. Used to define the BH_Pressure. Not to be confused with the "radio mode" bubbles injected via the unified feedback model.
Coordinates N,3 $ ckpc/h $ Spatial position within the periodic box of size 75000 ckpc/h. Comoving coordinate.
Masses N $ 10^{10} M_\odot/h $ Total mass of the black hole particle. Includes the gas reservoir from which accretion is tracked onto the actual BH mass (see BH_Mass).
ParticleIDs N - The unique ID (uint64) of this black hole. Constant for the duration of the simulation. May cease to exist in a future snapshot due to a BH merger.
Potential N $ (km/s)^2 / a $ Gravitational potential at the location of the BH.
SubfindDMDensity - - N $ (10^{10} M_\odot/h) / (ckpc/h)^3 $ The local total comoving DM mass density, estimated using the standard cubic-spline SPH kernel over all DM particles within a radius of SubfindHsml.
SubfindDensity - - N $ (10^{10} M_\odot/h) / (ckpc/h)^3 $ The local total comoving mass density, estimated using the standard cubic-spline SPH kernel over all particles/cells within a radius of SubfindHsml.
SubfindHsml - - N $ ckpc/h $ The comoving radius of the sphere centered on this blackhole particle enclosing the 64±1 nearest dark matter particles.
SubfindVelDisp - - N $ km/s $ The 3D velocity dispersion of all dark matter particles within a radius of SubfindHsml of this cell.
Velocities N,3 $ km\sqrt{a}/s $ Spatial velocity. Multiply this value by $ \sqrt{a} $ to obtain peculiar velocity.

The general unit system is ${\rm kpc}/h$ for lengths, $10^{10} {\rm M}_\odot/h$ for masses, ${\rm km/s}$ for velocities. The frequently occurring $(10^{10} {\rm M}_\odot/h) / (0.978 {\rm Gyr}/h)$ represents mass-over-time in this unit system, and multiplying by 10.22 converts to ${\rm M}_\odot/{\rm yr}$. Comoving quantities can be converted in the corresponding physical ones by multiplying for the appropriate power of the scale factor $a$. For instance, to convert a length in physical units it is sufficient to multiply it by $a$, volumes need a factor $a^3$, densities $a^{-3}$ and so on. Note that at redshift $z=0$ the scale factor is $a=1$, so that the numerical values of comoving quantities are the same as their physical counterparts.

Tagged Metals

(*) The units of all the entries of GFM_MetalsTagged, except for NSNS, are the same as GFM_Metals: dimensionless mass ratios. If you sum up all the elements of GFM_Metals heavier than Helium, you recover the sum of the three tags SNIa+SNII+AGB. Likewise, the Fe entry of GFM_Metals roughly equals the sum of FeSNIa+FeSNII, modulo the small amount of iron consumed (i.e. negative contribution) by AGB winds. The particular fields are:

  • SNIa (0): The total metals ejected by Type Ia supernovae.
  • SNII (1): The total metals ejected by Type II supernovae.
  • AGB (2): the total metals ejected by stellar winds, which is dominated by AGB stars.
  • NSNS (3): the total mass ejected from NS-NS merger events, which are modeled stochastically (i.e. no fractional events) with a DTD scheme similar to that used for SNIa, except with a different $\tau$ value. Note that the units of NSNS are arbitrary. To obtain physical values in units of solar masses, this field must be multiplied by (MyPreferred_NSNS_MassPerEvent/NSNS_MassPerEvent), where MyPreferred_NSNS_MassPerEvent is the amount of mass ejected per NS-NS merger preferred for analysis (e.g. Shen+ 2015 uses here a value of $0.05 M_{\odot}$), and NSNS_MassPerEvent is the value we have set for the simulation, which varies by run. In particular, it is 0.05 for TNG100* and 5000.0 for TNG300* and TNG50*.
  • FeSNIa (4): The total iron ejected by Type Ia supernovae alone.
  • FeSNII (5): The total iron ejected by Type II supernovae alone.

Subboxes

Separate "subbox" cutouts exist for each baryonic run. These are spatial cutouts of fixed comoving size and fixed comoving coordinates, and the primary benefit is that their time resolution is significantly better than that of the main snapshots. This may be useful for some types of analysis or particular science questions, or for making movies. There are two subboxes for TNG100 (corresponding to the original Illustris subboxes #0 and #2, the latter increased in size), and three subboxes for TNG50 and TNG300. Two notes of caution: first, the time spacing of the subboxes is not uniform in scale factor or redshift, but scales with the time integration hierarchy of the simulation, and is thus variable, with some discrete factor of two jumps at several points during the simulations. Second, the subboxes, unlike the full box, are not periodic.

Run Number of
Subbox Snapshots
Chunks
per Snap
Time Resolution
(at z=6)
(at z=2) (at z=0)
TNG100-324317 ~4 Myr ~7 Myr ~19 Myr
TNG100-243807 ~2 Myr ~4 Myr ~10 Myr
TNG100-1790828 ~1 Myr ~1.5 Myr ~2.5 Myr
TNG300-320506 ~6 Myr ~11 Myr ~8 Myr
TNG300-2304512 ~3 Myr ~6 Myr ~4 Myr
TNG300-1244948 ~1.5 Myr ~4 Myr ~6 Myr
TNG50-4233311 ~7 Myr ~6 Myr ~8 Myr
TNG50-3400611 ~2 Myr ~3 Myr ~4 Myr
TNG50-2189534 ~3 Myr ~6 Myr ~8 Myr
TNG50-1~360068 ~3 Myr ~2 Myr ~2 Myr

The subboxes sample different areas of the large boxes, roughly described by the environment column in the following table. The particle fields are all identical to the main snapshots. However, the ordering differs. In particular, particles/cells in the subboxes are not ordered according to their group membership, as no group catalogs are available for these cutouts.

Subbox # Environment $\Omega_m^{sub}$ XYZ Center BoxSize Volume Fraction
TNG100 Subbox-0 Crowded, including a $5 \times 10^{13} {\rm M}_\odot$ halo ~1.5 (9000, 17000, 63000) 7.5 ${\rm cMpc}/h$ 0.1%
TNG100 Subbox-1 Less crowded, including several $\gt 10^{12} {\rm M}_\odot$ halos ~0.3 (37000, 43500, 67500) 7.5 ${\rm cMpc}/h$ 0.1%
TNG300 Subbox-0 Most massive cluster (~$2 \times 10^{15} M_{\odot}$), merging at z=0 - (44, 49, 148) * 1000 15 ${\rm cMpc}/h$ 0.04%
TNG300 Subbox-1 Crowded, above average # of halos above $10^{13} M_{\odot}$ at z=1 (many groups) - (20, 175, 15) * 1000 15 ${\rm cMpc}/h$ 0.04%
TNG300 Subbox-2 Semi-underdense, one local group analog at z=0 - (169, 97.9, 138) * 1000 10 ${\rm cMpc}/h$ 0.01%
TNG50 Subbox-0 Somewhat-crowded (~6 MWs) ~1 (26000, 10000, 26500) 4.0 ${\rm cMpc}/h$ 0.15%
TNG50 Subbox-1 Low-density (many isolated dwarfs, no halos above $5 \times 10^{10}$ M$_{\odot}$ <1 (12500, 10000, 22500) 4.0 ${\rm cMpc}/h$ 0.15%
TNG50 Subbox-2 Most massive cluster ($2 \times 10^{14}$ M$_{\odot}$ at z=0) >1 (7300, 24500, 21500) 5.0 ${\rm cMpc}/h$ 0.3%

2. Group Catalogs

There is one group catalog associated with each snapshot, which includes both FoF and Subfind objects. The group files are split into a small number of sub-files, just as with the raw snapshots. In TNG, these files are called "fof_subhalo_tab_*", whereas in original Illustris they were called "groups_*" (they are otherwise essentially identical). Every HDF5 group catalog contains the following groups: Header, Group, Subhalo. The IDs of the member particles of each group/subgroup are not stored in the group catalog files. Rather, particles/cells in the snapshot files are ordered according to group membership.

In order to reduce confusion, we adopt the following terminology when referring to different types of objects:

  • "Group", "FoF Group", and "FoF Halo" all refer to halos.
  • "Subgroup", "Subhalo", and "Subfind Group" all refer to subhalos.
  • The first (most massive) subgroup of each halo is the "Primary Subgroup" or "Central Subgroup".
  • All other following subgroups within the same halo are "Secondary Subgroups", or "Satellite Subgroups".

FoF Halos

The Group fields are derived with a standard friends-of-friends (FoF) algorithm with linking length $b=0.2$. The FoF algorithm is run on the dark matter particles, and the other types (gas, stars, BHs) are attached to the same groups as their nearest DM particle. The fields for the FoF halo catalog are described in the following table (all fields are float32 unless otherwise specified):

Field DataType Dimensions Units Description
GroupBHMass float32 N $ 10^{10} M_\odot / h $ Sum of the BH_Mass field of all blackholes (type 5) in this group.
GroupBHMdot float32 N $(10^{10} M_\odot/h) / (0.978Gyr/h)$ Sum of the BH_Mdot field of all blackholes (type 5) in this group.
GroupCM float32 N,3 $ ckpc/h $ Center of mass of the group, computed as the sum of the mass weighted relative coordinates of all particles/cells in the group, of all types. Comoving coordinate. (Available only for the Illustris-3 run)
GroupFirstSub int32 N - Index into the Subhalo table of the first/primary/most massive Subfind group within this FoF group. Note: This value is signed (or should be interpreted as signed)! In this case, a value of -1 indicates that this FoF group has no subhalos.
GroupGasMetalFractions float32 N,10 - Individual abundances: H, He, C, N, O, Ne, Mg, Si, Fe, total (in this order). Each is the dimensionless ratio of the total mass in that species divided by the total gas mass, for all gas cells in the group. The tenth entry contains the 'total' of all other (i.e. untracked) metals.
GroupGasMetallicity float32 N - Mass-weighted average metallicity (Mz/Mtot, where Z = any element above He) of all gas cells in this FOF group.
GroupLen int32 N - Integer counter of the total number of particles/cells of all types in this group.
GroupLenType int32 N,6 - Integer counter of the total number of particles/cells, split into the six different types, in this group. Note: Wind phase cells are counted as stars (type 4) for GroupLenType.
GroupMass float32 N $ 10^{10} M_\odot / h $ Sum of the individual masses of every particle/cell, of all types, in this group.
GroupMassType float32 N,6 $ 10^{10} M_\odot / h $ Sum of the individual masses of every particle/cell, split into the six different types, in this group. Note: Wind phase cells are counted as gas (type 0) for GroupMassType.
GroupNsubs int32 N - Count of the total number of Subfind groups within this FoF group.
GroupPos float32 N,3 $ ckpc/h $ Spatial position within the periodic box (of the particle with the minimum gravitational potential energy). Comoving coordinate.
GroupSFR float32 N $ M_\odot / yr $ Sum of the individual star formation rates of all gas cells in this group.
GroupStarMetalFractions float32 N,10 - Individual abundances: H, He, C, N, O, Ne, Mg, Si, Fe, total (in this order). Each is the dimensionless ratio of the total mass in that species divided by the total stellar mass, for all stars in the group. The tenth entry contains the 'total' of all other (i.e. untracked) metals.
GroupStarMetallicity float32 N - Mass-weighted average metallicity (Mz/Mtot, where Z = any element above He) of all star particles in this FOF group.
GroupVel float32 N,3 $ km/s/a $ Velocity of the group, computed as the sum of the mass weighted velocities of all particles/cells in this group, of all types. The peculiar velocity is obtained by multiplying this value by $1/a.$
GroupWindMass float32 N $ 10^{10} M_\odot / h $ Sum of the individual masses of all wind phase gas cells (type 4, BirthTime <= 0) in this group.
Group_M_Crit200 float32 N $ 10^{10} M_\odot / h $ Total Mass of this group enclosed in a sphere whose mean density is 200 times the critical density of the Universe, at the time the halo is considered.
Group_M_Crit500 float32 N $ 10^{10} M_\odot / h $ Total Mass of this group enclosed in a sphere whose mean density is 500 times the critical density of the Universe, at the time the halo is considered.
Group_M_Mean200 float32 N $ 10^{10} M_\odot / h $ Total Mass of this group enclosed in a sphere whose mean density is 200 times the mean density of the Universe, at the time the halo is considered.
Group_M_TopHat200 float32 N $ 10^{10} M_\odot / h $ Total Mass of this group enclosed in a sphere whose mean density is $\Delta_c$ times the critical density' of the Universe, at the time the halo is considered. $\Delta_c$ derives from the solution of the collapse of a spherical top-hat perturbation (fitting formula from Bryan+ 1998). The subscript 200 can be ignored.
Group_R_Crit200 float32 N $ ckpc/h $ Comoving Radius of a sphere centered at the GroupPos of this Group whose mean density is 200 times the critical density of the Universe, at the time the halo is considered.
Group_R_Crit500 float32 N $ ckpc/h $ Comoving Radius of a sphere centered at the GroupPos of this Group whose mean density is 500 times the critical density of the Universe, at the time the halo is considered.
Group_R_Mean200 float32 N $ ckpc/h $ Comoving Radius of a sphere centered at the GroupPos of this Group whose mean density is 200 times the mean density of the Universe, at the time the halo is considered.
Group_R_TopHat200 float32 N $ ckpc/h $ Comoving Radius of a sphere centered at the GroupPos of this Group whose mean density is $\Delta_c$ times the critical density of the Universe, at the time the halo is considered.

Subfind Subhalos

The Subhalo fields are derived with the Subfind algorithm, with modifications to add additional baryonic properties to each subhalo entry. Descriptions of all fields in this subhalo catalog are given in the following table. Note that for all mass calculations by type, wind phase cells are counted as gas.

Field DataType Dimensions Units Description
SubhaloFlag int16 N - Flag field indicating suitability of this subhalo for certain types of analysis. If zero, this subhalo should generally be excluded, and is not thought to be of cosmological origin. That is, it may have formed within an existing halo, or is possibly a baryonic fragment of a disk or other galactic structure identified by Subfind. If one, this subhalo should be considered a 'galaxy' or 'satellite' of cosmological origin. (Note: always true for centrals). See the data release background for details.
SubhaloBHMass float32 N $ 10^{10} M_\odot/h $ Sum of the masses of all blackholes in this subhalo.
SubhaloBHMdot float32 N $(10^{10} M_\odot/h) / (0.978Gyr/h)$ Sum of the instantaneous accretion rates $\dot{M}$ of all blackholes in this subhalo.
SubhaloBfldDisk (*) float32 N $ (h/a^2) (\rm{UnitPressure})^{1/2} $ The square root of the volume weighted value of $B^{2}$ for all gas cells within the canonical two times the stellar half mass radius. This value gives a magnetic field strength which would have the same amount of mean magnetic energy as the galaxy cells. (*) Only available for full snapshots.
SubhaloBfldHalo (*) float32 N $ (h/a^2) (\rm{UnitPressure})^{1/2} $ The square root of the volume weighted value of $B^{2}$ for all gas cells in the subhalo. This value gives a magnetic field strength which would have the same amount of mean magnetic energy as the subhalo cells. (*) Only available for full snapshots.
SubhaloCM float32 N,3 $ ckpc/h $ Comoving center of mass of the Subhalo, computed as the sum of the mass weighted relative coordinates of all particles/cells in the Subhalo, of all types.
SubhaloGasMetalFractions float32 N,10 - Individual abundances: H, He, C, N, O, Ne, Mg, Si, Fe, total (in this order). Each is the dimensionless ratio of the total mass in that species divided by the total gas mass, both restricted to gas cells within twice the stellar half mass radius. The tenth entry contains the 'total' of all other (i.e. untracked) metals.
SubhaloGasMetalFractionsHalfRad float32 N,10 - Same as SubhaloGasMetalFractions, but restricted to cells within the stellar half mass radius.
SubhaloGasMetalFractionsMaxRad float32 N,10 - Same as SubhaloGasMetalFractions, but restricted to cells within the radius of $V_{\rm max}$.
SubhaloGasMetalFractionsSfr float32 N,10 - Same as SubhaloGasMetalFractions, but restricted to cells which are star-forming.
SubhaloGasMetalFractionsSfrWeighted float32 N,10 - Same as SubhaloGasMetalFractionsSfr, but weighted by the cell star-formation rate rather than the cell mass.
SubhaloGasMetallicity float32 N - Mass-weighted average metallicity (Mz/Mtot, where Z = any element above He) of the gas cells bound to this Subhalo, but restricted to cells within twice the stellar half mass radius.
SubhaloGasMetallicityHalfRad float32 N - Same as SubhaloGasMetallicity, but restricted to cells within the stellar half mass radius.
SubhaloGasMetallicityMaxRad float32 N - Same as SubhaloGasMetallicity, but restricted to cells within the radius of $V_{max}$.
SubhaloGasMetallicitySfr float32 N - Mass-weighted average metallicity (Mz/Mtot, where Z = any element above He) of the gas cells bound to this Subhalo, but restricted to cells which are star forming.
SubhaloGasMetallicitySfrWeighted float32 N - Same as SubhaloGasMetallicitySfr, but weighted by the cell star-formation rate rather than the cell mass.
SubhaloGrNr int32 N - Index into the Group table of the FOF host/parent of this Subhalo.
SubhaloHalfmassRad float32 N $ ckpc/h $ Comoving radius containing half of the total mass (SubhaloMass) of this Subhalo.
SubhaloHalfmassRadType float32 N,6 $ ckpc/h $ Comoving radius containing half of the mass of this Subhalo split by Type (SubhaloMassType).
SubhaloIDMostbound int64 N - The ID of the particle with the smallest binding energy (could be any type).
SubhaloLen int32 N - Total number of member particle/cells in this Subhalo, of all types.
SubhaloLenType int32 N,6 - Total number of member particle/cells in this Subhalo, separated by type.
SubhaloMass float32 N $ 10^{10} M_\odot/h $ Total mass of all member particle/cells which are bound to this Subhalo, of all types. Particle/cells bound to subhaloes of this Subhalo are NOT accounted for.
SubhaloMassInHalfRad float32 N $ 10^{10} M_\odot/h $ Sum of masses of all particles/cells within the stellar half mass radius.
SubhaloMassInHalfRadType float32 N,6 $ 10^{10} M_\odot/h $ Sum of masses of all particles/cells (split by type) within the stellar half mass radius.
SubhaloMassInMaxRad float32 N $ 10^{10} M_\odot/h $ Sum of masses of all particles/cells within the radius of $V_{max}$.
SubhaloMassInMaxRadType float32 N,6 $ 10^{10} M_\odot/h $ Sum of masses of all particles/cells (split by type) within the radius of $V_{max}$.
SubhaloMassInRad float32 N $ 10^{10} M_\odot/h $ Sum of masses of all particles/cells within twice the stellar half mass radius.
SubhaloMassInRadType float32 N,6 $ 10^{10} M_\odot/h $ Sum of masses of all particles/cells (split by type) within twice the stellar half mass radius.
SubhaloMassType float32 N,6 $ 10^{10} M_\odot/h $ Total mass of all member particle/cells which are bound to this Subhalo, separated by type. Particle/cells bound to subhaloes of this Subhalo are NOT accounted for. Note: Wind phase cells are counted as gas (type 0) for SubhaloMassType.
SubhaloParent int32 N - Index back into this same Subhalo table of the unique Subfind host/parent of this Subhalo. This index is local to the group (i.e. 2 indicates the third most massive subhalo of the parent halo of this subhalo, not the third most massive of the whole snapshot). The values are often zero for all subhalos of a group, indicating that there is no resolved hierarchical structure in that group, beyond the primary subhalo having as direct children all of the secondary subhalos.
SubhaloPos float32 N,3 $ ckpc/h $ Spatial position within the periodic box (of the particle with the minium gravitational potential energy). Comoving coordinate.
SubhaloSFR float32 N $ M_\odot / yr $ Sum of the individual star formation rates of all gas cells in this subhalo.
SubhaloSFRinHalfRad float32 N $ M_\odot / yr $ Same as SubhaloSFR, but restricted to cells within the stellar half mass radius.
SubhaloSFRinMaxRad float32 N $ M_\odot / yr $ Same as SubhaloSFR, but restricted to cells within the radius of $V_{max}$.
SubhaloSFRinRad float32 N $ M_\odot / yr $ Same as SubhaloSFR, but restricted to cells within twice the stellar half mass radius.
SubhaloSpin float32 N,3 $ (kpc/h) (km/s) $ Total spin per axis, computed for each as the mass weighted sum of the relative coordinate times relative velocity of all member particles/cells.
SubhaloStarMetalFractions float32 N,10 - Individual abundances: H, He, C, N, O, Ne, Mg, Si, Fe, total (in this order). Each is the dimensionless ratio of the total mass in that species divided by the total stellar mass, both restricted to stars within twice the stellar half mass radius. The tenth entry contains the 'total' of all other (i.e. untracked) metals.
SubhaloStarMetalFractionsHalfRad float32 N,10 - Same as SubhaloStarMetalFractions, but restricted to stars within the stellar half mass radius.
SubhaloStarMetalFractionsMaxRad float32 N,10 - Same as SubhaloStarMetalFractions, but restricted to stars within the radius of $V_{\rm max}$.
SubhaloStarMetallicity float32 N - Mass-weighted average metallicity (Mz/Mtot, where Z = any element above He) of the star particles bound to this Subhalo, but restricted to stars within twice the stellar half mass radius.
SubhaloStarMetallicityHalfRad float32 N - Same as SubhaloStarMetallicity, but restricted to stars within the stellar half mass radius.
SubhaloStarMetallicityMaxRad float32 N - Same as SubhaloStarMetallicity, but restricted to stars within the radius of $V_{max}$.
SubhaloStellarPhotometrics float32 N,8 $ \rm{mag} $ Eight bands: U, B, V, K, g, r, i, z. Magnitudes based on the summed-up luminosities of all the stellar particles of the group. For details on the bands, see snapshot table for stars.
SubhaloStellarPhotometricsMassInRad float32 N $ 10^{10} M_\odot/h $ Sum of the mass of the member stellar particles, but restricted to stars within the radius SubhaloStellarPhotometricsRad.
SubhaloStellarPhotometricsRad float32 N $ ckpc/h $ Radius at which the surface brightness profile (computed from all member stellar particles) drops below the limit of 20.7 mag arcsec$^{-2}$ in the K band (in comoving units).
SubhaloVel float32 N,3 $ km/s $ Peculiar velocity of the group, computed as the sum of the mass weighted velocities of all particles/cells in this group, of all types. No unit conversion is needed.
SubhaloVelDisp float32 N $ km/s $ One-dimensional velocity dispersion of all the member particles/cells (the 3D dispersion divided by $\sqrt{3}$).
SubhaloVmax float32 N $ km/s $ Maximum value of the spherically-averaged rotation curve.
SubhaloVmaxRad float32 N $ kpc/h $ Comoving radius of rotation curve maximum (where $V_{max}$ is achieved).
SubhaloWindMass float32 N $ 10^{10} M_\odot/h $ Sum of masses of all wind-phase cells in this subhalo (with Type==4 and BirthTime<=0).

Note: all quantities restricted to some fraction (0.5, 1.0, or 2.0) of the stellar half mass radius are by definition zero if there are no stars in subhalo.

Header

The following table describes the Header group of each groupcat file:

Field Type Description
Ngroups_ThisFile int Number of groups within this file chunk.
Nsubgroups_ThisFile int Number of subgroups within this file chunk.
Ngroups_Total int Total number of groups for this snapshot.
Nsubgroups_Total int Total number of subgroups for this snapshot.
NumFiles int Total number of file chunks the group catalog is split between.
Time float Scalefactor of the snapshot corresponding to this group catalog.
Redshift float Redshift of the snapshot corresponding to this group catalog.

3. Important Additional Files

Offsets

The "offsets" files are simply helpers which facilitate rapid loading of data. If you want to use the helper scripts for working with the actual data files (snapshots or group catalogs) on your local machine, then it is required that you download the offset file(s) for the snapshot(s) you are interested in working with.

If you only work with the web-based tools and API (e.g. only analyze particle-level data using cutouts), then downloading offset files is not required.

Note that in Illustris, offsets were embedded inside the group catalog files for convenience. In TNG however, we have kept offsets as a separate HDF5 file (one per snapshot), which need to be downloaded as required. Most simply, you can think of offsets as describing where in the group catalog files to find a specific halo/subhalo, and where in the snapshot files to find the start of the particles of a given halo/subhalo.

The following table describes the fields in each offsets file.

Field Dimensions Description
FileOffsets/Snap [$6, N_{\rm c}$] int array The offset table (by type) for the snapshot files, giving the first particle index in each snap file chunk. Determines which files(s) a given offset+length will cover. A two-dimensional array, where the element $(i,j)$ equals the cumulative sum (i.e. offset) of particles of type $i$ in all snapshot file chunks prior to $j$.
FileOffsets/Group [$N_{\rm c}$] int array The offset table for groups in the group catalog files. A one-dimensional array, where the $i^{th}$ element equals the first group number in the $i^{th}$ groupcat file chunk.
FileOffsets/Subhalo [$N_{\rm c}$] int array The offset table for subhalos in the group catalog files. A one-dimensional array, where the $i^{th}$ element equals the first subgroup number in the $i^{th}$ groupcat file chunk.
FileOffsets/SubLink [$N_{\rm c}$] int array The offset table for trees in the SubLink files. A one-dimensional array, where the $i^{th}$ element equals the first tree number in the $i^{th}$ SubLink file chunk.
Group/SnapByType Ngroups_Total,6 The offset table for a given group number (by type), into the snapshot files. That is, the global particle index (across all snap file chunks) of the first particle of this group. A two-dimensional array, where the element $(i,j)$ equals the cumulative sum (i.e. offset) of particles of type $i$ in all groups prior to group number $j$.
Subhalo/SnapByType Nsubgroups_Total,6 The offset table for a given subhalo number (by type), into the snapshot files. That is, the global particle index (across all snap file chunks) of the first particle of this subhalo. A two-dimensional array, where the element $(i,j)$ equals the cumulative sum (i.e. offset) of particles of type $i$ in all subhalos prior to subhalo number $j$.
Subhalo/LHaloTree/File Nsubgroups_Total The LHaloTree file number with the tree which contains this subhalo.
Subhalo/LHaloTree/Num Nsubgroups_Total The number of the tree within the above file within which this subhalo is located (e.g. TreeX).
Subhalo/LHaloTree/Index Nsubgroups_Total The LHaloTree index within the above tree dataset at which this subhalo is located.
Subhalo/Sublink/RowNum Nsubgroups_Total The SubLink global index of the location of this subhalo.
Subhalo/Sublink/SubhaloID Nsubgroups_Total The Sublink ID of this subhalo.
Subhalo/Sublink/LastProgenitorID Nsubgroups_Total The SubLink ID of the last progenitor of this tree (all the subhalos contained in the tree rooted in this subhalo are the ones with IDs between SubhaloID and LastProgenitorID).

The "simulation.hdf5" File

Each run has a single file available called simulation.hdf5 which is purely optional, for convenience, and not required by any of the helper scripts or examples. Its purpose is to encapsulate all data of an entire simulation into a single file. They can be downloaded on each simulation page.

To accomplish this, we make advantage of a new feature of the HDF5 library called "virtual datasets". You can think of a virtual dataset as a collection of symbolic links to one or more datasets in other HDF5 file(s), where these symlinks can refer to subsets of a dataset, in either the source or target of the link. The simulation.hdf5 is thus a large collection of "links", which refer to other files which actually contain data. In order to use it, you must therefore also download the necessary files (e.g. of snapshots, group catalogs, or supplementary data catalogs).

What does it let us do? First of all, no more file chunks! The fact that a snapshot or group catalog is split over multiple files is no longer relevant. Loading becomes very simple:

with h5py.File('simulation.hdf5','r') as f:
    gas_cell_mass = f['/Snapshots/99/PartType0/Masses'][()]
    subhalo_size_stars = f['/Groups/99/Subhalos/SubhaloHalfmassRadType'][:,4]

where gas_cell_mass then contains the masses of every gas cell in the entire z=0 snapshot, while subhalo_size_stars contains the stellar half mass radii of all the subhalos in the z=0 group catalog. The simulation.hdf5 also makes loading the particles of a given halo or subhalo trivial:

halo_id = 400
part_type = 1

with h5py.File('simulation.hdf5','r') as f:
    start = f['/Offsets/99/Group/SnapByType'][halo_id, part_type]
    length = f['/Groups/99/Group/GroupLenType'][halo_id, part_type]

    dm_positions = f['/Snapshots/99/PartType1/Coordinates'][start:start+length,:]

where dm_positions would then contain the dark matter coordinates of every DM particle belonging to halo index 400 of the given simulation.

Finally, supplementary data catalogs (either those we provide, or similar computations you have run yourself) can be virtually inserted at any time as datasets in snapshots or group catalogs. This provides a nice, clean way to organize post-processing computations which result in value-added values for halos, subhalos, or individual particles/cells. You can then load such catalogs with the same scripts (and same syntax) as 'original' snapshot/group catalog fields.

There are two requirements to use a simulation.hdf5 file:

  • Actual data files must be organized exactly as suggested and described in the example scripts tutorial (i.e., an "output" directory containing a "snapdir_099" subdirectory and a "group_099" subdirectory, along with a "postprocessing" directory containing, among others, an "offsets" subdirectory).
  • HDF5 virtual datasets are a new feature, only supported by HDF5 version 1.10.x and later. This is not presently the default version installed on most clusters, which still use 1.8.x. You may have to install a newer version yourself, or request that your system administrator do so. Note! Files created with advanced features of the new HDF5 library series are not backwards compatible. The old 1.8.x series of HDF5 reaches end of life in 2019, so it is a good idea regardless to migrate. In Python, you will also need a fairly new version of h5py (e.g. 2.9.x).

4. Merger Trees

Merger trees have been created for the various Illustris simulations using SubLink (Rodriguez-Gomez+ 2015) and LHaloTree (Springel+ 2005). The LHaloTree are essentially identical to the primary trees of the Millennium and Aquarius simulations, but in HDF5 format. Merger tree formats in TNG are identical to Illustris, with additional fields from the group catalogs also present. In the population average sense the different merger trees give similar results. In more detail, the exact merger history or mass assembly history for any given halo may differ. For any given science goal, one type of tree may be more or less useful, and users are free to use whichever they prefer. These codes are all included in the Sussing Merger Trees comparison project (Srisawat+ 2013).

The following figure shows a schematic of the structure of both the SubLink and LHaloTree merger trees. It is not necessary to understand the complete details of the trees to practically use them. In particular, the only critical links are the 'descendant' (black), 'first progenitor' (green), and 'next progenitor' (red) associations. These are shown for all tree nodes in the diagram. For their exact definitions, see the tables below. Walking back in time following along the main (most massive) progenitor branch consists of following the first progenitor links until they end (value equals -1). Similarly, walking forward in time along the descendants branch consists of following the descendant links until they end (value equals -1), which typically occurs at $z=0$. The full progenitor history, and not just the main branch, requires following both the first and next progenitor links. In this way the user can identify all subhalos at a previous snapshot which have a common descendant. Examples of walking the tree are provided in the example scripts.

Caption. Schematic diagram of the merger tree structure for both SubLink and LHaloTree. Both algorithms connect subhalos across different snapshots in the simulation. Rows indicate discrete snapshots, with time increasing downwards towards redshift zero (the horizontal axis is arbitrary). Green circles represent subhalos (the nodes of the merger tree), while beige boxes indicate the grouping of the subhalos into their parent FoF groups. The most important links are for the descendant (black), first progenitor (green), and next progenitor (red), which are shown for all subhalos. The root descendant (purple), last progenitor (blue), and main leaf progenitor (orange) links exist only for the SubLink trees, and for simplicity these last three link types are shown only for subhalos 5, 7, and 19 (darker striped circles).

The number inside each circle from the figure is the unique ID (within the whole simulation) of the corresponding subhalo, which is assigned in a depth-first fashion. Numbering also indicates the on-disk storage ordering for the SubLink trees, which adopt the approach of Lemson+ (2006). For example, the main progenitor branch (from 5-7 in the example) and the full progenitor tree (from 5-13 in the example) are both contiguous subsets of each merger tree field, whose location and size can be calculated using these links. The ordering within a single tree in the LHaloTree is not guaranteed to follow this scheme.

The 'root descendant' (purple), 'last progenitor' (blue), and 'main leaf progenitor' (orange) links exist only for the SubLink trees. For simplicity, these last three link types are shown only for nodes 5, 7, and 19 (darker striped circles). Using these links is optional, but allows efficient extraction of main progenitor branches, subtrees (i.e., the set containing a subhalo and "all" its progenitors), "forward" descendant branches, and other subsets of the tree. For their full definitions, see the following table.

Each subhalo spans a "subtree" consisting of the subhalo itself and all its progenitors. As an example, the subhalos belonging to the subtree of subhalo 5 are shown in darker green in the figure. Other subhalos not belonging to this subtree are shown in lighter green, and their links are indicated with dashed arrows. In the SubLink trees, the subtree of any subhalo can be extracted easily using the 'last progenitor' pointer. As shown in the figure, since subhalo 13 is the 'last progenitor' of subhalo 5, the subtree of subhalo 5 consists of all subhalos with IDs between 5 and 13. Similarly, the main progenitor branch of any subhalo can be retrieved efficiently using the 'main leaf progenitor' link.

Both SubLink and LHaloTree contain the links 'first subhalo in FoF group' (light brown dotted arrow) and 'next subhalo in FoF group' (dark brown dotted arrow), which connect subhalos that belong to the same FoF group. The FoF groups do not play a direct role in the construction of the merger tree. However, in SubLink, subhalos that belong to the same FoF group are also considered to be part of the same tree. As a result, two otherwise independent trees (based on the progenitor and descendant links) are considered to be the same tree if they are "connected" by a FoF group. This is exemplified in the figure by the FoF group containing subhalos 12, 16, and 20. This FoF group acts as a bridge between the left and right trees.

SubLink

The SubLink algorithm constructs merger trees at the subhalo level. A unique descendant is assigned to each subhalo in three steps (see Rodriguez-Gomez+ 2015). First, descendant candidates are identified for each subhalo as those subhalos in the following snapshot that have common particles with the subhalo in question. Second, each of the descendant candidates is given a score based on a merit function that takes into account the binding energy rank of each particle. Third, the unique descendant of the subhalo in question is the descendant candidate with the highest score. Sometimes the halo finder does not detect a small subhalo that is passing through a larger structure, because the density contrast is not high enough. {\sc SubLink} deals with this issue by allowing some subhalos to skip a snapshot when finding a descendant. Once all descendant connections have been made, the main progenitor of each subhalo is defined as the one with the "most massive history" behind it.

The SubLink merger tree is one large data structure split across several sequential HDF5 files named tree_extended.[fileNum].hdf5, where [fileNum] goes from e.g. 0 to 9 for the Illustris-1 run. These files store the data on a per tree basis, and therefore are completely independent from each other. More specifically, any two subhalos that are connected by any of the pointers described in the SubLink table are guaranteed to belong to the same tree, and, therefore, their data is found in the same file. The following table lists the fields which are present in each file.

Field DataType Dimensions Units Description
SubhaloID int64 (N) - Unique identifier of this subhalo, assigned in a "depth-first" fashion (Lemson & Springel 2006). This value is contiguous within a single tree.
SubhaloIDRaw int64 (N) - Unique identifier of this subhalo in raw format (= SnapNum*10^12 + SubfindID).
LastProgenitorID int64 (N) - The SubhaloID of the last progenitor of the tree rooted at this subhalo. Since the SubhaloIDs are assigned in a "depth-first" fashion, all the subhalos contained in the tree rooted at this subhalo are the ones with SubhaloIDs between (and including) the SubhaloID and LastProgenitorID of this subhalo. For subhalos with no progenitors, LastProgenitorID == SubhaloID.
MainLeafProgenitorID int64 (N) - The SubhaloID of the last progenitor along the main branch, i.e. the earliest progenitor obtained by following the FirstProgenitorID pointer. For subhalos with no progenitors, MainLeafProgenitorID == SubhaloID.
RootDescendantID int64 (N) - The SubhaloID of the latest subhalo that can be reached by following the DescendantID link, i.e. the root of the tree to which this subhalo belongs. For subhalos with no descendants, RootDescendantID == SubhaloID.
TreeID int64 (N) - Unique identifier of the tree to which this subhalo belongs.
SnapNum int16 (N) - The snapshot in which this subhalo is found.
FirstProgenitorID int64 (N) - The SubhaloID of this subhalo's first progenitor. The first progenitor is the one with the "most massive history" behind it (following De Lucia & Blaizot 2007). For subhalos with no progenitors, FirstProgenitorID == -1.
NextProgenitorID int64 (N) - The SubhaloID of the subhalo with the next most massive history which shares the same descendant as this subhalo. If there are no more subhalos sharing the same descendant, NextProgenitorID == -1.
DescendantID int64 (N) - The SubhaloID of this subhalo's descendant. If this subhalo has no descendants, DescendantID == -1.
FirstSubhaloInFOFGroupID int64 (N) - The SubhaloID of the first subhalo (i.e., the one with the most massive history) from the same FOF group.
NextSubhaloInFOFGroupID int64 (N) - The SubhaloID of the next subhalo (ordered by their mass history) from the same FOF group. If there are no more subhalos in the same FOF group, NextSubhaloInFOFGroupID == -1.
NumParticles uint32 (N) - Number of particles in the current subhalo which were used in the merger tree to determine descendants (e.g. DM-only or stars + star-forming gas).
Mass float32 (N) $ 10^{10} M_\odot/h $ Mass of the current subhalo, including only the particles which were used in the merger tree to determine descendants (e.g. DM-only or stars + star-forming gas).
MassHistory float32 (N) $ 10^{10} M_\odot/h $ Sum of the Mass field of all progenitors along the main branch (De Lucia & Blaizot 2007).
SubfindID int32 (N) - Index of this subhalo in the Subfind group catalog.
All original fields from the group catalogs are also available, reordered into the same order as the merger trees for convenience. See the group catalog description for their units, dimensions, and descriptions.
Fields: Group_M_Crit200, Group_M_Mean200, Group_M_TopHat200, SubhaloBHMass, SubhaloBHMdot, SubhaloCM, ...
Note: Group_M_Crit200, Group_M_Mean200, and Group_M_Tophat200 are FOF group quantities, so that all subhalos from the same FOF group will have the same value.

LHaloTree

The LHaloTree algorithm is virtually identical to that used for the Millennium simulation, constructing trees based on subhalos instead of main halos, described fully in the supplementary information of Springel+ (2005). In short, to determine the appropriate descendant, the unique IDs that label each particle are tracked between outputs. For a given halo, the algorithm finds all halos in the subsequent output that contain some of its particles. These are then counted in a weighted fashion, giving higher weight to particles that are more tightly bound in the halo under consideration, and the one with the highest count is selected as the descendant. In this way, preference is given to tracking the fate of the inner parts of a structure, which may survive for a long time upon infall into a bigger halo, even though much of the mass in the outer parts can be quickly stripped. To allow for the possibility that halos may temporarily disappear for one snapshot, the process is repeated for Snapshot n to Snapshot n+2. If either there is a descendant found in Snapshot $n + 2$ but none found in Snapshot n+1, or, if the descendant in Snapshot n+1 has several direct progenitors and the descendant in Snapshot n+2 has only one, then a link is made that skips the intervening snapshot.

The LHaloTree merger tree is one large data structure split across several HDF5 files named trees_sf1_99.[chunkNum].hdf5, where [chunkNum] goes from e.g. 0 to 511 for the Illustris-1 run. Within each file there are a number of groups named TreeX, where X is an integer which simply increases from zero to the number of tree groups in that file chunk. Note that a given TreeX group may contain subhalos spanning different FoF groups as well as snapshots, and to efficiently locate a specific subhalo at a specific snapshot (e.g z=0) the offsets can be used. The pair (SubhaloNumber,SnapNum) provides the indexing into the Subfind group catalog. The five other indices for each entry in a TreeX group (e.g. Descendant) index into that same group in the tree file. The following tables describe the fields. First, the Header group:

Dataset Dimensions Units Description
Redshifts {N_snap} - List of redshifts of the snapshots used to create this merger tree.
TotNsubhalos {N_snap} - Equal to the number of Subfind/Subhalo groups in the group catalog, for each snapshot used to create this merger tree.
TreeNHalos {N_halos} - 'The size of {N} for each "TreeX" group in this file', e.g. the total number of halos (across time) in that group.
FirstSnapshotNr 1 - First snapshot number used to make these merger trees (should be 0).
LastSnapshotNr 1 - Last snapshot number used to make these merger trees (should be 135).
SnapSkipFac 1 - Snapshot stride when making these merger trees (should be 1).
NtreesPerFile 1 - 'The size of {N_halos} for this file', can be used to calculate the offset to map a FoF group number to a "TreeX" group name (made to be roughly equal across chunks).
NhalosPerFile 1 - The total number of tree members (subhalos) 'in this file.' Equals the sum of all elements of TreeNHalos.
ParticleMass 1 $ 10^{10} M_\odot / h $ The dark matter particle mass used to make these merger trees.

TreeX Groups:

Dataset Dimensions Description
SubhaloNumber (N) The ID of this subhalo, unique within the full simulation for this snapshot. Indexes the Subfind group catalog at SnapNum.
Descendant (N) The index of the subhalo's descendant within the merger tree, if any (-1 otherwise). Indexes this TreeX group.
FirstProgenitor (N) The index of the subhalo's first progenitor within the merger tree, if any (-1 otherwise). The first progenitor is defined as the most massive one (-1 if none). Indexes this TreeX group.
NextProgenitor (N) The index of the next subhalo from the same snapshot which shares the same descendant, if any (-1 if this is the last). Indexes this TreeX group.
FirstHaloInFOFGroup (N) The index of the main subhalo (i.e. the most massive one) from the same FOF group. Indexes this TreeX group.
NextHaloInFOFGroup (N) The index of the next subhalo from the same FOF group (-1 if this is the last). Indexes this TreeX group.
FileNr (N) File number in which the subhalo is found. (Redundant, i.e. for a given [chunkNum] file, this array will be constant and equal to [chunkNum])
SnapNum (N) The snapshot in which this subhalo was found.
Most all original fields from the group catalogs are also available, reordered into the same order as the merger trees for convenience. See the group catalog description for their units, dimensions, and descriptions.
Fields: Group_M_Crit200, Group_M_Mean200, Group_M_TopHat200, SubhaloBHMass, SubhaloBHMdot, SubhaloCM, ...
Note: Group_M_Crit200, Group_M_Mean200, and Group_M_Tophat200 are FOF group quantities, so that only the first subgroup from each FOF group will have a nonzero value.

5. Supplementary Data Catalogs


(a) Tracer Tracks

Data products from Nelson+ (2019a) coming soon.


(b) Stellar Masses, Star Formation Rates

Data products from Pillepich+ (2018b) coming soon.


(c) Stellar Circularities, Angular Momenta, Axis Ratios

Data products from Genel+ (2015) coming soon.


(d) Subhalo Matching Between Runs

A catalog for cross-matching subhalos between:

  • matched baryonic and dark matter only runs (e.g. TNG100-1 and TNG100-1-Dark) runs, at the same resolution.
  • two baryonic realizations of the same box at different resolutions (e.g. TNG100-1 and TNG100-2)
  • two simulations of the same box with different physical models (e.g. TNG100-1 and Illustris-1)

Data products from Lovell+ (2018), Rodriguez-Gomez+ (2015), and Nelson+ (2015) coming soon.


(e) Stellar Projected Sizes

Data products from Genel+ (2018) coming soon.


(f) Blackhole Mergers and Details

This catalog is comprised of two data sets: 'mergers' and 'details'. The mergers file contains a record of each BH-BH merger in the simulation. The details file contain properties of each BH at significantly higher time resolution than the snapshots. In both cases the information is extracted from output files separate from the snapshots, and so represents additional data which is otherwise not available from the snapshots alone. Here we distinguish the two BHs which participate in the merger as 'in' and 'out' BH. The difference, which during the simulation is chosen randomly by the code, is which BH ID number persists along with the remnant after the merger. The 'out' BH survives after the merger, increased in mass by that of the 'in' BH--which no longer exists after the merger event.

There exists one blackhole_mergers.hdf5 and one blackhole_details.hdf5 per baryonic run. All datasets corresponding to physical values are in code units, with masses in units of $10^{10} M_\odot / h$, mass accretion rates in units of $M_\odot / \rm{yr}$, gas densities in units of $(10^{10} M_\odot / h) / (\rm{ckpc} / h)^3$, and gas sound speeds in units of $\rm{km / s}$. They were generated with the illustris_blackholes code. Citation recommmended to Kelley et al. (2016) and Blecha et al. (2016) as appropriate.

IMPORTANT NOTE: For both the mergers and details files, there are a few small missing data gaps. In TNG100-1, this includes redshift periods [0.96 - 0.98], [1.18 - 1.20], [1.27 - 1.40], [2.06 - 2.48]. This information was lost to data corruption and cannot be recovered, and appropriate care should be taken in analysis of this data.

Blackhole mergers:

Dataset Shape/Datatype Description
/Header/unique_ids (NumBHsTot) uint64 The ID numbers of all unique BH participating in mergers.
/Header/num_mergers (attribute) The total number of mergers stored $(N)$.
/tree/* - Information describing the BH merger tree. If one of the below events does not exist, the value in the array is -1, NOTE: not zero. For example, if next[123] = 345, then merger 345 is the next merger that the BH remnant from merger 123 is involved in. If, prev_in[345] == 123 and prev_out[345] = -1, then the 123 merger remnant is the 'in' BH of merger 345, and the other BH of that merger was never in a previous merger (and so has a prev value of -1).
/tree/next (N) int The index number of the next merger this remnant takes part in.
/tree/prev_in (N) int The index number of the previous merger this 'in' BH was part of.
/tree/prev_out (N) int The index number of the previous merger this 'out' BH was part of.
/details/* - Information from the 'details' catalog for the BHs in each merger. Details entries were searched by trying to match the 'in' BH just before merger, and the 'out' BH both just before, and just after merger. This corresponds to the three 'columns' for each entry 'row': [0: in-before, 1: out-before, 2: out-aft]. Frequently these details were not found, in which case the array values are zero.
/details/time (N,3) float Time (scale-factor) for each entry.
/details/mass (N,3) float Blackhole mass.
/details/mdot (N,3) float Blackhole mass accretion rate.
/details/rho (N,3) float Local gas density in the vicinity of the blackhole.
/details/cs (N,3) float Local gas sound-speed in the vicinity of the blackhole.
/time (N) float Time (scale-factor) for each merger event.
/id_in (N) uint64 ID number of the 'in' BH.
/id_out (N) uint64 ID number of the 'out' BH.
/mass_in (N) float Mass of the 'in' BH (immediately preceding merger).
/mass_out (N) float Mass of the 'out' BH (immediately preceding merger).
/snapshot (N) int Output snapshot during which, or immediately following, this merger event occured.

Blackhole details:

Dataset Shape/Datatype Description
/Header/num_entries (attribute) The total number of details entries stored $(N)$.
/Header/num_blackholes (attribute) The total number of unique BHs with details entries $(M)$.
/unique/id (M) uint64 ID numbers of each unique BH.
/unique/first_index (M) int The index number (into any of the size N arrays) of the first entry for each unique BH.
/unique/num_entries (M) int The total number of entries (in any of the size N arrays) for each unique BH.
/id (N) uint64 ID number of the BH for each details entry.
/time (N) float Time (cosmological scale-factor) for each entry.
/mass (N) float Blackhole mass.
/mdot (N) float Blackhole mass accretion rate.
/rho (N) float Local gas density in the vicinity of the blackhole.
/cs (N) float Local gas sound-speed in the vicinity of the blackhole.

(g) Stellar Assembly

Data products related to in-situ vs. ex-situ stellar mass growth from Rodriguez-Gomez et al. (2015), and Rodriguez-Gomez et al. (2016a) coming soon.


(h) Subbox Subhalo List

Data products from Nelson+ (in prep) coming soon.


(i) Molecular and atomic hydrogen (HI+H2) contents

Data products from Diemer+ (2019) and Stevens+ (2019) coming soon.


(j) Halo/galaxy angular momentum and baryon content

Data products from Zjupa+ (in prep) coming soon.


(k) SDSS Photometry and Mock Fiber Spectra

Data products from Nelson+ (2018a) coming soon.


(l) SKIRT Synthetic Images and Optical Morphologies

Data products from Rodriguez-Gomez+ (2018) coming soon.


(m) DisPerSE Cosmic Web

Data products from Duckworth+ (in prep) coming soon.