Changes in McStas/McXtrace 3.7.1, May 21st, 2026
What's Changed
Main new developments:
Common McStas and McXtrace developments:
- Up to 10
USERVARSsupported withMonitor_nD(nameduser0,...,user9) - Qt5 → Qt6 across the package and dependencies
- Bugfix: Fix of rare visualisation bug in
mcdisplay/mxdisplay(e.g. box was not allowed as a comp name) - Doc improvements:
mcdoc/mxdoccan render.texand.mdin addition to.html- Example instruments come with an in-repo
README.mdgenerated via this mechanism - See e.g. McStas BNL_H8 or McXtrace ESRF ID01
- CI/test improvements:
McStas specific developments:
- Integrated support for KDSource
- New component
KDSource - For usage details, see example instrument
Test_KDSourceand the KDSource documentation website - Available as automatic dependency on
conda-forgebased installations (including macOS and Windows 'installers' - Not available as .deb package on Debian systems but may function by installing via pip.
Recommendation: Just useconda-forge.
- New component
- Pulse-length adjustment available for
ESS_butterfly- Handled via specifically named instrument input parameter and
DEPENDENCYline - See example instrument
ESS_butterfly_Adjustable_Pulse
- Handled via specifically named instrument input parameter and
PowderNnow supportsNCrystalcfg-strings.- Forwards request to
NCrystalthat populates datastructures without intermediate.laz/.laufiles - See example instrument Test_Powders -
comp=0mode
- Forwards request to
- Bugfixes:
- Fix to Union, orientation of loggers wrt. master comp
- Bugfixes to recently added improved Union mesh
- Contributions from NBI/KU:
Inhomogenous_incoherent_processin Union from @Lomholy, (via ‘tinyexpr' string-expression inputs) - see rel. test instrument- New spinwave comp
SpinWave_BCOfrom @SSBNS - see rel. test instrument - ESS KVASIR instrument proposal - backend instrument with MCPL input from BIFROST optic. @AmalieFalkenberg. Includes Jupyter notebook in McStasScript syntax.
- McStas component manual uses
.texsnippets from generated via componentsmcdoc
McXtrace specific developments:
- Much improved Union subsystem for McXtrace by @ebknudsen. Makes use of Xraylib for Compton and Rayleigh scattering models.
- Test instruments for the new Union processes, both from @ebknudsen
- PowderCompton_union - Compton scattering and powder diffraction
- Test_KN_Comp_Rayl_union - test instrument using Klein-Nishina, Rayleigh, or Compton
scattering processes.
Detailed list - from the git commit log:
- Shift item in changelogs by @willend in #2400
- Minor manual patches by @willend in #2403
- Fixes to AI doc/manual patches by @willend in #2405
- Ensure to fill all BINS-oriented detector struct members by @willend in #2407
- Inhomogenous incoherent process in Union by @Lomholy in #2402
- Remove deprecated NCrystal-oriented workaround by @willend in #2411
- Suppress loading/plotting of event lists by @willend in #2412
- Fixes #2301 - endorse use of sasmodels comps by @willend in #2413
- Fix for #759 by @willend in #2414
- First stab at fixing #2406 by @willend in #2415
- Make basictest workflow structure more similar across conda / non-conda flows. by @willend in #2417
- Follow-up to #2402, should complete #2305 by @willend in #2418
- Disable MPI when testing non-conda mingw Windows by @willend in #2420
- mctest logs: More information in case of failures / numerical discrepancies by @willend in #2422
- Sync mesh_bugs from main CI dev by @Lomholy in #2423
- Fix to mctest issue: A failed test status would be inherited by subsequent tests by @willend in #2425
- Various improvements mctest by @willend in #2427
- Add jinja2 in windows non-conda CI workflows by @willend in #2429
- Expand Monitor_nD to 10 uservars + other work on monitors by @willend in #2428
- Example instrument with adjustable ESS pulse-length. by @willend in #2430
- Follow-up to #2428, required interface changes by @willend in #2431
- Fix annoying typos in newly-arrived instrument by @willend in #2432
- First attempt at making PowderN load NCMAT data directly via NCrystal by @tkittel in #2371
- Disable non-conda Windows CI. Broken in too many ways. We test that platform through conda only. by @willend in #2439
- union system updated for McXtrace 3 by @ebknudsen in #2282
- Fix for #2436 (McStas+McXtrace) and #2406 (McXtrace) by sync by @willend in #2440
- NCrystal sampling now use the correct per-particle RNG stream by @tkittel in #2437
- Follow up xrl union: Ensure better platform independence via @XRLFLAGS@ by @willend in #2441
- KDSource incoming by @willend in #2442
- Clean up KDSource comp/instr docs by @willend in #2443
- KDS in display section by @willend in #2446
- Initial steps toward fixing #2435 by @willend in #2448
- Candidate fix for #2434 by @willend in #2447
- mctest/mcviewtest: Log and present mcdisplay output pr. example instr by @willend in #2449
- CI/Infrastructure: Update conda-based workflows to use conda-incubator/setup-miniconda@v4 by @willend in #2450
- Consequence-edits after #2447, non mccodelib-parser mcdisplay tools by @willend in #2451
- webgl-classic mode works best with pure line-based visualisation by @willend in #2452
- Revert mcdis-prefixes for polygon / polyhedron (had side-effects) by @willend in #2453
- Fixes for failed visualisation of selected instrs in mctest by @willend in #2454
- Add trailing newlines as these lines interfere with mcdisplay/GPU by @willend in #2455
- Drop seed in %Example line by @willend in #2456
- Mesh bugs by @Lomholy in #2424
- Various bits of work for mcdisplay / from mctest and on GPU. by @willend in #2458
- Repair of mcdisplay-backends post PR #2447 (for fix of #2434) by @willend in #2459
- Run KDSource test-instrument also within the MCPL-test section by @willend in #2460
- Small changes to tiny expression for improved usability by @Lomholy in #2463
- New spin wave comp by @SSBNS in #2373
- Union logger transformations by @mads-bertelsen in #2426
- Apply clangformat to SpinWave_BCO.comp by @willend in #2465
- DRAFT prototyping for in-repo .md comp/instr docs by @willend in #2404
- Adding KVASIR secondary spectrometer mcstas script model by @AmalieFalkenberg in #2345
- ESS_KVASIR instrument model cleanup by @willend in #2466
- Import of component work from #2344 by @willend in #2467
- Preparations to fully support PyQt5/PyQt6/PySide via qtpy by @willend in #2468
- Use qtpy and avoid explicit PyQt5 requirement in devel script by @willend in #2469
- Various doc fixes etc toward release 3.7.0 by @willend in #2470
- Partial fix for #2396 by @willend in #2472
- Update for 3.7.0 -> 3.7.1 ... by @willend in #2473
New Contributors
- @SSBNS made their first contribution in #2373
- @AmalieFalkenberg made their first contribution in #2345
Full Changelog: v3.6.14...v3.7.1