Conversation
Atraxus
force-pushed
the
fix/ue112-rml-materials
branch
from
September 16, 2026 16:02
c74c85a to
a4c193a
Compare
Atraxus
force-pushed
the
fix/ue112-rml-materials
branch
2 times, most recently
from
September 17, 2026 14:20
d824bdd to
dd03b36
Compare
Atraxus
force-pushed
the
fix/ue112-rml-materials
branch
from
September 18, 2026 11:29
dd03b36 to
74a489f
Compare
Atraxus
force-pushed
the
fix/ue112-rml-materials
branch
from
September 22, 2026 13:38
74a489f to
ffd67cf
Compare
Atraxus
marked this pull request as ready for review
September 22, 2026 13:51
This branch has not been deployed
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.
Type of Change
Description
RAYX couldn't trace the UE112PGM1 beamline, and the causes mostly produced wrong numbers rather than errors. RML import ignored reflectivityType=0 and read leftover coating parameters anyway, sending an ideal mirror to the tracer as a multilayer — the failure that stopped the trace — and cast RAY-UI's integer enums straight into RAYX's, so a file requesting three discrete energies traced as a Gaussian; .DAT sampling now matches RAY-UI's nearest-node binning, checked against their source. Underneath, the material tables were broadly unsound: NFF tables were parsed but never populated, the Cromer conversion indexed mass and density by array position rather than atomic number so every element used its neighbour's values, molecule tables misread both header length and record size, and every table extrapolated past its measured range. Adds a pre-trace check that substitutes ideal geometric behaviour, with a warning, when an element's materials don't cover the source energy range. 132/132 tests; per-commit rationale in fixes-review.md. Known limits: the coverage check unions all sources and applies that to every element, skips RayListSource, and uses a ±5σ window for SoftEdge; image-plane looping and paraboloid positioning remain open and untouched.
✅ Pre-Merge Checklist
Important
By requesting a review, you confirm this PR is complete from your side. Once approved, it may be merged by someone else. Both developers and reviewers must ensure the PR is truly ready for merge when all checks are green.
Please complete each item before requesting a review.
TODOComments (prefer new issues instead)masterif individual commits don’t add valuemaster)