Skip to content

Equilibrium - FEATURE - Add the opt-in profile_source integrate option that builds F and p from FF' and p' #628

Closed as not planned

Description

@logan-nc

Fortran GPEC 1.6.0 added profile_source = "integrate" (PrincetonUniversity/GPEC#297). It builds F and p in the profile spline by integrating FF′ and p′ when the file's F and p are inconsistent with them. Julia reads ffprime/pprime (Equilibrium/ReadEquilibrium.jl) but never uses them.

#506 tried this and was closed. It made the derivative path the default, which moved every g-file and IMAS result: Δ′ by up to 15 %, NTV by 2.8 %, SLAYER γ by 6 %. #596 instead warns when a g-file's FPOL is single precision. Fortran's option is opt-in: the default still uses the tabulated values.

Scope: an opt-in profile_source key in [Equilibrium] with the default unchanged, plus a diagnostic of the F/p inconsistency. No harness row should move.

Feature-parity item from the Fortran GPEC 1.6.0 survey in #591; filed so it is tracked once #591 closes.

Activity

  1. logan-nc commented on Nov 2, 2026

    @logan-nc
    CollaboratorAuthor

    Closing as a deliberate decision, not a gap. #506 investigated building F and p from FF′ and p′ (results in #504), and d-burg concluded the integration itself is unreliable: it moves surfaces near pedestal kinks by more than the Δ′ noise it removes, and the cubic, trapezoid and Akima quadrature rules disagree there by several units. The noise comes from single-precision g-files; OFT's double-precision writer removes it, and #596 warns when a g-file's FPOL is single precision. Julia keeps the tabulated F and p, which is also Fortran's default. Fortran 1.6.0's opt-in profile_source = "integrate" is intentionally not ported.

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

    featureNew capability

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions