A star cluster orbiting in a host galaxy’s potential is tidally
limited: stars beyond a critical radius — the Jacobi radius
, also called the tidal radius — are stripped by the differential
pull between the cluster’s gravity and the galaxy’s. progenax provides
two closed-form estimators of — jacobi_radius (point-mass
host) and jacobi_radius_isothermal (flat-rotation-curve host) — and
a differentiable utility, apply_tidal_truncation, that “removes”
stars with from the IC by zeroing their mass.
This chapter derives the Jacobi-radius formula from the restricted three-body problem, gives the two host-potential forms progenax implements, and documents the truncation utility.
The Jacobi radius¶
For a cluster of mass on a circular orbit at galactocentric radius in a host galaxy with enclosed mass , the Jacobi radius is
The numerical factor in the denominator carries the host’s mass-profile dependence through :
Point-mass host ( const): the derivative is 0, giving the factor 3, — the classical Hill/Roche radius King, 1962.
Singular isothermal halo / flat rotation curve (, so is constant): the derivative is 1, giving the factor 2, . The factor of 2 (rather than 3) is the signature of the logarithmic potential.
progenax implements these as two separate functions, each with a fixed factor — there is no callable-host-profile API:
jacobi_radius(M_cluster, M_galaxy, R_galactic)— the point-mass factor-3 form (King (1962); Binney & Tremaine 2008 §8.3).jacobi_radius_isothermal(M_cluster, V_circ, R_galactic, G)— the flat-rotation-curve factor-2 form, parameterised by the host’s circular velocity rather than its enclosed mass. Algebraically with , equivalent to the N-body-calibrated relation of Baumgardt & Makino (2003) Eq. 1.
Derivation sketch¶
The derivation comes from the restricted three-body problem in the rotating frame co-rotating with the cluster’s circular orbit. In that frame, the effective potential is
with the angular velocity of the cluster’s circular orbit. The Lagrange points along the line connecting the cluster centre to the galactic centre define the distance at which a test particle’s effective potential is saddle-shaped — the boundary beyond which it can be lost to the host. Solving to lowest order in yields (1).
Higher-order corrections in are negligible for (typical for Galactic clusters at kpc) and become significant only for very nearby clusters or very massive ones (globular clusters near the Galactic centre, ultra-compact dwarfs near their hosts).
Corrections for eccentric orbits¶
For a cluster on an eccentric orbit, the Jacobi radius varies with orbital phase: it is smallest at perigalacticon (where tidal stripping is most effective) and largest at apogalacticon. progenax’s default treatment uses the perigalacticon Jacobi radius — the most restrictive — to set the IC truncation. This is conservative: the cluster will not lose any additional mass during evolution from the initial condition.
For a more sophisticated treatment, evaluate jacobi_radius at the two
orbital extremes (passing the enclosed galaxy mass at each radius) and
phase-average:
from progenax.tidal import jacobi_radius
r_peri = jacobi_radius(M_cl, M_gal_peri, R_peri) # M_gal_peri = M_gal(<R_peri)
r_apo = jacobi_radius(M_cl, M_gal_apo, R_apo) # M_gal_apo = M_gal(<R_apo)
r_J_avg = 0.5 * (r_peri + r_apo) # Phase-averagedWhether to use peri, apo, or a phase average depends on the science target. For long-term evolution studies (Gyr timescales) the perigalacticon value sets the long-term mass-loss rate. For short-term (“snapshot”) studies the apogalacticon value is more representative of the cluster’s instantaneous extent.
Tidal truncation¶
apply_tidal_truncation(positions, velocities, masses, r_t)
“removes” stars beyond a truncation radius — but rather than
boolean-indexing them out (which would collapse the array shape), it
sets the mass of every star with to zero. Those zero-mass
“ghost” particles then contribute nothing to any mass-weighted quantity
(energy, virial ratio, centre of mass) while keeping the array length
fixed at :
from progenax.tidal import apply_tidal_truncation
positions, velocities, masses_trunc, keep_mask = apply_tidal_truncation(
positions, velocities, masses, r_t=r_J,
)
# All four outputs have length N (shape-preserving):
# positions, velocities : unchanged (truncated stars left in place)
# masses_trunc : masses with r > r_t entries set to 0
# keep_mask : bool (N,), True where r <= r_tImplementation detail. The forward pass is an exact hard
Heaviside cut. The mass-zeroing is wrapped in a @jax.custom_jvp
straight-through surrogate: the backward pass replaces the
delta-function derivative of the step with a logistic bump (width
grad_width * r_t, default 5%), so — and any upstream parameter
feeding it (e.g. via jacobi_radius) — stays differentiable. Because
the output shape is static, the function is fully jit / vmap /
grad safe; use keep_mask to filter number-based downstream
quantities that would otherwise still see the zero-mass ghosts.
Fill-factor: ¶
A useful dimensionless quantity is the fill-factor
which measures how “full” the cluster is relative to its tidal limit.
Galactic globular clusters have observed in the range
0.05–0.3 Küpper et al., 2011. (The fill-factor / “tidally filling”
terminology is later community usage — it is a definitional ratio,
not a result tabulated by any single source; King (1966)’s
single-mass models supply the tidal radius but no fill-factor
data.) progenax’s fill_factor_to_r_h(fill_factor, r_J) utility
computes the half-mass radius corresponding to a target fill factor —
useful when the science specifies the tidal-truncation regime rather
than the absolute size.
Typical fill factors for Galactic clusters.
Cluster type | Comment | |
|---|---|---|
Galactic globular (typical) | 0.05–0.15 | Tidally limited; old enough to have lost outer halo |
Galactic open | 0.10–0.30 | Younger; less tidal stripping |
Tidal-limit-filling | Theoretical maximum; no real cluster reaches this |
Composition with King profile¶
The King (1966) profile already has a built-in tidal radius
(King profile). Passing a
King profile through apply_tidal_truncation is therefore redundant
if , which is the equilibrium configuration King
implicitly assumes. For non-equilibrium configurations — King-like
clusters that are not in tidal equilibrium with their current
galactocentric position — apply_tidal_truncation adds the
secondary truncation explicitly.
For Plummer and EFF (which extend to infinity), tidal truncation must be applied externally; it is not built in.
Domain of validity¶
Point-mass cluster. (1) treats the cluster as a point mass for the host’s tidal field. Corrections for the cluster’s extended mass distribution are and become important only for very large clusters.
Static host potential. Galactic disc/halo potential is assumed constant during the cluster’s orbit. For times longer than the galaxy’s secular evolution timescale (–10 Gyr), this assumption breaks down.
Single component. (1) uses a single . For galaxies with multi-component potentials (disc + halo + bulge), compute the total enclosed mass yourself and pass it to
jacobi_radius(which takes a scalarM_galaxy, not a callable).No cluster-cluster interactions. Two clusters in orbit around each other (e.g. mutually-bound binary clusters) require a different treatment beyond the scope of this utility.
Implementation, validation & references¶
In code:
src/progenax/tidal.py(jacobi_radius,jacobi_radius_isothermal,apply_tidal_truncation,fill_factor_to_r_h). See the tidal API.Validated in: tidal truncation — the regression suite for and the shape-preserving truncation.
Primary sources: the Jacobi-radius derivation is standard textbook material (Murray & Dermott Solar System Dynamics §3; Binney & Tremaine 2008 §8.3); the point-mass factor-3 form traces to King (1962) and the N-body-calibrated isothermal form to Baumgardt & Makino (2003). The isothermal-halo approximation and fill-factor comparison sample follow King (1966) and Küpper et al. (2011). Full notes in the bibliography.
- King, I. R. (1962). The structure of star clusters. I. An empirical density law. The Astronomical Journal, 67, 471. 10.1086/108756
- Baumgardt, H., & Makino, J. (2003). Dynamical evolution of star clusters in tidal fields. Monthly Notices of the Royal Astronomical Society, 340, 227–246. 10.1046/j.1365-8711.2003.06286.x
- Küpper, A. H. W., Maschberger, T., Kroupa, P., & Baumgardt, H. (2011). Mass segregation and fractal substructure in young massive clusters. Monthly Notices of the Royal Astronomical Society, 417, 2300–2317. 10.1111/j.1365-2966.2011.19412.x
- King, I. R. (1966). The structure of star clusters. III. Some simple dynamical models. The Astronomical Journal, 71, 64–75. 10.1086/109857