You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Deliver one verified electrostatic Fokker-Planck periodic-Fourier solver for KIM. Markus continues from feature/kim-forced-periodicity at d4ac12b0; the independent PR stack #177-#184 remains comparison and reuse material. The accepted implementation must preserve CGS units, the Fourier phase exp(+i(m theta+n phi)), species composition, collision-model dispatch, and the existing hat solver.
Current evidence
The branch builds and its focused tests exit zero, but it is not ready to merge:
test_periodic_vs_global reports raw relative L2 0.8434, periodic/global peak ratio 0.2321, and DC-removed relative L2 1.3449 for the static (m,n)=(-6,2), q=3, constant-B_r, m_phi=0 case. The test only warns.
N_rg and M refinement converge to 7.63e-4 and 1.02e-12, respectively. The window-deformation sequence is non-monotone and ends at relative L2 0.7836, but the test still exits zero.
The production window uses plasma%spec(0)%rho_L. At r_m=36.8 cm, the same case has rho_Le=0.0038313 cm and rho_Li=0.23217 cm, a factor 60.6. The current window and comparison interval therefore resolve electron rather than ion FLR scales.
Multi-ion reconstruction assigns n_s=n_e Z_s/sum Z, which does not satisfy sum Z_s n_s=n_e in general, and copies one ion-temperature profile to every ion.
The off-diagonal FP kernel defaults to dropping k_s^2; its tests mostly share or duplicate the implementation algebra. Production uses only m_phi=0 without a measured tail.
The periodic solve reconstructs full delta Phi with periodic edges, while hat bc_type=3 uses the aligned-potential boundary. Design decision R1 to solve psi=delta Phi-Phi_MA is not implemented. The physical status of a helical -k_s^2 Poisson term is unresolved.
zgesv reports singularity only. There is no condition estimate or scaled backward residual.
No accepted Vaclavik comparison, periodic golden record, E_perp comparison, or layer-current comparison exists.
Branch and PR relation
Work
Role after this audit
feature/kim-forced-periodicity
Primary FP implementation. Continue here through children #185-#190.
37-add-parallel-flow-to-x2-in-kim-fp, 152bf013
Historical implementation of #37. Rebase or reimplement for current x2(:,m_phi).
Prevents a Krook periodic kernel from being labeled FP. Retain until the verified FP dispatch replaces that unsupported path.
PRs #177-#184 must not be merged mechanically into Markus's branch. #191 decides which pieces are retained, superseded, or remain independent after the physics gates pass.
The benchmark pre-registers its gates: roundoff-scaled oracle agreement; backward residual below 1e-10; self-convergence below 1e-3 relative L2; periodization error below 1%; and matched observables within 5% or their tighter combined uncertainty. A failed gate exits nonzero.
Acceptance
This tracker is closed now that every child has been filed as an independently reviewable implementation issue. The children remain open and assigned to Markus. Reopen this tracker only to change the split; use #191 for final integration status.
Goal
Deliver one verified electrostatic Fokker-Planck periodic-Fourier solver for KIM. Markus continues from
feature/kim-forced-periodicityatd4ac12b0; the independent PR stack #177-#184 remains comparison and reuse material. The accepted implementation must preserve CGS units, the Fourier phaseexp(+i(m theta+n phi)), species composition, collision-model dispatch, and the existing hat solver.Current evidence
The branch builds and its focused tests exit zero, but it is not ready to merge:
test_periodic_vs_globalreports raw relative L20.8434, periodic/global peak ratio0.2321, and DC-removed relative L21.3449for the static(m,n)=(-6,2), q=3, constant-B_r,m_phi=0case. The test only warns.N_rgand M refinement converge to7.63e-4and1.02e-12, respectively. The window-deformation sequence is non-monotone and ends at relative L20.7836, but the test still exits zero.plasma%spec(0)%rho_L. Atr_m=36.8 cm, the same case hasrho_Le=0.0038313 cmandrho_Li=0.23217 cm, a factor 60.6. The current window and comparison interval therefore resolve electron rather than ion FLR scales.n_s=n_e Z_s/sum Z, which does not satisfysum Z_s n_s=n_ein general, and copies one ion-temperature profile to every ion.k_s^2; its tests mostly share or duplicate the implementation algebra. Production uses onlym_phi=0without a measured tail.delta Phiwith periodic edges, while hatbc_type=3uses the aligned-potential boundary. Design decision R1 to solvepsi=delta Phi-Phi_MAis not implemented. The physical status of a helical-k_s^2Poisson term is unresolved.zgesvreports singularity only. There is no condition estimate or scaled backward residual.E_perpcomparison, or layer-current comparison exists.Branch and PR relation
feature/kim-forced-periodicity37-add-parallel-flow-to-x2-in-kim-fp,152bf013x2(:,m_phi).z0after primitive interpolation. Keep independent of FP acceptance.PRs #177-#184 must not be merged mechanically into Markus's branch. #191 decides which pieces are retained, superseded, or remain independent after the physics gates pass.
Atomic split
[kim-fp-01]Size the periodic window from active-species Larmor radii.[kim-fp-02]Preserve multispecies profiles in periodic backgrounds.[kim-fp-03]Verify the off-diagonal Fokker-Planck Fourier kernel.[kim-fp-04]Match the periodic and hat electrostatic boundary-value problem.[kim-fp-05]Make periodic convergence and solve checks hard gates.[kim-fp-06]Establish a matched Fokker-Planck shielding benchmark.[kim-fp-07]Integrate the verified Fokker-Planck periodic solver.x2representation.Verification sequence
The benchmark pre-registers its gates: roundoff-scaled oracle agreement; backward residual below
1e-10; self-convergence below1e-3relative L2; periodization error below 1%; and matched observables within 5% or their tighter combined uncertainty. A failed gate exits nonzero.Acceptance
This tracker is closed now that every child has been filed as an independently reviewable implementation issue. The children remain open and assigned to Markus. Reopen this tracker only to change the split; use #191 for final integration status.