Outputs
This page documents the galaxy catalogues SAGE26 writes to disk: file layout, per-field units and descriptions, flag conventions, and the optional auxiliary datasets controlled by run parameters.
Sources:
src/io/save_gals_hdf5.h,
src/io/save_gals_hdf5.c,
src/io/save_gals_binary.h,
src/io/save_gals_binary.c.
Output formats
The OutputFormat parameter selects one of two writers:
Value |
Format |
Notes |
|---|---|---|
|
Raw little-endian C struct dump |
One file per task ( |
|
HDF5 column store with metadata |
One file per task plus a master file linking them. |
Both writers emit one file per output snapshot listed in
FileWithOutputSnaps. Per-galaxy field content is the same in both
formats, but field names and the on-disk layout differ – see the
field reference below.
Code units used internally are:
Length:
Mpc / hMass:
1.0e10 Msun / hVelocity:
km / sTime: derived from length / velocity (UnitTime_in_Megayears stored in the header)
Where the writer converts to a more convenient unit (SFR, outflow rate, cooling/heating power, merger times) it is noted explicitly in the field reference. Everything else is in code units.
HDF5 layout
<FileNameGalaxies>_<N>.hdf5
+- Header/
| +- Simulation/ (attributes: SimulationDir, FileWithSnapList,
| | LastSnapshotNr, SimMaxSnaps,
| | omega_matter, omega_lambda, particle_mass,
| | hubble_h, num_simulation_tree_files,
| | box_size, num_trees_this_file)
| +- Runtime/ (every recipe flag and model parameter from the .par
| | file, plus UnitLength_in_cm/UnitMass_in_g/
| | UnitVelocity_in_cm_per_s and frac_volume_processed)
| +- Misc/ (attributes: num_cores, sage_data_version,
| | sage_version, git_SHA_reference)
| +- snapshot_redshifts (1-D dataset, length SimMaxSnaps)
| +- output_snapshots (1-D dataset, length NumOutputs)
+- TreeInfo/<snap>/ (per-tree galaxy counts for each output snapshot)
+- Snap_<N>/ (one group per output snapshot)
+- SnapNum, Type, GalaxyIndex, ... (one dataset per field)
+- SFHMassDisk, SFHMassBulge (only if SaveFullSFH = 1)
Each galaxy-property dataset has two HDF5 attributes:
Description– one-line text description.Units– unit string.
The cumulative SFH datasets additionally carry a NumSnapshots
attribute equal to SimMaxSnaps.
A separate master file (<FileNameGalaxies>.hdf5) is written at the
end of the run; it contains the same Header group and uses HDF5
external links to expose each per-task file’s snapshot data under a
single tree.
Binary layout
[int32 ntrees]
[int32 tot_ngals]
[int32 forest_ngals[ntrees]]
[GALAXY_OUTPUT galaxies[tot_ngals]]
Galaxies are stored in snapshot order; the i-th block of
forest_ngals[i] galaxies belongs to tree i. The GALAXY_OUTPUT
struct layout is fixed at compile time – see
src/io/save_gals_binary.h for the canonical definition. No header
metadata, descriptions, or units are written; downstream tools must
know the struct layout in advance.
The binary writer does not emit the cumulative SFH arrays; use HDF5
output if you need SFHMassDisk / SFHMassBulge.
Flag conventions
Type – galaxy hierarchy position
Value |
Meaning |
|---|---|
0 |
Central galaxy of the main FoF halo. |
1 |
Central of a sub-halo (Type 1 satellite, still has its own subhalo). |
2 |
Orphan satellite (subhalo lost; will merge or disrupt within the current timestep). |
For Type 0 galaxies, all infall fields (infallMvir, infallVvir,
infallVmax, infallStellarMass, TimeOfInfall) are zeroed on
output – they are only meaningful for satellites.
mergeType – merger/disruption channel
Value |
Meaning |
|---|---|
0 |
None (galaxy still evolving). |
1 |
Minor merger (mass ratio below |
2 |
Major merger (mass ratio above |
3 |
Reserved for disk instability (header documents it, but no code path sets this value). |
4 |
Disrupted to intra-cluster stars. |
Regime – CGM regime classification
Value |
Meaning |
|---|---|
0 |
CGM regime (cool flow / precipitation; cooling driven by |
1 |
Hot-halo regime (Mvir above the Dekel & Birnboim 2006 M_shock; cooling driven by |
Set every snapshot in determine_and_store_regime() when
CGMrecipeOn = 1. Left at zero (and unused) when CGMrecipeOn = 0.
FFBRegime – feedback-free burst classification
Value |
Meaning |
|---|---|
0 |
Normal halo (standard star formation + SN feedback). |
1 |
FFB halo (Li+2024 / Boylan-Kolchin+2025 starburst path; disk-instability check skipped, SN feedback still applied). |
Only set when FeedbackFreeModeOn = 1.
Galaxy property reference
The tables below list every per-galaxy field written to disk, with its
HDF5 name (the binary writer uses the corresponding GALAXY_OUTPUT
struct field name – see the “Binary vs HDF5 name differences”
section below) and the unit actually written.
Identity and tree linkage
Field |
Units |
Description |
|---|---|---|
|
– |
Snapshot the galaxy is located at. |
|
– |
Galaxy hierarchy position (see flag table above). |
|
– |
Galaxy ID unique across all trees and files. Computed from local galaxy number, tree number, and file number. |
|
– |
|
|
– |
Halo index from SAGE’s restructured tree (not the input tree’s). |
|
– |
Tree number (within file) this galaxy belongs to. |
|
– |
|
|
– |
HDF5 only. Task-local forest number used for parallel bookkeeping. |
|
– |
Merger/disruption channel (see flag table above). |
|
– |
|
|
– |
Snapshot of the merge target. |
|
Myr |
Time since this galaxy was last evolved (snapshot interval / sub-step). |
Halo properties
Field |
Units |
Description |
|---|---|---|
|
Mpc / h |
Galaxy spatial position. HDF5 splits into three 1-D datasets; binary stores as |
|
km / s |
Galaxy peculiar velocity. HDF5 splits; binary stores as |
|
Mpc * km / s |
Halo specific angular momentum vector. HDF5 splits; binary stores as |
|
– |
Number of particles in the galaxy’s halo. |
|
1.0e10 Msun / h |
Virial mass of this galaxy’s halo. |
|
1.0e10 Msun / h |
Virial mass of the main FoF halo (central). |
|
Mpc / h |
Virial radius of this galaxy’s halo. |
|
km / s |
Virial velocity of this galaxy’s halo. |
|
km / s |
Maximum circular velocity of this galaxy’s halo. |
|
km / s |
Velocity dispersion of this galaxy’s halo. |
|
– |
NFW halo concentration from the Ishiyama+21 c-M relation (set when |
|
– |
Running maximum of the precipitation g-parameter across all snapshots for this halo (HDF5 dtype: float64). |
Baryonic reservoirs
Field |
Units |
Description |
|---|---|---|
|
1.0e10 Msun / h |
Mass of gas in the cold reservoir (disk + bulge). |
|
1.0e10 Msun / h |
Total stellar mass (disk + bulge). |
|
1.0e10 Msun / h |
Stellar mass in the bulge (= |
|
1.0e10 Msun / h |
Mass of gas in the hot halo reservoir. |
|
1.0e10 Msun / h |
Mass of gas ejected from the halo by SN feedback. |
|
1.0e10 Msun / h |
Mass of the central black hole. |
|
1.0e10 Msun / h |
Total ICS mass (HDF5 name |
|
1.0e10 Msun / h |
Mass of gas in the circum-galactic medium (Regime 0 reservoir). |
|
1.0e10 Msun / h |
Mass of molecular hydrogen in the cold gas. |
|
1.0e10 Msun / h |
Mass of atomic hydrogen in the cold gas. |
|
1.0e10 Msun / h |
Stellar mass in the merger-built classical bulge (Tonini+2016 channel A). |
|
1.0e10 Msun / h |
Stellar mass in the disk-instability pseudo-bulge (Tonini+2016 channel B). |
Metals
Field |
Units |
Description |
|---|---|---|
|
1.0e10 Msun / h |
Metals in the cold reservoir. |
|
1.0e10 Msun / h |
Metals locked in stars. |
|
1.0e10 Msun / h |
Metals locked in bulge stars. |
|
1.0e10 Msun / h |
Metals in the hot reservoir. |
|
1.0e10 Msun / h |
Metals in the ejected reservoir. |
|
1.0e10 Msun / h |
Metals in intra-cluster stars (HDF5 name |
|
1.0e10 Msun / h |
Metals in the CGM reservoir. |
Star formation, feedback, and BH accretion
Field |
Units |
Description |
|---|---|---|
|
Msun / yr |
Disk SFR averaged over the snapshot interval (mean over the STEPS sub-steps). |
|
Msun / yr |
Bulge SFR averaged over the snapshot interval (starburst component). |
|
dimensionless |
Mass-weighted metallicity of the star-forming disk gas ( |
|
dimensionless |
Mass-weighted metallicity of the star-forming bulge gas. Same caveat as |
|
Msun / yr |
Cold-gas reheating rate (cold -> hot) integrated over the substep. |
|
dimensionless |
SN mass-loading factor (outflow rate / SFR). |
|
log10(erg / s) |
log10 of cooling energy rate. Stored as 0.0 when no cooling occurred (i.e. zero, not “1 erg/s”). |
|
log10(erg / s) |
log10 of AGN radio-mode heating energy rate. Stored as 0.0 when no heating occurred. |
|
1.0e10 Msun / h |
Mass accreted by the black hole during the last sub-step via the quasar (merger-driven) mode. |
Sizes
Field |
Units |
Description |
|---|---|---|
|
Mpc / h |
Disk exponential scale length from Mo, Mao & White (1998). HDF5 name |
|
Mpc / h |
Bulge half-mass radius (Lange et al. 2015 / Shen et al. 2003 normalisation; updated by mergers and instabilities). |
|
Mpc / h |
Sub-component bulge radius from the merger channel. |
|
Mpc / h |
Sub-component bulge radius from the disk-instability channel (Tonini+2016 Eq. 15 incremental update). |
Times
Field |
Units |
Description |
|---|---|---|
|
Myr |
Code-time of the last major merger, converted to Myr. |
|
Myr |
Code-time of the last minor merger, converted to Myr. |
|
Myr |
Code-time at which this galaxy became a satellite (zero for Type 0). |
Two-regime cooling (CGM model)
Field |
Units |
Description |
|---|---|---|
|
– |
CGM regime flag (see flag table above). |
|
Myr |
Cooling time of the CGM gas at the cooling radius. |
|
Myr |
Free-fall time of the CGM gas at the cooling radius. |
|
dimensionless |
Voit (2015) precipitation criterion ratio. |
|
Myr |
Depletion time of the CGM reservoir under the current cooling rate. |
|
Gyr |
H2 depletion time from the K13 prescription. Set to -1 when not applicable. |
|
dimensionless |
Ratio of the cooling radius to the virial radius. |
|
Msun / yr |
Hot-halo cooling rate (mass flowing from hot to cold). |
|
Msun / yr |
Cold-stream accretion rate (CGM-regime mass flowing from CGM to cold). |
Infall properties (Type > 0 only)
For Type 0 (central) galaxies, all five infall fields are zeroed on output. For satellites, they record the halo state at the snapshot just before infall:
Field |
Units |
Description |
|---|---|---|
|
1.0e10 Msun / h |
Virial mass of this halo at the previous timestep (the “infall snapshot”). |
|
km / s |
Virial velocity at the infall snapshot. |
|
km / s |
Maximum circular velocity at the infall snapshot. |
|
1.0e10 Msun / h |
Stellar mass at the moment of becoming a satellite. |
Feedback-free burst diagnostic
Field |
Units |
Description |
|---|---|---|
|
– |
FFB classification flag (see flag table above). |
ICS assembly tracking (TrackICSAssembly = 1)
These three fields accumulate per-channel deposits into the ICS so that the mean assembly time can be reconstructed downstream:
Field |
Units |
Description |
|---|---|---|
|
1.0e10 Msun / h |
Cumulative stellar mass disrupted to ICS via satellite disruption. |
|
1.0e10 Msun / h |
Cumulative ICS accreted from satellites via per-snapshot inheritance. |
|
1.0e10 Msun / h * code_time |
Mass-weighted sum of |
Mean ICS assembly lookback for a given galaxy:
<t_assembly> = ICS_sum_mt / (ICS_disrupt + ICS_accrete)
The result is in code-time units; multiply by
UnitTime_in_Megayears (read from the HDF5 header) to convert to Myr.
These fields are always present in both writers, but they only
accumulate when TrackICSAssembly = 1. With the parameter off, they
remain at zero.
Cumulative star formation history (SaveFullSFH = 1)
HDF5 output only. When SaveFullSFH = 1, two extra 2-D datasets are
written per output snapshot:
Dataset |
Shape |
Units |
Description |
|---|---|---|---|
|
(ngalaxies, SimMaxSnaps) |
1.0e10 Msun / h |
Stellar mass formed in the disk at each snapshot up to the current one. |
|
(ngalaxies, SimMaxSnaps) |
1.0e10 Msun / h |
Stellar mass formed in the bulge (starbursts) at each snapshot up to the current one. |
Each dataset carries Description, Units, and NumSnapshots
attributes. Entries for snapshots beyond the galaxy’s current
SnapNum are zero. Reconstructing the SFR(z) curve for a galaxy
amounts to differencing consecutive snapshot bins and dividing by
the snapshot interval.
This option roughly doubles the per-galaxy footprint of the output file, so leave it off unless you need the full SFH.
Binary vs HDF5 name differences
A handful of fields use different names between the two writers. Otherwise the field set is identical:
Binary (GALAXY_OUTPUT) |
HDF5 (HDF5_GALAXY_OUTPUT) |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
– |
|
The HDF5 writer also lays out fields as struct-of-arrays (one dataset per field), whereas the binary writer lays them out as array-of-structs.
Parameter -> output mapping
Parameter |
Effect on output |
|---|---|
|
Selects |
|
Directory for the output files. |
|
Filename stem; final names are |
|
Snapshot list to write. Each listed snap becomes either its own binary file or a |
|
Enables the cumulative |
|
Activates accumulation into |
|
Populates the |
|
Populates |
|
Populates |
See parameters.md for full parameter descriptions
and defaults.
Where to go next
getting_started.md– run SAGE26 and produce these outputs.parameters.md– the parameter file that controls which fields are populated.physics/ics.md– detail on the ICS assembly channels that feedICS_disrupt/ICS_accrete/ICS_sum_mt.physics/cooling_and_heating.md– whattcool,tff,tcool_over_tff,Regime, andCooling/Heatingactually measure.