Disk Instability
This page describes the Toomre disk-instability channel that grows the instability-driven bulge component and feeds the central black hole.
Source: src/model_disk_instability.c
(with the Tonini+2016 radius update in
src/model_misc.c)
Called from: starformation_and_feedback() after star formation, when
DiskInstabilityOn = 1. Not run in the FFB path
(Star formation and feedback).
What disk instability does
After each star-formation event, the disk’s combined mass of cold gas and disk stars is compared against the Mo, Mao & White (1998) Toomre critical mass:
M_crit = V_max^2 * 3 * DiskScaleRadius / G
(the factor of 3 comes from the disk half-mass radius being ~1.68 r_s and
the Mo-Mao-White stability analysis for an exponential disk; see
TOOMRE_DISK_FACTOR in the source). If the disk mass exceeds M_crit,
the excess is “unstable” and must be redistributed.
Splitting the unstable mass
The unstable excess is split between gas and stars in proportion to the current cold-gas fraction:
gas_fraction = ColdGas / disk_mass
unstable_gas = gas_fraction * (disk_mass - M_crit)
unstable_stars = (1 - gas_fraction) * (disk_mass - M_crit)
where disk_mass = ColdGas + (StellarMass - BulgeMass).
Where the unstable stars go
Unstable stars are transferred straight into the instability-driven bulge channel:
BulgeMass += unstable_starsInstabilityBulgeMass += unstable_stars(separate channel from merger-driven bulge growth – see Mergers and disruption)MetalsBulgeMassis updated with the disk-star metallicity
InstabilityBulgeRadius is then updated via the Tonini+2016 incremental
radius evolution (Eq. 15), using a snapshot of DiskScaleRadius taken
before any mass transfer in this event:
R_new = (R_old * M_old + delta_M * 0.2 * R_disc) / (M_old + delta_M)
The 0.2 factor (TONINI16_DISK_FRAC in the source) is the fraction of the
disk scale radius at which instability-driven bulge stars are deposited.
On the first instability event when M_old == 0, the radius is
initialised directly as 0.2 * R_disc. This update only fires when
BulgeSizeOn = 3 (Tonini mode); other bulge models leave
InstabilityBulgeRadius unchanged.
The disk scale radius itself is not changed by the instability: the
remaining disk retains the same specific angular momentum per unit mass,
so DiskScaleRadius stays constant.
Where the unstable gas goes
If there is unstable gas in the disk:
Black hole accretion (if
AGNrecipeOn > 0):grow_black_hole(p, unstable_gas_fraction, ...)
uses the same quasar-mode channel as mergers, with the unstable gas fraction playing the role of the merger mass ratio. This both grows the BH and triggers
quasar_mode_wind()(see Mergers and disruption).Collisional starburst (mode 1):
collisional_starburst_recipe(unstable_gas_fraction, p, centralgal, time, dt, halonr, /*mode=*/1, step, /*burst_to_merger_bulge=*/0, DiskScaleRadius, galaxies, run_params)
Mode 1 makes the burst efficiency
eburst = mass_ratio(i.e. the entire unstable gas fraction is consumed) rather than the Cox-thesis power law used by mergers. Theburst_to_merger_bulge = 0flag routes burst stars into the instability bulge, consistent with the secular origin of the event.
The starburst itself applies SN feedback through the standard
update_from_feedback() path, with FIRE scaling when FIREmodeOn = 1.
Order of operations and bookkeeping
Inside the function the order matters because the bulge-radius update needs the pre-event disk radius:
Compute
M_critand clip if it exceeds the actual disk mass.Compute
unstable_gasandunstable_starsfrom the gas fraction.Save
old_disk_radius = DiskScaleRadiusbefore any mass transfers.Transfer unstable stars to the bulge; call
update_instability_bulge_radius()withold_disk_radius.Burst the unstable gas (BH growth + starburst).
The “save disk radius first” step is the reason this function passes
old_disk_radius explicitly into both helper paths rather than letting
them read the live value.
What is NOT in this module
Toomre Q itself. The criterion is implemented as a mass comparison against
M_crit, not a stability parameter Q.Pseudobulge classification. The instability bulge is treated as a classical bulge component for radius and ICS purposes.
BulgeRadiusderivation. Done inmodel_misc.cviaget_bulge_radius()as a mass-weighted combination ofInstabilityBulgeRadiusandMergerBulgeRadius(whenBulgeSizeOn = 3).
Switches and parameters
Parameter |
Effect |
|---|---|
|
0 disables the entire channel. |
|
0 skips the BH accretion step but still runs the gas burst. |
|
Must be 3 (Tonini+2016 multi-channel) for the incremental |
|
Applies FIRE scaling to the burst SN feedback. |
|
Controls whether the burst uses stored |
|
Scaling for |
|
Coupling between BH accretion and wind energy in |
See parameters.md for full descriptions and defaults.
References
Mo, Mao & White (1998), MNRAS 295, 319 – Toomre critical mass for an exponential disk; the form
M_crit = V_max^2 * 3 R_d / Gused here.Toomre (1964), ApJ 139, 1217 – the underlying axisymmetric stability criterion for thin disks.
Tonini et al. (2016), MNRAS 459, 4109 – two-channel bulge formation with separate radius evolution for instability- and merger-driven components (Eq. 15 used here).
Croton et al. (2006), MNRAS 365, 11 – original SAGE disk-instability treatment.