holodeck.sams.components
Semi-Analytic Model - Components
This module provides the key building blocks for the holodeck SAMs. In particular, the:
Galaxy Stellar-Mass Function (GSMF) : number-density of galaxies as a function of stellar mass;
Galaxy Merger Rate (GMR) : rate of galaxy mergers per galaxy;
Galaxy Pair Fraction (GPF) : fraction of galaxy pairs, relative to all galaxies;
Galaxy Merger Time (GMT) : duration over which galaxy pairs are observable as pairs.
For more information see the holodeck.sams
module, or the SAMs getting-started guide.
References
[Sesana2008] Sesana, Vecchio, Colacino 2008.
- [Rodriguez-Gomez2015] Rodriguez-Gomez, Genel, Vogelsberger, et al. 2015
The merger rate of galaxies in the Illustris simulation: a comparison with observations and semi-empirical models https://ui.adsabs.harvard.edu/abs/2015MNRAS.449…49R/abstract
[Chen2019] Chen, Sesana, Conselice 2019.
- [Leja2020] Leja, Speagle, Johnson, et al. 2020.
A New Census of the 0.2 < z < 3.0 Universe. I. The Stellar Mass Function https://ui.adsabs.harvard.edu/abs/2020ApJ…893..111L/abstract
- class holodeck.sams.components._Galaxy_Stellar_Mass_Function(*args, **kwargs)[source]
Bases:
ABC
Galaxy Stellar-Mass Function base-class. Used to calculate number-density of galaxies.
- mbh_mass_func(mbh, redz, mmbulge, scatter=None)[source]
Convert from the GSMF to a MBH mass function (number density), using a given Mbh-Mbulge relation.
- Parameters:
mbh (array_like) – Blackhole masses at which to evaluate the mass function.
redz (array_like) – Redshift(s) at which to evaluate the mass function.
mmbulge (relations._MMBulge_Relation subclass instance) – Scaling relation between galaxy and MBH masses.
scatter (None, bool, or float) – Introduce scatter in masses. * None or True : use the value from mmbulge._scatter_dex * False : do not introduce scatter * float : introduce scatter with this amplitude (in dex)
- Returns:
ndens – Number density of MBHs, in units of [Mpc^-3]
- Return type:
array_like
- _abc_impl = <_abc._abc_data object>
- class holodeck.sams.components.GSMF_Schechter(phi0=-2.77, phiz=-0.27, mchar0_log10=11.24, mchar0=None, mcharz=0.0, alpha0=-1.24, alphaz=-0.03)[source]
Bases:
_Galaxy_Stellar_Mass_Function
Single Schechter Function - Galaxy Stellar Mass Function.
This is density per unit log10-interval of stellar mass, i.e. \(\Phi = dn / d\log_{10}(M)\)
See: [Chen2019] Eq.9 and enclosing section.
- _phi_func(redz)[source]
See: [Chen2019] Eq.9
- _mchar_func(redz)[source]
See: [Chen2019] Eq.10 - NOTE: added redz term
- _alpha_func(redz)[source]
See: [Chen2019] Eq.11
- _abc_impl = <_abc._abc_data object>
- class holodeck.sams.components._GSMF_Single_Schechter(log10_phi_terms, log10_mstar_terms, alpha)[source]
Bases:
_Galaxy_Stellar_Mass_Function
Schechter function, with parameters as quadratics with respect to redshift.
Parameterization follows [Leja2020] and is primarily for use in the
GSMF_Double_Schechter
class. From [Leja2020] Eq.14:\[\frac{\partial n}{\partial \log_{10} \! M} = \ln(10) \phi \left(\frac{M}{M_\star}\right)^{\alpha+1} \exp[-M/M_\star].\]The power-law index \(\alpha\) is a scalar value, while the reference mass \(M_\star\), and the normalization \(\phi\) are defined as quadratics with respect to redshift:
\[\begin{split}\log_{10}(\phi) & = a_0 + a_1 z + a_2 z^2, \\ \log_{10}(M_\star) & = b_0 + b_1 z + b_2 z^2.\end{split}\]Class instances are callable, see
__call__()
, and return galaxy number densities in units of \([\mathrm{Mpc}^{-3} \, \mathrm{dex}^{-1}]\).- _log10_phi_terms
these are the \(a_i\) terms in the defintion.
- _log10_mstar_terms
these are the \(b_i\) terms.
- _alpha
power-law index
- _phi_func(redz)[source]
Evaluate the GSMF normalization (phi) at the given redshift(s).
- Parameters:
redz (array_like of float,) – Redshift(s) at which to calculate the GSMF normalization.
- Returns:
phi – Number density normalization.
- Return type:
array_like of float, [Mpc^-3 dex^-1]
- _mstar_func(redz)[source]
Evaluate the GSMF characteristic mass (\(M_\star\)) at the given redshift(s).
- _abc_impl = <_abc._abc_data object>
- class holodeck.sams.components.GSMF_Double_Schechter(log10_phi1=[-2.383, -0.264, -0.107], log10_phi2=[-2.818, -0.368, 0.046], log10_mstar=[10.767, 0.124, -0.033], alpha1=-0.28, alpha2=-1.48)[source]
Bases:
_Galaxy_Stellar_Mass_Function
Sum of two Schechter functions, each parameterized as quadratics in redshift.
For each Schechter Function (
_GSMF_Single_Schechter
), the normalizations (\(\phi\)) and characteristic masses (\(M_\star\)) are parameterized as quadratics with respect to redshift.Each Schechter function is parameterized as,
\[\begin{split}\frac{\partial n}{\partial \log_{10} \! M} & = \ln(10) \, \phi \cdot \left(\frac{M}{M_\star}\right)^{\alpha+1} \exp[-M/M_\star], \\ \log_{10}(\phi) & = a_0 + a_1 z + a_2 z^2, \\ \log_{10}(M_\star) & = b_0 + b_1 z + b_2 z^2.\end{split}\]The parameters for \(\phi\) and \(\alpha\) are different for the two functions, while the parameters for \(M_\star\) are shared (i.e. the same characteristic mass is used for both). Default parameters are the best fits from [Leja2020]. With uncertainties, these are:
log10(phi_1): [ -2.383 ± 0.027, -0.264 ± 0.071, -0.107 ± 0.030], log10(phi_2): [ -2.818 ± 0.050, -0.368 ± 0.070, +0.046 ± 0.020], log10(M_star): [+10.767 ± 0.026, +0.124 ± 0.045, -0.033 ± 0.015].
- _abc_impl = <_abc._abc_data object>
- class holodeck.sams.components._Galaxy_Merger_Rate(*args, **kwargs)[source]
Bases:
ABC
Galaxy Merger Rate base class, used to model merger rates of galaxy pairs.
NOTE: the definition of mass is ambiguous, i.e. whether it is the primary mass, the combined system mass, the descendent mass, etc.
_Galaxy_Merger_Rate
instances are callable, returning the specific galaxy merger-rate (i.e. the rate per galaxy), per unit mass-ratio, i.e.\[R = \frac{\partial N_\mathrm{mergers}(M_\star, q_\star, z)}{\partial q_\star \, \partial t}.\]Typically the mass \(M_\star\) is taken to be that of the descendent (roughly the combined mass of the two galaxies), and the mass ratio is \(q_\star \equiv M_{2,\star} / M_{1,\star} \leq 1.0\).
- _abc_impl = <_abc._abc_data object>
- class holodeck.sams.components.GMR_Illustris(norm0_log10=None, normz=None, malpha0=None, malphaz=None, mdelta0=None, mdeltaz=None, qgamma0=None, qgammaz=None, qgammam=None)[source]
Bases:
_Galaxy_Merger_Rate
Galaxy Merger Rate - based on multiple power-laws.
See [Rodriguez-Gomez2015], Table 1. “merger rate as a function of descendant stellar mass M_star, progenitor stellar mass ratio mu_star”
- _abc_impl = <_abc._abc_data object>
- class holodeck.sams.components._Galaxy_Pair_Fraction(*args, **kwargs)[source]
Bases:
ABC
Galaxy Pair Fraction base class, used to describe the fraction of galaxies in mergers/pairs.
- _abc_impl = <_abc._abc_data object>
- class holodeck.sams.components.GPF_Power_Law(frac_norm_allq=0.025, frac_norm=None, mref=None, mref_log10=11.0, malpha=0.0, zbeta=0.8, qgamma=0.0, obs_conv_qlo=0.25, max_frac=1.0)[source]
Bases:
_Galaxy_Pair_Fraction
Galaxy Pair Fraction - Single Power-Law
- _abc_impl = <_abc._abc_data object>
- class holodeck.sams.components._Galaxy_Merger_Time(*args, **kwargs)[source]
Bases:
ABC
Galaxy Merger Time base class, used to model merger timescale of galaxy pairs.
- zprime(mass, mrat, redz, **kwargs)[source]
Return the redshift after merger (i.e. input redz delayed by merger time).
- _abc_impl = <_abc._abc_data object>
- class holodeck.sams.components.GMT_Power_Law(time_norm=1.7356680000000002e+16, mref0=1.9884098706980508e+44, malpha=0.0, zbeta=-0.5, qgamma=0.0)[source]
Bases:
_Galaxy_Merger_Time
Galaxy Merger Time - simple power law prescription
- _abc_impl = <_abc._abc_data object>