The King profile¶
The King model King, 1966 is the canonical tidally truncated spatial density profile for old globular clusters. Unlike Plummer, it has no closed-form — the profile is defined implicitly via an ODE in the dimensionless gravitational potential. In exchange, King provides what Plummer cannot: a finite outer radius matching the observed tidal cutoff, a single dimensionless concentration parameter that captures the full cluster geometry, and the family of King (1966) model density profiles fit to most Galactic globular clusters in the second half of the 20th century.
This chapter derives the King profile from its defining lowered-isothermal
DF, sets up the ODE that progenax integrates with diffrax, lists the
mapping, and notes the
Gieles & Zocchi (2015) lowered-model-family generalisation — progenax’s planned
own differentiable extension when multi-mass anisotropy matters (not currently
implemented).
The lowered-isothermal distribution function¶
The King profile starts from a distribution function, not a density profile. Define a dimensionless potential
where is the central one-dimensional velocity dispersion and is the tidal (truncation) radius — the location where the gravitational potential of the cluster matches the host galaxy’s tidal potential. By construction and increases monotonically inward, with the central value.
The lowered-isothermal DF is
The “-1” in the bracket is the lowering: it removes the high-energy tail of the Maxwell-Boltzmann distribution that would otherwise extend to , producing a finite cluster with a sharp tidal cutoff. King (1966) derived this form to model the observation that globular clusters appear truncated rather than extending as infinite-mass isothermal spheres.
Integrating over velocity space gives the density profile:
where is the error function. (cluster edge) and at the centre. Note that is not yet a function of radius — that requires solving the Poisson equation for .
The defining ODE¶
Combining (3) with the spherical Poisson equation,
and non-dimensionalising via where is the King core radius
yields the dimensionless King ODE:
with boundary conditions and . The ODE integrates outward from until reaches zero — that defines the tidal radius . The parameter fully determines the cluster’s dimensionless structure.
The concentration parameter ¶
The shape of a King cluster is captured by the dimensionless concentration parameter
For Galactic globular clusters, observational fits give in the range –2.5, with –9 for most clusters (the high-concentration / near-core-collapse tail reaching higher):
mapping for the King profile. The and columns reproduce King (1966) Table II; is computed from the integrated mass profile.
Cluster type | ||||
|---|---|---|---|---|
3 | 4.70 | 0.67 | 1.26 | Diffuse, low-density |
5 | 10.70 | 1.03 | 2.00 | Typical low-concentration GC |
7 | 33.7 | 1.53 | 3.92 | Average Milky Way GC |
9 | 131 | 2.12 | 15.4 | High-concentration GC |
The column shows that — unlike Plummer’s
constant — the King profile’s scale-to-half-mass mapping depends on
. progenax stores this mapping as a precomputed lookup table and
exposes it through progenax.profiles.solve_king_profile(W0), which
returns the 3-tuple (xi_grid, psi_clamped, psi_raw): the
dimensionless radius grid, the potential clamped to (used for
the density and CDF), and the unclamped potential (negative just past
; used only for the differentiable tidal-radius crossing). The
profile implementation consumes the first two.
Inverse-CDF sampling¶
Once is integrated, the cumulative mass
is computed by trapezoidal integration on the same grid the ODE solver produced. progenax then inverts this CDF to sample radii:
u = jax.random.uniform(key, (N,)) # u ~ U(0,1)
xi_samples = jnp.interp(u, cumulative_mass_normalized, xi_grid)
r_samples = xi_samples * r_c # r in physical unitsThe whole chain is differentiable in (and therefore in via
the mapping). It is also differentiable in :
diffrax propagates through the ODE solve, so the
density profile and any shape-based observable carry correct gradients
(validated against finite differences in
King profile validation). The one exception is the scalar
tidal radius : its -derivative is zeroed by the argmax zero-crossing
in _find_tidal_radius, so inference should target the profile shape
(differentiable) rather than the scalar readout. This makes joint
gradient-based / HMC inference of — and, with the velocity DF,
— feasible.
The lowered-model family¶
Gieles & Zocchi (2015) showed that King is one member of a one-parameter family of
lowered-isothermal models: a continuous truncation parameter interpolates
between Woolley (), King (), and Wilson () models, and the
framework extends to multi-mass and anisotropic clusters. progenax will
implement this family natively as its own differentiable, JAX-native
generalization — so that (and the multi-mass / anisotropy parameters) can be
inferred — rather than depending on the external (non-differentiable) limepy
package. See the roadmap.
For most production work — single-mass populations or coarse mass binning — the released King profile suffices. The unified family becomes the right tool when the science target is the radial velocity-anisotropy profile or the multi-mass equipartition state.
Tidal physics¶
The King profile’s “tidal radius” is a defining property of the model — the place where and the cluster terminates. In real space, the physical tidal radius (Jacobi radius) of a cluster on a circular orbit at galactocentric radius is
progenax.tidal.jacobi_radius computes given a Galactic mass
model; equating then fixes the King concentration self-consistently.
Tidal physics is documented in detail at
Tidal physics.
Implementation in progenax¶
from progenax.profiles import KingProfile, solve_king_profile
from progenax.kinematics import KingVelocityDF
from jaxstro.units import STELLAR
# Solve the King ODE once for W_0 = 7 (returns a 3-tuple; psi_raw unused here)
xi_grid, psi_grid, _ = solve_king_profile(W0=7.0) # diffrax Tsit5
profile = KingProfile.from_W0_rc(W0=7.0, r_c=1.0)
df = KingVelocityDF(W0=7.0, r_c=1.0) # r_t derived from W0
masses = jnp.ones(1000)
positions = profile.sample_positions(masses, key_pos)
velocities = df.sample_velocities(positions, masses, key_vel, G=STELLAR.G)The solve_king_profile call is the ODE helper for the King profile; it
returns the 3-tuple (xi_grid, psi_clamped, psi_raw) — here we keep the
clamped potential and discard psi_raw. KingVelocityDF takes only
(W0, r_c) and re-solves the ODE internally (deriving from ), so
no r_t argument is passed.
Domain of validity and limitations¶
Single-mass only. The lowered-isothermal DF assumes one mass species. Multi-mass clusters in equilibrium have radially-varying velocity dispersions per mass group; the planned lowered-model family will handle this natively, while progenax’s standard King does not.
Spherical and isotropic. No rotation, no anisotropy. For anisotropic generalisations see Anisotropy and rotation and the anisotropic Michie model; rotating King-like profiles are part of the planned lowered-model family.
No primordial substructure. King is a smooth equilibrium profile. Turbulent/fractal substructure — relevant to cool-clumpy initial conditions Allison et al., 2009 — is provided separately by the experimental
gravoturbsubsystem (Fractal substructure), not by the released King profile, and deliberately breaks the equilibrium assumption.Tidal radius is fixed at IC time. A cluster’s tidal radius evolves with its galactocentric orbit; progenax’s King IC fixes at and the user must apply post-evolution truncation manually if the orbit drives the cluster across a tidal-radius threshold.
Implementation, validation & references¶
In code:
src/progenax/profiles/king.py— the King ODE solve (solve_king_profile), mapping, and inverse-CDF sampling; the paired DF is insrc/progenax/kinematics/king_df.py. See theKingProfileAPI.Validated in: King profile — validates against King (1966) Table II and the volume density against an independent direct-velocity-integral oracle.
Primary sources: King (1966) (the lowered-isothermal model), with the Gieles & Zocchi (2015) LIMEPY generalisation (see the lowered-model family); the integration scheme follows the standard Aarseth et al. (1974) approach (progenax uses
diffraxas the JAX-native ODE backend). Full notes in the bibliography.
- King, I. R. (1966). The structure of star clusters. III. Some simple dynamical models. The Astronomical Journal, 71, 64–75. 10.1086/109857
- 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
- Allison, R. J., Goodwin, S. P., Parker, R. J., Portegies Zwart, S. F., de Grijs, R., & Kouwenhoven, M. B. N. (2009). Using the minimum spanning tree to trace mass segregation. Monthly Notices of the Royal Astronomical Society, 395, 1449–1454. 10.1111/j.1365-2966.2009.14508.x
- Aarseth, S. J., Henon, M., & Wielen, R. (1974). A comparison of numerical methods for the study of star cluster dynamics. Astronomy and Astrophysics, 37, 183–187.