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.

Tidal physics

San Diego State University

A star cluster orbiting in a host galaxy’s potential is tidally limited: stars beyond a critical radius — the Jacobi radius rJr_J, 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 rJr_Jjacobi_radius (point-mass host) and jacobi_radius_isothermal (flat-rotation-curve host) — and a differentiable utility, apply_tidal_truncation, that “removes” stars with r>rt|\mathbf{r}| > r_t 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 MclM_{\mathrm{cl}} on a circular orbit at galactocentric radius RR in a host galaxy with enclosed mass Mgal(<R)M_{\mathrm{gal}}(<R), the Jacobi radius is

rJ  =  R[Mcl(3dlnMgal/dlnR)Mgal(<R)]1/3.r_J \;=\; R\,\biggl[\frac{M_{\mathrm{cl}}}{(3 - \mathrm{d}\ln M_{\mathrm{gal}}/\mathrm{d}\ln R)\,M_{\mathrm{gal}}(<R)}\biggr]^{1/3}.

↗ model card

The numerical factor in the denominator carries the host’s mass-profile dependence through dlnMgal/dlnR\mathrm{d}\ln M_{\mathrm{gal}}/\mathrm{d}\ln R:

progenax implements these as two separate functions, each with a fixed factor — there is no callable-host-profile API:

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

Φeff(r)  =  GMclrGMgal(<R)Rr12ΩR2Rr2\Phi_{\mathrm{eff}}(\mathbf{r}) \;=\; -\frac{G\,M_{\mathrm{cl}}}{|\mathbf{r}|} - \frac{G\,M_{\mathrm{gal}}(<R)}{|\mathbf{R} - \mathbf{r}|} - \tfrac{1}{2}\,\Omega_R^2\,|\mathbf{R} - \mathbf{r}|^2

with ΩR2=GMgal(<R)/R3\Omega_R^2 = G M_{\mathrm{gal}}(<R)/R^3 the angular velocity of the cluster’s circular orbit. The Lagrange points L1,L2L_1, L_2 along the line connecting the cluster centre to the galactic centre define the distance rJr_J at which a test particle’s effective potential is saddle-shaped — the boundary beyond which it can be lost to the host. Solving Φeff/r=0\partial \Phi_{\mathrm{eff}}/\partial r = 0 to lowest order in rJ/Rr_J/R yields (1).

Higher-order corrections in rJ/Rr_J/R are negligible for rJ/R0.1r_J/R \lesssim 0.1 (typical for Galactic clusters at R1R \gtrsim 1 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-averaged

Whether 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 rtr_t — but rather than boolean-indexing them out (which would collapse the array shape), it sets the mass of every star with r>rtr > r_t 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 NN:

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_t

Implementation 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 rtr_t — 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: rh/rJr_h / r_J

A useful dimensionless quantity is the fill-factor

F    rhrJ\mathcal{F} \;\equiv\; \frac{r_h}{r_J}

↗ model card

which measures how “full” the cluster is relative to its tidal limit. Galactic globular clusters have observed F\mathcal{F} 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 rtr_t 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

F=rh/rJ\mathcal{F} = r_h / r_J

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

F0.5\mathcal{F} \to 0.5

Theoretical maximum; no real cluster reaches this

Composition with King profile

The King (1966) profile already has a built-in tidal radius rt=ξtrcr_t = \xi_t \cdot r_c (King profile). Passing a King profile through apply_tidal_truncation is therefore redundant if rt=rJr_t = r_J, 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

  1. 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 O((rJ/R)2)\mathcal{O}((r_J/R)^2) and become important only for very large clusters.

  2. 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 (1\sim 110 Gyr), this assumption breaks down.

  3. Single component. (1) uses a single Mgal(<R)M_{\mathrm{gal}}(<R). For galaxies with multi-component potentials (disc + halo + bulge), compute the total enclosed mass yourself and pass it to jacobi_radius (which takes a scalar M_galaxy, not a callable).

  4. 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

References
  1. King, I. R. (1962). The structure of star clusters. I. An empirical density law. The Astronomical Journal, 67, 471. 10.1086/108756
  2. 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
  3. 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
  4. King, I. R. (1966). The structure of star clusters. III. Some simple dynamical models. The Astronomical Journal, 71, 64–75. 10.1086/109857