Plummer equilibrium validation¶
The Plummer suite is the most-tested module in progenax, anchoring the
closed-form expressions from Plummer profile.
Test file: tests/validation/test_plummer_physics.py (20 tests);
JIT/gradient coverage in tests/integration/test_jax_compatibility.py (8
Plummer tests); figures: scripts/validate_plummer.py.
What is verified¶
Each row maps to assertions in test_plummer_physics.py. The Tolerance is
the exact bound the test enforces (tests/validation/conftest.py); the
Measured value is regenerated by scripts/validate_plummer.py (which prints
an expected-vs-measured PASS/FAIL table for every figure).
Property | Tolerance (as tested) | Measured | Anchor |
|---|---|---|---|
Scale radius | 10-6 rel | 0.7664 ( exact) | |
Half-mass fraction (frac ) | 0.03 abs | 0.500 | definition of |
0.03 abs | 0.3513 (exp 0.3536) | Plummer CDF at | |
Cumulative-mass shape | 0.03 abs per radius | max | closed-form CDF |
Velocity dispersion | rel per bin | max rel | isotropic Jeans / DF 2nd moment |
Velocity isotropy | rel spread | isotropic DF | |
Virial ratio | 0.05 abs at | 0.5026 | , |
Bound fraction () | 100% | 100.00% | |
Speed law , | 0.02 abs | 0.2496 (exp 0.25) | |
Speed-law variance | rel | 0.0267 (exp 0.0268) | |
Position isotropy , | reduced | spherical symmetry | |
Sampling differentiability (, ) | AD central-FD | rel err , |
|
JIT compilation and gradient flow through both position and velocity sampling
are additionally verified in tests/integration/test_jax_compatibility.py
(8 Plummer tests; test_plummer_jit, test_plummer_grad, test_plummer_df_jit,
test_plummer_df_grad, test_plummer_ic_grad_wrt_r_h, …).
Figures¶
Generated by scripts/validate_plummer.py (prints expected-vs-measured
PASS/FAIL for every panel; PNG for the web + PDF vector for the paper).

Figure 1:Density profile and cumulative mass. (a) PlummerProfile.density (dashed)
on the analytic (solid) and the sample
(points). (b) The empirical CDF tracks the closed form
to max ;
the half-mass point is marked. The scale radius is
to machine precision.

Figure 2:Velocity-space equilibrium. (a) Sampled on the analytic (per-bin rel ). (b) Every velocity satisfies — 100% bound. (c) The unscaled IC sits at virial (tested to ): the matched DF is a true equilibrium with no external rescale.

Figure 3:The Plummer speed law. The sampled histogram () overlays the exact density — the distribution Aarseth et al. (1974) rejection-sampling reproduces. Measured (exact 0.25) and (exact 0.0268).

Figure 4:Position isotropy. (a) and (b) of the sampled positions are flat against their uniform expectations and , with reduced and 0.75 (consistent with unity). Velocity isotropy agrees to (printed by the script).
Differentiability¶
The Plummer IC pipeline is built for gradient-based inference: the model observables a likelihood uses — the density profile and the velocity scale — are differentiable w.r.t. the structural parameters that one fits to data.

Figure 5:Gradient validation (autodiff vs central finite difference). (a) and (b) : autodiff (line) and finite difference (circles) agree to max rel err and , so can be inferred jointly by gradient descent or HMC.
How to run¶
# physics tests (20 tests, ~4 s on CPU)
pytest tests/validation/test_plummer_physics.py -q
# regenerate the five figures with PASS/FAIL tables
python scripts/validate_plummer.pyWhat this suite does not test¶
Long-term evolution — covered by gravax integration tests, not here. progenax validates ICs at .
Multi-mass equipartition — single-mass Plummer is covered; the multi-mass / anisotropic generalization (the differentiable lowered-model family) is planned progenax work following Gieles & Zocchi (2015) — see the roadmap. It is not delegated to an external package.
Tidal truncation — covered separately in Tidal truncation validation.
References¶
The Plummer derivations come from Plummer (1911); the inverse-CDF radius draw and the speed law follow Aarseth et al. (1974). The full theoretical content is at Plummer profile.
- 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.
- 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
- 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