The isotropic King model is the workhorse truncated globular-cluster model, but real clusters show radial velocity anisotropy in their outskirts. The Michie-King model adds Michie’s (1963) angular-momentum term to King’s (1966) lowered-Maxwellian cutoff, giving a one-parameter family (the anisotropy radius ) of self-consistent, tidally truncated, radially anisotropic models.
The distribution function¶
with , . The Gaussian depopulates high-angular-momentum (tangential) orbits — increasingly so at large (since ) — so the velocity ellipsoid is isotropic at the centre and becomes radial outward:
Here is a single tangential component (the convention used throughout progenax). Binney & Tremaine write with the two-component tangential dispersion; the factor of 2 cancels, so both give the same (see the Merritt 1985 note).
Unlike the Osipkov-Merritt construction (which holds a given density fixed and inverts for ), Michie specifies and re-solves Poisson, so the density itself changes — hence is the DF-implied profile, not the OM form .
Self-consistency¶
The density is the velocity integral of (1), which depends on radius explicitly through the anisotropy term, giving a radius-dependent King ODE — the King-1966 nondimensionalization of Michie (1963) Eq. 5.8, whose anisotropy weight is our (, ):
progenax solves this with diffrax (differentiable), the velocity scale fixed
self-consistently as — so the ICs are virial ()
without any external rescale.
Usage¶
from jaxstro.units import STELLAR
from progenax import MichieProfile, MichieVelocityDF
profile = MichieProfile.from_W0_rc(W0=7.0, r_c=1.0, r_a=8.0) # positions
df = MichieVelocityDF(W0=7.0, r_c=1.0, r_a=8.0) # velocities (2-D sampler)
masses = jnp.ones(1000)
positions = profile.sample_positions(masses, key_pos)
velocities = df.sample_velocities(positions, masses, key_vel, G=STELLAR.G)Velocities are drawn by a 2-D marginal-then-conditional inverse-CDF over (no Osipkov-Merritt stretch trick — (1) is not a function of one integral). The whole pipeline (ODE solve + sampler) is JIT-compatible and differentiable in , , (FD-verified).
Validation¶
Isotropic limit — reproduces the validated King profile and DF (matching and density).
Anisotropy — realised isotropic at the centre, increasing outward.
Virial — unscaled.
Differentiability — finite, FD-matching gradients w.r.t. the model parameters.
Implementation, validation & references¶
In code:
src/progenax/kinematics/michie_df.py(the 2-D marginal-then-conditional sampler) paired withsrc/progenax/profiles/michie.py(solve_michie_profile,MichieProfile) — see the kinematics API and the profiles API.Validated in: Michie anisotropy — the isotropic-limit (→ King), the realised profile, the unscaled virial , and FD-matching gradients.
Primary sources: Michie (1963) (the angular-momentum anisotropy term) and King (1966) (the lowered-Maxwellian cutoff) — full notes in the Michie (1963) and King (1966) per-paper bibliography pages.
- Michie, R. W. (1963). On the distribution of high energy stars in spherical stellar systems. Monthly Notices of the Royal Astronomical Society, 125, 127–139. 10.1093/mnras/125.2.127
- King, I. R. (1966). The structure of star clusters. III. Some simple dynamical models. The Astronomical Journal, 71, 64–75. 10.1086/109857