Cooling Rates¶
Class providing models of the mass cooling rate (in \(\mathrm{M}_\odot\) Gyr\(^{-1}\)) at which gas cools out of the hot atmosphere of a dark matter halo and becomes available for accretion onto the central galaxy. The cooling rate drives the supply of cold gas for star formation and sets the growth rate of the galaxy disc. Implementations typically account for the interplay between the cooling time, the freefall time, the cooling radius, and the available mass of hot gas, following the two-regime picture of GalacticuswhiteFrenk1991 and subsequent refinements.
Default implementation: coolingRateWhiteFrenk1991
Methods¶
rate→double precisionReturns the cooling rate of gas in the hot atmosphere surrounding the galaxy in
nodein units of \(\mathrm{M}_\odot/\)Gyr.type(treeNode), intent(inout) :: node
coolingRateCole2000¶
A cooling rate class that uses the algorithm of Cole et al. (2000). The cooling rate is given by
where \(\rho(r)\) is the density profile of the hot halo, and \(r_\mathrm{infall}\) is the infall radius (see coolingInfallRadius).
Methods
reform— Implements a halo reformation event.
coolingRateCutOff¶
A cooling rate class which sets the cooling rate to zero in halos with virial velocities below [velocityCutOff] at redshifts below/above [redshiftCutOff] for [whenCutOff]\(=\)after/before. In other halos the cooling rate is not modified.
Parameters
[useFormationNode](boolean; default.false.) — Specifies whether to use the virial velocity of the formation node or current node in the cooling rate “cut-off” modifier.[velocityCutOff](real; default0.0d0) — The velocity below which cooling is suppressed in the “cut-off” cooling rate modifier method.[redshiftCutOff](real; default0.0d0) — The redshift below which cooling is suppressed in the “cut-off” cooling rate modifier method.[whenCutOff](string; defaultafter) — Specifies whether cooling is cut off before or after[redshiftCutOff].
coolingRateMainBranchOnly¶
Wraps a coolingRateClass object and suppresses cooling in side branches of the merger tree, restricting gas cooling to the main progenitor branch only for studies of main branch evolution.
coolingRateMultiplier¶
A cooling rate class which modifies the cooling rate from another class by multiplying it by a fixed constant factor specified via [multiplier]. This allows a simple rescaling of any existing cooling rate model without altering its physical dependencies.
Parameters
[multiplier](real; default0.0d0) — The factor by which to multiply the halo mass function.
coolingRateNoCoolingSatellites¶
Wraps a coolingRateClass object and suppresses cooling in satellite halos, restricting gas cooling to isolated (field) halos only, modeling strangulation of satellite gas supply after infall.
coolingRateSimple¶
A cooling rate class in which the cooling rate equals the mass of hot gas divided by a fixed timescale. Specifically,
where \(\tau_\mathrm{cool}=\)[timeScale].
Methods
calculationReset— Reset memoized calculations.
Parameters
[timeScale](real; default1.0d0) — The timescale (in Gyr) for cooling in the simple cooling rate model.
coolingRateSimpleScaling¶
A cooling rate class in which the cooling rate scales with the mass of the halo. Specifically, the cooling rate is given by
where
\(\tau_\mathrm{cool,0}=\)[timescale], \(\beta_\mathrm{cool}=\)[exponentRedshift], \(M_\mathrm{transition}=\)[massCutOff], and \(\gamma_\mathrm{cool}=\)[exponentCutOff].
Parameters
[timescale](real; default1.0d0) — The timescale (in Gyr) for cooling in low mass halos at \(z=0\) in the simple scaling cooling rate model.[exponentRedshift](real; default-1.5d0) — The exponent of \((1+z)\) in the cooling timescale for low mass halos in the simple scaling cooling rate model.[massCutOff](real; default200.0d0) — The halo mass scale appearing in the exponential term for cooling timescale in the simple cooling rate model.[widthCutOff](real; default1.0d0) — The width appearing in the exponential term for cooling timescale in the simple scaling cooling rate model.[exponentCutOff](real; default1.0d0) — The exponent appearing in the exponential term for cooling timescale in the simple scaling cooling rate model.
coolingRateVelocityMaximumScaling¶
A cooling rate class in which the cooling rate scales with the peak circular velocity in the halo. Specifically, the cooling rate is given by
where
with \(\tau_\mathrm{infall}=\)[timescale], \(\tau_\mathrm{infall,min}=\)[timescaleMinimum], \(\alpha_\mathrm{infall}=\)[exponentRedshift], \(\beta_\mathrm{infall}=\)[exponentCutOff], \(\gamma_\mathrm{infall}=\)[exponentVelocity], \(\delta_\mathrm{infall}=\)[velocityCutOffExponentRedshift, \(\mathcal{V}_\mathrm{infall}=\)[velocityCutOff], and \(\Delta \log_{10} \mathcal{V}_\mathrm{infall}=\)[widthCutOff].
Methods
calculationReset— Reset memoized calculations.
Parameters
[timescale](real; default1.0d0) — The timescale (in Gyr) for cooling in low mass halos at \(z=0\) in the velocity maximum scaling scaling cooling rate model.[timescaleMinimum](real; default0.001d0) — The minimum timescale (in Gyr) for cooling the velocity maximum scaling scaling cooling rate model.[exponentRedshift](real; default-1.5d0) — The exponent of \((1+z)\) in the cooling timescale for low mass halos in the velocity maximum scaling scaling cooling rate model.[exponentVelocity](real; default0.0d0) — The exponent of velocity in the cooling timescale for low mass halos in the velocity maximum scaling scaling cooling rate model.[velocityCutOff](real; default200.0d0) — The halo maximum velocity scale appearing in the exponential term for cooling timescale in the velocity maximum scaling cooling rate model.[velocityCutOffExponentRedshift](real; default0.0d0) — The exponent of \((1+z)\) in the velocity scale appearing in the exponential term for cooling timescale in the velocity maximum scaling cooling rate model.[widthCutOff](real; default1.0d0) — The width appearing in the exponential term for cooling timescale in the velocity maximum scaling scaling cooling rate model.[exponentCutOff](real; default1.0d0) — The exponent appearing in the exponential term for cooling timescale in the velocity maximum scaling scaling cooling rate model.
coolingRateWhiteFrenk1991¶
A cooling rate class that uses the expression given by White and Frenk (1991), namely
where \(r_\mathrm{infall}\) is the infall radius (see coolingInfallRadius) in the hot halo and \(\rho(r)\) is the density profile of the hot halo.
(Default implementation)
Parameters
[velocityCutOff](real; default1.0d4) — The halo virial velocity (in km/s) above which cooling rates are forced to zero in the White and Frenk (1991) cooling rate model.
coolingRateZero¶
Returns a cooling rate of exactly zero for all nodes at all times, effectively disabling gas cooling and useful for testing, debugging, or modeling scenarios where cooling is artificially suppressed.