Skip to content

InnerLayer.SLAYER - API - Choose one default radial label for the Fitzpatrick layer formalism #417

Description

@d-burg

Question

SLAYER's entire layer stack — rs, the r-based shear sval_r, S (Lundquist), tau_R, tau_E, W_d, the Delta-prime reference-length factor k_ref (PR #403), and the new resistive-layer-width overlap criterion (layer-overlap psihigh cap, PR to follow) — is expressed in a radial label r selected by the programmatic rs_method option. The default is :midplane (outboard axis-to-edge chord), kept for continuity. Should the default move to the flux label?

Evidence, from two independent investigations

Non-covariance (layer-overlap work). Fitzpatrick's diffusive-resistive width, Nucl. Fusion 2025 Eq. (100), scales as (q/|dq/dr|)^(1/2) and picks up J^(1/2) under a change of radial variable — the formula is anchored to the coordinate it was derived in, which is the Eq. (30) flux label r = sqrt(2*psi_t/B0). Evaluated on the DIII-D-like deck the label choice moves the overlap cut by one rational surface (:midplane 0.99752 vs :flux 0.99939). The flux label reduces to the geometric minor radius on a circular LAR equilibrium (r/a = 0.99–1.05) and supplies a systematic shape correction on the shaped deck (r/a = 1.20–1.45), so it is shape-general by construction. The same non-covariance argument applies to the layer dispersion that the r_s-referenced Delta-prime feeds.

TJ cross-validation (Delta-prime convention work, PR #403). In the four-arm radial-label comparison on the shaped DIII-D-like equilibrium, the flux-type labels (:halfwidth, :fsa, :volume) reproduce TJ's circular flux label to <= 1.2 percent while :midplane is the outlier (the Shafranov shift compresses the outboard chord). The 2/1 growth rate moves about +/- 3 percent across labels at defaults, growing to O(1) sensitivity at q >~ 4 on shaped surfaces.

Both lines of evidence, obtained independently, agree: the geometric midplane chord is the odd label out for Fitzpatrick-formalism quantities, and the Eq. (30) flux label is the theoretically anchored choice.

Why this is not being flipped inside either PR

Changing the default moves rs, sval_r, lu, tau_R and the Delta-prime normalization everywhere at once — a results-moving change that needs the regression harness, a !-tagged PR of its own, and its own argument. Both in-flight PRs therefore keep :midplane as the default and scope their label usage explicitly (PR #403 exposes the labels programmatically only, not via TOML; the overlap-cap work evaluates its criterion in :flux internally).

Caveats on record

  • :fsa and other geometric labels lose their Jacobian near a separatrix (da/dpsi collapses as the surfaces converge to the separatrix shape); this is edge-specific — at interior rational surfaces the geometric labels are well-behaved and validated.
  • The flux label's own value saturates at the separatrix (toroidal flux is finite) but its derivative dr/dpsi ~ q keeps growing, which is what the width conversions need.

Decision needed

After PR #403 and the layer-overlap cap PR land: pick the long-term default (:flux being the theory-anchored candidate), run the harness on the flip, and ship it as a single !-tagged change.

Activity

  1. d-burg commented on Aug 20, 2026

    @d-burg
    CollaboratorAuthor

    Reconciliation of the two evidence sets, after cross-checking where each was measured — this sharpens the decision this issue should make.

    The two validations sampled different regimes and do not contradict each other:

    • The TJ cross-validation's "flux-type labels reproduce TJ's label to <= 1.2 percent" was measured on the circular TJ eps = 0.15 benchmark (K^(2mu) conversion factors at the q = 2 and q = 3 surfaces: halfwidth 0.38 percent, fsa 0.46 percent, volume 0.30 percent off TJ's reference, vs midplane 1.9 percent off). On a circular equilibrium all flux-type labels coincide to O(eps^2), so this certifies the family but cannot discriminate within it.
    • The layer-overlap investigation's per-surface label table on the shaped DIII-D-like deck is the discriminator: :fsa tracks the Eq. (30) :flux label to ~1 percent at psi = 0.5, degrading to ~12 percent by psi = 0.99, while :halfwidth sits ~16 percent below :flux in the core — on shaped equilibria :halfwidth is a genuinely different label, not an approximation to Eq. (30).

    Consequence — this issue should make two decisions, not one:

    1. Edge overlap criterion (layer widths near the separatrix): no freedom. Eq. (100) is non-covariant and the geometric labels lose their Jacobian approaching the separatrix (they converge to the separatrix shape, so da/dpsi collapses and surfaces past psi ~ 0.99 cannot be scored at all). The criterion must be evaluated in the Eq. (30) flux label. This part is effectively settled and the overlap-cap PR implements it that way internally.
    2. Interior Delta-prime conversion / layer-stack default: a convention choice with real but bounded spread (labels agree to ~1-5 percent in r at interior rational surfaces on the shaped deck; ~ +/- 3 percent in the 2/1 growth rate). :flux remains the theory-anchored candidate for consistency with (1), but flipping it is the results-moving !-tagged change described above, and :fsa is the closest geometric stand-in if a geometric label is ever preferred for diagnostic comparison.

    One correction to the caveats section: the earlier statement that :halfwidth is "the closest stand-in for the circular flux label" holds only on circular equilibria; on shaped decks :fsa is the closest geometric approximation to Eq. (30) and :halfwidth should be treated as its own convention (shift-free midplane half-chord), useful for comparison with midplane diagnostics rather than as a flux-label proxy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions