Skip to content

ForceFreeStates - BUGFIX! - ⚠️ Keep both crossings of a rational surface on reverse-shear profiles - #492

Merged
logan-nc merged 22 commits into
developfrom
bugfix/reversed-shear-double-rational
Oct 30, 2026
Merged

logan-nc merged 22 commits into
developfrom
bugfix/reversed-shear-double-rational

Conversation

@d-burg

@d-burg d-burg commented Oct 2, 2026 •

Copy link
Copy Markdown
Collaborator

Release note

  • Audience: users
  • Numerical impact: none on the shipped decks except diiid_truncation_n1, where the edge bracket cap moves the outermost layer-overlap width by 0.13 % and the energies by about 1e-8. Reversed-shear equilibria now give correct results. (harness @ b0f1b06)
  • Migration: qlow now sets one lower bound for every integrator: integration starts at the outermost crossing of q = qlow and excludes the q < qlow region inside it, whether a core or, on reversed shear, the ring around q_min and the core within it. On monotonic profiles this is the same start as before. Previously, with q_min < qlow ≤ q0, the forward and Riccati paths started at the axis after the q < qlow surfaces had already been filtered out. Rational surfaces too close for their usual grid brackets get brackets capped at half the gap, with a warning, instead of off-center brackets.

On a reversed-shear profile, the two crossings of q = m/n on either side of an off-axis q minimum were merged into one surface. The outer crossing then had no chunk boundary, no standoff and no ideal jump, and the free-boundary energy was wrong by a factor of two against STRIDE on a DIII-D reversed-shear case. Surfaces are now identified by ψ, so distinct crossings stay distinct while genuine multi-(m, n) collisions still merge.

Regression report

Full harness at b0f1b0685 (develop b6a28892d merged in) against develop b6a28892d, all 24 cases, on feynman: Julia 1.11.7, CI-pinned manifest, 8 threads / 8 BLAS per case.

  • 21 cases unchanged, including diiid_n1 (53 quantities), every SLAYER deck, the Riccati and Galerkin decks, and the kinetic Solov'ev decks.
  • lar_reversed_shear_n1 (new in this PR): develop cannot run it (no example directory there). At this head both q = 2 crossings are separate singular surfaces with opposite-sign dq/dψ (now pinned), et[1] = −0.0226 with no wall, and the forward integration takes 227 saved steps.
  • gal_resistive_pe: eight N/A rows on both refs; pre-existing.
  • diiid_truncation_n1: 3 changed, expected. Its outermost layer-overlap surface sits at ψ = 0.99975, just inside the domain edge. The new edge cap narrows that surface's grid bracket from the 1e-4 stencil to 7.3e-5 (the run logs the "capped" warning for exactly this surface), so the edge grid differs slightly. Only the two outermost of the seven diffusive-resistive widths move (3e-7 relative and 0.13 %); the inner five agree to round-off. ep[1] and et[1] move by about 1e-8 relative and psilim_overlap by 1e-10. Singular-surface locations, q, psilim, and the overlap index are unchanged.
  • Unit tests on the merged head, on alfven: runtests_sing (90), _eulerlagrange (133, 26, 38, 2), _riccati (14), _galerkin (3), _grid_refinement (84), _solve_api (144), and _parallel_integration (3, 82) pass. runtests_equil passes 337 of 338: one Load TokaMaker i-file assertion compares re-formed and freshly read splines with exact ==. It fails the same way on develop b6a28892d on alfven and passes in CI, so it is a machine-dependent floating-point equality outside this PR.
  • qlow scan on lar_reversed_shear_n1 (q₀ = 2.35 on the grid, q_min = 1.82). The "before" column is this branch with the error check removed, which is develop's behaviour on this fixture:
qlow before this branch
0, 1.02, 1.7 both q = 2 crossings, et₁ = −0.0226 same
1.9 ignores qlow, starts at the axis (et₁ = −0.0226) starts on the outer leg, outer crossing only, et₁ = +0.0414
2.0 ignores qlow named error: qlow lands on the outer q = 2 surface
2.1, 2.3 integration aborts (retcode Unstable) at the inner crossing no surfaces in the domain, et₁ = 0.078, 0.122
2.4, 2.5, 2.7 et₁ = 0.154, 0.202, 0.489 identical
case result
diiid_error_field 10 unchanged
diiid_multi_n 19 unchanged
diiid_n1_riccati_precompiled 17 unchanged
diiid_n1_riccati 17 unchanged
diiid_n1 53 unchanged
diiid_slayer_n1_chi_perp_e 22 unchanged
diiid_slayer_n1_coupled 7 unchanged
diiid_slayer_n1 22 unchanged
diiid_slayer_n1_toroidal 5 unchanged
diiid_slayer_n1_winding 22 unchanged
diiid_truncation_n1 3 changed, 9 unchanged
efit_fixedbdy_separatrix 5 unchanged
gal_resistive_diiid_galinner 11 unchanged
gal_resistive_diiid 11 unchanged
gal_resistive_pe 8 missing/N/A
ggj_ray_q500i 4 unchanged
ggj_reference 4 unchanged
lar_reversed_shear_n1 22 missing/N/A
solovev_kinetic_calculated 20 unchanged
solovev_kinetic_multiion 6 unchanged
solovev_kinetic_ntv 7 unchanged
solovev_kinetic_nuzero 14 unchanged
solovev_multi_n 15 unchanged
solovev_n1 22 unchanged
diiid_truncation_n1 report
================================================================
Case: diiid_truncation_n1 — DIII-D-like, n=1, psihigh=0.9999 with the resistive-layer overlap cap binding (truncation only)
================================================================

Regression Report: diiid_truncation_n1
================================================================================================================================
Ref 1: b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  @ b6a28892d (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
Ref 2: b0f1b0685  @ b0f1b0685 (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
--------------------------------------------------------------------------------------------------------------------------------
Quantity                               b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  b0f1b0685      Diff               Status       
--------------------------------------------------------------------------------------------------------------------------------
layer-overlap cap applied              1                                         1              0.0e+00            OK           
layer-overlap psilim                   9.985081e-01                              9.985081e-01   1.2e-10            OK           
first overlapping surface index        7                                         7              0.0e+00            OK           
diffusive-resistive layer widths (Δψ)  [7 elem]                                  [7 elem]       1.287e-06 (0.02%)  ** CHANGED **
qlim                                   6.200000e+00                              6.200000e+00   0.0e+00            OK           
psilim                                 9.949767e-01                              9.949767e-01   0.0e+00            OK           
mpert                                  37                                        37             0.0e+00            OK           
# singular surfaces                    5                                         5              0.0e+00            OK           
singular q values                      [5 elem]                                  [5 elem]       0.0e+00            OK           
singular psi locations                 [5 elem]                                  [5 elem]       0.0e+00            OK           
plasma energy Re(ep[1])                -1.377407e+00                             -1.377407e+00  6.584e-09 (0.00%)  ** CHANGED **
total energy Re(et[1])                 7.978617e-01                              7.978617e-01   8.403e-09 (0.00%)  ** CHANGED **
Runtime (s)                            234.7s                                    264.6s                            --           
================================================================================================================================
Summary: 3 changed, 9 unchanged
lar_reversed_shear_n1 report
================================================================
Case: lar_reversed_shear_n1 — Large-aspect-ratio reversed-shear equilibrium (hollow current), n=1, ideal stability
================================================================

Regression Report: lar_reversed_shear_n1
=====================================================================================================================================
Ref 1: b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  @ b6a28892d (2026-10-29) (FAILED)
       env: environment unknown (cached before fingerprinting)
Ref 2: b0f1b0685  @ b0f1b0685 (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
  Ref 1 error: Example directory not found: examples/LAR_reversed_shear_example
-------------------------------------------------------------------------------------------------------------------------------------
Quantity                                                      b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  b0f1b0685        Diff  Status
-------------------------------------------------------------------------------------------------------------------------------------
total energy Re(et[1])                                        FAILED                                    -2.263762e-02          FAILED
total energy Im(et[1])                                        FAILED                                    -6.952796e-16          FAILED
plasma energy Re(ep[1])                                       FAILED                                    -5.912341e-02          FAILED
vacuum energy Re(ev[1])                                       FAILED                                    3.648579e-02           FAILED
vacuum matrix min eigenvalue                                  FAILED                                    3.488391e-02           FAILED
plasma energy (all)                                           FAILED                                    [31 elem]              FAILED
vacuum energy (all)                                           FAILED                                    [31 elem]              FAILED
total energy (all)                                            FAILED                                    [31 elem]              FAILED
ODE steps (saved)                                             FAILED                                    227                    FAILED
ODE steps (total)                                             FAILED                                    225                    FAILED
q0                                                            FAILED                                    2.397229e+00           FAILED
q95                                                           FAILED                                    2.687221e+00           FAILED
beta_t                                                        FAILED                                    3.331679e-04           FAILED
beta_n                                                        FAILED                                    1.898177e-01           FAILED
# singular surfaces                                           FAILED                                    2                      FAILED
singular psi locations                                        FAILED                                    [2 elem]               FAILED
singular q values                                             FAILED                                    [2 elem]               FAILED
singular dq/dpsi (opposite signs on the two q = 2 crossings)  FAILED                                    [2 elem]               FAILED
mpert                                                         FAILED                                    31                     FAILED
npert                                                         FAILED                                    1                      FAILED
q profile (checksum)                                          FAILED                                    c470025e4378...        FAILED
pressure profile (checksum)                                   FAILED                                    9b3faaf67b57...        FAILED
Runtime (s)                                                   FAILED                                    203.4s                 --    
=====================================================================================================================================
Summary: 22 missing/N/A

The complete 24-case report is in a comment below (it exceeds the description size limit).

Changes since the review

  • Grid brackets are capped, not rejected (36cbc5e31). An overlap error was new in this PR and also fired on ordinary profiles develop runs today, e.g. several n on a steep edge, and on rationals outside the integration domain, since the grid brackets every rational up to psihigh. A near-tangent rational could also produce a huge but finite bracket that cleared most of the grid without erroring. Each bracket is now capped at half the gap to its neighboring centers, and its stencil part also at half the distance to the nearer domain edge, so every center keeps its own interval and no bracket can clear the grid. A cap below the Δ′ stencil warns. Cases with non-overlapping brackets are unchanged.
  • psilim takes the outer crossing (538dcf569). sing_lim! seeded its Newton solve at the node nearest qlim, which on reversed shear can be the inner leg; it now seeds from the edge inward at the outermost node with q ≤ qlim.
  • One qlow bound for every integrator (e200765c2). This replaces check_qlow_domain. The domain had three lower-bound rules: initialize_el_at_axis! raised its start only when qlow > q0, sing_min! used the extrapolated params.qmin and ran only for Galerkin, and remove_singular_surfs! filtered by q. Now qlow_start_psi gives the outermost crossing of q = qlow, solved with Brent on the same spline q extrema sing_find! uses, so a dip between grid nodes counts and the root cannot leave the grid. sing_min! sets it for every integrator, and surfaces are filtered by ψ against it. The crossing-standoff error now names the remedies.
  • One summary warning for capped brackets, and q′ pinned (6a6954483). The bracket cap now warns once per grid pass, listing the capped surfaces, instead of once per surface. lar_reversed_shear_n1 also tracks SingularSurfaces/dqdpsi, the opposite-sign q′ of the two crossings.
  • Hollow current profile for the large-aspect-ratio equilibrium (a97fe4aa2): sigma_type = "hollow", σ = σ₀(1 + h x²)(1 − x²)^p, which keeps q(0) = q0 and gives reversed shear for large enough hollow. The three copies of the σ formula are now one helper. The new case and an equilibrium test use it (ca75806a9).
image

Notes for reviewers


🤖 Generated with Claude Code

d-burg and others added 9 commits September 23, 2026 12:30
… on reverse-shear profiles

The singular-surface finder identified a surface by its q value, so the two
crossings of q = m/n on either side of an off-axis q minimum were merged into
one entry carrying m = [m, m]: the multi-n merge path intended for (2,1)/(4,2)
collisions. The outer crossing then had no chunk boundary, no singfac_min
standoff and no ideal jump, the sweep crawled through an unregularized
1/(m - nq) (hundreds of thousands of steps), the Δ′ BVP was skipped as a
multi-resonance surface, and the free-boundary energy was wrong by a factor
of two against STRIDE on DIII-D 153072 (q₀ = 2.44, q_min = 1.86).

Identify surfaces by ψ instead, in both sing_find! and the auto-grid knot
list, so a genuine multi-(m, n) collision still merges while distinct
crossings stay distinct surfaces with their own ψ and q′ sign.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…me unresolvable crossings

Deduplicate rational-surface roots on both q and psi, so two different
rationals can never merge even where steep q puts them within tolerance in
psi. Replace the chunk-bounds assert with an error naming the surface when its
singfac_min standoff overruns, which happens for crossings near a q extremum.
Add a unit test that swaps a synthetic reverse-shear q into the Solovev fixture
and checks both q=2 crossings, their opposite-sign shear, and that (2,1) and
(4,2) still merge on each.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…or and document the surface merge rule

The chunk-bounds error no longer asserts a q extremum or recommends reducing singfac_min; it reports the surface, q', the standoff and the chunk start. sing_find! documents the equal-ratio merge and reverse-shear split in its docstring and drops the Fortran citation. Refresh a stale dedupe comment in bracket_mandatory_nodes and tidy the reverse-shear test's isapprox call.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…crossing standoffs

Two crossings of q = 2 on an analytic parabola resolve when 2ε > singfac_min and raise the named error when their standoffs overlap; a tangent surface (q' = 0) also raises it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…sed-shear profiles

When qmin < qlow < q0 the q < qlow region is a ring around q_min rather than a core, and sing_min! (outer leg) and initialize_el_at_axis! (axis) disagree about the lower integration bound. check_qlow_domain raises a named error at domain setup saying what was detected and to set qlow <= qmin or qlow >= q0. Covered on the analytic reverse-shear fixture in runtests_sing.jl.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…kets overlap

bracket_mandatory_nodes now errors when c2 - w2 <= c1 + w1 for adjacent brackets, or when a half-width is non-finite (tangent surface), instead of interleaving bracket knots and leaving a surface off-center or sharing a spline interval. The collapse_atol dedupe is kept as a safety net. Geometric condition only; no new tolerance.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… with an overlapping standoff

The kinetic chunking branch still skips a kinetic singular surface whose crossing standoff reaches back past the chunk start, but now warns with its m/n, psi, q' and standoff. No result changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@d-burg d-burg self-assigned this Oct 2, 2026
…ear-double-rational

# Conflicts:
#	src/ForceFreeStates/Surfaces/Finding.jl
#	src/GeneralizedPerturbedEquilibrium.jl
@github-actions github-actions Bot added bugfix Something was wrong and now is not changed-results Results move or an interface breaks - read before upgrading labels Oct 3, 2026
@d-burg d-burg changed the title ForceFreeStates - BUGFIX! - Keep both crossings of a rational surface on reverse-shear profiles ForceFreeStates - BUGFIX! - ⚠️ Keep both crossings of a rational surface on reverse-shear profiles Oct 5, 2026
@StuartBenjamin

Copy link
Copy Markdown
Collaborator

Just attaching Matt here since this seems like a big deal

@matt-pharr

Copy link
Copy Markdown
Collaborator

Merged develop and retained the grid changes in Grid/GridRefinement.jl. Preserved the layer-overlap cap and current truncation settings, adding the reversed-shear q-domain check after the capped sing_lim! call. Distinct-crossing and chunk-standoff behavior retain the PR’s intent.

@d-burg d-burg added this to the GPEC v2.0.0 milestone Oct 28, 2026
@d-burg d-burg modified the milestone: GPEC v2.0.0 Oct 28, 2026
d-burg and others added 5 commits October 28, 2026 17:33
… the q < qlow region on the grid itself

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…to their neighbors and the domain edges instead of erroring

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ect-ratio equilibrium for reversed shear

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…with a double q = 2 crossing

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…the run reports it

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@d-burg
d-burg marked this pull request as ready for review October 29, 2026 04:29

@logan-nc logan-nc left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review in progress. Posting now so nobody duplicates this work.

The core fix looks right. Matching surfaces on (q, ψ) keeps both crossings while (2,1)/(4,2) still merge. Both roots come from Brent on the same q-extremum bracket, so they agree far inside the 1e-8 tolerance. The fix also matters on default runs: every shipped deck has qlow = 1.02, below any realistic reversed-shear q_min, so both crossings are in the domain.

In progress, on a local branch (not pushed yet): replacing check_qlow_domain with a single qlow lower bound. Right now three rules disagree:

  • initialize_el_at_axis! (forward and Riccati) raises the start only when qlow > q0;
  • sing_min! uses qlow > params.qmin and only runs for Galerkin;
  • remove_singular_surfs! filters by q, not ψ.

In the window q_min < qlow ≤ q0 the integration therefore starts at the axis and runs through surfaces that have already been filtered out. The guard errors on that window; the change below removes it.

  • qlow_start_psi is the outermost crossing of q = qlow, taken from the same spline q extrema sing_find! uses and solved with a bracketed root. All integrators start there, and sing_min! runs for every integrator.
  • remove_singular_surfs! drops surfaces by ψ against that bound.
  • check_qlow_domain and its tests are deleted.
  • This also fixes a latent bug: params.qmin is extrapolated to ψ = 0, so the old sing_min! Newton solve could start at the first node and converge to a root outside the grid.
  • On monotonic profiles the start and the filter match develop's, so shipped decks should not move; the harness will confirm. A qlow scan on the reversed-shear LAR fixture is running and I'll post the table here.

Smaller items, also planned:

  • merge develop (it merges cleanly);
  • maxlog on the bracket-cap warning, which fires per surface on each grid pass;
  • pin the sign of q′ on each crossing in the new case or a test (the case currently tracks only ψ and q, and its mpsi = 128 bypasses the two-pass grid);
  • name the remedy (lower psilow or raise qlow) in the crossing-standoff error;
  • re-run the full harness at the merged head. The current stamp 437387af6 predates 36cbc5e31 (bracket cap) and 538dcf569 (grid-read qlow check), so "no impact on shipped decks" is not yet shown.

Follow-up, not in this PR: downstream code on negative-shear surfaces (resistive E/F/H with q1² and q1³, Δ′, PerturbedEquilibrium coupling, SLAYER) is not exercised; the new case is ideal-only. I'll open an issue.

@d-burg, OK if I push these to your branch, or would you rather take them? @matt-pharr, please hold your review until the push.

logan-nc and others added 3 commits October 29, 2026 14:34
…rom the spline q extrema and filter surfaces by psi

Replaces check_qlow_domain: qlow_start_psi (outermost crossing of q = qlow, bracketed on the
spline q extrema sing_find! uses) is now the lower bound for forward, Riccati and Galerkin alike,
and remove_singular_surfs! drops surfaces by psi against it. A qlow between q_min and q0 now
excludes the reversed-shear ring and the core instead of starting at the axis or erroring.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdRsGGg4YRG6E9fgLGbpdF
…nd pin dq/dpsi in the reversed-shear case

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdRsGGg4YRG6E9fgLGbpdF
@logan-nc

Copy link
Copy Markdown
Collaborator

Pushed e200765c2, 6a6954483 and a clean develop merge (b0f1b0685). This covers everything in my earlier review:

  • One qlow bound for every integrator; check_qlow_domain removed. A qlow between q_min and q₀ now excludes the reversed-shear ring and the core inside it. Before, the forward path either ignored qlow or aborted. The scan table in the description shows this.
  • One summary warning per grid pass for capped brackets.
  • SingularSurfaces/dqdpsi is now pinned in lar_reversed_shear_n1.
  • The standoff error names its remedies.

The touched unit tests pass (676). A full 24-case harness run at b0f1b0685 against develop b6a28892d is running on feynman, and I'll update the stamp and report from it. The negative-shear downstream check is listed under Deferred as a follow-up. @matt-pharr, this is ready for your review.

@logan-nc logan-nc left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving. The reversed-shear fix is correct: both crossings are kept as separate surfaces, and (2,1)/(4,2) still merge. The qlow handling now uses one consistent lower bound for every integrator, confirmed by the qlow scan. The stamp still needs updating from the full harness run in progress before merge.

@logan-nc
logan-nc enabled auto-merge October 29, 2026 18:41
@logan-nc
logan-nc added this pull request to the merge queue Oct 29, 2026
@logan-nc

Copy link
Copy Markdown
Collaborator

Full 24-case regression report, develop b6a28892d vs b0f1b0685 (feynman, Julia 1.11.7, CI-pinned manifest, 8 threads per case), part 1/2.

Report
================================================================
Case: diiid_error_field — DIII-D-like error-field assessment, n=1: ErrorFields stage with the NTV-limited correction couplings
================================================================

Regression Report: diiid_error_field
========================================================================================================================
Ref 1: b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  @ b6a28892d (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
Ref 2: b0f1b0685  @ b0f1b0685 (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
------------------------------------------------------------------------------------------------------------------------
Quantity                                         b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  b0f1b0685     Diff     Status
------------------------------------------------------------------------------------------------------------------------
EFC overlap per kAt                              [1 elem]                                  [1 elem]      0.0e+00  OK    
EFC whole-field NTV torque per kAt² [N·m]        [1 elem]                                  [1 elem]      0.0e+00  OK    
EFC residual-field NTV torque per kAt² [N·m]     [1 elem]                                  [1 elem]      0.0e+00  OK    
EFC reference rotation ω_ref [rad/s]             [1 elem]                                  [1 elem]      0.0e+00  OK    
EFC rotation-scan shifts [rad/s]                 [9 elem]                                  [9 elem]      0.0e+00  OK    
EFC residual torque against rotation [N·m/kAt²]  [9 elem]                                  [9 elem]      0.0e+00  OK    
dominant-coupling singular values                [3 elem]                                  [3 elem]      0.0e+00  OK    
|delta_nominal| of coil set 1                    1.414982e-06                              1.414982e-06  0.0e+00  OK    
|Σ δ_as_designed| of the error-field coils       1.182642e-18                              1.182642e-18  0.0e+00  OK    
Monte Carlo mean |δ| of the error-field coils    4.701440e-05                              4.701440e-05  0.0e+00  OK    
Runtime (s)                                      366.3s                                    380.4s                 --    
========================================================================================================================
Summary: 10 unchanged


================================================================
Case: diiid_multi_n — DIII-D-like equilibrium, n = 1, 2, ideal + perturbed equilibrium
================================================================

Regression Report: diiid_multi_n
==========================================================================================================================================
Ref 1: b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  @ b6a28892d (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
Ref 2: b0f1b0685  @ b0f1b0685 (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
------------------------------------------------------------------------------------------------------------------------------------------
Quantity                                                      b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  b0f1b0685        Diff       Status
------------------------------------------------------------------------------------------------------------------------------------------
total energy Re(et[1])                                        -5.750944e-01                             -5.750944e-01    0.0e+00    OK    
total energy (all)                                            [58 elem]                                 [58 elem]        0.0e+00    OK    
ODE steps (saved)                                             904                                       904              0.0e+00    OK    
mpert                                                         29                                        29               0.0e+00    OK    
npert                                                         2                                         2                0.0e+00    OK    
toroidal mode label of each mode index (checksum)             8d8d42b8832d...                           8d8d42b8832d...  identical  OK    
permeability diagonal P~_ii (all n blocks)                    [58 elem]                                 [58 elem]        0.0e+00    OK    
forcing b~ (root-area-weighted), n = 1, 2                     [58 elem]                                 [58 elem]        0.0e+00    OK    
response b~ (root-area-weighted), n = 1, 2                    [58 elem]                                 [58 elem]        0.0e+00    OK    
PE plasma energy (sum over n)                                 2.936508e+00                              2.936508e+00     0.0e+00    OK    
PE vacuum energy (sum over n)                                 3.113946e+00                              3.113946e+00     0.0e+00    OK    
PE surface energy (sum over n)                                3.523287e+00                              3.523287e+00     0.0e+00    OK    
PE toroidal torque sum_n -2n Im(Phi_n' Lambda_nn^-1 Phi_n)/4  2.148342e-08                              2.148342e-08     0.0e+00    OK    
resonant n per row (rows sorted by psi across n)              [7 elem]                                  [7 elem]         0.0e+00    OK    
resonant m per row                                            [7 elem]                                  [7 elem]         0.0e+00    OK    
resonant area-weighted field b^r per row                      [7 elem]                                  [7 elem]         0.0e+00    OK    
island half-widths per row                                    [7 elem]                                  [7 elem]         0.0e+00    OK    
Chirikov parameter per row                                    [7 elem]                                  [7 elem]         0.0e+00    OK    
forcing-driven Delta' per row                                 [7 elem]                                  [7 elem]         0.0e+00    OK    
Runtime (s)                                                   230.7s                                    227.1s                      --    
==========================================================================================================================================
Summary: 19 unchanged


================================================================
Case: diiid_n1_riccati_precompiled — DIII-D-like equilibrium, n=1, Riccati integrator Δ' matrix, precompiled build
================================================================

Regression Report: diiid_n1_riccati_precompiled
=======================================================================================================
Ref 1: b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  @ b6a28892d (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, aot build
Ref 2: b0f1b0685  @ b0f1b0685 (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, aot build
-------------------------------------------------------------------------------------------------------
Quantity                       b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  b0f1b0685      Diff     Status
-------------------------------------------------------------------------------------------------------
delta prime (BVP diagonal)     [5 elem]                                  [5 elem]       0.0e+00  OK    
delta prime (raw side-major)   [10 elem]                                 [10 elem]      0.0e+00  OK    
edge coil response delta_coil  [10 elem]                                 [10 elem]      0.0e+00  OK    
total energy Re(et[1])         8.031975e-01                              8.031975e-01   0.0e+00  OK    
plasma energy Re(ep[1])        -1.368534e+00                             -1.368534e+00  0.0e+00  OK    
vacuum energy Re(ev[1])        2.171731e+00                              2.171731e+00   0.0e+00  OK    
total energy (all)             [35 elem]                                 [35 elem]      0.0e+00  OK    
# singular surfaces            5                                         5              0.0e+00  OK    
singular psi locations         [5 elem]                                  [5 elem]       0.0e+00  OK    
singular q values              [5 elem]                                  [5 elem]       0.0e+00  OK    
ODE steps (saved)              96                                        96             0.0e+00  OK    
ODE steps (total)              2665                                      2665           0.0e+00  OK    
mpert                          35                                        35             0.0e+00  OK    
npert                          1                                         1              0.0e+00  OK    
q0                             1.204212e+00                              1.204212e+00   0.0e+00  OK    
q95                            4.781723e+00                              4.781723e+00   0.0e+00  OK    
beta_n                         1.372511e+00                              1.372511e+00   0.0e+00  OK    
Runtime (s)                    52.2s                                     45.5s                   --    
=======================================================================================================
Summary: 17 unchanged


================================================================
Case: diiid_n1_riccati — DIII-D-like equilibrium, n=1, Riccati integrator Δ' matrix
================================================================

Regression Report: diiid_n1_riccati
=======================================================================================================
Ref 1: b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  @ b6a28892d (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
Ref 2: b0f1b0685  @ b0f1b0685 (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
-------------------------------------------------------------------------------------------------------
Quantity                       b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  b0f1b0685      Diff     Status
-------------------------------------------------------------------------------------------------------
delta prime (BVP diagonal)     [5 elem]                                  [5 elem]       0.0e+00  OK    
delta prime (raw side-major)   [10 elem]                                 [10 elem]      0.0e+00  OK    
edge coil response delta_coil  [10 elem]                                 [10 elem]      0.0e+00  OK    
total energy Re(et[1])         8.031975e-01                              8.031975e-01   0.0e+00  OK    
plasma energy Re(ep[1])        -1.368534e+00                             -1.368534e+00  0.0e+00  OK    
vacuum energy Re(ev[1])        2.171731e+00                              2.171731e+00   0.0e+00  OK    
total energy (all)             [35 elem]                                 [35 elem]      0.0e+00  OK    
# singular surfaces            5                                         5              0.0e+00  OK    
singular psi locations         [5 elem]                                  [5 elem]       0.0e+00  OK    
singular q values              [5 elem]                                  [5 elem]       0.0e+00  OK    
ODE steps (saved)              96                                        96             0.0e+00  OK    
ODE steps (total)              2665                                      2665           0.0e+00  OK    
mpert                          35                                        35             0.0e+00  OK    
npert                          1                                         1              0.0e+00  OK    
q0                             1.204212e+00                              1.204212e+00   0.0e+00  OK    
q95                            4.781723e+00                              4.781723e+00   0.0e+00  OK    
beta_n                         1.372511e+00                              1.372511e+00   0.0e+00  OK    
Runtime (s)                    338.3s                                    276.8s                  --    
=======================================================================================================
Summary: 17 unchanged


================================================================
Case: diiid_n1 — DIII-D-like equilibrium, n=1, ideal + perturbed equilibrium
================================================================

Regression Report: diiid_n1
==========================================================================================================================
Ref 1: b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  @ b6a28892d (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
Ref 2: b0f1b0685  @ b0f1b0685 (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
--------------------------------------------------------------------------------------------------------------------------
Quantity                                      b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  b0f1b0685        Diff       Status
--------------------------------------------------------------------------------------------------------------------------
total energy Re(et[1])                        7.979260e-01                              7.979260e-01     0.0e+00    OK    
total energy Im(et[1])                        1.122430e-06                              1.122430e-06     0.0e+00    OK    
plasma energy Re(ep[1])                       -1.377302e+00                             -1.377302e+00    0.0e+00    OK    
vacuum energy Re(ev[1])                       2.175228e+00                              2.175228e+00     0.0e+00    OK    
vacuum matrix min eigenvalue                  1.873975e-01                              1.873975e-01     0.0e+00    OK    
plasma energy (all)                           [35 elem]                                 [35 elem]        0.0e+00    OK    
vacuum energy (all)                           [35 elem]                                 [35 elem]        0.0e+00    OK    
total energy (all)                            [35 elem]                                 [35 elem]        0.0e+00    OK    
ODE steps (saved)                             1170                                      1170             0.0e+00    OK    
ODE steps (total)                             1165                                      1165             0.0e+00    OK    
q0                                            1.204212e+00                              1.204212e+00     0.0e+00    OK    
q95                                           4.781723e+00                              4.781723e+00     0.0e+00    OK    
beta_t                                        1.327024e-02                              1.327024e-02     0.0e+00    OK    
beta_n                                        1.372511e+00                              1.372511e+00     0.0e+00    OK    
internal inductance li1                       8.842269e-01                              8.842269e-01     0.0e+00    OK    
internal inductance li2                       7.080757e-01                              7.080757e-01     0.0e+00    OK    
internal inductance li3                       7.304341e-01                              7.304341e-01     0.0e+00    OK    
poloidal beta betap1                          6.680739e-01                              6.680739e-01     0.0e+00    OK    
poloidal beta betap2                          5.349836e-01                              5.349836e-01     0.0e+00    OK    
poloidal beta betap3                          5.518764e-01                              5.518764e-01     0.0e+00    OK    
# singular surfaces                           5                                         5                0.0e+00    OK    
singular psi locations                        [5 elem]                                  [5 elem]         0.0e+00    OK    
singular q values                             [5 elem]                                  [5 elem]         0.0e+00    OK    
current beta betaj                            4.236480e-01                              4.236480e-01     0.0e+00    OK    
plasma volume                                 1.829472e+01                              1.829472e+01     0.0e+00    OK    
plasma current                                1.152130e+00                              1.152130e+00     0.0e+00    OK    
mpert                                         35                                        35               0.0e+00    OK    
npert                                         1                                         1                0.0e+00    OK    
toroidal field bt0                            2.006573e+00                              2.006573e+00     0.0e+00    OK    
wall field bwall                              3.880145e-01                              3.880145e-01     0.0e+00    OK    
aspect ratio                                  2.845746e+00                              2.845746e+00     0.0e+00    OK    
elongation kappa                              1.708322e+00                              1.708322e+00     0.0e+00    OK    
q profile (checksum)                          39d9421352fb...                           39d9421352fb...  identical  OK    
pressure profile (checksum)                   4dcd02ebd430...                           4dcd02ebd430...  identical  OK    
Mercier D_I profile (checksum)                8f2e24b7a722...                           8f2e24b7a722...  identical  OK    
resistive interchange D_R profile (checksum)  9cc3fb326bf3...                           9cc3fb326bf3...  identical  OK    
ballooning Delta' profile (checksum)          b9e975c03644...                           b9e975c03644...  identical  OK    
island half-widths                            [5 elem]                                  [5 elem]         0.0e+00    OK    
Chirikov parameter                            [5 elem]                                  [5 elem]         0.0e+00    OK    
||resonant area-weighted field||              5.286414e-04                              5.286414e-04     0.0e+00    OK    
dominant-coupling singular values             [3 elem]                                  [3 elem]         0.0e+00    OK    
|forcing overlap with dominant mode|          1.419632e-04                              1.419632e-04     0.0e+00    OK    
|delta_nominal| of coil set 1                 7.074908e-05                              7.074908e-05     0.0e+00    OK    
||ddelta/d(shift)|| over coil sets            1.246839e-04                              1.246839e-04     0.0e+00    OK    
||ddelta/d(tilt)|| over coil sets             4.175435e-07                              4.175435e-07     0.0e+00    OK    
PE plasma energy                              3.321081e+00                              3.321081e+00     0.0e+00    OK    
PE vacuum energy                              3.174319e+00                              3.174319e+00     0.0e+00    OK    
PE surface energy                             5.521989e+00                              5.521989e+00     0.0e+00    OK    
PE toroidal torque                            9.083788e-07                              9.083788e-07     0.0e+00    OK    
NTV torque FGAR [N·m]                         5.539376e-01                              5.539376e-01     0.0e+00    OK    
NTV kinetic energy dW FGAR [J]                8.225630e-02                              8.225630e-02     0.0e+00    OK    
Runtime (s)                                   374.9s                                    335.9s                      --    
||forcing b~|| (root-area-weighted)           4.683171e-04                              4.683171e-04     0.0e+00    OK    
resonant area-weighted field b^r              [5 elem]                                  [5 elem]         0.0e+00    OK    
==========================================================================================================================
Summary: 53 unchanged


================================================================
Case: diiid_slayer_n1_chi_perp_e — DIII-D-like H-mode equilibrium, n=1, SLAYER tearing-mode analysis with P_perp_model = chi_perp_e
================================================================

Regression Report: diiid_slayer_n1_chi_perp_e
=============================================================================================================
Ref 1: b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  @ b6a28892d (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
Ref 2: b0f1b0685  @ b0f1b0685 (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
-------------------------------------------------------------------------------------------------------------
Quantity                                 b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  b0f1b0685  Diff     Status
-------------------------------------------------------------------------------------------------------------
SLAYER surface indices                   [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER poloidal m                        [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER toroidal n                        [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER minor radius rs                   [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER r-based shear                     [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER Lundquist S                       [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER D_norm                            [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER P_perp                            [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER tauk                              [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER iota_e                            [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER Q_e                               [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER Q_i                               [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER toroidal critical-Δ factor D_geo  [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER Q_root [2/1,3/1,4/1]              [3 elem]                                  [3 elem]   0.0e+00  OK    
SLAYER ω_Hz [2/1,3/1,4/1]                [3 elem]                                  [3 elem]   0.0e+00  OK    
SLAYER γ_Hz [2/1,3/1,4/1]                [3 elem]                                  [3 elem]   0.0e+00  OK    
SLAYER no_root flags [2/1,3/1,4/1]       [3 elem]                                  [3 elem]   0.0e+00  OK    
CRF b_r/B_φ crit [2/1,3/1,4/1]           [3 elem]                                  [3 elem]   0.0e+00  OK    
CRF Q_peak [2/1,3/1,4/1]                 [3 elem]                                  [3 elem]   0.0e+00  OK    
CRF Q0 [2/1,3/1,4/1]                     [3 elem]                                  [3 elem]   0.0e+00  OK    
CRF b_r crit in tesla [2/1,3/1,4/1]      [3 elem]                                  [3 elem]   0.0e+00  OK    
SLAYER enabled flag                      1                                         1          0.0e+00  OK    
Runtime (s)                              435.7s                                    357.9s              --    
=============================================================================================================
Summary: 22 unchanged


================================================================
Case: diiid_slayer_n1_coupled — DIII-D-like H-mode equilibrium, n=1, SLAYER coupled multi-surface determinant with kinetic-file E×B rotation (reuses the n=1 deck via overrides)
================================================================

Regression Report: diiid_slayer_n1_coupled
=================================================================================================
Ref 1: b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  @ b6a28892d (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
Ref 2: b0f1b0685  @ b0f1b0685 (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
-------------------------------------------------------------------------------------------------
Quantity                     b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  b0f1b0685  Diff     Status
-------------------------------------------------------------------------------------------------
SLAYER tauk                  [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER q_shift               [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER coupled Q_root        [1 elem]                                  [1 elem]   0.0e+00  OK    
SLAYER coupled ω             [1 elem]                                  [1 elem]   0.0e+00  OK    
SLAYER coupled γ             [1 elem]                                  [1 elem]   0.0e+00  OK    
SLAYER coupled no_root flag  [1 elem]                                  [1 elem]   0.0e+00  OK    
SLAYER enabled flag          1                                         1          0.0e+00  OK    
Runtime (s)                  365.1s                                    356.6s              --    
=================================================================================================
Summary: 7 unchanged


================================================================
Case: diiid_slayer_n1 — DIII-D-like H-mode equilibrium, n=1, SLAYER tearing-mode analysis (uncoupled per-surface, AMR, validity-gated)
================================================================

Regression Report: diiid_slayer_n1
=============================================================================================================
Ref 1: b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  @ b6a28892d (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
Ref 2: b0f1b0685  @ b0f1b0685 (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
-------------------------------------------------------------------------------------------------------------
Quantity                                 b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  b0f1b0685  Diff     Status
-------------------------------------------------------------------------------------------------------------
SLAYER surface indices                   [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER poloidal m                        [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER toroidal n                        [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER minor radius rs                   [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER r-based shear                     [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER Lundquist S                       [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER D_norm                            [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER P_perp                            [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER tauk                              [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER iota_e                            [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER Q_e                               [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER Q_i                               [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER toroidal critical-Δ factor D_geo  [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER Q_root [2/1,3/1,4/1]              [3 elem]                                  [3 elem]   0.0e+00  OK    
SLAYER ω_Hz [2/1,3/1,4/1]                [3 elem]                                  [3 elem]   0.0e+00  OK    
SLAYER γ_Hz [2/1,3/1,4/1]                [3 elem]                                  [3 elem]   0.0e+00  OK    
SLAYER no_root flags [2/1,3/1,4/1]       [3 elem]                                  [3 elem]   0.0e+00  OK    
CRF b_r/B_φ crit [2/1,3/1,4/1]           [3 elem]                                  [3 elem]   0.0e+00  OK    
CRF Q_peak [2/1,3/1,4/1]                 [3 elem]                                  [3 elem]   0.0e+00  OK    
CRF Q0 [2/1,3/1,4/1]                     [3 elem]                                  [3 elem]   0.0e+00  OK    
CRF b_r crit in tesla [2/1,3/1,4/1]      [3 elem]                                  [3 elem]   0.0e+00  OK    
SLAYER enabled flag                      1                                         1          0.0e+00  OK    
Runtime (s)                              331.0s                                    350.5s              --    
=============================================================================================================
Summary: 22 unchanged


================================================================
Case: diiid_slayer_n1_toroidal — DIII-D-like H-mode, n=1, SLAYER with the toroidal critical-Δ offset (D_c_type = toroidal)
================================================================

Regression Report: diiid_slayer_n1_toroidal
========================================================================================================
Ref 1: b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  @ b6a28892d (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
Ref 2: b0f1b0685  @ b0f1b0685 (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
--------------------------------------------------------------------------------------------------------
Quantity                            b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  b0f1b0685  Diff     Status
--------------------------------------------------------------------------------------------------------
SLAYER resistive interchange D_R    [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER critical-Δ offset D_c        [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER Q_root [2/1,3/1,4/1]         [3 elem]                                  [3 elem]   0.0e+00  OK    
SLAYER γ_Hz [2/1,3/1,4/1]           [3 elem]                                  [3 elem]   0.0e+00  OK    
SLAYER no_root flags [2/1,3/1,4/1]  [3 elem]                                  [3 elem]   0.0e+00  OK    
Runtime (s)                         334.7s                                    357.4s              --    
========================================================================================================
Summary: 5 unchanged


================================================================
Case: diiid_slayer_n1_winding — DIII-D-like H-mode equilibrium, n=1, SLAYER tearing-mode analysis with root_classification = winding
================================================================

Regression Report: diiid_slayer_n1_winding
=============================================================================================================
Ref 1: b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  @ b6a28892d (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
Ref 2: b0f1b0685  @ b0f1b0685 (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
-------------------------------------------------------------------------------------------------------------
Quantity                                 b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  b0f1b0685  Diff     Status
-------------------------------------------------------------------------------------------------------------
SLAYER surface indices                   [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER poloidal m                        [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER toroidal n                        [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER minor radius rs                   [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER r-based shear                     [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER Lundquist S                       [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER D_norm                            [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER P_perp                            [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER tauk                              [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER iota_e                            [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER Q_e                               [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER Q_i                               [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER toroidal critical-Δ factor D_geo  [6 elem]                                  [6 elem]   0.0e+00  OK    
SLAYER Q_root [2/1,3/1,4/1]              [3 elem]                                  [3 elem]   0.0e+00  OK    
SLAYER ω_Hz [2/1,3/1,4/1]                [3 elem]                                  [3 elem]   0.0e+00  OK    
SLAYER γ_Hz [2/1,3/1,4/1]                [3 elem]                                  [3 elem]   0.0e+00  OK    
SLAYER no_root flags [2/1,3/1,4/1]       [3 elem]                                  [3 elem]   0.0e+00  OK    
CRF b_r/B_φ crit [2/1,3/1,4/1]           [3 elem]                                  [3 elem]   0.0e+00  OK    
CRF Q_peak [2/1,3/1,4/1]                 [3 elem]                                  [3 elem]   0.0e+00  OK    
CRF Q0 [2/1,3/1,4/1]                     [3 elem]                                  [3 elem]   0.0e+00  OK    
CRF b_r crit in tesla [2/1,3/1,4/1]      [3 elem]                                  [3 elem]   0.0e+00  OK    
SLAYER enabled flag                      1                                         1          0.0e+00  OK    
Runtime (s)                              334.8s                                    354.7s              --    
=============================================================================================================
Summary: 22 unchanged


================================================================
Case: diiid_truncation_n1 — DIII-D-like, n=1, psihigh=0.9999 with the resistive-layer overlap cap binding (truncation only)
================================================================

Regression Report: diiid_truncation_n1
================================================================================================================================
Ref 1: b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  @ b6a28892d (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
Ref 2: b0f1b0685  @ b0f1b0685 (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
--------------------------------------------------------------------------------------------------------------------------------
Quantity                               b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  b0f1b0685      Diff               Status       
--------------------------------------------------------------------------------------------------------------------------------
layer-overlap cap applied              1                                         1              0.0e+00            OK           
layer-overlap psilim                   9.985081e-01                              9.985081e-01   1.2e-10            OK           
first overlapping surface index        7                                         7              0.0e+00            OK           
diffusive-resistive layer widths (Δψ)  [7 elem]                                  [7 elem]       1.287e-06 (0.02%)  ** CHANGED **
qlim                                   6.200000e+00                              6.200000e+00   0.0e+00            OK           
psilim                                 9.949767e-01                              9.949767e-01   0.0e+00            OK           
mpert                                  37                                        37             0.0e+00            OK           
# singular surfaces                    5                                         5              0.0e+00            OK           
singular q values                      [5 elem]                                  [5 elem]       0.0e+00            OK           
singular psi locations                 [5 elem]                                  [5 elem]       0.0e+00            OK           
plasma energy Re(ep[1])                -1.377407e+00                             -1.377407e+00  6.584e-09 (0.00%)  ** CHANGED **
total energy Re(et[1])                 7.978617e-01                              7.978617e-01   8.403e-09 (0.00%)  ** CHANGED **
Runtime (s)                            234.7s                                    264.6s                            --           
================================================================================================================================
Summary: 3 changed, 9 unchanged


================================================================
Case: efit_fixedbdy_separatrix — Fixed-boundary EFIT (box hugs LCFS), Newton separatrix-find regression
================================================================

Regression Report: efit_fixedbdy_separatrix
===================================================================================================
Ref 1: b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  @ b6a28892d (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
Ref 2: b0f1b0685  @ b0f1b0685 (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
---------------------------------------------------------------------------------------------------
Quantity                    b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  b0f1b0685     Diff     Status
---------------------------------------------------------------------------------------------------
psio (total poloidal flux)  3.344390e-01                              3.344390e-01  0.0e+00  OK    
q0                          1.155202e+00                              1.155202e+00  0.0e+00  OK    
q95                         5.741022e+00                              5.741022e+00  0.0e+00  OK    
beta_t                      3.945193e-05                              3.945193e-05  0.0e+00  OK    
beta_n                      1.009510e-01                              1.009510e-01  0.0e+00  OK    
Runtime (s)                 64.8s                                     82.2s                  --    
===================================================================================================
Summary: 5 unchanged


================================================================
Case: gal_resistive_diiid_galinner — DIII-D-like, n=1, Galerkin Δ′ matched with the Galerkin inner-layer backend
================================================================

Regression Report: gal_resistive_diiid_galinner
================================================================================================
Ref 1: b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  @ b6a28892d (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
Ref 2: b0f1b0685  @ b0f1b0685 (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
------------------------------------------------------------------------------------------------
Quantity                 b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  b0f1b0685     Diff     Status
------------------------------------------------------------------------------------------------
gal # singular surfaces  4                                         4             0.0e+00  OK    
gal singular q values    [4 elem]                                  [4 elem]      0.0e+00  OK    
gal PEST3 Δ diagonal     [4 elem]                                  [4 elem]      0.0e+00  OK    
||gal Δ′ matrix||        2.302020e+03                              2.302020e+03  0.0e+00  OK    
||gal Δ_coil block||     1.581715e+01                              1.581715e+01  0.0e+00  OK    
gal D_I per surface      [4 elem]                                  [4 elem]      0.0e+00  OK    
gal α per surface        [4 elem]                                  [4 elem]      0.0e+00  OK    
||gal inner-layer Δ||    1.474568e+06                              1.474568e+06  0.0e+00  OK    
||gal match cout||       3.048397e-02                              3.048397e-02  0.0e+00  OK    
||gal match bpen||       1.206218e+00                              1.206218e+00  0.0e+00  OK    
gal match residual       2.116829e-16                              2.116829e-16  0.0e+00  OK    
Runtime (s)              202.4s                                    256.3s                 --    
================================================================================================
Summary: 11 unchanged


================================================================
Case: gal_resistive_diiid — DIII-D-like, n=1, RDCON outer-region Galerkin Δ′ with rpec coil columns (delta_coil)
================================================================

Regression Report: gal_resistive_diiid
================================================================================================
Ref 1: b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  @ b6a28892d (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
Ref 2: b0f1b0685  @ b0f1b0685 (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
------------------------------------------------------------------------------------------------
Quantity                 b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  b0f1b0685     Diff     Status
------------------------------------------------------------------------------------------------
gal # singular surfaces  4                                         4             0.0e+00  OK    
gal singular q values    [4 elem]                                  [4 elem]      0.0e+00  OK    
gal PEST3 Δ diagonal     [4 elem]                                  [4 elem]      0.0e+00  OK    
||gal Δ′ matrix||        2.302020e+03                              2.302020e+03  0.0e+00  OK    
||gal Δ_coil block||     1.581715e+01                              1.581715e+01  0.0e+00  OK    
gal D_I per surface      [4 elem]                                  [4 elem]      0.0e+00  OK    
gal α per surface        [4 elem]                                  [4 elem]      0.0e+00  OK    
||gal inner-layer Δ||    1.474579e+06                              1.474579e+06  0.0e+00  OK    
||gal match cout||       3.048397e-02                              3.048397e-02  0.0e+00  OK    
||gal match bpen||       1.206218e+00                              1.206218e+00  0.0e+00  OK    
gal match residual       1.675923e-16                              1.675923e-16  0.0e+00  OK    
Runtime (s)              205.2s                                    218.3s                 --    
================================================================================================
Summary: 11 unchanged


================================================================
Case: gal_resistive_pe — DIII-D-like, n=1, DRIVEN/RPEC: gal-matched resistive ξ → PerturbedEquilibrium (coil-driven singular coupling)
================================================================

Regression Report: gal_resistive_pe
=========================================================================================
Ref 1: b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  @ b6a28892d (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
Ref 2: b0f1b0685  @ b0f1b0685 (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
-----------------------------------------------------------------------------------------
Quantity                b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  b0f1b0685  Diff  Status
-----------------------------------------------------------------------------------------
rational q values       N/A                                       N/A        N/A   N/A   
island half-widths      N/A                                       N/A        N/A   N/A   
Chirikov parameter      N/A                                       N/A        N/A   N/A   
||resonant b field||    N/A                                       N/A        N/A   N/A   
resonant b field (all)  N/A                                       N/A        N/A   N/A   
penetrated b field      N/A                                       N/A        N/A   N/A   
PE Δ' per surface       N/A                                       N/A        N/A   N/A   
||C resonant b field||  N/A                                       N/A        N/A   N/A   
Runtime (s)             195.1s                                    204.9s           --    
=========================================================================================
Summary: 8 missing/N/A


================================================================
Case: ggj_ray_q500i — GGJ inner-layer :ray backend, q=4 surface, Q = 500i (beyond :galerkin)
================================================================

Regression Report: ggj_ray_q500i
===========================================================================================
Ref 1: b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  @ b6a28892d (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
Ref 2: b0f1b0685  @ b0f1b0685 (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
-------------------------------------------------------------------------------------------
Quantity            b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  b0f1b0685     Diff     Status
-------------------------------------------------------------------------------------------
Re(Δ₊ interchange)  2.472008e+00                              2.472008e+00  0.0e+00  OK    
Im(Δ₊ interchange)  1.335402e+01                              1.335402e+01  0.0e+00  OK    
Re(Δ₋ tearing)      1.374966e-01                              1.374966e-01  0.0e+00  OK    
Im(Δ₋ tearing)      7.427542e-01                              7.427542e-01  0.0e+00  OK    
Runtime (s)         22.4s                                     24.9s                  --    
===========================================================================================
Summary: 4 unchanged


================================================================
Case: ggj_reference — GGJ inner-layer Galerkin solver, Glasser & Wang 2020 Eq. 55 with physical τ_A, τ_R, 1 kHz rotation (Q ≈ 0.22i)
================================================================

Regression Report: ggj_reference
============================================================================================
Ref 1: b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  @ b6a28892d (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
Ref 2: b0f1b0685  @ b0f1b0685 (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
--------------------------------------------------------------------------------------------
Quantity            b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  b0f1b0685      Diff     Status
--------------------------------------------------------------------------------------------
Re(Δ₊ interchange)  1.225728e+03                              1.225728e+03   0.0e+00  OK    
Im(Δ₊ interchange)  2.064823e+04                              2.064823e+04   0.0e+00  OK    
Re(Δ₋ tearing)      -5.345663e+00                             -5.345663e+00  0.0e+00  OK    
Im(Δ₋ tearing)      2.592091e+01                              2.592091e+01   0.0e+00  OK    
Runtime (s)         9.2s                                      10.3s                   --    
============================================================================================
Summary: 4 unchanged


================================================================
Case: lar_reversed_shear_n1 — Large-aspect-ratio reversed-shear equilibrium (hollow current), n=1, ideal stability
================================================================

Regression Report: lar_reversed_shear_n1
=====================================================================================================================================
Ref 1: b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  @ b6a28892d (2026-10-29) (FAILED)
       env: environment unknown (cached before fingerprinting)
Ref 2: b0f1b0685  @ b0f1b0685 (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
  Ref 1 error: Example directory not found: examples/LAR_reversed_shear_example
-------------------------------------------------------------------------------------------------------------------------------------
Quantity                                                      b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  b0f1b0685        Diff  Status
-------------------------------------------------------------------------------------------------------------------------------------
total energy Re(et[1])                                        FAILED                                    -2.263762e-02          FAILED
total energy Im(et[1])                                        FAILED                                    -6.952796e-16          FAILED
plasma energy Re(ep[1])                                       FAILED                                    -5.912341e-02          FAILED
vacuum energy Re(ev[1])                                       FAILED                                    3.648579e-02           FAILED
vacuum matrix min eigenvalue                                  FAILED                                    3.488391e-02           FAILED
plasma energy (all)                                           FAILED                                    [31 elem]              FAILED
vacuum energy (all)                                           FAILED                                    [31 elem]              FAILED
total energy (all)                                            FAILED                                    [31 elem]              FAILED
ODE steps (saved)                                             FAILED                                    227                    FAILED
ODE steps (total)                                             FAILED                                    225                    FAILED
q0                                                            FAILED                                    2.397229e+00           FAILED
q95                                                           FAILED                                    2.687221e+00           FAILED
beta_t                                                        FAILED                                    3.331679e-04           FAILED
beta_n                                                        FAILED                                    1.898177e-01           FAILED
# singular surfaces                                           FAILED                                    2                      FAILED
singular psi locations                                        FAILED                                    [2 elem]               FAILED
singular q values                                             FAILED                                    [2 elem]               FAILED
singular dq/dpsi (opposite signs on the two q = 2 crossings)  FAILED                                    [2 elem]               FAILED
mpert                                                         FAILED                                    31                     FAILED
npert                                                         FAILED                                    1                      FAILED
q profile (checksum)                                          FAILED                                    c470025e4378...        FAILED
pressure profile (checksum)                                   FAILED                                    9b3faaf67b57...        FAILED
Runtime (s)                                                   FAILED                                    203.4s                 --    
=====================================================================================================================================
Summary: 22 missing/N/A


@logan-nc

Copy link
Copy Markdown
Collaborator

Full 24-case regression report, develop b6a28892d vs b0f1b0685 (feynman, Julia 1.11.7, CI-pinned manifest, 8 threads per case), part 2/2.

Report
================================================================
Case: solovev_kinetic_calculated — Solovev, n=1, kinetic_source=calculated, kinetic_factor=1.0, 50/50 D-T multi-ion kinetic matrices, mode-converged band (delta_m=8, mpert=32); pressure-consistent kinetic.dat (n·T tied to the Solovev P₀≈4.27e4 Pa).
================================================================

Regression Report: solovev_kinetic_calculated
===========================================================================================================
Ref 1: b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  @ b6a28892d (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
Ref 2: b0f1b0685  @ b0f1b0685 (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
-----------------------------------------------------------------------------------------------------------
Quantity                           b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  b0f1b0685      Diff     Status
-----------------------------------------------------------------------------------------------------------
vacuum energy Re(ev[1])            1.054751e+01                              1.054751e+01   0.0e+00  OK    
q0                                 1.900003e+00                              1.900003e+00   0.0e+00  OK    
NTV fgar quadrature torque [N·m]   2.268224e-03                              2.268224e-03   0.0e+00  OK    
||xi_clebsch_alpha||               6.528199e-01                              6.528199e-01   0.0e+00  OK    
total energy Re(et[1])             1.827817e+00                              1.827817e+00   0.0e+00  OK    
total energy Im(et[1])             -1.326712e+00                             -1.326712e+00  0.0e+00  OK    
plasma energy Re(ep[1])            -8.719689e+00                             -8.719689e+00  0.0e+00  OK    
ODE steps (saved)                  612                                       612            0.0e+00  OK    
# singular surfaces                2                                         2              0.0e+00  OK    
boundary-response torque [N·m]     2.286758e-03                              2.286758e-03   0.0e+00  OK    
singular psi locations             [2 elem]                                  [2 elem]       0.0e+00  OK    
total energy (all)                 [32 elem]                                 [32 elem]      0.0e+00  OK    
ODE steps (total)                  611                                       611            0.0e+00  OK    
mpert                              32                                        32             0.0e+00  OK    
q95                                3.147422e+00                              3.147422e+00   0.0e+00  OK    
||Jb_theta_reg||                   3.996774e-03                              3.996774e-03   0.0e+00  OK    
Runtime (s)                        244.9s                                    300.1s                  --    
T_xe applied-forcing torque [N·m]  2.286758e-03                              2.286758e-03   0.0e+00  OK    
||dxi_clebsch_psi/dpsi||           4.097278e+00                              4.097278e+00   0.0e+00  OK    
singular q values                  [2 elem]                                  [2 elem]       0.0e+00  OK    
npert                              1                                         1              0.0e+00  OK    
===========================================================================================================
Summary: 20 unchanged


================================================================
Case: solovev_kinetic_multiion — Solovev n=1, ideal + PE + multi-ion NTV (D + T + electron summed)
================================================================

Regression Report: solovev_kinetic_multiion
=====================================================================================================
Ref 1: b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  @ b6a28892d (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
Ref 2: b0f1b0685  @ b0f1b0685 (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
-----------------------------------------------------------------------------------------------------
Quantity                     b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  b0f1b0685      Diff     Status
-----------------------------------------------------------------------------------------------------
NTV total (D+T+imp+e) [N·m]  6.820675e+01                              6.820675e+01   0.0e+00  OK    
NTV Deuterium [N·m]          4.287193e+01                              4.287193e+01   0.0e+00  OK    
NTV Tritium [N·m]            4.444700e+01                              4.444700e+01   0.0e+00  OK    
NTV electron [N·m]           -1.911218e+01                             -1.911218e+01  0.0e+00  OK    
total energy Re(et[1])       7.398220e-03                              7.398220e-03   0.0e+00  OK    
# singular surfaces          2                                         2              0.0e+00  OK    
Runtime (s)                  234.3s                                    293.5s                  --    
=====================================================================================================
Summary: 6 unchanged


================================================================
Case: solovev_kinetic_ntv — Solovev analytical equilibrium, n=1, ideal + PE + NTV torque quadrature
================================================================

Regression Report: solovev_kinetic_ntv
==================================================================================================================
Ref 1: b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  @ b6a28892d (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
Ref 2: b0f1b0685  @ b0f1b0685 (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
------------------------------------------------------------------------------------------------------------------
Quantity                                   b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  b0f1b0685     Diff     Status
------------------------------------------------------------------------------------------------------------------
NTV torque fgar [Re, Im]                   [1 elem]                                  [1 elem]      0.0e+00  OK    
NTV ψ quadrature evaluations               45                                        45            0.0e+00  OK    
fluid CGL energy fcgl [J]                  3.375985e+01                              3.375985e+01  0.0e+00  OK    
root-area-weighted total energy Re(et[1])  7.398220e-03                              7.398220e-03  0.0e+00  OK    
# singular surfaces                        2                                         2             0.0e+00  OK    
singular psi locations                     [2 elem]                                  [2 elem]      0.0e+00  OK    
q0                                         1.900006e+00                              1.900006e+00  0.0e+00  OK    
Runtime (s)                                240.5s                                    301.4s                 --    
==================================================================================================================
Summary: 7 unchanged


================================================================
Case: solovev_kinetic_nuzero — Solovev, n=1, kinetic_source=calculated, nutype=zero (collisionless energy integral), 50/50 D-T multi-ion kinetic matrices, mode-converged band (delta_m=8, mpert=32). Reuses the calculated example deck via override; pressure-consistent kinetic.dat.
================================================================

Regression Report: solovev_kinetic_nuzero
=================================================================================================
Ref 1: b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  @ b6a28892d (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
Ref 2: b0f1b0685  @ b0f1b0685 (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
-------------------------------------------------------------------------------------------------
Quantity                 b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  b0f1b0685      Diff     Status
-------------------------------------------------------------------------------------------------
vacuum energy Re(ev[1])  1.058623e+01                              1.058623e+01   0.0e+00  OK    
q0                       1.900003e+00                              1.900003e+00   0.0e+00  OK    
total energy Re(et[1])   2.290491e+00                              2.290491e+00   0.0e+00  OK    
total energy Im(et[1])   -1.564669e+00                             -1.564669e+00  0.0e+00  OK    
plasma energy Re(ep[1])  -8.295743e+00                             -8.295743e+00  0.0e+00  OK    
ODE steps (saved)        612                                       612            0.0e+00  OK    
# singular surfaces      2                                         2              0.0e+00  OK    
singular psi locations   [2 elem]                                  [2 elem]       0.0e+00  OK    
total energy (all)       [32 elem]                                 [32 elem]      0.0e+00  OK    
ODE steps (total)        611                                       611            0.0e+00  OK    
mpert                    32                                        32             0.0e+00  OK    
q95                      3.147422e+00                              3.147422e+00   0.0e+00  OK    
Runtime (s)              253.4s                                    311.2s                  --    
singular q values        [2 elem]                                  [2 elem]       0.0e+00  OK    
npert                    1                                         1              0.0e+00  OK    
=================================================================================================
Summary: 14 unchanged


================================================================
Case: solovev_multi_n — Solovev analytical equilibrium, multi-n, ideal stability
================================================================

Regression Report: solovev_multi_n
==========================================================================================================
Ref 1: b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  @ b6a28892d (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
Ref 2: b0f1b0685  @ b0f1b0685 (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
----------------------------------------------------------------------------------------------------------
Quantity                      b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  b0f1b0685        Diff       Status
[ Info: Running: diiid_error_field @ b6a28892d (2026-10-29T16:34:59+00:00)
[ Info:   InnerLayer.SLAYER - FEATURE! - 🚨 Derive the toroidal c...
[ Info:   Completed in 366.3s — 11 quantities extracted
[ Info: Running: diiid_multi_n @ b6a28892d (2026-10-29T16:34:59+00:00)
[ Info:   InnerLayer.SLAYER - FEATURE! - 🚨 Derive the toroidal c...
[ Info:   Completed in 230.7s — 20 quantities extracted
[ Info: Running: diiid_n1_riccati_precompiled @ b6a28892d (2026-10-29T16:34:59+00:00)
[ Info:   InnerLayer.SLAYER - FEATURE! - 🚨 Derive the toroidal c...
[ Info:   Completed in 52.2s — 18 quantities extracted
[ Info: Running: diiid_n1_riccati @ b6a28892d (2026-10-29T16:34:59+00:00)
[ Info:   InnerLayer.SLAYER - FEATURE! - 🚨 Derive the toroidal c...
[ Info:   Completed in 338.3s — 18 quantities extracted
[ Info: Running: diiid_n1 @ b6a28892d (2026-10-29T16:34:59+00:00)
[ Info:   InnerLayer.SLAYER - FEATURE! - 🚨 Derive the toroidal c...
[ Info:   Completed in 374.9s — 54 quantities extracted
[ Info: Running: diiid_slayer_n1_chi_perp_e @ b6a28892d (2026-10-29T16:34:59+00:00)
[ Info:   InnerLayer.SLAYER - FEATURE! - 🚨 Derive the toroidal c...
[ Info:   Completed in 435.7s — 23 quantities extracted
[ Info: Running: diiid_slayer_n1_coupled @ b6a28892d (2026-10-29T16:34:59+00:00)
[ Info:   InnerLayer.SLAYER - FEATURE! - 🚨 Derive the toroidal c...
[ Info:   Completed in 365.1s — 8 quantities extracted
[ Info: Running: diiid_slayer_n1 @ b6a28892d (2026-10-29T16:34:59+00:00)
[ Info:   InnerLayer.SLAYER - FEATURE! - 🚨 Derive the toroidal c...
[ Info:   Completed in 331.0s — 23 quantities extracted
[ Info: Running: diiid_slayer_n1_toroidal @ b6a28892d (2026-10-29T16:34:59+00:00)
[ Info:   InnerLayer.SLAYER - FEATURE! - 🚨 Derive the toroidal c...
[ Info:   Completed in 334.7s — 6 quantities extracted
[ Info: Running: diiid_slayer_n1_winding @ b6a28892d (2026-10-29T16:34:59+00:00)
[ Info:   InnerLayer.SLAYER - FEATURE! - 🚨 Derive the toroidal c...
[ Info:   Completed in 334.8s — 23 quantities extracted
[ Info: Running: diiid_truncation_n1 @ b6a28892d (2026-10-29T16:34:59+00:00)
[ Info:   InnerLayer.SLAYER - FEATURE! - 🚨 Derive the toroidal c...
[ Info:   Completed in 234.7s — 13 quantities extracted
[ Info: Running: efit_fixedbdy_separatrix @ b6a28892d (2026-10-29T16:34:59+00:00) [computed]
[ Info:   InnerLayer.SLAYER - FEATURE! - 🚨 Derive the toroidal c...
[ Info:   Completed in 64.758s — 6 quantities extracted
[ Info: Running: gal_resistive_diiid_galinner @ b6a28892d (2026-10-29T16:34:59+00:00)
[ Info:   InnerLayer.SLAYER - FEATURE! - 🚨 Derive the toroidal c...
[ Info:   Completed in 202.4s — 12 quantities extracted
[ Info: Running: gal_resistive_diiid @ b6a28892d (2026-10-29T16:34:59+00:00)
[ Info:   InnerLayer.SLAYER - FEATURE! - 🚨 Derive the toroidal c...
[ Info:   Completed in 205.2s — 12 quantities extracted
[ Info: Running: gal_resistive_pe @ b6a28892d (2026-10-29T16:34:59+00:00)
[ Info:   InnerLayer.SLAYER - FEATURE! - 🚨 Derive the toroidal c...
[ Info:   Completed in 195.1s — 9 quantities extracted
[ Info: Running: ggj_ray_q500i @ b6a28892d (2026-10-29T16:34:59+00:00) [computed]
[ Info:   InnerLayer.SLAYER - FEATURE! - 🚨 Derive the toroidal c...
[ Info:   Completed in 22.369s — 5 quantities extracted
[ Info: Running: ggj_reference @ b6a28892d (2026-10-29T16:34:59+00:00) [computed]
[ Info:   InnerLayer.SLAYER - FEATURE! - 🚨 Derive the toroidal c...
[ Info:   Completed in 9.209s — 5 quantities extracted
[ Info: Running: lar_reversed_shear_n1 @ b6a28892d (2026-10-29T16:34:59+00:00)
[ Info:   InnerLayer.SLAYER - FEATURE! - 🚨 Derive the toroidal c...
┌ Warning: Example directory not found at commit b6a28892d: examples/LAR_reversed_shear_example
└ @ Main /mnt/scratch/ncl2128/wt/gpec_dev-492/regression-harness/src/runner.jl:615
[ Info: Running: solovev_kinetic_calculated @ b6a28892d (2026-10-29T16:34:59+00:00)
[ Info:   InnerLayer.SLAYER - FEATURE! - 🚨 Derive the toroidal c...
[ Info:   Completed in 244.9s — 21 quantities extracted
[ Info: Running: solovev_kinetic_multiion @ b6a28892d (2026-10-29T16:34:59+00:00)
[ Info:   InnerLayer.SLAYER - FEATURE! - 🚨 Derive the toroidal c...
[ Info:   Completed in 234.3s — 7 quantities extracted
[ Info: Running: solovev_kinetic_ntv @ b6a28892d (2026-10-29T16:34:59+00:00)
[ Info:   InnerLayer.SLAYER - FEATURE! - 🚨 Derive the toroidal c...
[ Info:   Completed in 240.5s — 8 quantities extracted
[ Info: Running: solovev_kinetic_nuzero @ b6a28892d (2026-10-29T16:34:59+00:00)
[ Info:   InnerLayer.SLAYER - FEATURE! - 🚨 Derive the toroidal c...
[ Info:   Completed in 253.4s — 15 quantities extracted
[ Info: Running: solovev_multi_n @ b6a28892d (2026-10-29T16:34:59+00:00)
[ Info:   InnerLayer.SLAYER - FEATURE! - 🚨 Derive the toroidal c...
[ Info:   Completed in 218.5s — 16 quantities extracted
[ Info: Running: solovev_n1 @ b6a28892d (2026-10-29T16:34:59+00:00)
[ Info:   InnerLayer.SLAYER - FEATURE! - 🚨 Derive the toroidal c...
[ Info:   Completed in 219.6s — 23 quantities extracted
[ Info: Running: diiid_error_field @ b0f1b0685 (2026-10-29T14:34:47-04:00)
[ Info:   Merge remote-tracking branch 'origin/develop' into bugfix...
[ Info:   Completed in 380.4s — 11 quantities extracted
[ Info: Running: diiid_multi_n @ b0f1b0685 (2026-10-29T14:34:47-04:00)
[ Info:   Merge remote-tracking branch 'origin/develop' into bugfix...
[ Info:   Completed in 227.1s — 20 quantities extracted
[ Info: Running: diiid_n1_riccati_precompiled @ b0f1b0685 (2026-10-29T14:34:47-04:00)
[ Info:   Merge remote-tracking branch 'origin/develop' into bugfix...
[ Info:   Completed in 45.5s — 18 quantities extracted
[ Info: Running: diiid_n1_riccati @ b0f1b0685 (2026-10-29T14:34:47-04:00)
[ Info:   Merge remote-tracking branch 'origin/develop' into bugfix...
[ Info:   Completed in 276.8s — 18 quantities extracted
[ Info: Running: diiid_n1 @ b0f1b0685 (2026-10-29T14:34:47-04:00)
[ Info:   Merge remote-tracking branch 'origin/develop' into bugfix...
[ Info:   Completed in 335.9s — 54 quantities extracted
[ Info: Running: diiid_slayer_n1_chi_perp_e @ b0f1b0685 (2026-10-29T14:34:47-04:00)
[ Info:   Merge remote-tracking branch 'origin/develop' into bugfix...
[ Info:   Completed in 357.9s — 23 quantities extracted
[ Info: Running: diiid_slayer_n1_coupled @ b0f1b0685 (2026-10-29T14:34:47-04:00)
[ Info:   Merge remote-tracking branch 'origin/develop' into bugfix...
[ Info:   Completed in 356.6s — 8 quantities extracted
[ Info: Running: diiid_slayer_n1 @ b0f1b0685 (2026-10-29T14:34:47-04:00)
[ Info:   Merge remote-tracking branch 'origin/develop' into bugfix...
[ Info:   Completed in 350.5s — 23 quantities extracted
[ Info: Running: diiid_slayer_n1_toroidal @ b0f1b0685 (2026-10-29T14:34:47-04:00)
[ Info:   Merge remote-tracking branch 'origin/develop' into bugfix...
[ Info:   Completed in 357.4s — 6 quantities extracted
[ Info: Running: diiid_slayer_n1_winding @ b0f1b0685 (2026-10-29T14:34:47-04:00)
[ Info:   Merge remote-tracking branch 'origin/develop' into bugfix...
[ Info:   Completed in 354.7s — 23 quantities extracted
[ Info: Running: diiid_truncation_n1 @ b0f1b0685 (2026-10-29T14:34:47-04:00)
[ Info:   Merge remote-tracking branch 'origin/develop' into bugfix...
[ Info:   Completed in 264.6s — 13 quantities extracted
[ Info: Running: efit_fixedbdy_separatrix @ b0f1b0685 (2026-10-29T14:34:47-04:00) [computed]
[ Info:   Merge remote-tracking branch 'origin/develop' into bugfix...
[ Info:   Completed in 82.229s — 6 quantities extracted
[ Info: Running: gal_resistive_diiid_galinner @ b0f1b0685 (2026-10-29T14:34:47-04:00)
[ Info:   Merge remote-tracking branch 'origin/develop' into bugfix...
[ Info:   Completed in 256.3s — 12 quantities extracted
[ Info: Running: gal_resistive_diiid @ b0f1b0685 (2026-10-29T14:34:47-04:00)
[ Info:   Merge remote-tracking branch 'origin/develop' into bugfix...
[ Info:   Completed in 218.3s — 12 quantities extracted
[ Info: Running: gal_resistive_pe @ b0f1b0685 (2026-10-29T14:34:47-04:00)
[ Info:   Merge remote-tracking branch 'origin/develop' into bugfix...
[ Info:   Completed in 204.9s — 9 quantities extracted
[ Info: Running: ggj_ray_q500i @ b0f1b0685 (2026-10-29T14:34:47-04:00) [computed]
[ Info:   Merge remote-tracking branch 'origin/develop' into bugfix...
[ Info:   Completed in 24.933s — 5 quantities extracted
[ Info: Running: ggj_reference @ b0f1b0685 (2026-10-29T14:34:47-04:00) [computed]
[ Info:   Merge remote-tracking branch 'origin/develop' into bugfix...
[ Info:   Completed in 10.301s — 5 quantities extracted
[ Info: Running: lar_reversed_shear_n1 @ b0f1b0685 (2026-10-29T14:34:47-04:00)
[ Info:   Merge remote-tracking branch 'origin/develop' into bugfix...
[ Info:   Completed in 203.4s — 23 quantities extracted
[ Info: Running: solovev_kinetic_calculated @ b0f1b0685 (2026-10-29T14:34:47-04:00)
[ Info:   Merge remote-tracking branch 'origin/develop' into bugfix...
[ Info:   Completed in 300.1s — 21 quantities extracted
[ Info: Running: solovev_kinetic_multiion @ b0f1b0685 (2026-10-29T14:34:47-04:00)
[ Info:   Merge remote-tracking branch 'origin/develop' into bugfix...
[ Info:   Completed in 293.5s — 7 quantities extracted
[ Info: Running: solovev_kinetic_ntv @ b0f1b0685 (2026-10-29T14:34:47-04:00)
[ Info:   Merge remote-tracking branch 'origin/develop' into bugfix...
[ Info:   Completed in 301.4s — 8 quantities extracted
[ Info: Running: solovev_kinetic_nuzero @ b0f1b0685 (2026-10-29T14:34:47-04:00)
[ Info:   Merge remote-tracking branch 'origin/develop' into bugfix...
[ Info:   Completed in 311.2s — 15 quantities extracted
[ Info: Running: solovev_multi_n @ b0f1b0685 (2026-10-29T14:34:47-04:00)
[ Info:   Merge remote-tracking branch 'origin/develop' into bugfix...
[ Info:   Completed in 251.7s — 16 quantities extracted
[ Info: Running: solovev_n1 @ b0f1b0685 (2026-10-29T14:34:47-04:00)
[ Info:   Merge remote-tracking branch 'origin/develop' into bugfix...
[ Info:   Completed in 252.9s — 23 quantities extracted
┌ Error: 1 run(s) failed — see the reports above
└ @ Main /mnt/scratch/ncl2128/wt/gpec_dev-492/regression-harness/regress.jl:250
----------------------------------------------------------------------------------------------------------
total energy Re(et[1])        -2.134718e+00                             -2.134718e+00    0.0e+00    OK    
total energy Im(et[1])        -7.915791e-10                             -7.915791e-10    0.0e+00    OK    
vacuum matrix min eigenvalue  1.730832e+00                              1.730832e+00     0.0e+00    OK    
plasma energy (all)           [70 elem]                                 [70 elem]        0.0e+00    OK    
vacuum energy (all)           [70 elem]                                 [70 elem]        0.0e+00    OK    
total energy (all)            [70 elem]                                 [70 elem]        0.0e+00    OK    
ODE steps (saved)             56                                        56               0.0e+00    OK    
ODE steps (total)             1042                                      1042             0.0e+00    OK    
q0                            1.900006e+00                              1.900006e+00     0.0e+00    OK    
q95                           3.147422e+00                              3.147422e+00     0.0e+00    OK    
# singular surfaces           3                                         3                0.0e+00    OK    
singular psi locations        [3 elem]                                  [3 elem]         0.0e+00    OK    
mpert                         35                                        35               0.0e+00    OK    
npert                         2                                         2                0.0e+00    OK    
q profile (checksum)          049799b65749...                           049799b65749...  identical  OK    
Runtime (s)                   218.5s                                    251.7s                      --    
==========================================================================================================
Summary: 15 unchanged


================================================================
Case: solovev_n1 — Solovev analytical equilibrium, n=1, ideal stability
================================================================

Regression Report: solovev_n1
==========================================================================================================
Ref 1: b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  @ b6a28892d (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
Ref 2: b0f1b0685  @ b0f1b0685 (2026-10-29)
       env: julia 1.11.7, x86_64-linux-gnu, manifest 7027ae20 (pinned), 8 threads/8 BLAS, jit build
----------------------------------------------------------------------------------------------------------
Quantity                      b6a28892d6d8e64fb58c8092e9f5e95f1f27f276  b0f1b0685        Diff       Status
----------------------------------------------------------------------------------------------------------
total energy Re(et[1])        7.398220e-03                              7.398220e-03     0.0e+00    OK    
total energy Im(et[1])        2.097638e-06                              2.097638e-06     0.0e+00    OK    
plasma energy Re(ep[1])       -1.042151e+01                             -1.042151e+01    0.0e+00    OK    
vacuum energy Re(ev[1])       1.042891e+01                              1.042891e+01     0.0e+00    OK    
vacuum matrix min eigenvalue  2.170703e+00                              2.170703e+00     0.0e+00    OK    
plasma energy (all)           [32 elem]                                 [32 elem]        0.0e+00    OK    
vacuum energy (all)           [32 elem]                                 [32 elem]        0.0e+00    OK    
total energy (all)            [32 elem]                                 [32 elem]        0.0e+00    OK    
ODE steps (saved)             383                                       383              0.0e+00    OK    
ODE steps (total)             381                                       381              0.0e+00    OK    
q0                            1.900006e+00                              1.900006e+00     0.0e+00    OK    
q95                           3.147422e+00                              3.147422e+00     0.0e+00    OK    
beta_t                        4.621027e-02                              4.621027e-02     0.0e+00    OK    
beta_n                        3.217775e+00                              3.217775e+00     0.0e+00    OK    
# singular surfaces           2                                         2                0.0e+00    OK    
singular psi locations        [2 elem]                                  [2 elem]         0.0e+00    OK    
singular q values             [2 elem]                                  [2 elem]         0.0e+00    OK    
mpert                         32                                        32               0.0e+00    OK    
npert                         1                                         1                0.0e+00    OK    
q profile (checksum)          049799b65749...                           049799b65749...  identical  OK    
pressure profile (checksum)   8339185e550b...                           8339185e550b...  identical  OK    
ca_left (checksum)            8782bdd4e66a...                           8782bdd4e66a...  identical  OK    
Runtime (s)                   219.6s                                    252.9s                      --    
==========================================================================================================
Summary: 22 unchanged

Merged via the queue into develop with commit 6ca1b6f Oct 30, 2026
18 of 21 checks passed
@logan-nc
logan-nc deleted the bugfix/reversed-shear-double-rational branch October 30, 2026 00:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugfix Something was wrong and now is not changed-results Results move or an interface breaks - read before upgrading

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants