Port gpout_dw / gpout_dw_matrix (psi-resolved torque response profiles and matrices) as the grid-logic diagnostic
I maintainer di solito rispondono entro 3 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
Direzione di ricerca
Start by reading gpec/gpout.f routines gpout_dw (lines 2579–2650) and gpout_dw_matrix (2655–2891), then review handoff/issue376/RESULTS.md §32 for the motivating case. The work is complete when the ψ-resolved profile, running integral, and response-matrix profiles are available in gpec.h5 and the integrated torque is tracked against fgar in a regression case; scalar boundary-torque grid sensitivity is a separate investigation.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary (revised after fortran-physics-reviewer consultation)
We need to port the ψ-resolved torque response machinery from gpec/gpout.f — gpout_dw (lines 2579–2650) and gpout_dw_matrix (2655–2891) — and use it as the standing grid-logic diagnostic.
The Julia PE currently outputs only the scalar boundary torque Energies/toroidal_torque = −2n·Im(⟨Φ_tot, Λ⁻¹Φ_tot⟩/4). A physics review against the Fortran confirms this scalar is a faithful port of gpout.f:1195–1201 (identical quadratic form, /4 normalization, total-flux argument, torque factor). But it is a boundary quadratic form of the inductance matrix — not the volume-resolved quantity:
gpout_dw: ψ-resolved torque/energy density from the actual self-consistent EL solutions,dW(ψ) = Σ conj(u1)·u2 / 2 / (2μ₀) · 2n·iper step, splined; Re of the running ψ-integral = torque (N·m), Im = 2nδW.gpout_dw_matrix: the mpert×mpert response-matrix generalization per ψ step (dwks/dwk/gind/gres/gindp/gresp; normalized by ξ, Φ_boundary, Φ_x, and coordinate-independently).
Neither has a Julia equivalent (grep confirms). The ψ-integrated gpout_dw torque is the true apples-to-apples comparator for the grid-free KineticForces/fgar NTV torque — the comparison that in Fortran exposed ldp-grid inadequacy.
Measured data motivating the port (DIII-D kinetic-calculated, suppression on)
| run | PE scalar torque [N·m] | fgar torque [N·m] | PE/KF |
|---|---|---|---|
| rot factor 1.0, auto grid (290) | 0.1831 | 0.7241 | 0.25 |
| rot factor 1.0, fixed 1024 | 0.0830 | 0.7281 | 0.11 |
| rot factor 0.2, auto grid (305) | 0.0946 | 0.1282 | 0.74 |
| rot factor 0.2, fixed 1024 | 0.0950 | 0.1286 | 0.74 |
Per the review, the scalar-vs-fgar gap is not by itself a bug — the two are different constructions — so these rows are motivation, not defect evidence. Two genuine flags remain:
- The scalar's grid instability at rot=1.0 (0.183 → 0.083 doubling the grid, while fgar holds to 0.5%) is a red flag on
wt0/plasma_inductanceconvergence — 92% of the physical torque lives at ψ>0.9 where the ω_E sign flip sits within ~one grid cell and the Δ′ rational brackets clear knots. Worth its own investigation, independent of the port. - Until
gpout_dwis ported, no volume-integral cross-check exists — the sharpest grid diagnostic from the Fortran workflow is missing from the Julia code.
Proposed work
- Port
gpout_dw(ψ-resolved torque/energy profile from solutions; theu1†u2bilinear with the 2n/2μ₀ energy→torque factor) — output as a ψ profile (and its running integral) in gpec.h5. - Port
gpout_dw_matrix(ψ × m × m torque/energy response matrix profiles). - Adopt ψ-integrated
gpout_dwtorque vsfgartorque as a tracked regression-harness quantity (a DIII-D kinetic-calculated case) — the designated referee for any kinetic grid logic. - Separately: investigate the scalar boundary torque's grid sensitivity (
wt0convergence near the pedestal ω_E crossing).
Full record: handoff/issue376/RESULTS.md §32 (experiment branch). Evidence h5s: ~/scratch_issue376/d3dkin/tx_*.
🤖 Generated with Claude Code
- Lingua principale
- Julia
- Stelle
- 11
- Fork
- 7
- Merge medio
- 3g 22h
- PR unite (30g)
- 70
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di OpenFUSIONToolkit/GPEC
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
OpenFUSIONToolkit/GPEC#644 ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 74/100
OpenFUSIONToolkit/GPEC#648 ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
OpenFUSIONToolkit/GPEC#643 ·
I maintainer di solito rispondono entro 3 giorni
-
PerturbedEquilibrium - FEATURE - Complete the resistive perturbed-equilibrium workflow from Galerkin and matched resultsForse già presa @matt-pharr l’ha presa 2 giorni fa. Apertafeature
OpenFUSIONToolkit/GPEC#635 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 3 giorni
-
test
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
OpenFUSIONToolkit/GPEC#633 · 2 commenti ·
I maintainer di solito rispondono entro 3 giorni
Tutte le issue di OpenFUSIONToolkit/GPEC
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
QuantumSavory/QuantumClifford.jl#853 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
JuliaPackaging/Yggdrasil#15441 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
JuliaSmoothOptimizers/Penelopt.jl#260 ·
I maintainer di solito rispondono entro 1 giorno
-
authority-de-dommel ready-for-agent
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
Deltares/Ribasim-NL#997 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
Sienna-Platform/InfrastructureSystems.jl#675 ·
I maintainer di solito rispondono entro 2 giorni