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.

Multi-component cluster engines

San Diego State University

Multi-component cluster engines — 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.

Engine A — multimass lowered-isothermal (LIMEPY family)

✅ verified · 4 equations · 4 sources · API: MultiComponentCluster

DF-first multi-component equilibrium: every mass component shares one dimensionless potential, each riding it at its own velocity-scale ratio w_j (mass segregation via the equipartition ansatz w_j = mu_j^-delta), with the Gieles & Zocchi (2015) continuous truncation parameter g (Woolley 0 / King 1 / Wilson 2). Equilibrium by construction.

Use it forNot for
✓ relaxed multi-mass globular clusters with primordial/partial mass segregation✗ prescribed observed density shapes (use Engine B)
✓ physically motivated equilibrium family (DF-defined; unscaled Q = 0.5)✗ full energy equipartition (the model SATURATES: sigma(m) flattens below m_eq — that is the physics, not a bug)
✓ GC 1G/2G, halo+core, binaries-vs-singles component splits via direct w_j

Parameters

NameMeaningUnitsTypical rangeCode
W0dimensionless central potential of the shared welldimensionless3–12MultiComponentCluster.from_components(W0=...)
gcontinuous truncation parameter (0 Woolley, 1 King, 2 Wilson)dimensionless0–2.5from_components(g=...)
alpha_jcentral density fractions (sum to 1)dimensionlessfrom_components(alpha_j=...)
w_jvelocity-scale ratios s_j/s (the single free Engine-A scale per component); mass segregation sets w_j = mu_j^-deltadimensionless0.5–2from_components(w_j=...) / from_mass_segregation(delta=...)
ra_hat_joptional per-component anisotropy radii (OM/Michie term)r_c unitsinf = isotropicfrom_components(ra_hat_j=...)

Equations

f(E)    eE/σ2γ ⁣(g,  EcutEσ2)f(E) \;\propto\; e^{-E/\sigma^2}\, \gamma\!\Big(g,\; \tfrac{E_{\rm cut}-E}{\sigma^2}\Big)

Symbols: gg: continuous truncation parameter [dimensionless]; EcutE_{\rm cut}: truncation energy (the escape edge) [pc^2 / Myr^2]. Assumes: g = 0 Woolley, g = 1 King, g = 2 Wilson; equals GZ15 Eq. 1 up to the constant e^{E_cut/sigma^2}. Derivation: theory page.

1ξ2ddξ(ξ2dψdξ)  =  9jαjρ^j(ξ)\frac{1}{\xi^2}\frac{\mathrm{d}}{\mathrm{d}\xi} \Big(\xi^2\frac{\mathrm{d}\psi}{\mathrm{d}\xi}\Big) \;=\; -\,9\sum_j \alpha_j\,\hat\rho_j(\xi)

Symbols: αj\alpha_j: central density fractions [dimensionless]; ρ^j\hat\rho_j: component density E_gamma(g+3/2, rescale_j psi), the GZ15 lowered exponential [dimensionless]. Assumes: one shared potential; component j rides it at depth W_j = rescale_j psi = w_j^-2 psi. Derivation: theory page.

wj  =  μjδ,μj=mj/mˉ,mˉ=jmjαjw_j \;=\; \mu_j^{-\delta}, \qquad \mu_j = m_j/\bar m, \quad \bar m = \sum_j m_j\,\alpha_j

Symbols: δ\delta: equipartition exponent (1/2 = traditional partial equipartition; 0 = single-mass oracle) [dimensionless]; mˉ\bar m: central-density-weighted mean mass (GZ15 Eq. 26) [Msun]. Assumes: mass segregation as a genuine equilibrium property, not a positional reshuffle. Derivation: theory page.

meq  =  mˉ(g+52)(g+72)ϕ^0m_{\rm eq} \;=\; \bar m\,\frac{\big(g+\tfrac52\big)\big(g+\tfrac72\big)}{\hat\phi_0}

Symbols: meqm_{\rm eq}: equipartition crossover mass — DERIVED from the DF (Bianchini A2-A3 matching), not fitted [Msun]; ϕ^0\hat\phi_0: central dimensionless potential W_0 [dimensionless]. Assumes: more concentrated clusters (larger W_0) equipartition down to lighter stars; validated fit-free via the exact mu -> 0 identity (autodiff eta(m)). Derivation: theory page.

Sources

Code & validation

Engine B — density-defined shared-Ψ Eddington equilibria

✅ verified · 3 equations · 3 sources · API: build_engine_b_state

Density-first multi-component equilibrium: prescribe each component’s density shape (Plummer/EFF/King mixes with mass fractions), build the shared potential in ONE quadrature pass (no ODE), and derive each component’s ergodic (or Osipkov-Merritt) DF by Eddington inversion in that shared Psi — with a realizability gate (f_j >= 0 or refuse).

Use it forNot for
✓ observationally prescribed shapes (e.g. Plummer halo + EFF core) needing THE equilibrium DF✗ component mixes whose Eddington DF is negative (unrealizable — the gate raises, by design)
✓ per-component OM anisotropy with independent r_a,j✗ DF-defined families with a physical truncation parameter (use Engine A)
✓ differentiable builds (quadrature only — no ODE solve)

Parameters

NameMeaningUnitsTypical rangeCode
profilesprescribed per-component density shapes (PlummerProfile / EFFProfile / KingProfile)MultiComponentCluster.from_density_profiles(profiles=[...])
mass_fractionsM_j / M_total amplitudes (must sum to 1)dimensionlessfrom_density_profiles(mass_fractions=...)
r_a_joptional per-component OM anisotropy radii (None/inf = isotropic)pclarge enough that f_j(Q) >= 0from_density_profiles(r_a_j=...)
r_tcluster truncation radius — DERIVED from component extents (max finite extent, else the f_enc mass radius); explicit override cannot cut a King edgepcderivedfrom_density_profiles(r_t=...)

Equations

M(<r)=4π ⁣0rρtots2ds,Φ(r)=G[M(<r)r+4π ⁣rrtρtotsds]M(<r) = 4\pi\!\int_0^r \rho_{\rm tot}\, s^2\, \mathrm{d}s, \qquad \Phi(r) = -G\left[\frac{M(<r)}{r} + 4\pi\!\int_r^{r_t} \rho_{\rm tot}\, s\, \mathrm{d}s\right]

Symbols: ρtot\rho_{\rm tot}: sum of mass-fraction-normalized prescribed component densities [Msun / pc^3]. Assumes: one cumulative-trapezoid pass on the sqrt-stretched grid (audit S2); dPsi/dr = -GM/r^2 analytic. Derivation: theory page.

ρQ,j(r)  =  (1+r2ra,j2)ρj(r)\rho_{Q,j}(r) \;=\; \left(1 + \frac{r^2}{r_{a,j}^2}\right)\rho_j(r)

Symbols: ra,jr_{a,j}: per-component OM anisotropy radius [pc]. Assumes: yields f_j(Q), Q = E - J^2/2r_a,j^2, with beta_j(r) = r^2/(r^2 + r_a,j^2). Derivation: theory page.

dψdξ  =  9ρ^0ξ20ξρ^(ψ(s))s2ds\frac{\mathrm{d}\psi}{\mathrm{d}\xi} \;=\; -\frac{9}{\hat\rho_0}\,\xi^{-2}\int_0^{\xi} \hat\rho(\psi(s))\, s^2\, \mathrm{d}s

Symbols: ξ\xi: dimensionless radius r/r_c of the King component [dimensionless]. Assumes: dW/dr from King’s own integrated Poisson identity of the CLOSED-FORM density — in Abel-type inversions, never differentiate interpolated data (the jnp.gradient staircase drove a single King component to f_min = -0.679). Derivation: theory page.

Sources

Code & validation

References
  1. Gieles, M., & Zocchi, A. (2015). A family of lowered isothermal models. Monthly Notices of the Royal Astronomical Society, 454, 576–592. 10.1093/mnras/stv1848
  2. Gieles, M., & Zocchi, A. (2018). Erratum: A family of lowered isothermal models. Monthly Notices of the Royal Astronomical Society, 474, 3997. 10.1093/mnras/stx3144
  3. Peuten, M., Zocchi, A., Gieles, M., Gualandris, A., & Hénault-Brunet, V. (2017). Testing lowered isothermal models with direct N-body simulations of globular clusters – II. Multimass models. Monthly Notices of the Royal Astronomical Society, 470, 2736–2761. 10.1093/mnras/stx1311
  4. Bianchini, P., van de Ven, G., Norris, M. A., Schinnerer, E., & Varri, A. L. (2016). A novel look at energy equipartition in globular clusters. Monthly Notices of the Royal Astronomical Society, 458, 3644–3654. 10.1093/mnras/stw552
  5. Binney, J., & Tremaine, S. (2008). Galactic Dynamics (2nd ed.). Princeton University Press. 10.1515/9781400828722
  6. Merritt, D. (1985). Spherical stellar systems with spheroidal velocity distributions. The Astronomical Journal, 90, 1027–1037. 10.1086/113810
  7. King, I. R. (1966). The structure of star clusters. III. Some simple dynamical models. The Astronomical Journal, 71, 64–75. 10.1086/109857