Add explicit-energy monoenergetic Lorentz collisions - #522
Open
krystophny wants to merge 3 commits into
Open
Conversation
krystophny
temporarily deployed
to
github-pages
September 1, 2026 02:17 — with
GitHub Actions
Inactive
krystophny
temporarily deployed
to
github-pages
September 1, 2026 02:17 — with
GitHub Actions
Inactive
krystophny
temporarily deployed
to
github-pages
September 1, 2026 04:17 — with
GitHub Actions
Inactive
krystophny
temporarily deployed
to
github-pages
September 1, 2026 04:17 — with
GitHub Actions
Inactive
krystophny
temporarily deployed
to
github-pages
September 1, 2026 06:04 — with
GitHub Actions
Inactive
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Risk tier
Correctness contract
This adds explicit particle energy and an opt-in pitch-only
lorentz_nustarmodel for monoenergetic transport benchmarks. It records the normalization in NetCDF and assigns each particle a reproducible, distinct deterministic collision seed state. The same particle ID replays the same stream in paired field runs; different particles no longer repeat one common stream.Legacy
facE_alinput and the full pitch-plus-energy collision operator remain the defaults. Existing orbit-history and loss schemas are reused.particle_energy_eVis eV,lorentz_major_radius_cmis cm, andnu_star_standard = R0*nu/(abs(iota)*v0). Signed iota is retained in metadata. The Lorentz mode keeps absolute momentum/energy fixed and obeysP_l(t)=P_l(0) exp[-nu*l*(l+1)*t/2].Tests and source
The seeded oracle gives P1 numerical
0.337608versus exact0.335160, P2 numerical-0.034062versus exact-0.037649, with momentum unchanged exactly. Focused profiles, collision, NetCDF and campaign tests pass. The branch initially changed the legacy untagged deterministic seed and madetest_spectre_crossing_l1fail reproducibly;c708294restores that exact legacy state while retaining tagged particle streams, and the formerly failing test now passes locally in 69.77 s. A full local check builds all targets and passes that regression; its only failure is the separately pre-existingtest_spectre_validationmu-scatter threshold.Data/campaign and corrected parity runs: https://gitlab.tugraz.at/plasma/proj/ntv/bench_aug30835/-/merge_requests/8