|
126 | 126 | # The adaptive AMR scan samples in gpec.h5 cannot be pinned (sample locations move under any |
127 | 127 | # refinement change), so this evaluates Δ(Q) on a fixed 4×4 grid over Re(Q), Im(Q) ∈ [-10, 10] |
128 | 128 | # instead — a refinement-stable pin of the dispersion curve itself. The layer parameters are the |
129 | | -# DIII-D-like SLAYER deck's own 2/1 surface values (Tearing/PerSurface, develop @ 1f193a6c), |
130 | | -# quoted verbatim so the case is self-contained and probes the SOLVER alone: the parameter |
131 | | -# chain that produces these numbers is pinned separately by the diiid_slayer_n1 case. |
| 129 | +# DIII-D-like SLAYER deck's own 2/1 surface values (Tearing/PerSurface), quoted so the case is |
| 130 | +# self-contained and probes the SOLVER alone (bt is a placeholder — the dispersion solve never |
| 131 | +# reads it); the parameter chain producing these numbers is pinned separately by diiid_slayer_n1. |
132 | 132 | const COMPUTED_SLAYER_DELTA_PROBE_SCRIPT_TEMPLATE = """ |
133 | 133 | using Pkg |
134 | 134 | %INSTANTIATE% |
@@ -156,21 +156,12 @@ end |
156 | 156 | %RUNINFO% |
157 | 157 | """ |
158 | 158 | # External-reference validation: GPEC's del_s Riccati solver against Fitzpatrick, "Tearing Mode |
159 | | -# Dynamics in Tokamak Plasmas" (IOP 2023), figures 6.2 and 6.3. Unlike every other case in this |
160 | | -# suite -- which pins GPEC against its own previous output -- this one pins it against published |
161 | | -# values, so a failure means "we no longer reproduce the textbook", not "we changed". |
162 | | -# |
163 | | -# riccati_del_s integrates the book's layer equations directly: E and F are (6.29)/(6.30), the |
164 | | -# Riccati form is (6.38), and the returned dels_db is the plotted delta_s/d_beta. Prescribing the |
165 | | -# normalized parameters (D_norm = 1, P_perp = P_tor = Phat, Q_e = Qhat/(1+1/tau)) makes the solver's |
166 | | -# internal Q_hat equal the book's Qhat_*, so the grid below is exactly the figures' axes. |
167 | | -# |
168 | | -# tau is NOT stated in the figure captions; tau = 1 (table 5.1, low-field reactor) is pinned here as |
169 | | -# an explicit assumption of the case, not inherited from a default that could drift. |
170 | | -# |
171 | | -# Phat = 0 is a singular edge of the model, not a hard case: alpha = sqrt(Phat_perp/(1+1/tau)) |
172 | | -# vanishes so the large-q boundary form degenerates, and F -> -i*Qhat at the origin. The grid starts |
173 | | -# just inside so the pins record results rather than a modelling boundary. |
| 159 | +# Dynamics in Tokamak Plasmas" (IOP 2023), figures 6.2 and 6.3 — see the case TOML header for |
| 160 | +# the validation evidence. Prescribing the normalized parameters (D_norm = 1, |
| 161 | +# P_perp = P_tor = Phat, Q_e = Qhat/(1+1/tau)) makes the solver's internal Q_hat equal the |
| 162 | +# book's Qhat_*, so the grid below is exactly the figures' axes. tau = 1 is an explicit pinned |
| 163 | +# assumption (not stated in the captions). The grid starts just inside Phat = 0, which is a |
| 164 | +# singular edge of the model (alpha vanishes and the large-q boundary form degenerates). |
174 | 165 | const COMPUTED_SLAYER_DELS_FITZPATRICK_SCRIPT_TEMPLATE = """ |
175 | 166 | using Pkg |
176 | 167 | %INSTANTIATE% |
|
0 commit comments