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.

Plummer profile

San Diego State University

The Plummer profile

The Plummer model Plummer, 1911 is the canonical spatial density profile for star clusters: closed-form everything, smooth, untruncated, and historically the first density profile derived for which the distribution function f(E)f(E) admits an analytic solution. It is the default progenax spatial profile for all production ICs and is the right starting point for understanding every other profile in the package.

This chapter derives the Plummer profile from first principles, lists the closed-form expressions for the four observables that every N-body code consumes (mass, potential, velocity dispersion, isotropic DF), tabulates the half-mass-radius / scale-radius mapping that recurs in every progenax test, and documents the 2025-12 transcription bug whose fix is now anchored by 14 regression tests.

The density profile

The Plummer profile is

ρ(r)  =  3M4πa3[1+(ra) ⁣2]5/2\rho(r) \;=\; \frac{3\,M}{4\pi\,a^3}\,\biggl[1 + \biggl(\frac{r}{a}\biggr)^{\!2}\,\biggr]^{-5/2}

↗ model card

where MM is the total mass and aa is the Plummer scale radius. The profile is centrally smooth (ρ(0)=3M/(4πa3)<\rho(0) = 3M/(4\pi a^3) < \infty), asymptotically ρr5\rho \propto r^{-5} at rar \gg a, and integrates to finite total mass even though rr extends to infinity. The smoothness at r=0r = 0 is what makes it analytically tractable — there is no central cusp to integrate around.

The r5r^{-5} outer fall-off is steeper than observed for real star clusters (which typically show ρr3\rho \propto r^{-3} to r4r^{-4} at large radii), so Plummer is in this sense a toy profile. Its analytic tractability is what keeps it in production use as a baseline against which more realistic profiles (King, EFF) are calibrated.

Closed-form mass and potential

Integrating (1) against the spherical volume element gives the cumulative mass:

M(<r)  =  Mr3(r2+a2)3/2M(<r) \;=\; M\,\frac{r^3}{(r^2 + a^2)^{3/2}}

↗ model card

The total mass is recovered as rr \to \infty: M(<)=MM(<\infty) = M. Solving M(<rh)=M/2M(<r_h) = M/2 for the half-mass radius gives the relation that recurs throughout progenax,

    a  =  rh22/31    0.7664rh    \boxed{\;\;a \;=\; r_h\,\sqrt{2^{2/3} - 1}\;\approx\;0.7664\,r_h\;\;}

↗ model card

so that progenax’s user-facing r_h parameter unambiguously specifies the radius enclosing half the cluster mass, regardless of the internal scale-radius convention.

The gravitational potential is

Φ(r)  =  GMr2+a2\Phi(r) \;=\; -\frac{G\,M}{\sqrt{r^2 + a^2}}

with central value Φ(0)=GM/a\Phi(0) = -GM/a and asymptotic Φ(r)0\Phi(r) \to 0 as rr \to \infty. The escape speed at radius rr is

vesc(r)  =  2Φ(r)  =  2GMr2+a2.v_{\mathrm{esc}}(r) \;=\; \sqrt{-2\Phi(r)} \;=\; \sqrt{\frac{2GM}{\sqrt{r^2 + a^2}}}\,.

Inverse-CDF sampling

For Monte Carlo IC generation, progenax uses inverse-CDF sampling on (2). Setting u=M(<r)/Mu = M(<r) / M for uU(0,1)u \sim \mathcal{U}(0, 1) and inverting:

r(u)  =  au2/31u2/3r(u) \;=\; a\,\sqrt{\frac{u^{2/3}}{1 - u^{2/3}}}

The expression is exact, has no singularities for u[0,1)u \in [0, 1), and is differentiable analytically in uu and aa. Each call to PlummerProfile.sample_positions(masses, key_pos) draws NN_\star uniform variates, evaluates (6) to get radii, draws isotropic angles, and returns 3D positions — all in a single JIT-compiled vmap over particles, fully differentiable in rhr_h through the chain rharr_h \to a \to r.

Velocity dispersion

For the Plummer profile in dynamical equilibrium, the radial-velocity dispersion has the closed form

σr2(r)  =  GM6r2+a2\sigma_r^2(r) \;=\; \frac{G\,M}{6\,\sqrt{r^2 + a^2}}

↗ model card

Tangential and total velocity dispersions are equal to σr\sigma_r for the isotropic Plummer DF (the standard equilibrium choice; see Plummer velocity distribution functions). The central velocity dispersion is

σ02  =  GM6a,σ02/Φ(0)  =  16.\sigma_0^2 \;=\; \frac{G\,M}{6\,a}, \qquad \sigma_0^2 / |\Phi(0)| \;=\; \tfrac{1}{6}.

This last ratio fixes the cluster’s virial state: integrating (7) against the density profile gives T=V/2T = -V/2, i.e. Qvir=T/V=1/2Q_{\mathrm{vir}} = T/|V| = 1/2 — the equilibrium value (What is an initial condition?).

The Plummer distribution function

The isotropic distribution function for the Plummer density (the 1911 space-density law, (3) context) in energy space is the Eddington-inversion result Merritt, 1985 (his Eq. 42; equivalently Eddington 1916 / Binney & Tremaine §4) — not derived in Plummer (1911), which predates the inversion method:

f(E)  =  2427π3a2G5M4(E)7/2,E<0f(E) \;=\; \frac{24\sqrt{2}}{7\pi^3}\,\frac{a^2}{G^5\,M^4}\,(-E)^{7/2}, \qquad E < 0

↗ model card

with E=12v2+Φ(r)E = \tfrac{1}{2}v^2 + \Phi(r) the specific energy. The exponent 7/27/2 derives from the (ρ)5/2(\rho)^{-5/2} density and the Eddington inversion machinery — see Plummer velocity distribution functions for the full derivation. The DF is finite, monotonic in EE, and positive for all E<0E < 0, so progenax can sample velocities at any position via inverse-CDF on f(E)f(E) without rejection.

The five-step closed-form derivation

For reference, the five quantities derived above are the five steps that recur in every Plummer-related calculation. Collecting them in one place:

Quantity

Closed form

Density ρ(r)\rho(r)

3M4πa3(1+r2/a2)5/2\dfrac{3M}{4\pi a^3}\,(1 + r^2/a^2)^{-5/2}

Cumulative mass M(<r)M(<r)

Mr3/(r2+a2)3/2M\,r^3/(r^2 + a^2)^{3/2}

Potential Φ(r)\Phi(r)

GM/r2+a2-GM/\sqrt{r^2+a^2}

Radial σr2(r)\sigma_r^2(r)

GM/[6r2+a2]GM/[6\sqrt{r^2+a^2}]

Isotropic DF f(E)f(E)

2427π3a2G5M4(E)7/2\frac{24\sqrt{2}}{7\pi^3}\,\frac{a^2}{G^5 M^4}\,(-E)^{7/2}

The half-mass relation a=rh22/31a = r_h\sqrt{2^{2/3}-1} (3) ties this all together. Every progenax Plummer-related test (tests/validation/test_plummer_physics.py) anchors on at least two of these quantities.

Implementation in progenax

from progenax.profiles import PlummerProfile
from progenax.kinematics import PlummerVelocityDF
from jaxstro.units import STELLAR

profile = PlummerProfile(r_h=1.0)              # Half-mass radius in pc
velocity_df = PlummerVelocityDF(r_h=1.0)        # Same r_h for equilibrium

masses = jnp.ones(1000)                         # 1000 M_sun
key = jax.random.PRNGKey(42)
key_pos, key_vel = jax.random.split(key)   # never reuse a key

positions = profile.sample_positions(masses, key)
velocities = velocity_df.sample_velocities(positions, masses, key_vel, G=STELLAR.G)

Both PlummerProfile and PlummerVelocityDF are Equinox modules (immutable PyTrees), @jax.jit-compatible, and differentiable in rhr_h. Sampling positions and velocities under jax.grad flows gradients through rharxr_h \to a \to r \to \mathbf{x} (positions) and rhaσrvr_h \to a \to \sigma_r \to \mathbf{v} (velocities) — the expensive-but-tractable chain we accept (~10×10\times slowdown vs non-differentiable sampling) in exchange for HMC-friendly inference.

Domain of validity and limitations

The Plummer profile is mathematically smooth and infinitely extended. Two consequences for production use:

  1. No tidal truncation built in. Real Galactic clusters have a tidal radius beyond which stars are stripped by the host galaxy’s tidal field. Plummer ICs need to be truncated post-hoc — see Tidal physics for the Jacobi-radius computation and apply_tidal_truncation utility.

  2. Outer slope is too steep. At rar \gg a, ρr5\rho \propto r^{-5}, steeper than the r3r^{-3} to r4r^{-4} observed in real clusters. For ICs whose outer-profile shape matters (e.g. fitting LMC young massive clusters), use EFF profile which exposes the outer slope as a free parameter.

For most production star-cluster work — Galactic globular clusters, Milky Way analogues, dynamical-evolution studies — Plummer is the right default. It is also the most-tested profile in progenax (see the test dashboard for the live counts) and the one against which the two alternatives are calibrated.

Implementation, validation & references

References
  1. Plummer, H. C. (1911). On the problem of distribution in globular star clusters. Monthly Notices of the Royal Astronomical Society, 71, 460–470. 10.1093/mnras/71.5.460
  2. Merritt, D. (1985). Spherical stellar systems with spheroidal velocity distributions. The Astronomical Journal, 90, 1027–1037. 10.1086/113810
  3. 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.