PE - FEATURE - Port Fortran sing_spot / use_res_spot for the resonant jump radius (and try layer-width spots for kinetic cases)
Los mantenedores suelen responder en 3 días
@matt-pharr ya está trabajando en esto.
Desde el 22/8/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Problem
The PE singular-coupling jump is evaluated at ψ_s ± spot_psi with a hard-coded numerator (SingularCoupling.jl:378):
spot_psi = 5e-4 / (abs(nn) * abs(sing_surf.q1))
annotated "spot = 5e-4 matches Fortran default singfac_min". That annotation is wrong on both counts: the Fortran quantity is sing_spot, its own namelist knob (default 5e-4, gpec.f:123), unrelated to singfac_min. So the Julia port reproduces the Fortran default but drops the knob — and drops a second capability entirely.
What Fortran actually does
gpec.f:486-508 builds a per-surface sing_spots(ising) array:
- default:
sing_spots(ising) = sing_spot(5e-4); - with
use_res_spot = .TRUE.(requiresgal_flag):sing_spots(ising) = sing_resspot·(n·|q′|)·sfac^(−1/3) + sing_spot, i.e. the matching radius is set by the resistive resonant-layer width (the S^(−1/3) scaling fromsingtype(ising)%restype), floored atsing_spot.
Consumed as lpsi/rpsi = respsi ∓ spots(ising)/(nn·|q1|) (gpout.f:598-603, and the same in gpout_singfld:1658-1663). The netCDF output even ships them as sing_spots ("Sweet spots used for calculating resonant jump quantities").
Proposed work
- Baseline fidelity: expose
sing_spotas a control ([PerturbedEquilibrium]), replace the literal, and fix the misleading annotation. Default 5e-4 keeps current behaviour bit-identical. - Per-surface resistive spot: port the
use_res_spotbranch — matching radius from the resistive layer width per surface, floored atsing_spot. The ingredients exist on the Julia side (ForceFreeStates/Resist.jl, the Galerkin Δ′ path, the inner-layer solvers). - New work — kinetic cases: try a resonant-layer-width-based spot for kinetic runs, where the relevant layer is not the resistive one. Motivation from issue #376 (
handoff/issue376/RESULTS.md§36): on a DIII-D kinetic-calculated case, the resonant-layer surface term is ~20% of the total NTV torque and the PE-vs-NTV comparison agrees to 0.8% only once that layer window is excluded — so the choice of matching radius is not cosmetic there. Related: #375 (Riccati + kinetic) and #423 (torque cross-check).
Also worth noting: a matching-radius bias of exactly this kind was already found and fixed on the Riccati side (#412), which is precedent that the radius choice materially moves Δ′-family numbers.
- Lenguaje dominante
- Julia
- Estrellas
- 11
- Forks
- 7
- Merge medio
- 3 d 11 h
- PR fusionados (30 d)
- 68
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de OpenFUSIONToolkit/GPEC
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
OpenFUSIONToolkit/GPEC#644 ·
Los mantenedores suelen responder en 3 días
-
Delta_mn does not generally exist in favorable-curvature, nonzero pressure gradient plasmasPosiblemente ocupada @matt-pharr la tomó hace 1 día. Abierto
OpenFUSIONToolkit/GPEC#652 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 3 días
-
Dificultad 3/5 1-2 días Aptitud para principiantes 74/100
OpenFUSIONToolkit/GPEC#648 ·
Los mantenedores suelen responder en 3 días
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
OpenFUSIONToolkit/GPEC#643 ·
Los mantenedores suelen responder en 3 días
-
PerturbedEquilibrium - FEATURE - Complete the resistive perturbed-equilibrium workflow from Galerkin and matched resultsPosiblemente ocupada @matt-pharr la tomó hace 4 días. Abiertofeature
OpenFUSIONToolkit/GPEC#635 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 3 días
Todos los issues de OpenFUSIONToolkit/GPEC
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
backport 1.14 GC
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
Los mantenedores suelen responder en 1 día