Repository navigation
PerturbedEquilibrium - BUGFIX! - Reject a perturbed equilibrium solved with a wall - #620
Conversation
…d with a wall The plasma response P = Λ·L⁻¹ took Λ from the run's δW, with its wall, and the surface inductance L from free space, so a wall run silently mixed two vacuum models. plasma_response now errors on a force-free-states solve with a wall, and parse_deck stops on a deck with both [PerturbedEquilibrium] and [Wall]. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014wKUyAaxKdTJ5ch1boMFE1
… TJ equilibrium The Solovev kink needs a wall at every q0 and elongation scanned, so it cannot run a perturbed equilibrium once a wall is rejected. TJ_ideal_example and the three TJ_kinetic_* decks replace the Solovev PE decks on a TJ-analytic equilibrium stable at n = 1 with no wall (et[1] = +0.435). Solovev_ideal_example keeps its wall and drops its PE stage. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ixtures Every test that runs a perturbed equilibrium now starts from a coarse TJ-analytic fixture with no wall. The harness tracks the moved decks as tj_n1 and tj_kinetic_*; solovev_n1 stays as stability only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
de5d179 to
e375075
Compare
solovev_kinetic_nuzero reused a deck that moved to the TJ equilibrium, so it now runs the nuzero fixture widened to the same band and ion mix. lar_ggj_tearing_n1 reused a deck that writes gpec_lar_ideal.h5, which the harness never read. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@matt-pharr I've pushed the Solovev-to-TJ move for #613 onto this PR, so that swap is taken. The perturbed equilibrium examples, fixtures and harness cases now run on a no-wall Harness against Three things touch #602:
|
|
Should this be moved from draft to ready? |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0186CLfjeJeSusNTva5RMfGU
… parse time and in plasma_response Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0186CLfjeJeSusNTva5RMfGU
|
@matt-pharr @d-burg I took this over the line since #602 landed: merged develop (only conflict was the identical |
Closes #613
What this does
The plasma response P = Λ·L⁻¹ took Λ from the run's δW, with its wall, and the surface inductance L from free space, so a run with a wall silently mixed two vacuum models. Now:
plasma_responseerrors on a force-free-states solve with a wall;parse_deckstops on a deck with both[PerturbedEquilibrium]and[Wall].Both error messages give the fix: solve without a wall.
The no-wall equilibrium
The Solovev decks relied on a conformal wall, because their n = 1 kink is unstable without one, and they cannot be re-tuned. A scan over q₀ ∈ [1.9, 5] and κ ∈ [1.0, 1.6] found
et[1] < 0everywhere. Solovev's pressure is linear in ψ, so the edge current is finite and drives a peeling/external kink.Perturbed equilibrium now runs on
eq_type = "tj_analytic", with no wall: R₀ = 10, a = 1, B₀ = 1, q₀ = 1.6, q_a = 3.2, p₀ = 0.1. It is stable (et[1]= 0.435) and keeps the 2/1 and 3/1 surfaces.psihigh = 0.99is pinned, becauseet[1]moves by +0.502 at 0.995. The 3/1 surface sits at ψ_N = 0.955, outside the 0.9 core window, so the tests that use that window account for it.TJ_ideal_example, andtj_n1for it in the harness.Solovev_kinetic_{NTV,multiion,calculated}_examplebecomeTJ_kinetic_*, withkinetic.datandforcing.datrebuilt for the new equilibrium. Their harness cases are renamed totj_kinetic_*.Solovev_ideal_examplekeeps its wall and drops PE.solovev_n1is unchanged.regression_tj_ideal_exampleandregression_tj_kinetic_calculated.Two harness cases also needed fixing:
solovev_kinetic_nuzeroreused a deck that moved. It now runs the nuzero test fixture, widened by overrides to the same band and ion mix, and reproduces the old deck's values exactly.lar_ggj_tearing_n1never produced a result, because its deck writesgpec_lar_ideal.h5. It now overrides the output name.Release note
tj_*; every case that kept its deck is unchanged (harness @ f388c79)[Wall]from any deck with[PerturbedEquilibrium], or passwall=nothingtosolve.Solovev_kinetic_*_exampleare nowTJ_kinetic_*_example, andSolovev_ideal_exampleno longer runs PE.A perturbed-equilibrium calculation no longer silently combines a with-wall plasma energy with a free-space surface inductance. A run with a wall is now an error.
Regression report
Run against
abc12d8eb, the head of #602 at the time (#602 has since merged into develop, adding only a case-TOML change that this branch also carries), on feynman: all cases ate375075bf, then the two repaired cases atf388c7910. That last commit changes only case TOMLs.🤖 Generated with Claude Code
https://claude.ai/code/session_014wKUyAaxKdTJ5ch1boMFE1