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.

OED for concentration — where to spend telescope time on W₀ (Stage 3)

The optimiser sends the proper motions to the CORE to measure concentration — the mirror image of the anisotropy design

San Diego State University

OED for concentration — where to spend telescope time on W0W_0 (Stage 3)

You have a cluster and a star budget, and you want to know how centrally concentrated it is. The anisotropy design asked where on the sky and in which channel to measure to pin the orbital anisotropy rar_a; the dynamical-mass design asked how deep to survey to weigh the cluster. This page asks the same kind of question for a third target — the cluster’s concentration W0W_0 — and the optimiser returns an answer that is the mirror image of the anisotropy result. Anisotropy wanted the outskirts; concentration wants the core. Same machinery, opposite strategy, and the contrast is the lesson.

Why this arc exists: closing the W₀-differentiability loop

A short piece of history makes the rest of the page land. The forward models that turn a cluster’s structure into observable dispersions — the Osipkov–Merritt Jeans projection project_dispersion and the exact Michie second moment df_moment_dispersion — were made differentiable in the concentration W0W_0 by two pieces of internal work: a C1C^1 PCHIP interpolation of the King/Michie equilibrium-solver tables and a W0W_0 lock on the df_moment path. Those changes made σ/W0\partial\sigma/\partial W_0 exist and be smooth.

But they were validated only at the gradient-audit level — an automatic-versus-finite-difference check that the derivative is numerically correct (98 entry points, 0 hazards). They were never exercised through an actual Fisher / OED inference that treats W0W_0 as a parameter. The stated goal of that whole line of work — “W0W_0-differentiable σ\sigma for OED/Fisher” — had an open loop. This demo closes it: it builds the design Fisher with W0W_0 in the parameter vector, optimises an observing strategy for it, and confirms the forecast against real mock catalogues. It is the end-to-end use of the capability those ADRs promised.

The physical question: how do you measure concentration?

Our target is the concentration of a star cluster — how steeply its density climbs from the tidal boundary to the centre. For the King (1966) lowered-isothermal family the concentration is governed by a single dimensionless number, the central potential depth W0W_0 (documented on the King profile theory page): a small W0W_0 is a diffuse, weakly-bound cluster; a large W0W_0 is a deep, centrally-peaked one with an extended outer envelope. W0W_0 sets the King concentration c=log10(rt/rc)c=\log_{10}(r_t/r_c) — the ratio of tidal to core radius — so measuring how concentrated a cluster is means measuring W0W_0.

Why does this matter physically? Concentration is a dynamical clock and a structural fingerprint: it tracks core collapse, two-body relaxation, and the cluster’s tidal history, and it is the first parameter any structural model of a globular cluster or a dwarf must pin. It is usually read off the surface-density / star-count profile — that is the count-channel recovery demo (B11). Here we ask the complementary question: what does the kinematic dataset say, and where in it does the concentration information live?

Why concentration is a core probe — the physical intuition

The key fact, which the optimiser is about to rediscover unaided: concentration is an isotropic, central property. Changing W0W_0 rescales the depth of the potential well, and its strongest observable fingerprint is the velocity dispersion contrast between the deep core and the cold outskirts. A more concentrated cluster has a hotter, more sharply peaked σ(r)\sigma(r) in the core, falling to a colder envelope; a diffuse one is flatter. The core is where the dispersion is highest and the projected density is greatest, so it is where a fixed number of stars pins that contrast most tightly. This is the opposite of anisotropy, which is zero in the core by construction (βOM(r)=r2/(r2+ra2)0\beta_{\rm OM}(r)=r^2/(r^2+r_a^2)\to0) and only grows outward — so the anisotropy signal lives in the outskirts. Hold that contrast in mind: concentration → core, anisotropy → outskirts. It is the physics behind the headline figure.

Inputs and assumptions

The design optimises over a fixed budget of NtotalN_{\rm total} stars allocated across K=12K=12 projected-radius bins ×\times 3 kinematic channels (36 cells). The science target is W0W_0; the anisotropy radius rar_a is a co-determined kinematic parameter and the total mass MM is a nuisance carried with a fractional prior. Everything is computed pre-data — no mock catalogue enters the optimisation loop (a real-star calibration ensemble afterwards is a gate, not part of the design).

Model inputs

Input

Meaning and role

Status (fiducial)

W0W_0

King/Michie central potential depth — the science target; sets the concentration c=log10(rt/rc)c=\log_{10}(r_t/r_c). c-optimality minimises its marginal variance.

target (W0=6.0W_0=6.0; index 0 of θ\boldsymbol\theta)

rar_a

Osipkov–Merritt anisotropy radius — a co-determined kinematic parameter (no external prior; constrained by the RV-vs-PM split alone). The same rar_a is the OM radius passed to project_dispersion (one source of truth).

free (ra=6.0rc=2rhr_a=6.0\,r_c=2\,r_h; index 1)

MM

Total mass — the only nuisance with an external constraint (integrated light ×\times M/LM/L); carries a 30% fractional (dlnθd\ln\theta) prior.

nuisance (M=105MM=10^5\,\Msun; index 2) with σprior/M=0.3\sigma_{\rm prior}/M=0.3

profile model

King (headline OM-King) and Michie, both projected under Osipkov–Merritt — they differ only in the density → rt(W0)r_t(W_0) map (see the modelling choice).

two models compared

3 kinematic channels

RV (σlos\sigma_{\rm los}), PM radial (σpm,R\sigma_{{\rm pm},R}), PM tangential (σpm,T\sigma_{{\rm pm},T}) — the design lever; each channel’s information set by the B&M82 kernels Equation.

fixed (the design allocates stars among them)

dd, σRV\sigma_{\rm RV}, σPM\sigma_{\rm PM}

Distance converts the astrometric error to velocity; per-star errors enter the per-datum variance δσ2=(σ2+ϵ2)/(2n)\delta\sigma^2=(\sigma^2+\epsilon^2)/(2n). At d=4d=4 kpc the two channels are at deliberate error parity — neither trivially dominates per component.

fixed (d=4d=4 kpc; σRV=1.0\sigma_{\rm RV}=1.0 km/s; σPM=0.05\sigma_{\rm PM}=0.05 mas/yr 4.74σPMd0.95\to 4.74\,\sigma_{\rm PM}\,d\approx0.95 km/s)

completeness c(R)c(R)

Fixed realism, identical across channels: a smooth logistic faint-end roll-off (1\approx1 in the core, <1<1 outside, turnover 6rc\sim6\,r_c). Illustrative, not a real survey curve, and not a design knob here — promoting depth to a knob is the dynamical-mass example.

fixed (folds into the per-star blocks)

KK bins, budget, optimiser

K=12K=12 log-spaced bin centres Rk[0.3,12]rcR_k\in[0.3,12]\,r_c (every bin inside both models’ rtr_t, so all are bound); budget Ntotal=400N_{\rm total}=400 (the King calibration operating point); multi-start Adam over the softmax simplex.

numerical choices

units, GG

STELLAR (M\Msun, pc, Myr) with rc1r_c\equiv1 as the length unit; errors converted to pc/Myr explicitly.

known / fixed

The Fisher is built in the dimensionless lnθ\ln\theta metric Important, so σ(lnW0)\sigma(\ln W_0) is a fractional precision and the nuisance prior PRIOR_DIAG=[0,0,1/0.32]\mathtt{PRIOR\_DIAG}=[0,\,0,\,1/0.3^2] is fractional too — none on the target W0W_0, none on rar_a, only on MM. That the data alone (three velocity channels ×\times 12 radial bins) keep the (W0,ra)(W_0, r_a) 2-block positive-definite — so no prior on W0W_0 or rar_a is needed for a well-posed inverse — is a measured property of this design, not an assumption (it is checked across random designs in the test suite).

The modelling choice: OM-King and OM-on-Michie-density

Two facts about the forward model set up the whole demo, and stating them plainly is the honest way to read the result:

  1. project_dispersion is Osipkov–Merritt only. It imposes βOM(r)=r2/(r2+ra2)\beta_{\rm OM}(r)=r^2/(r^2+r_a^2) Equation on whatever density it is handed — it does not read a profile’s own intrinsic anisotropy. So both models here are projected under the same OM anisotropy law; they differ only in the density profile, and hence in the concentration-dependent map rt(W0)r_t(W_0). King is isotropic in density (OM is layered on top); Michie carries its own native anisotropy in its density shape, but it is still projected under OM. The headline is OM-King; Michie is added to exercise the native rt(W0)r_t(W_0) path explicitly and to test that the qualitative answer is robust to the density model.

  2. The calibration’s sampler equals the Fisher model. The real-star gate (below) must draw stars from the exact distribution project_dispersion projects — “that density under OM” — or it would validate a mismatched model. So the OM particle sampler is assembled to be self-consistent with the Fisher forward model: for King via the Engine B MultiComponentCluster.from_density_profiles path (a single-component King density in its own shared-Ψ\Psi potential with an Eddington/OM DF, documented on the Engine B validation page); for Michie via the generic Eddington inversion (ρQ=(1+r2/ra2)ρ\rho_Q=(1+r^2/r_a^2)\rho, Merritt 1985 augmented density) on the Michie density, since Engine B does not ingest MichieProfile. In both cases sampler \equiv Fisher-model, which is what makes the calibration a real test rather than a tautology. (Deliberately we do not use MichieVelocityDF’s native β\beta — that would mismatch the OM projection and bias the gate.)

The method, specialised: c-optimality on the additive Fisher

This example pours the additive backbone Equation straight into a c-optimal allocation, exactly as the anisotropy design does — only the target index changes. The per-star blocks Mb,cM_{b,c} come from one jacrev of project_dispersion at the truth (reverse-mode by policy — the King/Michie equilibrium solvers hit a custom_vjp ODE with no forward-mode rule); the design enters only through the softmax weights Equation, multiplied by the fixed completeness c(Rb)c(R_b). The headline criterion minimises the W0W_0 variance with rar_a and MM profiled out:

c ⁣:minz  (F1)W0W0,F(z)=b,cnb,cc(Rb)Mb,c.c\!:\quad \min_{\mathbf z}\;(F^{-1})_{W_0 W_0}, \qquad F(\mathbf z)=\sum_{b,c} n_{b,c}\,c(R_b)\,M_{b,c}.

We also run D (maxlogdetF\max\log\det F) and A (mintrF1\min\mathrm{tr}\,F^{-1}) as the contrast — see why c and D should disagree. Because the whole Fisher is additive and design-linear, the expensive projection is never re-differentiated inside the optimiser loop: one Jacobian, then F=nMF=\sum n\,M\to invert a 3×33\times3\to read one element.

Validating a pre-data calculation: two gates

A Fisher forecast is a promise — “if you observe this way, your error bar will be this large” — and a promise made before any data is only trustworthy if you check it, because the Cramér–Rao bound Equation is a local, Gaussian approximation. This demo checks it twice.

Gate 1 — the gradient is correct (AD-vs-FD on σ/lnW0\partial\sigma/\partial\ln W_0)

The load-bearing differentiability claim is the W0W_0 column of the Jacobian. We verify it against finite differences at every radial bin. For OM-King the automatic and finite-difference gradients agree to better than 10-3 across all bins. For OM-Michie the inner bins (RraR\lesssim r_a) agree to the same 10-3 with a fixed step, but at mid-to-outer radii the proximity of Michie’s rt(W0)r_t(W_0) truncation makes a fixed-step finite difference an unreliable proxy — the function has high curvature there (the truncation-curvature signature). So those bins are gated by Richardson finite differences instead: we confirm that as the step hh\downarrow, the finite difference converges toward the automatic gradient. It does, to 106\sim10^{-6}, at every bin — the automatic gradient is correct everywhere; the mid-radius >103>10^{-3} values are pure O(h2σ)O(h^2\sigma''') truncation, not a code defect.

Gate 2 — the forecast is calibrated (real-star King calibration)

A Fisher forecast must predict the realized scatter of the estimator. We close the loop with a real-star ensemble: for the King model we draw independent mock catalogues from the OM sampler (which equals the Fisher forward model), project each to the sky, bin it by projected radius, subsample the design counts, add per-star measurement error, and fit W^0\hat W_0 by maximum a posteriori in the lnθ\ln\theta Gauss–Newton metric (a Levenberg–Marquardt MAP fit, started at the truth). The realised fractional scatter should match the Fisher prediction,

Var(lnW^0)    (F1)W0W0,\mathrm{Var}(\ln\hat W_0) \;\approx\; (F^{-1})_{W_0 W_0},

both sides being fractional variances in the lnθ\ln\theta metric. The tolerance is not a free knob: the Monte-Carlo error on a variance estimated from ndrawsn_{\rm draws} draws is 2/ndraws\approx\sqrt{2/n_{\rm draws}}, so the gate is a principled 2σ2\sigma band. The realised / Fisher variance ratio for King is 0.976 — comfortably inside the band, with no significant bias. The promise holds.

The headline result: concentration wants the core

The pre-registered hypothesis (H1) was: W0W_0’s optimal allocation differs from rar_a’s — more core/intermediate weight, more channel-balanced, with only a modest outward pull. The result splits cleanly into a confirmed radial prediction and a refuted channel sub-prediction. Reporting both honestly — the hit and the miss — is the point; a wrong pre-registered sub-prediction is a genuine finding, not a failure.

RADIAL: confirmed — the mirror image of the anisotropy design

The W0W_0 c-optimal design puts 71%\sim71\% of its stars in the core half of the radial range (King; 71%\sim71\% Michie). The Stage-1 anisotropy design put 99%\sim99\% in the outskirts. They are mirror images, and the physical reason is exactly the intuition above: concentration is an isotropic, central property imprinted where the dispersion is highest and the density greatest (the core), while anisotropy lives in β(r)\beta(r)'s outward growth (the outskirts). The optimiser was told none of this — it discovered where the concentration information lives.

Concentration wants the core; anisotropy wanted the outskirts — the same machinery,
opposite strategies. Left: the W_0 c-optimal radial allocation (King), stacked by
channel (RV, PM_R, PM_T), as a fraction of the budget — core-heavy (\sim71\% in
the inner half). Right: the Stage-1 r_a c-optimal allocation — outskirts-heavy
(\sim99\% in the outer half). Each panel is normalised to its own budget so the shape
is compared (the W_0 grid is in r_c; the r_a grid is in r_h). The mirror image is
the pre-registered radial prediction H1, confirmed.

Concentration wants the core; anisotropy wanted the outskirts — the same machinery, opposite strategies. Left: the W0W_0 c-optimal radial allocation (King), stacked by channel (RV, PMR_R, PMT_T), as a fraction of the budget — core-heavy (71%\sim71\% in the inner half). Right: the Stage-1 rar_a c-optimal allocation — outskirts-heavy (99%\sim99\% in the outer half). Each panel is normalised to its own budget so the shape is compared (the W0W_0 grid is in rcr_c; the rar_a grid is in rhr_h). The mirror image is the pre-registered radial prediction H1, confirmed.

CHANNEL: refuted — concentration is strongly PM-dominated

H1 also predicted that W0W_0 would be more channel-balanced than rar_a (RV pulling more of its weight). It is not. The W0W_0 c-optimal design is strongly proper-motion dominated — RV carries only 1%\sim1\% of the King budget. The reason is structural and the same one the anisotropy page documents: at the assumed RV/PM error parity, a proper-motion star delivers two information-bearing components (PMR_R and PMT_T) for one measurement, a 2-for-1 efficiency that the optimiser exploits almost everywhere. The error parity is per component, so PM wins on count. This sub-prediction was wrong, and we say so: it is a null result reported with integrity, and it sharpens the real lesson — the radial contrast (core vs outskirts) is the robust discriminator between the two targets, not the channel mix.

The King W_0 c-optimal allocation, resolved in both axes. Effective star count
n_{\rm eff} per (channel \times projected-radius) cell: rows are the three velocity
channels (RV, PM_R, PM_T), columns the K=12 log-spaced on-sky radii. The budget piles
into the core bins (left columns) and into the two proper-motion rows — the
two-axis view of “concentration wants PMs in the core.” The RV row is nearly empty,
the 2-for-1 PM efficiency made visible.

The King W0W_0 c-optimal allocation, resolved in both axes. Effective star count neffn_{\rm eff} per (channel ×\times projected-radius) cell: rows are the three velocity channels (RV, PMR_R, PMT_T), columns the K=12K=12 log-spaced on-sky radii. The budget piles into the core bins (left columns) and into the two proper-motion rows — the two-axis view of “concentration wants PMs in the core.” The RV row is nearly empty, the 2-for-1 PM efficiency made visible.

The Michie W_0 c-optimal allocation — the same qualitative answer. As
, for the Michie density. The core-plus-PM structure is robust
to the density model; Michie wants modestly more RV and a slightly more outward balance
(see King vs Michie), but the headline strategy is unchanged.

The Michie W0W_0 c-optimal allocation — the same qualitative answer. As The King W0W_0 c-optimal allocation, resolved in both axes. Effective star count neffn_{\rm eff} per (channel ×\times projected-radius) cell: rows are the three velocity channels (RV, PMR_R, PMT_T), columns the K=12K=12 log-spaced on-sky radii. The budget piles into the core bins (left columns) and into the two proper-motion rows — the two-axis view of “concentration wants PMs in the core.” The RV row is nearly empty, the 2-for-1 PM efficiency made visible., for the Michie density. The core-plus-PM structure is robust to the density model; Michie wants modestly more RV and a slightly more outward balance (see King vs Michie), but the headline strategy is unchanged.

The precision gain and the criterion contrast

How much does designing for concentration buy you? At fixed budget the King c-optimal design reaches a fractional precision σ(lnW0)=0.056\sigma(\ln W_0)=0.056, versus 0.104 for a uniform design — a 1.85×1.85\times gain in precision, equivalent to reaching the same error bar with 3.4×\approx3.4\times fewer stars (the precision gain squared, since variance scales as 1/N1/N when the prior is held fixed). The Michie design improves 0.0950.0570.095\to0.057, a 1.67×1.67\times gain. As in the anisotropy example, the c-, D-, and A-optimal designs genuinely differ — the c-design, which only cares about W0W_0, beats the others on its objective and would waste stars if it chased the whole ellipsoid.

The precision gain and the c/D/A criterion contrast, King vs Michie. Left: the
fractional precision \sigma(\ln W_0) for the uniform vs the c-optimal design (the gain
factor is annotated on each c-optimal bar) — 1.85\times (King), 1.67\times (Michie).
Right: each of the c/D/A optima as a ratio to its own uniform-design value (so all three are
dimensionless “fraction of the uniform criterion”; <1 is better), King vs Michie. The
three alphabet-optimality designs are genuinely different objectives on the same
F=\sum n\,M.

The precision gain and the c/D/A criterion contrast, King vs Michie. Left: the fractional precision σ(lnW0)\sigma(\ln W_0) for the uniform vs the c-optimal design (the gain factor is annotated on each c-optimal bar) — 1.85×1.85\times (King), 1.67×1.67\times (Michie). Right: each of the c/D/A optima as a ratio to its own uniform-design value (so all three are dimensionless “fraction of the uniform criterion”; <1<1 is better), King vs Michie. The three alphabet-optimality designs are genuinely different objectives on the same F=nMF=\sum n\,M.

The broken degeneracy: concentration is separable from anisotropy

The deepest science payoff is that this design breaks the W0raW_0\leftrightarrow r_a degeneracy — it measures concentration and anisotropy independently. The Fisher correlation at the c-optimal design,

ρ(W0,ra)  =  (F1)W0ra(F1)W0W0(F1)rara,\rho(W_0, r_a) \;=\; \frac{(F^{-1})_{W_0 r_a}}{\sqrt{(F^{-1})_{W_0 W_0}\,(F^{-1})_{r_a r_a}}},

is the covariance off-diagonal normalised to [1,1][-1,1]: ρ1|\rho|\to1 would mean the two are nearly degenerate (you cannot tell them apart), ρ0|\rho|\to0 that the design measures them cleanly. We find ρ(W0,ra)0.02\rho(W_0, r_a)\approx-0.02 for King and -0.12 for Michie — both far from ±1\pm1. Concentration is cleanly separable from anisotropy in this kinematic design space, which is exactly what makes a W0W_0-targeted observing strategy worth computing: the core-PM stars that pin W0W_0 are not the same stars that pin rar_a, and the design knows it.

Concentration is separable from anisotropy. The Fisher correlation \rho(W_0, r_a) at
the c-optimal design, King vs Michie. Both bars sit near zero (-0.02 King, -0.12
Michie), far from the shaded |\rho|>0.9 “near-degenerate” band: the design pins W_0
almost independently of r_a. (A small negative \rho is the residual, broken degeneracy
— not a problem, but the quantitative statement of how well it is broken.)

Concentration is separable from anisotropy. The Fisher correlation ρ(W0,ra)\rho(W_0, r_a) at the c-optimal design, King vs Michie. Both bars sit near zero (-0.02 King, -0.12 Michie), far from the shaded ρ>0.9|\rho|>0.9 “near-degenerate” band: the design pins W0W_0 almost independently of rar_a. (A small negative ρ\rho is the residual, broken degeneracy — not a problem, but the quantitative statement of how well it is broken.)

King vs Michie: is the answer robust to the density model?

Yes, qualitatively. The headline — core plus proper motions — is the same for both density models, and the precision gains (1.85×1.85\times vs 1.67×1.67\times) and core fractions (71%\sim71\% vs 71%\sim71\%) are close. The differences are second-order and model-dependent: Michie wants modestly more of the RV channel (16%\sim16\% vs 1%\sim1\%) and a slightly more outward balance, because its native-anisotropy density shape moves the σ(r)\sigma(r) contrast a little. The robust, model-independent statement is the one to take away: measure concentration in the core, with proper motions. The RV fraction and the fine radial balance are where the model choice shows up.

Quantitative results

All numbers are from the gated CLI’s run-record (Ntotal=400N_{\rm total}=400, K=12K=12 bins, the King calibration operating point):

OED concentration results

Quantity

King

Michie

σ(lnW0)\sigma(\ln W_0), uniform \to c-optimal (fixed NN)

0.1040.056\mathbf{0.104 \to 0.056}

0.0950.0570.095 \to 0.057

Precision gain (c-design vs uniform)

1.85×\mathbf{1.85\times} (3.4×\approx3.4\times fewer stars)

1.67×1.67\times

Core fraction (inner-half share, c-design)

0.71\mathbf{0.71}

0.71

Channel split RV / PM (c-design)

0.01/0.990.01 / 0.99 (PM-dominated)

0.16/0.840.16 / 0.84

Fisher correlation ρ(W0,ra)\rho(W_0, r_a) at c-optimal

-0.02 (separable)

-0.12 (separable)

Contrast: Stage-1 rar_a c-optimal radial split

99%\sim99\% outskirts

Real-star calibration (realized Var(lnW^0)\mathrm{Var}(\ln\hat W_0) / Fisher)

0.976\mathbf{0.976} (within band)

not run (OOM; see caveat)

The precision gain is exact at fixed NN (the fixed nuisance prior cancels in the cuniform/cdesignedc_{\rm uniform}/c_{\rm designed} ratio, because c1/Nc\propto1/N when the prior is held fixed); the “3.4×\approx3.4\times fewer stars” gloss is the same physics read as a star factor (gain2\text{gain}^2).

What the optimum means: science implications

The result is the optimiser discovering where concentration information lives, and it generalises well beyond this mock.

1. The observing strategy is the opposite of an anisotropy campaign. To measure concentration, put the proper-motion budget in the core; to measure anisotropy, put it in the outskirts. Same instrument, same channels, opposite radial allocation — because concentration is a central, isotropic property and anisotropy is an outer, radial one. That is directly actionable: a Gaia-PM + spectroscopic campaign optimised for W0W_0 should not reuse an anisotropy campaign’s footprint, and OED tells you so quantitatively.

2. Concentration and anisotropy are independently measurable. The near-zero ρ(W0,ra)\rho(W_0, r_a) Equation means the kinematic dataset can pin both without one contaminating the other — the core-PM stars that constrain W0W_0 are not the outskirts-PM stars that constrain rar_a. A joint structural+orbital fit is well-posed in this design space, and the design is what makes it so.

3. Differentiable OED is a general tool. This is the third distinct science target (rar_a, MM, now W0W_0) run through the same additive-Fisher machinery, each with a different physical answer the optimiser found unaided. Because progenax’s forward models are differentiable, (information)/(observing strategy)\partial(\text{information})/\partial(\text{observing strategy}) is computable for essentially any cluster-science parameter — which is the throughline of the whole OED section.

4. The honest caveat is itself a research direction. The optimum is optimal for the assumed OM-King/Michie model, and it rides the Jeans path, not the exact-moment one. That model-dependence is the central limitation of all OED, and it points at the same valuable extensions the sibling pages flag: robust, Bayesian, and model-discriminating (T-optimal) design — for which progenax is well-placed because it ships more than one differentiable forward model for the same observable.

Current scope and planned extensions

How to run

# the cheap design + figures (one jacrev per model + 3x3 linalg; ~1 min)
env -u VIRTUAL_ENV uv run --no-sync python scripts/demo_oed_concentration.py

# regenerate into the docs figure directory
env -u VIRTUAL_ENV uv run --no-sync python scripts/demo_oed_concentration.py \
    --outdir docs/website/60-science-demos/optimal-design/figures

The CLI computes only the cheap parts — one jacrev per model at the truth, the c/D/A 3×33\times3-linear-algebra optimisation, the H1 radial/channel split contrasted with Stage-1, and the five figures — and writes a JSON run-record alongside them. The expensive real-star King calibration is the env-gated @slow test test_W0_fisher_calibration_matches_realized_scatter; the King ratio of 0.976 quoted here is cited from that gate, not re-run in the CLI (the Michie MAP-MC is intentionally never run — see the caveat).

References

The shared Fisher / Cramér–Rao / projection theory and its references are on the OED formalism page. The King (1966) lowered-isothermal model and its W0W_0 parameter are documented on the King profile theory page; the Michie–King anisotropic model on the Michie–King theory page; the Engine B Eddington/OM sampler on the Engine B validation page. The Osipkov–Merritt anisotropy law is Merritt (1985); the line-of-sight projection into σlos\sigma_{\rm los}, σpm,R\sigma_{{\rm pm},R}, σpm,T\sigma_{{\rm pm},T} is Binney & Mamon (1982). The count-channel concentration recovery — the complementary way to measure W0W_0, from star counts rather than kinematics — is the King-concentration demo (B11); the companion OED designs are anisotropy (where) and dynamical mass (how deep).

References
  1. Merritt, D. (1985). Spherical stellar systems with spheroidal velocity distributions. The Astronomical Journal, 90, 1027–1037. 10.1086/113810
  2. Binney, J., & Mamon, G. A. (1982). M/L and velocity anisotropy from observations of spherical galaxies, or must M87 have a massive black hole? Monthly Notices of the Royal Astronomical Society, 200, 361–375. 10.1093/mnras/200.2.361