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

ratedouble precision

Returns the cooling rate of gas in the hot atmosphere surrounding the galaxy in node in 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

\[\begin{split}\dot{M}_\mathrm{cool} = \left\{ \begin{array}{ll} 4 \pi r_\mathrm{infall}^2 \rho(r_\mathrm{infall}) \dot{r}_\mathrm{infall} & \hbox{ if } r_\mathrm{infall} < r_\mathrm{hot, outer} \\ 0 & \hbox{ if } r_\mathrm{infall} \ge r_\mathrm{hot, outer}, \end{array} \right.\end{split}\]

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.

Parameters

  • [energyOrbital] (default 1.0d0) — The orbital energy used in the “cole2000” merger remnant sizes calculation in units of the characteristic orbital energy.

  • [ignoreUnphysicalConditions] (default .false.) — If true, ignore unphysical conditions (e.g. negative masses) and leave the size unchanged.

  • [massFactorReformation] (default 2.0d0) — The factor by which halo mass must have increased to trigger a new formation event.

  • [reformationOnPromotionOnly] (default .false.) — Specifies whether halo reformation should occur only at node promotion events, or at the precise time that the halo mass has increased sufficiently in mass.

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] (default .false.) — Specifies whether to use the virial velocity of the formation node or current node in the cooling rate “cut-off” modifier.

  • [velocityCutOff] (default 0.0d0) — The velocity below which cooling is suppressed in the “cut-off” cooling rate modifier method.

  • [redshiftCutOff] (default 0.0d0) — The redshift below which cooling is suppressed in the “cut-off” cooling rate modifier method.

  • [whenCutOff] (default var_str('after')) — 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] (default 0.0d0) — A constant multiplicative factor applied to cooling rates computed by the wrapped cooling rate object, allowing uniform rescaling of all cooling rates (e.g. to model suppressed or enhanced cooling).

  • [multiplier] — The factor by which to multiply the halo mass function.

  • [exponentRedshift] — The exponent of \((1+z)\) in the multiplier of 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,

\[\dot{M}_\mathrm{cool} = M_\mathrm{hot}/\tau_\mathrm{cool} ,\]

where \(\tau_\mathrm{cool}=\)[timeScale].

Methods

  • calculationReset — Reset memoized calculations.

Parameters

  • [efficiencyWind] (default 2.2157d-3) — The coupling efficiency of the black hole accretion-driven wind, defined as the fraction of the accreted rest-mass energy that is deposited as kinetic or thermal energy into the surrounding gas via AGN-driven outflows.

  • [redshiftReionization] (default 9.97d0) — The redshift of reionization below which baryonic accretion onto halos is suppressed due to the ionizing background heating the intergalactic medium and preventing gas from accreting onto low-mass halos.

  • [opticalDepthReionization] — The optical depth to electron scattering below which baryonic accretion is suppressed.

  • [velocitySuppressionReionization] (default 35.0d0) — The velocity scale below which baryonic accretion is suppressed.

  • [accretionNegativeAllowed] (default .true.) — Specifies whether negative accretion (mass loss) is allowed in the simple halo accretion model.

  • [accretionNewGrowthOnly] (default .false.) — Specifies whether accretion from the IGM is allowed only when a halo is growing past its previous greatest mass.

  • [acceptedStateCount] (default 100) — The number of states to use in acceptance rate statistics.

  • [timeStepRelative] (default 0.1d0) — The maximum allowed relative change in time for a single step in the evolution of a node.

  • [timeStepAbsolute] (default 1.0d0) — The maximum allowed absolute change in time (in Gyr) for a single step in the evolution of a node.

  • [timeStepMinimum] (default 1.0d-6) — The smallest timestep to use in profiling ODE solver steps.

  • [timeStepMaximum] (default 1.0d+1) — The largest timestep to use in profiling ODE solver steps.

  • [timeStepPointsPerDecade] (default 3) — The number of bins per decade of timestep to use when profiling ODE solver steps.

  • [wavelength] (default 1.0d4) — The wavelength of the photon packet (in AA).

  • [wavelengthMinimum] (default 0.5d4) — The minimum wavelength of the photon packet (in AA).

  • [wavelengthMaximum] (default 2.0d4) — The maximum wavelength of the photon packet (in AA).

  • [luminosity] (default 1.0d0) — The luminosity of the photon packet (in \(L_\odot\)).

  • [massRatioMajorMerger] (default 0.25d0) — The mass ratio above which mergers are considered to be “major”.

  • [destinationGasMinorMerger] (default var_str('spheroid')) — The component to which satellite galaxy gas moves to as a result of a minor merger.

  • [destinationStarsMinorMerger] (default var_str('spheroid')) — The component to which satellite galaxy stars move to as a result of a minor merger.

  • [degreesOfFreedom] (default 3.0d0) — Number of degrees of freedom to assume when computing the energy density of cooling gas in the “simple” cooling time class.

  • [timeScale] (default 1.0d0) — The timescale (in Gyr) for cooling in the simple cooling rate model.

  • [reionizationRedshift] (default 9.97d0) — The redshift of reionization in the simple IGM state model.

  • [reionizationTemperature] (default 1.0d4) — The post-reionization temperature (in units of Kelvin) in the simple IGM state model.

  • [preReionizationTemperature] (default 10.0d0) — The pre-reionization temperature (in units of Kelvin) in the simple IGM state model.

  • [useFormationHalo] (default .false.) — Specifies whether or not the “formation halo” should be used when solving for the radii of galaxies.

  • [solveForInactiveProperties] (default .true.) — If true, galactic structure is solved for during evaluation of inactive property integrals. Otherwise, structure is not solved for during this phase—this should only be used if the inactive property integrands do not depend on galactic structure.

  • [rateFractionalMaximum] (default 10.0d0) — The maximum fractional mass loss rate per dynamical time in the simple model of mass loss due to tidal stripping.

  • [beta] (default 1.0d0) — The scaling factor which multiplies the tidal mass loss rate.

  • [OmegaMatter] (default 0.3153d0) — The density of matter in the Universe in units of the critical density.

  • [OmegaBaryon] (default 0.04930d0) — The density of baryons in the Universe in units of the critical density.

  • [OmegaDarkEnergy] (default 0.6847d0) — The density of dark energy in the Universe in units of the critical density.

  • [temperatureCMB] (default 2.72548d0) — The present day temperature of the CMB in units of Kelvin.

  • [HubbleConstant] (default 67.36d0) — The present day value of the Hubble parameter in units of km/s/Mpc.

coolingRateSimpleScaling

A cooling rate class in which the cooling rate scales with the mass of the halo. Specifically, the cooling rate is given by

\[\dot{M}_\mathrm{cool} = M_\mathrm{hot}/\tau_\mathrm{cool}(M_\mathrm{halo},z) ,\]

where

\[\tau_\mathrm{cool}=\tau_\mathrm{cool,0} (1+z)^{\beta_\mathrm{cool}} \exp \left(\left[{M_\mathrm{halo} \over M_\mathrm{transition}}\right]^{\gamma_\mathrm{cool}}\right),\]

\(\tau_\mathrm{cool,0}=\)[timescale], \(\beta_\mathrm{cool}=\)[exponentRedshift], \(M_\mathrm{transition}=\)[massCutOff], and \(\gamma_\mathrm{cool}=\)[exponentCutOff].

Parameters

  • [timescale] (default 1.0d0) — The timescale (in Gyr) for cooling in low mass halos at \(z=0\) in the simple scaling cooling rate model.

  • [exponentRedshift] (default -1.5d0) — The exponent of \((1+z)\) in the cooling timescale for low mass halos in the simple scaling cooling rate model.

  • [massCutOff] (default 200.0d0) — The halo mass scale appearing in the exponential term for cooling timescale in the simple cooling rate model.

  • [widthCutOff] (default 1.0d0) — The width appearing in the exponential term for cooling timescale in the simple scaling cooling rate model.

  • [exponentCutOff] (default 1.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

\[\dot{M}_\mathrm{cool} = M_\mathrm{hot}/\tau_\mathrm{cool}(V_\mathrm{max,halo},z) ,\]

where

\[\tau_\mathrm{cool}=\hbox{max}\left[ \tau_\mathrm{infall} \left({V_\mathrm{max} \over 200 \hbox{km/s}}\right)^{-\gamma_\mathrm{infall}} (1+z)^{\alpha_\mathrm{infall}} \left( 1 + \exp\left[ {\log_{10}(V_\mathrm{max}/(1+z)^{\delta_\mathrm{infall}}\mathcal{V}_\mathrm{infall})] \over \Delta \log_{10} \mathcal{V}_\mathrm{infall}}\right]\right)^{\beta_\mathrm{infall}}, \tau_\mathrm{infall,min} \right],\]

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

  • [fraction] (default 0.01d0) — The normalization \(f\) of the outflow rate relative to the star formation rate, evaluated at the reference peak circular velocity of 200 km/s and expansion factor of 1, setting the overall amplitude of the feedback-driven outflow.

  • [exponentVelocity] (default -2.0d0) — The exponent of virial velocity in the outflow rate in disks.

  • [exponentRedshift] (default 0.0d0) — The power-law exponent of the cosmological expansion factor in the peak-velocity-scaling outflow rate, controlling the redshift evolution of the mass-loading factor; a value of zero gives no redshift evolution.

  • [timescale] (default 1.0d0) — The timescale for star formation in the velocity maximum scaling timescale model.

  • [exponentVelocity] (default 0.0d0) — The exponent of virial velocity in the timescale for star formation in the velocity maximum scaling timescale model.

  • [exponentRedshift] (default 0.0d0) — The exponent of redshift in the timescale for star formation in the velocity maximum scaling timescale model.

  • [timeScale] (default 1.0d0) — The timescale in the velocity maximum scaling model for outflow reincorporation.

  • [velocityExponent] (default 0.0d0) — The exponent of maximum circular velocity in the velocity maximum scaling model for outflow reincorporation.

  • [redshiftExponent] (default -1.5d0) — The exponent of redshift in the velocity maximum scaling model for outflow reincorporation.

  • [timescaleMinimum] (default 1.0d-3) — The minimum timescale for outflow reincorporation in the velocity maximum scaling model.

  • [timescale] (default 1.0d0) — The timescale (in Gyr) for cooling in low mass halos at \(z=0\) in the velocity maximum scaling scaling cooling rate model.

  • [timescaleMinimum] (default 0.001d0) — The minimum timescale (in Gyr) for cooling the velocity maximum scaling scaling cooling rate model.

  • [exponentRedshift] (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] (default 0.0d0) — The exponent of velocity in the cooling timescale for low mass halos in the velocity maximum scaling scaling cooling rate model.

  • [velocityCutOff] (default 200.0d0) — The halo maximum velocity scale appearing in the exponential term for cooling timescale in the velocity maximum scaling cooling rate model.

  • [velocityCutOffExponentRedshift] (default 0.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] (default 1.0d0) — The width appearing in the exponential term for cooling timescale in the velocity maximum scaling scaling cooling rate model.

  • [exponentCutOff] (default 1.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

\[\begin{split}\dot{M}_\mathrm{cool} = \left\{ \begin{array}{ll} 4 \pi r_\mathrm{infall}^2 \rho(r_\mathrm{infall}) \dot{r}_\mathrm{infall}& \hbox{ if } r_\mathrm{infall} < r_\mathrm{hot, outer} \\ M_\mathrm{hot}/\tau_\mathrm{halo, dynamical} & \hbox{ if } r_\mathrm{infall} \ge r_\mathrm{hot, outer}, \end{array} \right. ,\end{split}\]

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

  • [ageFactor] (default 0.0d0) — Interpolates (geometrically) between the age of the Universe and the halo dynamical time for the time available for cooling in the White and Frenk (1991) method.

  • [velocityCutOff] (default 1.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.