Skip to content

InnerLayer.SLAYER - FEATURE! - Optional chi_perp_Dc sets the critical-Δ electron diffusivity apart from P_perp - #616

Merged
matt-pharr merged 3 commits into
developfrom
feature/slayer-dcrit-chi
Oct 30, 2026
Merged

matt-pharr merged 3 commits into
developfrom
feature/slayer-dcrit-chi

Conversation

@d-burg

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

Copy link
Copy Markdown
Collaborator

Release note

  • Audience: users
  • Numerical impact: none by default; chi_perp_Dc is opt-in (harness @ b6af97f)
  • Migration: none

The critical Δ can now take its electron perpendicular diffusivity from a separate, optional input, chi_perp_Dc, instead of from the chi_perp_e that also builds P_⊥. It is available as a [SLAYER] deck key, as a keyword of build_slayer_inputs (scalar or callable of ψ) and as a keyword of slayer_parameters. When it is not set, the critical Δ uses chi_perp_e exactly as before.

Why

Since #501 the two places a perpendicular diffusivity enters SLAYER want different quantities. P_⊥ (P_perp_model = "D_perp") needs the total conducted heat, through the combination T_e′χ⊥,e + T_i′χ⊥,i. The critical-Δ width W_d ∝ (χ⊥/χ∥)^{1/4} needs the electron channel alone. With one chi_perp_e feeding both, a run cannot set them independently.

This matters for interpretive inputs. Where T_i ≈ T_e, an interpretive power balance (ONETWO/AOT) splits the conducted heat between species unreliably, through the electron-ion exchange term. On DIII-D discharges it often returns χ⊥,i < 0 at q = 2, with χ⊥,e inflated by the same amount. The physically safe choice is then a one-fluid χ_eff in both channels of D_⊥, which preserves the total exactly. The critical Δ instead takes the electron χ that the balance allows. Without this PR, the only way to express that is χ⊥,i = 0 with an adjusted χ⊥,e, which gives the same γ but records a misleading χ⊥,i.

What changed

  • slayer_parameters(...; chi_perp_Dc=nothing): when given, it replaces chi_perp_e in _solve_dc_tmp only (W_d and the (χ∥/χ⊥)^{1/4} factors of :lar/:toroidal). It must be positive and finite.
  • build_slayer_inputs(...; chi_perp_Dc=nothing): scalar or callable of ψ, evaluated per surface.
  • [SLAYER] chi_perp_Dc (SLAYERControl.chi_perp_Dc::Union{Float64,Nothing}): validated like the other diffusivities and forwarded by _slayer_chi_inputs / TearingProblem. The run logs an info line when it is set with a non-none D_c_type.
  • The layer-overlap scan is untouched: it always runs with dc_type = :none.
  • Docs: stability.md ("Which perpendicular diffusivity") and the docstrings.

Tests

  • runtests_slayer_params.jl Test 4b: for :lar, :fitzpatrick and :toroidal, chi_perp_Dc = 3 gives the dc_tmp that chi_perp_e = 3 would. Every other layer quantity, P_⊥ included, is bit-identical to the default. Zero and Inf are rejected.
  • runtests_slayer_runner.jl: deck parsing, validation and forwarding.
  • On the Mac (Julia 1.11.6) at b6af97f48: runtests_slayer_params.jl 158/158 and runtests_slayer_runner.jl 168/168. (Earlier, on feynman at fa7ecedd3: 152/152, 161/161 and runtests_slayer_inputs.jl 67/67.)

Regression report

Compared develop 4f33fcf60 (this branch's base) against this branch at b6af97f48 on ITER SDCC (Slurm fan-out, Julia 1.12.6, CI-pinned manifest), on all 24 cases. All 23 cases that run on develop are unchanged (347 quantities), every SLAYER case included: diiid_slayer_n1, _chi_perp_e, _coupled, _toroidal and _winding, and diiid_truncation_n1. gal_resistive_pe is N/A on both refs, as on develop. No shipped deck sets chi_perp_Dc, so this is the expected result.

Full regression 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: 4f33fcf60  @ 4f33fcf60 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 16 threads/8 BLAS, jit build
Ref 2: b6af97f48  @ b6af97f48 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 16 threads/8 BLAS, jit build
--------------------------------------------------------------------------------------------
Quantity                                         4f33fcf60     b6af97f48     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.414983e-06  1.414983e-06  0.0e+00  OK
|Σ δ_as_designed| of the error-field coils       1.363315e-18  1.363315e-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)                                      243.5s        254.6s                 --
============================================================================================
Summary: 10 unchanged


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

Regression Report: diiid_multi_n
=================================================================================================================
Ref 1: 4f33fcf60  @ 4f33fcf60 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
Ref 2: b6af97f48  @ b6af97f48 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
-----------------------------------------------------------------------------------------------------------------
Quantity                                                      4f33fcf60        b6af97f48        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)                                             906              906              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.148528e-08     2.148528e-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)                                                   206.7s           205.3s                      --
=================================================================================================================
Summary: 19 unchanged


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

Regression Report: diiid_n1
=================================================================================================
Ref 1: 4f33fcf60  @ 4f33fcf60 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
Ref 2: b6af97f48  @ b6af97f48 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
-------------------------------------------------------------------------------------------------
Quantity                                      4f33fcf60        b6af97f48        Diff       Status
-------------------------------------------------------------------------------------------------
total energy Re(et[1])                        7.979262e-01     7.979262e-01     0.0e+00    OK
total energy Im(et[1])                        1.122427e-06     1.122427e-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)                             1166             1166             0.0e+00    OK
ODE steps (total)                             1161             1161             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.842268e-01     8.842268e-01     0.0e+00    OK
internal inductance li2                       7.080757e-01     7.080757e-01     0.0e+00    OK
internal inductance li3                       7.304340e-01     7.304340e-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)                          6da947d0754e...  6da947d0754e...  identical  OK
pressure profile (checksum)                   c9c6ca4072ca...  c9c6ca4072ca...  identical  OK
Mercier D_I profile (checksum)                26babbe22505...  26babbe22505...  identical  OK
resistive interchange D_R profile (checksum)  c46830151a0b...  c46830151a0b...  identical  OK
ballooning Delta' profile (checksum)          c27c6779804a...  c27c6779804a...  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.286393e-04     5.286393e-04     0.0e+00    OK
dominant-coupling singular values             [3 elem]         [3 elem]         0.0e+00    OK
|forcing overlap with dominant mode|          1.419633e-04     1.419633e-04     0.0e+00    OK
|delta_nominal| of coil set 1                 7.074914e-05     7.074914e-05     0.0e+00    OK
||ddelta/d(shift)|| over coil sets            1.246840e-04     1.246840e-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.521987e+00     5.521987e+00     0.0e+00    OK
PE toroidal torque                            9.083725e-07     9.083725e-07     0.0e+00    OK
NTV torque FGAR [N·m]                         5.539336e-01     5.539336e-01     0.0e+00    OK
NTV kinetic energy dW FGAR [J]                8.225444e-02     8.225444e-02     0.0e+00    OK
Runtime (s)                                   247.6s           247.8s                      --
||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_n1_riccati — DIII-D-like equilibrium, n=1, Riccati integrator Δ' matrix
================================================================

Regression Report: diiid_n1_riccati
============================================================================
Ref 1: 4f33fcf60  @ 4f33fcf60 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
Ref 2: b6af97f48  @ b6af97f48 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
----------------------------------------------------------------------------
Quantity                       4f33fcf60      b6af97f48      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.031971e-01   8.031971e-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.171732e+00   2.171732e+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)              93             93             0.0e+00  OK
ODE steps (total)              2631           2631           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)                    211.7s         198.5s                  --
============================================================================
Summary: 17 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: 4f33fcf60  @ 4f33fcf60 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, aot build
Ref 2: b6af97f48  @ b6af97f48 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, aot build
----------------------------------------------------------------------------
Quantity                       4f33fcf60      b6af97f48      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.031971e-01   8.031971e-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.171732e+00   2.171732e+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)              93             93             0.0e+00  OK
ODE steps (total)              2631           2631           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)                    28.2s          25.5s                   --
============================================================================
Summary: 17 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: 4f33fcf60  @ 4f33fcf60 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
Ref 2: b6af97f48  @ b6af97f48 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
------------------------------------------------------------------------------
Quantity                                 4f33fcf60  b6af97f48  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)                              246.2s     247.0s              --
==============================================================================
Summary: 22 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: 4f33fcf60  @ 4f33fcf60 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
Ref 2: b6af97f48  @ b6af97f48 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
------------------------------------------------------------------------------
Quantity                                 4f33fcf60  b6af97f48  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)                              251.1s     253.0s              --
==============================================================================
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: 4f33fcf60  @ 4f33fcf60 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
Ref 2: b6af97f48  @ b6af97f48 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
------------------------------------------------------------------
Quantity                     4f33fcf60  b6af97f48  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)                  248.9s     249.3s              --
==================================================================
Summary: 7 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: 4f33fcf60  @ 4f33fcf60 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
Ref 2: b6af97f48  @ b6af97f48 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
-------------------------------------------------------------------------
Quantity                            4f33fcf60  b6af97f48  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)                         250.4s     265.0s              --
=========================================================================
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: 4f33fcf60  @ 4f33fcf60 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
Ref 2: b6af97f48  @ b6af97f48 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
------------------------------------------------------------------------------
Quantity                                 4f33fcf60  b6af97f48  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)                              244.8s     247.6s              --
==============================================================================
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: 4f33fcf60  @ 4f33fcf60 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
Ref 2: b6af97f48  @ b6af97f48 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
------------------------------------------------------------------------------------
Quantity                               4f33fcf60      b6af97f48      Diff     Status
------------------------------------------------------------------------------------
layer-overlap cap applied              1              1              0.0e+00  OK
layer-overlap psilim                   9.985081e-01   9.985081e-01   0.0e+00  OK
first overlapping surface index        7              7              0.0e+00  OK
diffusive-resistive layer widths (Δψ)  [7 elem]       [7 elem]       0.0e+00  OK
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.377406e+00  -1.377406e+00  0.0e+00  OK
total energy Re(et[1])                 7.978626e-01   7.978626e-01   0.0e+00  OK
Runtime (s)                            193.6s         193.0s                  --
====================================================================================
Summary: 12 unchanged


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

Regression Report: efit_fixedbdy_separatrix
=======================================================================
Ref 1: 4f33fcf60  @ 4f33fcf60 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
Ref 2: b6af97f48  @ b6af97f48 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
-----------------------------------------------------------------------
Quantity                    4f33fcf60     b6af97f48     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.945172e-05  3.945172e-05  0.0e+00  OK
beta_n                      1.009505e-01  1.009505e-01  0.0e+00  OK
Runtime (s)                 50.6s         51.1s                  --
=======================================================================
Summary: 5 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: 4f33fcf60  @ 4f33fcf60 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
Ref 2: b6af97f48  @ b6af97f48 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
--------------------------------------------------------------------
Quantity                 4f33fcf60     b6af97f48     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.302048e+03  2.302048e+03  0.0e+00  OK
||gal Δ_coil block||     1.581714e+01  1.581714e+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.474577e+06  1.474577e+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.709610e-16  1.709610e-16  0.0e+00  OK
Runtime (s)              183.2s        182.3s                 --
====================================================================
Summary: 11 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: 4f33fcf60  @ 4f33fcf60 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
Ref 2: b6af97f48  @ b6af97f48 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
--------------------------------------------------------------------
Quantity                 4f33fcf60     b6af97f48     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.302048e+03  2.302048e+03  0.0e+00  OK
||gal Δ_coil block||     1.581714e+01  1.581714e+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.474566e+06  1.474566e+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.872671e-16  1.872671e-16  0.0e+00  OK
Runtime (s)              180.1s        176.4s                 --
====================================================================
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: 4f33fcf60  @ 4f33fcf60 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
Ref 2: b6af97f48  @ b6af97f48 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
----------------------------------------------------------
Quantity                4f33fcf60  b6af97f48  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)             176.5s     178.1s           --
==========================================================
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: 4f33fcf60  @ 4f33fcf60 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
Ref 2: b6af97f48  @ b6af97f48 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
---------------------------------------------------------------
Quantity            4f33fcf60     b6af97f48     Diff     Status
---------------------------------------------------------------
Re(Δ₊ interchange)  2.472007e+00  2.472007e+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)         21.9s         22.0s                  --
===============================================================
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: 4f33fcf60  @ 4f33fcf60 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
Ref 2: b6af97f48  @ b6af97f48 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
-----------------------------------------------------------------
Quantity            4f33fcf60      b6af97f48      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)         10.7s          10.6s                   --
=================================================================
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: 4f33fcf60  @ 4f33fcf60 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
Ref 2: b6af97f48  @ b6af97f48 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
-----------------------------------------------------------------------------------------------------------------
Quantity                                                      4f33fcf60        b6af97f48        Diff       Status
-----------------------------------------------------------------------------------------------------------------
total energy Re(et[1])                                        -2.263762e-02    -2.263762e-02    0.0e+00    OK
total energy Im(et[1])                                        -1.941142e-15    -1.941142e-15    0.0e+00    OK
plasma energy Re(ep[1])                                       -5.912342e-02    -5.912342e-02    0.0e+00    OK
vacuum energy Re(ev[1])                                       3.648580e-02     3.648580e-02     0.0e+00    OK
vacuum matrix min eigenvalue                                  3.488391e-02     3.488391e-02     0.0e+00    OK
plasma energy (all)                                           [31 elem]        [31 elem]        0.0e+00    OK
vacuum energy (all)                                           [31 elem]        [31 elem]        0.0e+00    OK
total energy (all)                                            [31 elem]        [31 elem]        0.0e+00    OK
ODE steps (saved)                                             227              227              0.0e+00    OK
ODE steps (total)                                             225              225              0.0e+00    OK
q0                                                            2.397229e+00     2.397229e+00     0.0e+00    OK
q95                                                           2.687221e+00     2.687221e+00     0.0e+00    OK
beta_t                                                        3.331679e-04     3.331679e-04     0.0e+00    OK
beta_n                                                        1.898177e-01     1.898177e-01     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
singular dq/dpsi (opposite signs on the two q = 2 crossings)  [2 elem]         [2 elem]         0.0e+00    OK
mpert                                                         31               31               0.0e+00    OK
npert                                                         1                1                0.0e+00    OK
q profile (checksum)                                          239b992d5138...  239b992d5138...  identical  OK
pressure profile (checksum)                                   8ff21b46d26d...  8ff21b46d26d...  identical  OK
Runtime (s)                                                   157.8s           160.5s                      --
=================================================================================================================
Summary: 22 unchanged


================================================================
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: 4f33fcf60  @ 4f33fcf60 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
Ref 2: b6af97f48  @ b6af97f48 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
--------------------------------------------------------------------------------
Quantity                           4f33fcf60      b6af97f48      Diff     Status
--------------------------------------------------------------------------------
vacuum energy Re(ev[1])            1.054739e+01   1.054739e+01   0.0e+00  OK
q0                                 1.900003e+00   1.900003e+00   0.0e+00  OK
NTV fgar quadrature torque [N·m]   2.267496e-03   2.267496e-03   0.0e+00  OK
||xi_clebsch_alpha||               6.546389e-01   6.546389e-01   0.0e+00  OK
total energy Re(et[1])             1.828280e+00   1.828280e+00   0.0e+00  OK
total energy Im(et[1])             -1.326608e+00  -1.326608e+00  0.0e+00  OK
plasma energy Re(ep[1])            -8.719105e+00  -8.719105e+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.285502e-03   2.285502e-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||                   4.007262e-03   4.007262e-03   0.0e+00  OK
Runtime (s)                        218.4s         217.6s                  --
T_xe applied-forcing torque [N·m]  2.285502e-03   2.285502e-03   0.0e+00  OK
||dxi_clebsch_psi/dpsi||           4.108708e+00   4.108708e+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: 4f33fcf60  @ 4f33fcf60 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
Ref 2: b6af97f48  @ b6af97f48 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
--------------------------------------------------------------------------
Quantity                     4f33fcf60      b6af97f48      Diff     Status
--------------------------------------------------------------------------
NTV total (D+T+imp+e) [N·m]  6.886429e+01   6.886429e+01   0.0e+00  OK
NTV Deuterium [N·m]          4.328549e+01   4.328549e+01   0.0e+00  OK
NTV Tritium [N·m]            4.487573e+01   4.487573e+01   0.0e+00  OK
NTV electron [N·m]           -1.929693e+01  -1.929693e+01  0.0e+00  OK
total energy Re(et[1])       7.362765e-03   7.362765e-03   0.0e+00  OK
# singular surfaces          2              2              0.0e+00  OK
Runtime (s)                  209.4s         209.7s                  --
==========================================================================
Summary: 6 unchanged


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

Regression Report: solovev_kinetic_ntv
======================================================================================
Ref 1: 4f33fcf60  @ 4f33fcf60 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
Ref 2: b6af97f48  @ b6af97f48 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
--------------------------------------------------------------------------------------
Quantity                                   4f33fcf60     b6af97f48     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.408647e+01  3.408647e+01  0.0e+00  OK
root-area-weighted total energy Re(et[1])  7.362765e-03  7.362765e-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)                                209.3s        209.6s                 --
======================================================================================
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: 4f33fcf60  @ 4f33fcf60 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
Ref 2: b6af97f48  @ b6af97f48 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
----------------------------------------------------------------------
Quantity                 4f33fcf60      b6af97f48      Diff     Status
----------------------------------------------------------------------
vacuum energy Re(ev[1])  1.058612e+01   1.058612e+01   0.0e+00  OK
q0                       1.900003e+00   1.900003e+00   0.0e+00  OK
total energy Re(et[1])   2.290968e+00   2.290968e+00   0.0e+00  OK
total energy Im(et[1])   -1.564547e+00  -1.564547e+00  0.0e+00  OK
plasma energy Re(ep[1])  -8.295156e+00  -8.295156e+00  0.0e+00  OK
ODE steps (saved)        614            614            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)        613            613            0.0e+00  OK
mpert                    32             32             0.0e+00  OK
q95                      3.147422e+00   3.147422e+00   0.0e+00  OK
Runtime (s)              216.6s         217.9s                  --
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: 4f33fcf60  @ 4f33fcf60 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
Ref 2: b6af97f48  @ b6af97f48 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
---------------------------------------------------------------------------------
Quantity                      4f33fcf60        b6af97f48        Diff       Status
---------------------------------------------------------------------------------
total energy Re(et[1])        -2.134718e+00    -2.134718e+00    0.0e+00    OK
total energy Im(et[1])        1.968592e-10     1.968592e-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)             1044             1044             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)          2340b888d410...  2340b888d410...  identical  OK
Runtime (s)                   174.5s           173.0s                      --
=================================================================================
Summary: 15 unchanged


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

Regression Report: solovev_n1
=================================================================================
Ref 1: 4f33fcf60  @ 4f33fcf60 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
Ref 2: b6af97f48  @ b6af97f48 (2026-10-30)
       env: julia 1.12.6, x86_64-linux-gnu, manifest 4c9d54fa (pinned), 2 threads/1 BLAS, jit build
---------------------------------------------------------------------------------
Quantity                      4f33fcf60        b6af97f48        Diff       Status
---------------------------------------------------------------------------------
total energy Re(et[1])        7.362765e-03     7.362765e-03     0.0e+00    OK
total energy Im(et[1])        2.140279e-10     2.140279e-10     0.0e+00    OK
plasma energy Re(ep[1])       -1.042157e+01    -1.042157e+01    0.0e+00    OK
vacuum energy Re(ev[1])       1.042894e+01     1.042894e+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)          2340b888d410...  2340b888d410...  identical  OK
pressure profile (checksum)   108b947087e6...  108b947087e6...  identical  OK
ca_left (checksum)            dec3aca30808...  dec3aca30808...  identical  OK
Runtime (s)                   177.9s           178.4s                      --
=================================================================================
Summary: 22 unchanged

🤖 Generated with Claude Code

d-burg and others added 2 commits October 29, 2026 12:35
…-Δ electron diffusivity apart from P_perp

The critical Δ's W_d and (χ∥/χ⊥)^(1/4) factors take χ⊥,e from the new optional chi_perp_Dc
(slayer_parameters, build_slayer_inputs, [SLAYER] chi_perp_Dc); P_perp keeps its own χ inputs.
Default nothing: unchanged behavior.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts:
#	src/InnerLayer/SLAYER/LayerParameters.jl
@github-actions github-actions Bot added changed-results Results move or an interface breaks - read before upgrading feature New capability labels Oct 30, 2026
@d-burg
d-burg requested a review from matt-pharr October 30, 2026 04:59
@d-burg d-burg self-assigned this Oct 30, 2026
@d-burg d-burg added this to the GPEC v2.0.0 milestone Oct 30, 2026
…ing checks already cover

The equal-to-chi_perp_e block repeats what the default path and the harness pin, the negative value takes the same rejection branch as zero, and the default-nothing check is the last forwarding assertion's own case.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@matt-pharr
matt-pharr merged commit 728a7e7 into develop Oct 30, 2026
15 of 18 checks passed
@matt-pharr
matt-pharr deleted the feature/slayer-dcrit-chi branch October 30, 2026 17:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changed-results Results move or an interface breaks - read before upgrading feature New capability

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants