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
Known red gates are intentionally excluded from that command: the pre-existing test_rhs_balance baseline failure, the periodization-deformation acceptance gate, and the unresolved periodic-vs-global 5% agreement gate.
Review (standards + spec vs #37). Core implementation verified correct — the x2 Doppler term matches the issue formula exactly (a dedicated test fails on wrong sign or dropped term), zero flow is asserted bitwise equivalent, the toroidal→parallel convention is documented with the Vz/h_z projection applied exactly once, and the E_r/x2 usage is a documented perp/parallel decomposition, not double counting. Negative fixtures cover both rejection reasons; non-goals respected. Marking ready. Findings for follow-up:
Spec gaps (test quality)
The periodized-flow fixture uses a constant Vpar = 2.5e6 — "flow is unchanged in the as-is interval and periodic through the seam" is near-vacuous for a constant profile (any periodization returns the constant). A radially varying flow would make the as-is-preservation and seam checks meaningful. The fixture does still catch a dropped/zeroed flow in the periodic path.
Spec asked to "pass the already-read Vz profile into plasma state"; the implementation re-reads Vz.dat from disk with its own interpolation (profile_input_m.f90:458 via species_mod.f90:1310) instead of reusing the profile read for E_r. Behaviorally equivalent, but two readers of the same file can drift.
The error stop wiring in read_from_text (species_mod.f90:1319) is never exercised — the validator is tested directly.
Compatibility (deliberate, but release-note-worthy)
Two-way behavior change: existing run dirs with a finite Vz.dat and an old config (no parallel_flow_convention key, default 'none') now hard-fail at startup; conversely the shipped example nmls set 'toroidal', silently opting copied configs with a finite Vz.dat into new physics (ion Maxwellian drift in x2).
Docs / config polish
parallel_flow_convention is added to both nmls without a ! doc comment and under the "Output profile filenames" header where it doesn't belong.
AGENTS.md "Required Profile Files" still describes Vz.dat as plain optional — now inaccurate on both the fatal-error condition and the FP-susceptibility consumption.
The x2 hunk bundles a silent latent-bug fix (plasma% → plasma_in% for omega_c) not mentioned in the commit message (verified: no numeric effect for current callers).
Pre-existing oddity (not this PR's fault): in x2_cc, the new Doppler term uses cell-centered 0.5*(kp(j)+kp(j+1)) while the existing base term uses nodal omega_c(j) — mixed centering within one expression.
Base automatically changed from
fix/kim-fp-02-multispecies-background to
feature/kim-forced-periodicityJuly 14, 2026 08:30
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Why
The FP response now represents the configured plasma flow instead of silently omitting its parallel component.
Validation
Validated cumulatively at the stack head:
cmake --build build -j2ctest --test-dir build -E 'test_rhs_balance|test_periodic_convergence|test_periodic_vs_global' --output-on-failure— 35/35 passedKnown red gates are intentionally excluded from that command: the pre-existing
test_rhs_balancebaseline failure, the periodization-deformation acceptance gate, and the unresolved periodic-vs-global 5% agreement gate.Stack
Base:
fix/kim-fp-02-multispecies-backgroundHead:
fix/kim-fp-37-parallel-flowCloses #37