You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Three OFT-level behaviors discovered during the v1.2.0 work (measured on OFT base v26.6, branch fix/bootstrap-pchip-derivatives @ 19e08b2, DIII-D mesh). All are guarded/routed-around inside bouquet, but they deserve upstream reports so other OFT users don't rediscover them:
compute_flux_integral is not a plasma-domain integral. It integrates over the entire reg == 1 limiter region, and gs_prof_interp_apply CASE(4) returns 0 off-plasma so gs_flux_int evaluates the flux function at its LCFS value there. Measured: FI(1) = 2.83853 m^2 (limiter area) vs true plasma cross-section 1.79005 m^2; a current-density profile with finite edge value is over-counted by ~j_phi(1) x 1.05 m^2 = +11.9% of Ip on this equilibrium. bouquet's mitigation: utils.Ip_fsa_integral (v1.2.0). Also see Standard l_i loop's Ip root absorbs a +16-17% inductive-amplitude bias (compute_flux_integral is not a plasma-current measure) #15.
get_q(psi=...) silently collapses onto the magnetic axis if the requested grid contains psi_N = 0. All returned ravgs become surface-independent (<R> constant to 2e-15 across 257 surfaces), no exception raised, downstream results ~37% wrong. bouquet's mitigation: grid clipped to [1e-3, 1-1e-3] with a collapse assertion (v1.2.0, fsa_current_geometry). An upstream fix (raise, or clamp internally) would protect all callers. Related symptom seen at scan time: gs_get_qprof: Trace did not complete at every surface.
get_q ravgs dV/dPsi is per dimensional psi, undocumented.∫ dV/dPsi dpsi reproduces get_stats['vol'] to -0.25%; the dpsi_N reading is off by +291%. The needed Jacobian is |psi_bounds[1]-psi_bounds[0]|. A docstring note upstream would suffice. (Also: sauter_fc exposes <R>, <1/R>, <a>, <|B|>, <B^2> but no V', so get_q dict-form ravgs — OFT >= 26.6 — is the only V' source.)
Suggested route: C. Hansen is a co-author on the bouquet paper; a direct note or OFT issues citing the numbers above. Validation details and test pins live in bouquet v1.2.0 (tests/test_fsa_current_integral.py).
Three OFT-level behaviors discovered during the v1.2.0 work (measured on OFT base v26.6, branch fix/bootstrap-pchip-derivatives @ 19e08b2, DIII-D mesh). All are guarded/routed-around inside bouquet, but they deserve upstream reports so other OFT users don't rediscover them:
compute_flux_integralis not a plasma-domain integral. It integrates over the entirereg == 1limiter region, andgs_prof_interp_applyCASE(4) returns 0 off-plasma sogs_flux_intevaluates the flux function at its LCFS value there. Measured:FI(1) = 2.83853 m^2(limiter area) vs true plasma cross-section1.79005 m^2; a current-density profile with finite edge value is over-counted by ~j_phi(1) x 1.05 m^2= +11.9% of Ip on this equilibrium. bouquet's mitigation:utils.Ip_fsa_integral(v1.2.0). Also see Standard l_i loop's Ip root absorbs a +16-17% inductive-amplitude bias (compute_flux_integral is not a plasma-current measure) #15.get_q(psi=...)silently collapses onto the magnetic axis if the requested grid contains psi_N = 0. All returned ravgs become surface-independent (<R>constant to 2e-15 across 257 surfaces), no exception raised, downstream results ~37% wrong. bouquet's mitigation: grid clipped to [1e-3, 1-1e-3] with a collapse assertion (v1.2.0,fsa_current_geometry). An upstream fix (raise, or clamp internally) would protect all callers. Related symptom seen at scan time:gs_get_qprof: Trace did not completeat every surface.get_qravgsdV/dPsiis per dimensional psi, undocumented.∫ dV/dPsi dpsireproducesget_stats['vol']to -0.25%; the dpsi_N reading is off by +291%. The needed Jacobian is|psi_bounds[1]-psi_bounds[0]|. A docstring note upstream would suffice. (Also:sauter_fcexposes<R>, <1/R>, <a>, <|B|>, <B^2>but no V', soget_qdict-form ravgs — OFT >= 26.6 — is the only V' source.)Suggested route: C. Hansen is a co-author on the bouquet paper; a direct note or OFT issues citing the numbers above. Validation details and test pins live in bouquet v1.2.0 (
tests/test_fsa_current_integral.py).