Initial mass functions — model cards¶
Machine-generated from the provenance registry (ADR-0034): every model’s sources (with public DOI/arXiv/ADS pointers), governing equations, parameter meanings, code entry points, and the validation tests that pin them. The hand-authored theory pages hold the derivations; these cards are the citable single source of truth.
Salpeter / Kroupa piecewise power law¶
✅ verified · 3 equations · 2 sources · API: PowerLawIMF
N-segment piecewise power-law IMF with continuity enforced at the breaks: Salpeter (1955) is the 1-segment classic, Kroupa (2001) the canonical multi-segment form with the observed low-mass turnover. Exact analytic CDF/PPF per segment (expm1-stable through alpha = 1, audit S4).
| Use it for | Not for |
|---|---|
| ✓ literature-standard Salpeter/Kroupa populations and comparisons | ✗ gradient-based IMF inference as the production default — the segment breaks are C^0 kinks; prefer the SMOOTH Maschberger form (house default) |
| ✓ exact segment-wise closed-form sampling (no solver) | ✗ smooth low-mass turnover shapes (use Chabrier or Maschberger) |
Parameters¶
| Name | Meaning | Units | Typical range | Code |
|---|---|---|---|---|
exponents | per-segment slopes alpha_i (dN/dm proportional to m^-alpha_i); Salpeter 2.35, Kroupa (0.3, 1.3, 2.3) | dimensionless | 0.3–2.7 | PowerLawIMF(exponents=[...]) |
breakpoints | interior segment breaks (Kroupa: 0.08, 0.5 Msun) | Msun | 0.08–1.0 | PowerLawIMF(breakpoints=[...]) |
m_min | lower mass limit | Msun | 0.01–1 | PowerLawIMF(m_min=...) |
m_max | upper mass limit | Msun | 100–150 | PowerLawIMF(m_max=...) |
Equations¶
Symbols: : IMF in LINEAR mass, dN/dm (the log-mass slope is alpha - 1 = 1.35) [1 / Msun]. Assumes: valid for m >~ 1 Msun (no low-mass turnover). Derivation: theory page.
Symbols: : cumulative count fraction [dimensionless]. Assumes: closed-form; inverted analytically for sampling; the alpha = 1 (and mean-mass alpha = 2) removable singularities use the expm1-stable kernels (progenax.numerics, audit S4) — gradients FD-exact AT the singular points. Derivation: theory page.
Symbols: : per-segment slope; continuity coefficients enforced at each break [dimensionless]. Assumes: alpha_2 = alpha_3 = 2.3, so the 3-segment merge used by PowerLawIMF.kroupa() is exact. Derivation: theory page.
Sources¶
Salpeter (1955) — the original xi(m) proportional to m^-2.35 (scanned source; slope ledger-verified) (Eq. 5 + the luminosity-function fit (dN/dlogm slope 1.35 = linear-mass 2.35))
Kroupa (2001) — the canonical 4-segment broken power law with alpha = (0.3, 1.3, 2.3, 2.3) (Eq. 2)
Code & validation¶
code:
PowerLawIMF(src/progenax/imf/power_law.py)validation:
tests/validation/test_imf_physics.py::TestSalpeterSlope::test_salpeter_high_mass_slopevalidation:
tests/validation/test_imf_physics.py::TestKroupaBreakpoints::test_kroupa_segment_slopesvalidation:
tests/validation/test_imf_physics.py::TestMeanMassAccuracy::test_mean_mass_resolution_converged
Chabrier (2003) lognormal + power law¶
✅ verified · 1 equation · 2 sources · API: ChabrierIMF
Lognormal low-mass body joined continuously to a Salpeter-like power-law tail at 1 Msun — the single-star (disk) IMF of Chabrier (2003). Smoother at low mass than a broken power law; the inverse CDF needs a fixed-iteration Newton solve.
| Use it for | Not for |
|---|---|
| ✓ literature-standard Chabrier single-star populations | ✗ the fastest / cleanest-gradient sampling (no closed-form inverse; ~30 Newton steps per draw — the SMOOTH closed-form Maschberger is the house default) |
| ✓ smooth low-mass turnover with the canonical disk parameters | ✗ system (unresolved-binary) IMF studies without switching to the Table-1 system parameters |
Parameters¶
| Name | Meaning | Units | Typical range | Code |
|---|---|---|---|---|
m_c | lognormal characteristic mass (single-star disk value 0.079 Msun) | Msun | 0.08 (single-star) – 0.22 (system) | ChabrierIMF(m_c=...) |
sigma | lognormal width in log10 m (single-star disk 0.69) | dex | 0.55–0.69 | ChabrierIMF(sigma=...) |
alpha | high-mass power-law slope (linear-mass convention) | dimensionless | 2.3 | ChabrierIMF(alpha=...) |
m_trans | lognormal-to-power-law transition mass | Msun | 1.0 | ChabrierIMF(m_trans=...) |
Equations¶
Symbols: : characteristic (peak) mass of the lognormal [Msun]; : lognormal width in dex [dex]. Assumes: single-star DISK parameters (not the system IMF); continuity enforced at m_trans. Derivation: theory page.
Sources¶
Chabrier (2003) — the lognormal + power-law single-star (disk) IMF and its parameters (Table 1 (single-star disk: m_c = 0.079, sigma = 0.69); Eq. 17 form)
Maschberger (2013) — independent parameter cross-check: his Eq. 8 restates the Chabrier form with k1 = 0.158, log m_c = log 0.079, sigma = 0.69, tail m^-2.3 (Eq. 8, p. 1727)
Code & validation¶
code:
ChabrierIMF(src/progenax/imf/chabrier.py)validation:
tests/validation/test_imf_physics.py::TestChabrierParameters::test_chabrier_characteristic_massvalidation:
tests/validation/test_imf_physics.py::TestChabrierParameters::test_chabrier_pdf_continuous_at_mtransvalidation:
tests/validation/test_imf_physics.py::TestChabrierParameters::test_chabrier_high_mass_slope
Maschberger (2013) L3 — the smooth house default¶
✅ verified · 2 equations · 1 source · API: Maschberger
The L3 IMF: one smooth analytic form that reproduces the Kroupa/Chabrier shape (Salpeter tail + low-mass turnover) with a CLOSED-FORM quantile function. progenax’s production default.
| Use it for | Not for |
|---|---|
| ✓ PREFERRED over Kroupa/Chabrier as the production default: SMOOTH (C^inf, no breakpoint kinks) — exactly what gradient-based inference (HMC / Fisher forecasting) wants | ✗ matching a literature analysis that is DEFINED on Kroupa/Chabrier segments (use those forms for like-for-like comparisons) |
| ✓ fast exact sampling: closed-form quantile, no solver, ~5x faster than Chabrier under vmap | |
| ✓ IMF-parameter inference (alpha, beta, mu are clean continuous knobs) |
Parameters¶
| Name | Meaning | Units | Typical range | Code |
|---|---|---|---|---|
alpha | high-mass exponent (Salpeter-like tail) | dimensionless | 2.3 (canonical single-star) | Maschberger(alpha=...) |
beta | low-mass tapering exponent | dimensionless | 1.4 (single-star; 2.0 system) | Maschberger(beta=...) |
mu | scale parameter (sets the turnover; NOT the peak mass itself) | Msun | 0.2 | Maschberger(mu=...) |
Equations¶
Symbols: : scale parameter [Msun]; : high-mass exponent [dimensionless]; : low-mass tapering exponent [dimensionless]. Assumes: alpha != 1, beta != 1 (the L3 parameterization); m >> mu: Salpeter tail; m << mu: turnover. Derivation: theory page.
Symbols: : uniform draw in [0, 1] [dimensionless]; : mu/[(1-beta)(1-alpha)]: converts the primitive P to Maschberger’s auxiliary G, making this ALGEBRAICALLY IDENTICAL to his Table-1 quantile [Msun]. Assumes: closed-form: no Newton solve, no rejection — fully vmap-compatible and cleanly differentiable. Derivation: theory page.
Sources¶
Maschberger (2013) — the L3 pdf, auxiliary function G(m), closed-form quantile, and canonical parameters (Table 1 rows 1-4 (G, CDF, pdf, quantile; alpha = 2.3, beta = 1.4, mu = 0.2), p. 1726 — PDF-verified 2026-07-11)
Code & validation¶
code:
Maschberger(src/progenax/imf/smooth.py)validation:
tests/validation/test_imf_physics.py::TestMaschbergerProperties::test_maschberger_peak_massvalidation:
tests/validation/test_imf_physics.py::TestMaschbergerProperties::test_maschberger_high_mass_salpetervalidation:
tests/validation/test_imf_physics.py::TestMeanMassAccuracy::test_mean_mass_resolution_converged
Tapered power law (Parravano+2011 STPL)¶
✅ verified · 1 equation · 2 sources · API: TaperedPowerLaw
Power law with an exponential low-mass taper — the Smoothed Two-Power Law of Parravano, McKee & Hollenbach (2011): power law at both ends, smoothly joined. Smooth like Maschberger but WITHOUT a closed-form inverse (fixed-iteration Newton ppf).
| Use it for | Not for |
|---|---|
| ✓ the PMH11 galactic-disk IMF shape specifically | ✗ the production default (Maschberger has the same smoothness PLUS a closed-form quantile) |
| ✓ smooth turnover with an independently tunable taper sharpness beta |
Parameters¶
| Name | Meaning | Units | Typical range | Code |
|---|---|---|---|---|
alpha | power-law slope (LINEAR-mass convention; PMH11’s log-mass Gamma = alpha - 1) | dimensionless | 2.3 | TaperedPowerLaw(alpha=...) |
m_peak | taper/turnover mass (PMH11’s m_ch) | Msun | 0.3 | TaperedPowerLaw(m_peak=...) |
beta | taper sharpness (PMH11’s gamma + Gamma exponent) | dimensionless | 2.0 | TaperedPowerLaw(beta=...) |
Equations¶
Symbols: : turnover mass (PMH11 m_ch) [Msun]; : taper sharpness [dimensionless]. Assumes: linear-mass convention: PMH11 write the log-mass slope Gamma = alpha - 1 and taper exponent gamma + Gamma = beta.
Sources¶
Parravano et al. (2011) — the STPL form psi(m) proportional to m^-Gamma [1 - exp(-(m/m_ch)^(gamma+Gamma))] — PDF-verified 2026-07-11 (Eq. 1, p. 2 (form historically first proposed by Paresce & De Marchi 2000))
Maschberger (2013) — the same form in linear-mass notation, as his comparison Eq. 12 (Eq. 12, p. 1727)
Code & validation¶
code:
TaperedPowerLaw(src/progenax/imf/smooth.py)validation:
tests/unit/imf/test_smooth.py::TestTaperedPowerLaw::test_taper_suppresses_low_massvalidation:
tests/unit/imf/test_smooth.py::TestTaperedPowerLaw::test_full_cdf_ppf_roundtrip
Truncated IMF (operator)¶
✅ verified · 1 equation · 1 source · API: TruncatedIMF
Wrapper applying hard m_min / m_max cutoffs to any base IMF, with the normalization recomputed on the truncated support. An operator card: the physics lives in the wrapped base IMF.
| Use it for | Not for |
|---|---|
| ✓ cluster-mass-dependent upper limits (m_max(M_cl)) | ✗ changing the SHAPE of the IMF (only the support is modified) |
| ✓ regime studies with forced mass windows |
Parameters¶
| Name | Meaning | Units | Typical range | Code |
|---|---|---|---|---|
base_imf | any IMF implementing the shared protocol | — | — | TruncatedIMF(base_imf=...) |
m_min | hard lower cutoff | Msun | 0.01–1 | TruncatedIMF(m_min=...) |
m_max | hard upper cutoff | Msun | 5–150 | TruncatedIMF(m_max=...) |
Equations¶
Symbols: : indicator of the truncated support [dimensionless]. Assumes: shape inherited from the base IMF; support and normalization replaced.
Sources¶
Marks et al. (2012) — the m_max(M_cl) motivation (Weidner-Kroupa relation) for cluster-dependent truncation (Section 2 context)
Code & validation¶
code:
TruncatedIMF(src/progenax/imf/truncated.py)validation:
tests/unit/imf/test_imf_core.py::TestCDFProperties::test_cdf_at_m_max[TruncatedChabrier]validation:
tests/unit/imf/test_imf_core.py::TestCDFProperties::test_cdf_at_m_min[TruncatedChabrier]
Environment-dependent IMF (Marks+2012 / Jerabkova+2018)¶
✅ verified · 2 equations · 2 sources · API: BirthEnvironment
The functional alpha_3(environment) relations: the high-mass IMF slope as a function of birth-cloud density and metallicity (the Marks+2012 fundamental-plane relation, erratum-corrected, as restated by Jerabkova+2018). progenax’s BirthEnvironment + env_to_imf_params — NOT a galaxy-wide IGIMF integration.
| Use it for | Not for |
|---|---|
| ✓ top-heavy IMFs in dense / metal-poor birth environments (per-cluster alpha_3) | ✗ galaxy-wide IGIMF calculations (out of scope; no IGIMF class exists — audit R7) |
| ✓ environment-dependent population synthesis inputs to the binary engine | ✗ sub-solar-mass slope changes (only alpha_3, and optionally alpha_1/alpha_2 via metallicity, respond) |
Parameters¶
| Name | Meaning | Units | Typical range | Code |
|---|---|---|---|---|
rho_cl | birth-cloud (pre-cluster core) density | Msun / pc^3 | 1e2–1e7 | BirthEnvironment(rho_cl=...) |
Fe_H | metallicity [Fe/H] | dex | -2 – +0.5 | BirthEnvironment(Fe_H=...) |
Equations¶
Symbols: : fundamental-plane coordinate (density-metallicity combination) [dimensionless]. Assumes: erratum-corrected threshold -0.87 (Jerabkova 2018 Eq. 6); canonical 2.3 below threshold. Derivation: theory page.
Symbols: : birth-cloud density [Msun / pc^3]. Assumes: the Marks 2012 Eq. 15 plane in physical variables. Derivation: theory page.
Sources¶
Marks et al. (2012) — the fundamental-plane alpha_3(x) relation and the Table-3 1-D relations (all ledger-verified cell-for-cell) (Eqs. 14-15, p. 2252 (slope -0.4072, intercept 1.9383); Table 3, p. 2251)
Jeřábková et al. (2018) — the erratum-corrected threshold x >= -0.87 and the restated relations (Eq. 6 (cites the Marks erratum); Eq. 9 (the 4pi form; see deviations))
Code & validation¶
code:
BirthEnvironment(src/progenax/imf/environment/birth_environment.py)code:
env_to_imf_params(src/progenax/imf/environment/mapping.py)validation:
tests/unit/imf/test_environment.py::TestMarksCoefficients::test_coefficient_valuesvalidation:
tests/unit/imf/test_environment.py::TestGCValidation::test_marks_table1_gc
Schechter exponential-cutoff IMF¶
✅ verified · 1 equation · 1 source · API: Schechter
Power law with an exponential high-mass cutoff, f(m) proportional to m^-alpha exp(-m/m_star) — Schechter’s (1976) galaxy-luminosity-function form repurposed as an IMF for extreme environments / IGIMF-style truncation studies.
| Use it for | Not for |
|---|---|
| ✓ smooth (C^inf) high-mass suppression with a tunable cutoff scale m_star | ✗ the production default (no closed-form inverse; Newton ppf — use Maschberger) |
| ✓ top-light IMF experiments where a hard m_max is too blunt | ✗ low-mass turnover shapes (no taper below m_star; combine with truncation) |
Parameters¶
| Name | Meaning | Units | Typical range | Code |
|---|---|---|---|---|
alpha | power-law slope | dimensionless | 2.3 | Schechter(alpha=...) |
m_star | exponential cutoff scale | Msun | 10–100 | Schechter(m_star=...) |
Equations¶
Symbols: : exponential cutoff mass [Msun]. Assumes: fixed-iteration Newton ppf (no closed-form inverse); differentiable and JIT-safe.
Sources¶
Schechter (1976) — the analytic form (introduced for the galaxy luminosity function; DOI verified live) (Eq. 2 (the Schechter form))
Code & validation¶
code:
Schechter(src/progenax/imf/smooth.py)validation:
tests/unit/imf/test_smooth.py::TestSchechter::test_logpdf_large_mass_decaysvalidation:
tests/unit/imf/test_smooth.py::TestSchechter::test_full_cdf_ppf_roundtrip
- Salpeter, E. E. (1955). The luminosity function and stellar evolution. The Astrophysical Journal, 121, 161–167. 10.1086/145971
- Kroupa, P. (2001). On the variation of the initial mass function. Monthly Notices of the Royal Astronomical Society, 322, 231–246. 10.1046/j.1365-8711.2001.04022.x
- Chabrier, G. (2003). Galactic stellar and substellar initial mass function. Publications of the Astronomical Society of the Pacific, 115, 763–795. 10.1086/376392
- Maschberger, T. (2013). On the function describing the stellar initial mass function. Monthly Notices of the Royal Astronomical Society, 429, 1725–1733. 10.1093/mnras/sts479
- Parravano, A., McKee, C. F., & Hollenbach, D. J. (2011). An Initial Mass Function for Individual Stars in Galactic Disks. I. Constraining the Shape of the Initial Mass Function. The Astrophysical Journal, 726, 27. 10.1088/0004-637X/726/1/27
- Marks, M., Kroupa, P., Dabringhausen, J., & Pawlowski, M. S. (2012). Evidence for top-heavy stellar initial mass functions with increasing density and decreasing metallicity. Monthly Notices of the Royal Astronomical Society, 422, 2246–2254. 10.1111/j.1365-2966.2012.20767.x
- Jeřábková, T., Kroupa, P., Dabringhausen, J., Hilker, M., & Bekki, K. (2018). Impact of metallicity and star formation rate on the time-dependent, galaxy-wide stellar initial mass function. Astronomy and Astrophysics, 620, A39. 10.1051/0004-6361/201833055
- Schechter, P. (1976). An analytic expression for the luminosity function for galaxies. The Astrophysical Journal, 203, 297–306. 10.1086/154079