Star Formation and Feedback
This page covers the gas-to-stars conversion step: which star-formation prescription is used, how supernova feedback returns gas to the hot/CGM reservoir and ejects some beyond the halo, and how feedback-free burst (FFB) galaxies bypass the SN loop entirely.
Source: src/model_starformation_and_feedback.c
Called from: Per-halo physics loop – step 9 of the substep ordering.
Per-substep orchestration – starformation_and_feedback()
The function executes the following block once per galaxy per substep:
FFB early exit. If
FeedbackFreeModeOn >= 1and the galaxy is in FFB regime (FFBRegime == 1, set incore_build_model.c), control jumps tostarformation_ffb()and the standard SF/feedback path is skipped.Compute the SFR via the prescription selected by
SFprescription(see below). Returns a star formation ratestrdotin code units.Compute H1/H2 split for H2-tracking prescriptions (1, 3, 4, 5, 6, 7), storing
H2gasandH1gason the galaxy.Compute reheated and ejected masses. Standard Croton+06 budget, or the FIRE-scaling alternative (Muratov+15) when
FIREmodeOn = 1.Apply mass and metal updates via
update_from_star_formation()andupdate_from_feedback().Record the SFR in the fixed-size
SfrDisk[step]history bin.Check disk instability (
check_disk_instability()ifDiskInstabilityOn).Produce metals via the instantaneous-recycling approximation and route the fraction that leaves the disk to either
CGMgas(Regime 0) orHotGas(Regime 1) using the Krumholz & Dekel (2011) Eq. 22 suppression factorFracZleaveDisk * exp(-Mvir / 3e11).
Star formation prescriptions
The SFprescription parameter selects one of eight recipes. All share the
same effective star-forming radius r_eff = 3.0 * DiskScaleRadius (Milky
Way calibration) and dynamical time t_dyn = r_eff / V_vir.
Value |
Recipe |
What sets the SFR |
|---|---|---|
0 |
Croton+2006 |
Kauffmann+96 cold-gas threshold; |
1 |
Blitz & Rosolowsky 2006 (BR06) |
H2 from pressure-based fitting; |
2 |
Somerville+25 (no H2) |
Density-modulated efficiency; |
3 |
Somerville+25 + H2 |
Same as 2, but with |
4 |
Krumholz & Dekel 2012 (KD12) |
Metallicity-dependent H2 fraction; |
5 |
Krumholz, McKee & Tumlinson 2009 (KMT09) |
Photodissociation-balance H2; same form as KD12 |
6 |
Krumholz 2013 (K13) |
Two-phase H2 model |
7 |
Gnedin & Draine 2014 (GD14) |
UV-modulated H2; same form as KMT09 |
The H2-tracking prescriptions compute H2gas and H1gas either via a
single-slab calculation (cheaper) or a radial ring integration
(H2RadialIntegrationOn = 1, more accurate). The single-slab disk area is
selected by H2DiskAreaOption:
Value |
Area |
|---|---|
0 |
pi * r_disk^2 |
1 |
pi * (3 r_disk)^2 (default; matches Milky Way calibration) |
2 |
2 pi * r_disk^2 |
The radial mode uses H2RadialNBins rings out to H2RadialRMaxFactor * r_disk.
Supernova feedback
Two reheating/ejection budgets are available, selected by FIREmodeOn.
Standard Croton+2006 budget (FIREmodeOn = 0)
Reheated mass:
reheated_mass = FeedbackReheatingEpsilon * stars. Transferred fromColdGastoHotGas(orCGMgasin Regime 0).Ejected mass: energy balance with the unused SN energy:
ejected_mass = (FeedbackEjectionEfficiency * eta_SN * E_SN / V_vir^2 - FeedbackReheatingEpsilon) * stars. Transferred fromHotGas(orCGMgas) toEjectedMass. Clipped to zero if negative (deeper potentials retain all the reheated gas).
FIRE scaling (FIREmodeOn = 1)
Replaces the fixed coefficients with the Muratov et al. (2015) velocity- and redshift-dependent scaling:
fire_scaling = (1 + z)^RedshiftPowerLawExponent * (V_vir / V_crit)^beta
with V_crit = 60 km/s and the broken-power-law exponent
beta = -3.2 below V_crit, -1.0 above. The reheating mass becomes
eta_reheat = FeedbackReheatingEpsilon * fire_scaling, and the ejection
mass is computed from the surplus SN energy after lifting the reheated
gas (Hirschmann+2016 energy budget):
E_FB = FeedbackEjectionEfficiency * fire_scaling * 0.5 * stars * eta_SN * E_SN
E_lift = 0.5 * reheated_mass * V_vir^2
ejected_mass = max(E_FB - E_lift, 0) / (0.5 * V_vir^2)
The FIRE coefficient is computed once per call and reused for both reheating and ejection.
update_from_star_formation() and update_from_feedback()
These two helpers do the actual reservoir bookkeeping.
update_from_star_formation() removes (1 - RecycleFraction) * stars
from ColdGas (the rest is instantaneously recycled), increments
StellarMass, and tracks metallicity. H1 and H2 are clamped so they remain
consistent with the post-SF cold gas.
update_from_feedback() transfers reheated_mass from ColdGas to
the central’s hot reservoir (regime-aware: CGMgas if Regime 0,
HotGas if Regime 1), then transfers ejected_mass from that same
reservoir to EjectedMass. Metals follow the gas in both transfers.
Metal production and routing
After SF and feedback the function produces new metals via the
instantaneous-recycling approximation: metals_new = Yield * stars. A
fraction stays in the disk and the rest leaves to the hot reservoir,
controlled by:
FracZleaveDiskVal = FracZleaveDisk * exp(-Mvir / 30)
(Krumholz & Dekel 2011 Eq. 22; mass in 10^10 Msun/h, so the
characteristic scale is 3 x 10^11 Msun/h). The leaving fraction routes
to MetalsCGMgas in Regime 0 and MetalsHotGas in Regime 1
(or always MetalsHotGas when CGMrecipeOn = 0). If ColdGas is
exhausted, all metals leave the disk.
Feedback-free burst mode – starformation_ffb()
When the FFB regime classification flags a galaxy as bursty, the SFR is set directly by the FFB efficiency rather than the usual Kauffmann threshold:
SFR = FFBMaxEfficiency * gas_for_sf / t_dyn
The “feedback-free” label refers to the physical regime, not to the
code path. The mechanism (Li+2024, Boylan-Kolchin+2025): in dense compact
gas reservoirs the SN energy escapes the cloud before it can disrupt the
burst, so the star formation efficiency reaches
epsilon_FFB ~ 0.2-1.0 instead of the usual few percent. The code still
bookkeeps the resulting SN feedback; it just does not let feedback
throttle the SFR.
Specifically, the only differences between starformation_ffb() and the
standard starformation_and_feedback() path are:
SFR formula:
epsilon_FFB * gas_for_sf / t_dyn– no cold-gas threshold, no mediation by molecular fraction inColdGasmodes.No disk-instability check after SF – rapid burst SF is assumed to stabilise the disk.
Everything else still runs:
SN reheating:
reheated_mass = FeedbackReheatingEpsilon * stars(or the FIRE-scaledeta_reheat * starswhenFIREmodeOn = 1).SN ejection: the same energy-balance budget (Croton or FIRE form) as the main path.
update_from_feedback()transfers reheated and ejected mass with full regime-aware routing.Metal production and routing via the same Krumholz & Dekel (2011) Eq. 22 factor, regime-aware to
MetalsCGMgasorMetalsHotGas.
gas_for_sf is either the full ColdGas (modes 1-5) or the molecular
fraction H2gas (modes 6-7). For H2 modes the H2 calculation is run
inline using whichever underlying SFprescription (BR06, KD12, KMT09,
K13, GD14) is set.
The seven sub-modes of FeedbackFreeModeOn (1-7) control which threshold
classifies a galaxy as FFB-eligible (Li+2024 vs Boylan-Kolchin+2025, sigmoid
vs sharp, concentration source). The classification itself lives in
determine_and_store_ffb_regime(); this function only consumes the
FFBRegime flag.
What is NOT in this module
Quasar-mode AGN. BH accretion driven by mergers is handled in
model_mergers.c. See Mergers and disruption.Radio-mode AGN. Handled in
model_cooling_heating.c. See Cooling and AGN heating.Disk instability. Called from this module (step 7 above) but implemented in
model_disk_instability.c. See the dedicated Disk instability page.
Switches and parameters
Parameter |
Effect |
|---|---|
|
Select SF recipe (0-7). |
|
Efficiency factor in |
|
0 disables SN feedback entirely. |
|
Mass-loading scaling for the reheating term. |
|
Fraction of SN energy that drives ejection. |
|
Energy per SN and number of SN per solar mass. |
|
Metal yield and instantaneous recycling fraction. |
|
Fraction of new metals that leave the disk (modulated by halo mass). |
|
Switch to FIRE/Muratov+15 reheating and ejection. |
|
Redshift exponent in the FIRE scaling. |
|
FFB regime classification mode (0-7); 0 disables the FFB path. |
|
SF efficiency in FFB mode. |
|
H2 surface-density geometry. |
|
Run the Toomre check after SF. |
See parameters.md for full descriptions and defaults.
References
Croton et al. (2006), MNRAS 365, 11 – original SAGE star formation and feedback recipes.
Kauffmann (1996), MNRAS 281, 487 – cold-gas threshold.
Blitz & Rosolowsky (2006), ApJ 650, 933 – pressure-based H2 fraction.
Krumholz, McKee & Tumlinson (2009), ApJ 693, 216 – photodissociation H2 model.
Krumholz, Dekel & McKee (2011), ApJ 745, 69 – metal-leaving-disk scaling (Eq. 22).
Krumholz & Dekel (2012), ApJ 753, 16 – KD12 H2 prescription.
Krumholz (2013), MNRAS 436, 2747 – two-phase H2.
Gnedin & Draine (2014), ApJ 795, 37 – UV-modulated H2.
Somerville et al. (2025) – density-modulated SF efficiency.
Muratov et al. (2015), MNRAS 454, 2691 – FIRE wind mass loading.
Hirschmann et al. (2016), MNRAS 461, 1760 – energy-balance ejection.
Li et al. (2024) – feedback-free burst threshold.
Boylan-Kolchin (2025) – FFB at high redshift.