Mergers and Disruption
This page covers what happens when two galaxies merge or when a satellite is tidally destroyed: how the events are classified, how mass and metals flow between the merging pair, how the starburst and quasar-mode AGN operate, and how the bulge grows in the two-channel SAGE26 model.
Source: src/model_mergers.c
Called from: Per-halo physics loop – step 10 of the substep ordering (the satellite/merger block after the per-galaxy cooling and SF loop).
When this step fires
Each satellite carries a MergTime set when it first becomes a Type 1
(by estimate_merging_time(), computed from a dynamical-friction estimate
based on satellite/host mass ratio and the satellite’s orbital radius at
infall). At each substep:
MergTimeis decremented bydeltaT / effective_steps.If
M_vir / baryon_mass <= ThresholdSatDisruption(or the satellite has zero baryons), the satellite is flagged for an event.If
MergTime > 0, the satellite is disrupted to ICS viadisrupt_satellite_to_ICS().If
MergTime <= 0, the satellite has reached the central – the event is a merger handled bydeal_with_galaxy_merger().
Type 1 satellites merge into the central of the host halo. Type 2 (orphan) satellites merge into whatever was their central at the time their subhalo was lost.
deal_with_galaxy_merger() – the merger dispatcher
The function classifies and processes one merger event. Mass ratio is
computed from baryonic mass (StellarMass + ColdGas):
mass_ratio = min(m_sat, m_central) / max(m_sat, m_central)
The threshold mass_ratio > ThreshMajorMerger (default 0.3) classifies
the event as a major merger; otherwise it is minor. Before any reservoir
transfers happen, the function decides where burst stars will go:
Merger type |
Central morphology |
Burst destination |
|---|---|---|
Major |
irrelevant |
Merger-driven bulge |
Minor |
disk-dominated (disk > 0.5 stellar) |
Instability bulge |
Minor |
spheroid-dominated |
Merger-driven bulge |
This morphology-aware routing is the key SAGE26 change to the original Croton+06 merger model – minor mergers onto disks no longer pollute the merger-driven bulge channel.
Step-by-step execution
add_galaxies_together()– transfers the satellite’s gas, stars, metals, BH mass, and ICS into the central. Regime-aware for the gas reservoirs (CGMgas vs HotGas). The satellite’s existingBulgeMass,MergerBulgeMass, andInstabilityBulgeMassare added to the central’s like-for-like.The satellite’s disk mass (
StellarMass - BulgeMass) is then routed by the central’s post-add morphology:Disk-dominated central (disk fraction > 0.5): the satellite’s disk mass joins
InstabilityBulgeMassandInstabilityBulgeRadiusis updated via Tonini+2016 incremental evolution.Spheroid-dominated central: the satellite’s disk mass joins
MergerBulgeMass.
Note this is independent of the burst-stars routing decided in
deal_with_galaxy_merger()(which uses the pre-add morphology captured before this step runs).grow_black_hole()– quasar-mode BH accretion ifAGNrecipeOn > 0(see below).collisional_starburst_recipe()– the merger-driven starburst (see below).get_bulge_radius()– recomputes the displayedBulgeRadiusafter bulge masses changed.calculate_merger_remnant_radius()– energy-conservation calculation for the post-merger bulge radius.Major merger branch:
make_bulge_from_burst()destroys the disk (all stellar mass becomes bulge), setsMergerBulgeRadiusfrom the energy-conservation calculation, stampsTimeOfLastMajorMerger, and marks the satellitemergeType = 2.Minor merger branch: mark
mergeType = 1, stampTimeOfLastMinorMerger, and either updateInstabilityBulgeRadius(disk-dominated central) orMergerBulgeRadius(spheroid-dominated) from the energy-conservation calculation.
Quasar-mode AGN – grow_black_hole()
Triggered on every merger (major or minor). Accreted mass is:
BHaccrete = BlackHoleGrowthRate * mass_ratio
* ColdGas / (1 + (280 km/s / V_vir)^2)
So accretion scales with merger violence and is suppressed in shallow
potential wells (the V_vir = 280 km/s floor is hard-coded from
Croton+06). The accreted gas is removed from ColdGas with metallicity
tracking, deposited into BlackHoleMass, and tallied in
QuasarModeBHaccretionMass.
quasar_mode_wind() – ejection from quasar-mode energy
Each merger then computes the quasar wind energy:
E_quasar = QuasarModeEfficiency * 0.1 * BHaccrete * c^2
(the 0.1 is the radiative efficiency.) The function compares
E_quasar against successive reservoir binding energies:
If
E_quasar > 0.5 * ColdGas * V_vir^2, the entire cold reservoir is ejected toEjectedMass.Then it checks against the hot reservoir (regime-aware:
HotGasfor Regime 1,CGMgasfor Regime 0). IfE_quasarexceeds the combined cold + hot energy, the hot reservoir is ejected too.
This is what gives bright quasars the ability to expel the entire baryonic content of low-mass hosts.
collisional_starburst_recipe() – the merger starburst
Implements the Somerville+2001 / Cox PhD-thesis form:
eburst = STARBURST_FRAC_COEFF * mass_ratio^STARBURST_MASS_POWER
= 0.56 * mass_ratio^0.7 (mergers, mode == 0)
eburst = mass_ratio (disk instabilities, mode == 1)
stars_burst = eburst * gas_for_starburst becomes the burst stellar
mass. The gas_for_starburst is normally ColdGas, but when
StarburstColdGasOn = 0 and an H2-tracking SFprescription is in use,
it is recomputed from the current ColdGas using the same H2 recipe as
the disk SF path – this avoids the stale stored H2gas value if SF and
feedback have already depleted cold gas earlier in the substep.
The burst then applies SN feedback through the same update_from_feedback()
helper used by starformation_and_feedback(), including FIRE scaling when
FIREmodeOn = 1, and routes the burst stars into either the
MergerBulgeMass or InstabilityBulgeMass channel per the
burst_to_merger_bulge flag set in deal_with_galaxy_merger().
The SFR is recorded into SfrBulge[step] (separate from disk SF, which
goes into SfrDisk[step]).
The two-channel bulge model
Every bulge-growth path in SAGE26 routes its contribution into one of two channels:
Channel |
Mass field |
Radius field |
Sources |
|---|---|---|---|
Merger |
|
|
Major mergers (whole disk); minor merger bursts onto spheroid-dominated centrals |
Instability |
|
|
Toomre instability; minor merger bursts onto disk-dominated centrals |
The two channels are tracked independently so that the bulge formation
history can be decomposed into merger-driven and secular contributions.
The combined BulgeMass = MergerBulgeMass + InstabilityBulgeMass and
the displayed BulgeRadius is a mass-weighted average computed by
get_bulge_radius() in model_misc.c
(Tonini+2016 prescription, BulgeSizeOn = 3).
Merger remnant radii are set via energy conservation
(calculate_merger_remnant_radius() – Covington+11). The function uses
baryonic mass (stellar + cold gas) and a mass-weighted half-mass radius
for each progenitor (disk half-mass = 1.68 * DiskScaleRadius, bulge
half-mass = BulgeRadius):
E_init = M1^2 / R1 + M2^2 / R2 (self-binding)
E_orb = M1 * M2 / (R1 + R2) (orbital interaction)
E_rad = C_rad * E_init * f_gas (radiative dissipation)
R_final = (M1 + M2)^2 / (E_init + E_orb + E_rad)
with C_rad = 2.75 from Covington+11 and
f_gas = (ColdGas_1 + ColdGas_2) / (M1 + M2). If the total energy comes
out non-positive (very gas-rich pairs at the cap of E_rad), the
function falls back to a mass-weighted average of the progenitor radii.
Satellite disruption – disrupt_satellite_to_ICS()
When the satellite has reached the central before the merger clock runs out, it is disrupted instead of merged. This is the primary formation channel for intracluster stars – see the dedicated Intracluster stars (ICS) page for the full lifecycle of the ICS reservoir. The function:
Transfers gas to the central (regime-aware: total
ColdGas + HotGas + CGMgasgoes to the central’sCGMgasif Regime 0 orHotGasif Regime 1).Transfers ejected mass and pre-existing ICS unchanged.
Disrupts the satellite’s stellar mass – splits it between the central’s ICS and the central’s stellar mass (BCG accretion). The split is controlled by
DynamicDisruptionSplit:
Value |
Split |
Formula |
|---|---|---|
0 |
Fixed |
|
1 |
Mass-ratio |
|
2 |
Mass-ratio with concentration weighting |
as mode 1, but with |
The infallMvir / Mhost ratio is clipped to 1.0. If either mass is
zero or unknown, the function falls back to the fixed
FractionDisruptedToICS.
Records assembly history if
TrackICSAssembly = 1:ICS_disruptaccumulates the satellite stellar mass newly disrupted into ICS;ICS_accreteaccumulates ICS that the satellite already carried in.ICS_sum_mttracks the mass-weighted deposit time so that the mean ICS-assembly time reflects when the stars were originally stripped, not when this packet transferred into the central.
The satellite is then marked mergeType = 4 (disrupted to ICS) and
will be skipped on subsequent substeps. mergeType values defined in
core_allvars.h are: 0 (still active / no event), 1 (minor merger),
2 (major merger), 3 (reserved for disk instability; not currently set
by any code path), 4 (disrupted to ICS).
What is NOT in this module
Radio-mode AGN. Handled in
model_cooling_heating.c. See Cooling and AGN heating.Disk SF. Handled in
model_starformation_and_feedback.c. See Star formation and feedback.Toomre disk instability. Implemented in
model_disk_instability.c. The starburst it triggers reusescollisional_starburst_recipe(mode=1).BulgeRadiuscalculation. Implemented inmodel_misc.c(get_bulge_radius()). The merger code only setsMergerBulgeRadiusand letsget_bulge_radius()derive the displayedBulgeRadius.
Switches and parameters
Parameter |
Effect |
|---|---|
|
0 disables quasar-mode BH growth and wind during mergers. |
|
Scaling for |
|
Coupling between BH accretion energy and wind energy. |
|
Mass-ratio threshold for major vs minor classification. |
|
M_vir/baryon threshold below which a satellite is eligible for an event. |
|
0 forces the burst to recompute H2 from current ColdGas; 1 uses the stored value. |
|
ICS-vs-BCG split mode for disrupted satellites (0 fixed, 1 mass-ratio, 2 mass-ratio with concentration weighting). |
|
Fixed-split fraction (mode 0) or fallback. |
|
Exponent in the mass-ratio split (modes 1 and 2). |
|
Reference concentration for mode 2. |
|
Bulge radius model (0 off, 1-2 Shen+2003, 3 Tonini+2016 multi-channel). |
|
Record |
|
Used to pick the H2 recipe in the burst when |
|
Applies FIRE scaling to burst SN feedback if enabled. |
See parameters.md for full descriptions and defaults.
References
Croton et al. (2006), MNRAS 365, 11 – original SAGE merger and AGN prescriptions.
Somerville et al. (2001), MNRAS 320, 504 – collisional starburst form.
Cox et al. (2008), MNRAS 384, 386 – merger-driven SF efficiency calibration.
Covington et al. (2011), ApJ 743, 76 – energy-conservation remnant radius.
Tonini et al. (2016), MNRAS 459, 4109 – two-channel bulge formation.
Shen et al. (2003), MNRAS 343, 978 – bulge size-mass relation.
Hopkins et al. (2010), MNRAS 401, 1099 – merger-driven bulge growth.
Dynamical-friction merger timescale: Binney & Tremaine (2008) eq. 8.12.