Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Binary populations & orbits

San Diego State University

Binary populations & orbits — 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.

Moe & Di Stefano (2017) P–q–e statistics

✅ verified · 3 equations · 1 source · API: MoeDiStefano2017Full

The faithful non-separable multiplicity statistics: mass-ratio power laws with a twin excess, all conditioned on primary mass AND period (Table 13 grids), plus the period- and mass-dependent eccentricity slope. The companion-composition engine behind MoeCompanions / MoeDiStefano2017Full.

Use it forNot for
✓ observationally faithful binary populations across 0.8-40+ Msun primaries✗ separable q-only toys (use FlatMassRatio / PowerLawMassRatio)
✓ massive-star population synthesis where the q-P coupling matters (twin excess at short P)✗ sub-solar primaries below the MD17 calibration range

Parameters

NameMeaningUnitsTypical rangeCode
primary_massprimary mass M1 conditioning every grid lookupMsun0.8–40 (Table 13 bins, interpolated)MoeCompanions()/MoeDiStefano2017Full() consume M1 arrays at sample time

Equations

g(qM1)  =  (1ftwin)qγ(M1)Zpl  +  ftwinN(q1,σtwin)g(q \mid M_1) \;=\; (1 - f_{\mathrm{twin}})\,\frac{q^{\gamma(M_1)}}{Z_{\mathrm{pl}}} \;+\; f_{\mathrm{twin}}\,\mathcal{N}(q \mid 1,\,\sigma_{\mathrm{twin}})

Symbols: qq: mass ratio m2/m1 (twin excess = fraction with q > 0.95, defined over q > 0.3) [dimensionless]; γ(M1)\gamma(M_1): broken power-law slope (gamma_largeq above q = 0.3, gamma_smallq below) [dimensionless]. Assumes: Table-13 grid interpolation in (M1, log P); twin convention: excess fraction over 0.3 < q < 1.0. Derivation: theory page.

η(M1,P)={0.60.7log10P0.5,0.8<M1<3M (Eq. 17)0.90.2log10P0.5,M1>7M (Eq. 18)\eta(M_1, P) = \begin{cases} 0.6 - \dfrac{0.7}{\log_{10} P - 0.5}, & 0.8 < M_1 < 3\,M_\odot\ \text{(Eq. 17)} \\ 0.9 - \dfrac{0.2}{\log_{10} P - 0.5}, & M_1 > 7\,M_\odot\ \text{(Eq. 18)} \end{cases}

Symbols: η\eta: eccentricity power-law slope p(e) proportional to e^eta (0 = uniform, 1 = thermal) [dimensionless]. Assumes: linear interpolation in M1 across 3-7 Msun; eta <= -1 (very short P) returns e ~ 0. Derivation: theory page.

emax(P)  =  1(P2d)2/3(P>2 d)e_{\max}(P) \;=\; 1 - \Bigl(\frac{P}{2\,\mathrm{d}}\Bigr)^{-2/3} \quad (P > 2\ \mathrm{d})

Symbols: emaxe_{\max}: period-dependent Roche-lobe eccentricity ceiling; P <= 2 d circularizes [dimensionless]. Assumes: components must not overflow Roche lobes at periapsis (MD17 Eq. 3). Derivation: theory page.

Sources

Code & validation

Period distributions (Öpik / DM91 / Sana+2012)

✅ verified · 2 equations · 2 sources · API: LogUniformPeriod

The three direct period samplers: log-uniform (Öpik baseline), the Duquennoy & Mayor (1991) solar-type log-normal, and the Sana+2012 short-period-biased OB power law — plus mass-dependent routing between them.

Use it forNot for
✓ solar-type primaries: LogNormalPeriod (DM91 sec 7.3 defaults)✗ compact binaries / post-interaction periods (IC-time statistics only)
✓ O/B primaries: SanaOBPeriod (pi = -0.55 in log10 P)✗ a generic low-mass field population sampled with the Sana OB law
✓ mixed populations via MassDependentBinaryConfig routing at m_break

Parameters

NameMeaningUnitsTypical rangeCode
mu_log_Plog-normal mean of log10(P/day) (DM91: 4.8, median ~180 yr)dex(day)4.8LogNormalPeriod(mu_log_P=...)
sigma_log_Plog-normal width (DM91: 2.3)dex2.3LogNormalPeriod(sigma_log_P=...)
powerSana OB slope pi of f(log10 P) proportional to (log10 P)^pidimensionless-0.55 (+/- 0.2, Sana 2012)SanaOBPeriod(power=-0.55)

Equations

f(logP)  =  Cexp ⁣[(logPlogP)22σlogP2],logP=4.8, σlogP=2.3f(\log P) \;=\; C\,\exp\!\left[-\frac{(\log P - \overline{\log P})^2}{2\,\sigma_{\log P}^2}\right], \qquad \overline{\log P} = 4.8,\ \sigma_{\log P} = 2.3

Symbols: PP: orbital period in days [day]. Assumes: solar-type primaries (DM91 sample).

f(log10P)    (log10P)π,π=0.55,  0.15log10P3.5f(\log_{10} P) \;\propto\; (\log_{10} P)^{\pi}, \qquad \pi = -0.55,\ \ 0.15 \le \log_{10} P \le 3.5

Symbols: π\pi: Sana 2012 period exponent (short-period biased) [dimensionless]. Assumes: O/B primaries; intrinsic (bias-corrected) distribution.

Sources

Code & validation

Eccentricity distributions (thermal / uniform / Moe)

✅ verified · 2 equations · 2 sources · API: ThermalEccentricity

The three eccentricity samplers: Heggie’s thermal f(e) = 2e (dynamical equilibrium), the uniform baseline, and the Moe & Di Stefano period-and-mass-dependent power law with the Roche ceiling.

Use it forNot for
✓ dynamically processed populations: ThermalEccentricity (f = 2e, = 2/3)✗ post-tidal-circularization populations at short P without the Moe ceiling
✓ observationally faithful primordial e: MoeEccentricity (couples to P, M1)

Parameters

NameMeaningUnitsTypical rangeCode
e_maxoptional hard ceiling on ThermalEccentricity/UniformEccentricity drawsdimensionless0.9–1.0ThermalEccentricity(e_max=...)

Equations

f(e)  =  2e,e[0,1]f(e) \;=\; 2e,\qquad e \in [0, 1]

Symbols: ee: orbital eccentricity [dimensionless]. Assumes: dynamical (thermal) equilibrium; = 2/3; sampled as e = sqrt(u). Derivation: theory page.

f(e)  =  1,e[0,1]f(e) \;=\; 1,\qquad e \in [0, 1]

Symbols: ee: orbital eccentricity [dimensionless]. Assumes: agnostic baseline; = 1/2. Derivation: theory page.

Sources

Code & validation

Kepler orbital elements

✅ verified · 3 equations · 1 source · API: KeplerElements

The two-body orbital-element chain: Kepler III (P <-> a), the Kepler equation solved by fixed-iteration Newton, true anomaly, orbit-plane state, and the 3-1-3 Euler rotation to inertial components — the machinery that turns (P, e, angles) into positions and velocities.

Use it forNot for
✓ resolving sampled binaries into component positions/velocities (the binary -> spatial connector)✗ N >= 3 hierarchical dynamics (no secular evolution here)
✓ machine-precision two-body ICs (energy/L conserved to ~1e-16)✗ relativistic or tidally evolving orbits

Parameters

NameMeaningUnitsTypical rangeCode
elementsKeplerElements(a, e, i, omega, Omega, M0): semi-major axis, eccentricity, inclination, argument of periapsis, longitude of ascending node, mean anomalypc / dimensionless / rade in [0, 1); angles in [0, 2 pi)KeplerElements(a=..., e=..., i=..., omega=..., Omega=..., M0=...)

Equations

P2  =  4π2a3G(m1+m2)P^2 \;=\; \frac{4\pi^2\,a^3}{G\,(m_1 + m_2)}

Symbols: PP: orbital period [Myr (or day via unit conversion)]; aa: semi-major axis of the RELATIVE orbit [pc]. Assumes: two-body; G explicit and units-carried. Derivation: theory page.

EesinE  =  M(t),M(t)=M0+nt,n=2π/PE - e\,\sin E \;=\; M(t), \qquad M(t) = M_0 + n\,t,\quad n = 2\pi/P

Symbols: EE: eccentric anomaly (fixed-iteration Newton solve — differentiable, JIT-safe) [rad]; MM: mean anomaly [rad]. Assumes: fixed iteration count (no while_loop): converged to float64 for e < 0.99. Derivation: theory page.

r1=m2m1+m2rrel,r2=+m1m1+m2rrel\mathbf{r}_1 = -\frac{m_2}{m_1 + m_2}\,\mathbf{r}_{\mathrm{rel}}, \qquad \mathbf{r}_2 = +\frac{m_1}{m_1 + m_2}\,\mathbf{r}_{\mathrm{rel}}

Symbols: rrel\mathbf{r}_{\mathrm{rel}}: relative separation vector after the 3-1-3 Euler rotation [pc]. Assumes: center-of-mass frame: momentum exactly zero per binary. Derivation: theory page.

Sources

Code & validation

Binary-cluster assembly (build_binary_cluster)

✅ verified · 1 equation · 2 sources · API: build_binary_cluster

The composition operator: primary IMF x companion model x population target -> a cluster whose binaries are resolved into components (resolve_binary_components) with per-binary COM preservation and full primordial-pair bookkeeping. A semantics card — the physics lives in the composed model cards.

Use it forNot for
✓ one-call binary-population ICs (Systems / Stars / TotalMass targets)✗ hierarchical triples+ (pairs only at IC time)
✓ energy-budget-aware binary populations (binary_energy_budget diagnostics)

Parameters

NameMeaningUnitsTypical rangeCode
primary_imfany IMF card’s model (house default: the SMOOTH Maschberger)build_binary_cluster(primary_imf=...)
companion_modelIndependentCompanions (separable) or MoeCompanions (faithful P-q-e)build_binary_cluster(companions=...)
targetpopulation size specification: Systems(n) / Stars(n) / TotalMass(M)count or Msunbuild_binary_cluster(target=...)

Equations

pairmjvj  =  0andpairmjrjpairmj  =  rsys\sum_{\mathrm{pair}} m_j \mathbf{v}_j \;=\; \mathbf{0} \quad \text{and} \quad \frac{\sum_{\mathrm{pair}} m_j \mathbf{r}_j}{\sum_{\mathrm{pair}} m_j} \;=\; \mathbf{r}_{\mathrm{sys}}

Symbols: rsys\mathbf{r}_{\mathrm{sys}}: the system (center-of-mass) position drawn from the spatial profile [pc]. Assumes: each binary’s internal orbit is superposed on its system’s cluster orbit; COM and momentum exact per pair.

Sources

Code & validation

References
  1. Moe, M., & Di Stefano, R. (2017). Mind your Ps and Qs: The interrelation between period (P) and mass-ratio (Q) distributions of binary stars. The Astrophysical Journal Supplement Series, 230, 15. 10.3847/1538-4365/aa6fb6
  2. Duquennoy, A., & Mayor, M. (1991). Multiplicity among solar-type stars in the solar neighbourhood. II. Distribution of the orbital elements in an unbiased sample. Astronomy & Astrophysics, 248, 485–524.
  3. Sana, H., de Mink, S. E., de Koter, A., Langer, N., Evans, C. J., Gieles, M., Gosset, E., Izzard, R. G., Le Bouquin, J.-B., & Schneider, F. R. N. (2012). Binary interaction dominates the evolution of massive stars. Science, 337, 444–446. 10.1126/science.1223344
  4. Heggie, D. C. (1975). Binary evolution in stellar dynamics. Monthly Notices of the Royal Astronomical Society, 173, 729–787. 10.1093/mnras/173.3.729
  5. Murray, C. D., & Dermott, S. F. (2000). Solar System Dynamics. Cambridge University Press. 10.1017/CBO9781139174817