Stellar
- gwGenealogy.stellar.stellar_evolution.IMF_kroupa(m, alpha3=-2.3)[source]
Kroupa (2002) initial mass function (broken power law).
- Parameters:
- Returns:
dN/dm in units of 1/Msun
- Return type:
float or array
References
Kroupa (2002): https://arxiv.org/abs/astro-ph/0201098
- gwGenealogy.stellar.stellar_evolution.sample_kroupa_masses(n_samples, m_min=0.08, m_max=150.0, alpha3=-2.3, seed=None)[source]
Sample masses from the Kroupa (2002) IMF via inverse CDF on a fine grid.
- Parameters:
- Returns:
Sampled masses in solar masses
- Return type:
array
- gwGenealogy.stellar.stellar_evolution.sample_zams_masses(n_samples, m_zams_min=10.0, m_zams_max=150.0, imf='salpeter', imf_alpha=-2.35, seed=None)[source]
Sample zero-age main sequence (ZAMS) masses from an initial mass function.
Parameters:
- n_samplesint
Number of ZAMS masses to sample
- m_zams_minfloat
Minimum ZAMS mass in solar masses (default: 10.0)
- m_zams_maxfloat
Maximum ZAMS mass in solar masses (default: 150.0)
- imfstr
Initial mass function: ‘salpeter’, ‘kroupa’, or ‘uniform’ (default: ‘salpeter’)
- imf_alphafloat
Power-law index for Salpeter IMF (default: -2.35), or high-mass slope alpha3 for Kroupa IMF (default: -2.3 if not specified)
- seedint or None
Random seed for reproducibility
Returns:
- M_ZAMSarray
Array of ZAMS masses in solar masses
- gwGenealogy.stellar.stellar_evolution.evolve_stars(M_ZAMS, Z, model='Fryer12_delayed', **kwargs)[source]
Evolve ZAMS masses to remnant masses using a stellar evolution model.
Parameters:
- M_ZAMSfloat or array
ZAMS masses in solar masses
- Zfloat
Absolute metallicity
- modelstr
Stellar evolution model: ‘Fryer12_delayed’ or ‘SEVN_delayed’ (default: ‘Fryer12_delayed’)
- **kwargs
Additional keyword arguments passed to the underlying model (e.g., mass_gap_low, mass_gap_high)
Returns:
- M_remfloat or array
Remnant masses in solar masses. Returns 0 for objects in the pair-instability mass gap.
- gwGenealogy.stellar.stellar_evolution.sample_1g_bh_masses_from_stellar_collapse(n_samples, Z=0.0002, model='Fryer12_delayed', m_zams_min=10.0, m_zams_max=150.0, imf='salpeter', imf_alpha=-2.35, seed=None, **kwargs)[source]
Generate a population of 1st-generation black holes from stellar evolution.
Convenience function that chains sample_zams_masses -> evolve_stars -> filter mass-gap zeros.
Parameters:
- n_samplesint
Number of ZAMS masses to sample (actual BH count will be smaller after filtering mass-gap zeros)
- Zfloat
Metallicity (default: 0.0002)
- modelstr
Stellar evolution model: ‘Fryer12_delayed’ or ‘SEVN_delayed’ (default: ‘Fryer12_delayed’)
- m_zams_minfloat
Minimum ZAMS mass in solar masses (default: 10.0)
- m_zams_maxfloat
Maximum ZAMS mass in solar masses (default: 150.0)
- imfstr
Initial mass function: ‘salpeter’, ‘kroupa’, or ‘uniform’ (default: ‘salpeter’)
- imf_alphafloat
Power-law index for Salpeter IMF (default: -2.35)
- seedint or None
Random seed for reproducibility
- **kwargs
Additional keyword arguments passed to evolve_stars (e.g., mass_gap_low, mass_gap_high)
Returns:
- m_bharray
Array of BH masses in solar masses (mass-gap zeros removed)
- gwGenealogy.stellar.collapse.compute_Mrem_Fryer12_delayed_rapster(M, Z, mass_gap_low=45.0, mass_gap_high=120.0)[source]
Fryer et al. (2012) delayed remnant mass prescription model.
Uses RAPSTER stellar evolution data interpolated on a regular grid.
Parameters:
- Mfloat or array
ZAMS mass in solar masses (valid range: [10, 340])
- Zfloat or array
Absolute metallicity (valid range: [1e-4, 2e-2])
- mass_gap_lowfloat
Lower edge of the upper mass gap in solar masses (default: 45.0)
- mass_gap_highfloat
Upper edge of the upper mass gap in solar masses (default: 120.0)
Returns:
- float or array
Remnant mass in solar masses. Returns 0 for BHs in the mass gap.
References:
Fryer et al. (2012): https://arxiv.org/abs/1110.1726
- gwGenealogy.stellar.collapse.compute_Mrem_SEVN_delayed_rapster(M, Z, mass_gap_low=55.0, mass_gap_high=120.0)[source]
SEVN delayed SN engine remnant mass prescription.
Uses RAPSTER SEVN data interpolated on a regular grid across 12 metallicity values.
Parameters:
- Mfloat or array
ZAMS mass in solar masses (valid range: [15, 340])
- Zfloat or array
Absolute metallicity (valid range: [1e-4, 2e-2])
- mass_gap_lowfloat
Lower edge of the upper mass gap in solar masses (default: 55.0)
- mass_gap_highfloat
Upper edge of the upper mass gap in solar masses (default: 120.0)
Returns:
- float or array
Remnant mass in solar masses. Returns 0 for BHs in the mass gap.
References:
Spera & Mapelli (2017) — SEVN code
- gwGenealogy.stellar.natal_kick.sample_maxwellian_kick(sigma, n_samples=1, seed=None)[source]
Sample natal kick velocities from a Maxwellian velocity distribution.
Based on Equation 5 of Giacobbo & Mapelli (2018):
f(v) ∝ (1/sigma^3) * v^2 * exp(-v^2 / (2 * sigma^2))
where sigma is the one-dimensional root-mean-square (1D rms) velocity and v is the modulus of the 3D velocity.
The default sigma = 265 km/s was derived by Hobbs et al. (2005) from the proper motions of 233 young isolated Galactic pulsars, corresponding to an average natal kick speed <v> = sigma * sqrt(8/pi) ~ 420 km/s.
Parameters:
- sigmafloat
1D rms velocity dispersion in km/s (default for CCSNe: 265 km/s)
- n_samplesint
Number of kick velocities to draw (default: 1)
- seedint or None
Random seed for reproducibility
Returns:
- v_kickfloat or array
Kick velocity(ies) in km/s
References:
Giacobbo & Mapelli (2018), Eq. 5: https://arxiv.org/abs/1805.11100 Hobbs et al. (2005): https://arxiv.org/abs/astro-ph/0507584