Repository navigation
Tearing - BUGFIX - Stop the false chi_e fallback warning under chi_perp_Dc and test its forwarding - #619
Conversation
…rp_Dc and test its forwarding With chi_perp_Dc set the critical Δ no longer uses χ⊥,e, so a run whose P_perp model does not use it either should not warn about a chi_e fallback. Setting the key with D_c_type = none now warns that it has no effect. Documents that the deck key is one value for every surface and that it reaches the critical resonant field, and tests the callable form and the forwarding through the TearingProblem assembly. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The critical Δ still needs an electron diffusivity when P_perp uses a one-fluid χ_eff, so the key states that choice rather than implying the power balance supplies the electron χ. Names the chi_e/chi_i closure that reaches the same split, and where it fails. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s a modeling choice The W_d and critical-Δ sources are single-fluid, so the electron channel is GPEC's reading of a single χ_⊥ rather than a statement those papers make. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@d-burg @matt-pharr We're taking this over to carry it to the merge, since #602 landed and this now conflicts with develop. I'm merging develop in and pushing shortly so CI starts, then doing a full review and re-running the harness. Please hold off pushing to this branch until I post the follow-up. |
…_Dc warnings to SLAYERModel #602 replaced SLAYERControl with SLAYERModel and moved the chi inputs to Tearing/SLAYERTearing.jl: the fallback and no-effect warnings, the docstring and the tests move with them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0186CLfjeJeSusNTva5RMfGU
|
Pushed
CI is running. Targeted tests ( |
…perp_Dc replaces it in the critical Δ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0186CLfjeJeSusNTva5RMfGU
|
Review follow-up, pushed as
Targeted tests are re-running. The full harness follows the #617 run on alfven, and then the stamp gets updated. @d-burg One question I couldn't settle: the docs paragraph cites Fitzpatrick, Phys. Plasmas 32, 062509 (2025), Eqs. 230–234, and Connor et al., PPCF 57, 065001 (2015), Eqs. 59 and 61. Neither paper is in |
|
Targeted tests pass at |
There was a problem hiding this comment.
🟡 Changes recommended
An active compatibility issue drops a valid chi_e profile and passes nothing to a Real-typed parameter, causing previously runnable inputs to fail and requiring a fix with regression coverage.
1 open issue
What changed in this PR
This follow-up to #616 corrects SLAYER diffusivity warnings and profile handling, adds forwarding tests, and clarifies how chi_perp_Dc affects critical-Δ calculations.
Changes:
- Suppresses unused
chi_efallback warnings and warns whenchi_perp_Dchas no effect. - Tests callable inputs, parameter forwarding, and warning paths.
- Documents the uniform deck override and its physical interpretation.
The PR reports unchanged regression results. Keep the regression-harness report tied to the reviewed commit.
Third-party human approval is required before merging into develop.
| File | Description |
|---|---|
test/runtests_slayer_runner.jl |
Tests warnings and unused electron-profile handling. |
test/runtests_slayer_inputs.jl |
Tests callable overrides and parameter forwarding. |
src/Tearing/SLAYERTearing.jl |
Corrects fallback and no-effect warnings. |
src/InnerLayer/SLAYER/SLAYER.jl |
Clarifies override scope and critical-field effects. |
src/InnerLayer/SLAYER/KineticView.jl |
Skips electron profiles when unused. |
docs/src/stability.md |
Explains diffusivity modeling choices and override behavior. |
Review effort: Balanced
| model = control === nothing ? nothing : control.P_perp_model | ||
| uses_e = model in (:chi_perp_e, :D_perp) || (control !== nothing && control.D_c_type !== :none) | ||
| # With chi_perp_Dc set, the critical Δ takes it in place of χ⊥,e, so only P_perp can need the file's chi_e. | ||
| uses_e = model in (:chi_perp_e, :D_perp) || (control !== nothing && control.D_c_type !== :none && control.chi_perp_Dc === nothing) |
|
@matt-pharr @jhalpern30 This needs a review from one of you, since we pushed the port and the |
|
Harness record, run after merge: |

Release note
A run that sets
chi_perp_Dcno longer warns about achi_efallback it does not use, and setting the key withD_c_type = "none"now warns that it has no effect. The docs now say that the deck key is one value for every surface and that it also moves the critical resonant field.Regression report
regress --refs 728a7e7d5,62540feda --force(all cases) on feynman (SLURM, 8 threads, Julia 1.11.9, manifest pinned): every case is unchanged, all 25;gal_resistive_peis N/A on both refs, as on develop. Later commits touch onlydocs/src/stability.md.On the Mac (Julia 1.11.6) at
62540feda:runtests_slayer_inputs.jl94/94,runtests_slayer_runner.jl171/171.Notes for reviewers
Follow-up to #616, from an adversarial review of it that finished after it merged.
_slayer_chi_inputscounted χ⊥,e as used by the critical Δ even withchi_perp_Dcset. WithP_perp_model = "tau_E", a non-noneD_c_type,chi_perp_Dcset and nochi_ein the file, the run warned about a fallback that is never used.chi_perp_DcwithD_c_type = "none"was silently ignored.SLAYERControlandstability.mdnow say the deck value applies at every surface, over anychi_eprofile (the ψ-callable form exists only onbuild_slayer_inputs), that it is positive and finite, and that it reaches the critical resonant field through the critical Δ. The motivation instability.mdnow treats the value as a modeling choice and names thechi_e/chi_iclosure that reaches the same split, and where that fails.stability.mdsaid the critical Δ takes the electron channel "in every case". The sources are single-fluid: Fitzpatrick, Phys. Plasmas 32, 062509 (2025), defines the width by electron temperature but with one χ⊥, and Connor et al. (2015) Eqs. 59 and 61 diffuse the total pressure with it. The docs now say the electron channel is GPEC's reading. The code is unchanged._tearing_paramswas untested: removing thechi_perp_Dc=chi.chi_perp_Dcline left every test green. The new test fails with that line removed (checked by hand). The ψ-callable form is now covered too, and the three warning paths.Not in this PR: a per-surface
chi_perp_Dcdeck table, likeomega_E_kHz.For the CHANGELOG: #616 merged with a
!in its title andMigration: none. Nothing in it breaks an existing deck, so it should read as a plain feature.🤖 Generated with Claude Code