The Sensors view had a synthetic LCFS/flux-surface overlay (mockEquilibrium)
that produced garbage; it's been removed. The overlay now draws only a real
backend equilibrium node — absent today, so nothing is shown (no plot trace, no
legend entry). The EquilibriumNode contract, the SensorsTab overlay code, the
time cursor, and the "equilibrium" toggle are all still wired — this issue is just
to supply the real data.
Options to source it from MDS (per shot, per timestep)
- Full EFIT: fetch per-timestep EFIT ψ_N(R,Z) + boundary and serve as the
equilibrium node (richest; heaviest).
- Shape channels (lighter): DIII-D has channels for major/minor radius,
elongation, triangularity (upper/lower), squareness, etc., and possibly the LCFS
boundary itself. Reconstruct an approximate boundary from these for the overlay.
Wiring already in place
EquilibriumNode kind in contract.ts.
SensorsTab renders equilibrium.{r,z,psi_n,boundary,axis,levels} + time slider.
- Just needs a real
equilibrium builder in the service (time-parametrized).
The Sensors view had a synthetic LCFS/flux-surface overlay (
mockEquilibrium)that produced garbage; it's been removed. The overlay now draws only a real
backend
equilibriumnode — absent today, so nothing is shown (no plot trace, nolegend entry). The
EquilibriumNodecontract, the SensorsTab overlay code, thetime cursor, and the "equilibrium" toggle are all still wired — this issue is just
to supply the real data.
Options to source it from MDS (per shot, per timestep)
equilibriumnode (richest; heaviest).elongation, triangularity (upper/lower), squareness, etc., and possibly the LCFS
boundary itself. Reconstruct an approximate boundary from these for the overlay.
Wiring already in place
EquilibriumNodekind incontract.ts.SensorsTabrendersequilibrium.{r,z,psi_n,boundary,axis,levels}+ time slider.equilibriumbuilder in the service (time-parametrized).