Better support for 'intermediate saves' done via kill -USR2 or Progress_bar, and plots should work on an unfinished simulation.
Plotting a completed simulation with 'intermediate saves' will give you latest plot version in the 2D case and multiple, overplotted curves in the 1D case
The mcplot-matlab/mxplot-matlab tool is back. You need to manually install either Matlab or Octave to make use of this
On conda-based installations, the mcdisplay-cad/mxdisplay-cad tool includes the cadquery dependency. On completion of building the model, the OS is asked to handle the resulting CAD model.
The mcdisplay-matlab/mxdisplay-matlab tool is back. You need to manually install either Matlab or Octave to make use of this
For better integration with McStasScript, the mcdisplay-webgl-classic/mxdisplay-webgl-classic is used in such scenarios
The 'newer/fancy' mcdisplay-webgl/mxdisplay-webgl based on THREE.js, react and other javascript requires a slightly time-consuming installation process on 1st launch. The user now gets an info box about this.
The McStas-specific mcdisplay-mantid IDF generator tool received a bug fix for OFF geometry detectors.
Easier to use locally for component/instrument developers
Components and instruments:
McXtrace:
The Fluorescence components have a new flag to enhance statistics/signal from low concentration materials. Work by @farhi.
McStas:
The Union subsystem now handles 'surface physics' with the introduction of a system of refraction/reflection processes on geometry surfaces. Work by @mads-bertelsen.
The Union subsystem now has a functional 3D-mesh system (Union_mesh) that supports CAD style geometries. (Ascii/binary STL files and OFF files are supported. - For now only those with triangular meshing.) Work by @Lomholy.
As part of the overall code-quality improvement process, various aspects of the Union subsystem have been tested / improved / revised. Contributions by @tkittel and @willend in close collaboration with @mads-bertelsen.
New ISIS-related instrument files, components and data:
ISIS_LET by Ross Stewart and Rob Bewley, serves as test-instrument for Commodus_I3 (ISIS source model - corresponds to ViewModISIS with a different parameter interface)
Updated / larger set of input files for the ISIS moderator components
Multilayer_sample from Rob Dalgliesh was updated with nrepeats which allows to repeat an SLD material stack. ISIS_CRISP was updated to include this feature.
TOF_PSDmonitor_toQ is a new component with built-in data reduction from Rob Dalgliesh. Uses ToF to calculate Q. Test_TOF_PSDmonitor_toQ is a basic instrument to showcase the component.
Several of the basic McStas sample components received a systematic validation against analytical methods, thanks to @Lomholy with help from KU/NBI students.
As part of the overall code-quality improvement process, the whole component / instrument base got a BIG overhaul as such (@willend)
Platform support:
The Windows/conda platform which uses the
MSVC compiler is now fully functional
for all McStas code and a good part of the McXtrace code. As part of
this process a new header-file mccode-complex-lib.h
should be used by all code requiring complex numbers. (Implements
functions for e.g. +-*/ operations across platforms -
MSVC does not self implement these operations...) @willend
Unify instr y c py: unify our code generators for C and Python by @farhi in #2009
[Feature] NEW INHERIT keyword in the component grammar: Allows to mix and match component sections from multiple components to achieve new functionality.
For an example use see
Grammar multiple comp copy extend by @farhi in #2012 (-> INHERIT)
[Feature] Add ADR (Architectural Design Record) for grammar changes
Add doc folder for proposed, accepted, rejected, deprecated, superseded changes of McCode GRAMMAR by @willend in #2064
Put in place folder for grammar documentation by @willend in #2070
[Feature] The McStas/McXtrace code generators have a new commandline switch --version-num to print the version number only.
[Feature] New CLI default for mcstas / mcxtrace: --trace is on (This allows any compiled instrument to run with --trace=0 by @willend in #2010 and #2023)
Libs and runtime (various minor changes)
Add Open_File in header (used from e.g. PowderN) by @willend in #2014
Wrap cabs in OpenACC settings by @willend in #2016
Swap default trace behaviour to 'enabled' by @willend in #2023
cif2hkl: update to solve F^2 for Xrays using latest CrysFML by @farhi in #2021
April 29th, 2025: McStas and McXtrace 3.5.27 released
Dear all,
McStas and McXtrace release 3.5.27 is now available.
McXtrace installation instructions are found on GitHub .
What's Changed - common McStas/McXtrace highlights:
[Feature] McStas and McXtrace are now fully on conda-forge also
for Windows, since MCPL 2.0 arrived.
This means that we now recommend to install via this mechanism on Windows. See the instructions
for details.
[Feature]mcrun/mxrun have a new -y
switch which runs a given instrument using its default parameters.
[BUGFIX]mcplot/mxplot should now deal better with
negative / very small numbers in 'log' mode plotting.
[Feature]mcgui/mxgui improved tooltips on the run dialogue.
[Feature]rootmccode works with newer versions of ROOT
[BUGFIX] The KISS random number generator was earlier running
with systematically different random numbers (and a shorter period)
on Windows. Identical instruments now run with identical
random numbers across platforms, when using identical seed.
[CI, packaging, platform support] Lots of work behind the scenes
for portability, packaging, and improved CI of the code on
GitHub.
Better standard solutions and easier possibility of spotting when/if we make errors!
What's Changed - McXtrace specific highlights:
[Feature] New components for Fluorescence + Single_crystal and
Fluoresence + Powder. Come with corresponding new test instruments.
What's Changed - McStas specific highlights:
[BUGFIX] As reported on mcstas-users,
reflective/transmissive polarisers/analysers could sometimes lead to
|P|>1.
This is now fixed by ellimination of
"non-up-down" polarisation components when measuring an "up-down"
polarisation.
[Feature] Contributed component Source_custom by @pablogila,
useful features for simulatiung e.g. CANS and other pulsed
sources. Comes with corresponding new test instrument.
Among other things this means that component mxdoc pages are back online
- by popular demand!
April 5th, 2025: Ongoing webserver upgrade
We are in the process of upgrading the webserver for McStas,
McXtrace and other sites. Please bear with us if you experience
service interruptions. :-)
February 19th, 2025: McStas and McXtrace 3.5.24 released
Dear all,
McStas and McXtrace release 3.5.24 is now available - McXtrace installation
instructons on GitHub .
What's Changed
Important note
McStas and McXtrace will soon change organisation-name on GitHub - from McStasMcXtrace -> mccode-dev
User interfaces and tools
[Feature] mcgui/mxgui Let configuration dialogue spawn your EDITOR to edit your local mccode_config.json
by @willend in https://github.com/mccode-dev/McCode/pull/1838 (available also by --edit-user-config from mcrun/mxrun)
[Feature] mcrun/mxrun: New switch --cogen to allow on-demand switch to non-standard code generator.
See also interoperability with mccode-antlr below
by @willend in https://github.com/mccode-dev/McCode/pull/1851
[Feature] mccode-antlr is an alternative code-generator for McStas and McXtrace - a new development by @g5t and based on ANTLR instead of lex/yacc. The new tool is mainly written in python and thus has a lower barrier for changes in language syntax and code generation. The tool implementations mcstas-antlr and mcxtrace-antlr are thus a candidate implementations to potentially replace the classic mcstas and mcxtrace code generators in the future. Current status is that
McStas: mcstas-antlr is fully feature complete wrt. mcstas for CPU simulations and close to complete for GPU simulations
McXtrace: Not all instruments will compile using mcxtrace-antlr but basic functionality is in place
To try:
Install mccode-antlr from conda-forge or via pip
Adapt your configuration to use e.g. mcstas-antlr by
Setting the new --cogen=mcstas-antlr option in mcrun
Enable or edit the MCCOGEN field of mccode_config.json using the new Save/Edit configuration in mcgui
(The antlr tools default to download comps etc. to an internal cache: Add e.g. -I${MCSTAS} to prefer ingredients fromyour local library)
Use the mcrun-antlr/mxrun-antlr tools provided directly by mccode-antlr
[Feature] NCrystal is now available with McStas on Windows
[Info] Windows via cross-compiled .exeinstaller from mccode.org:
Please place the MCPL-related .bat files from the extras folder in e.g. c:\mcstas-3.5.24\bin to enable MCPL
(May require giving your user 'full access' permissions to the bin folder)
[Info] Windows via conda-forge: MCPL is not yet available but expected during the spring