|
McStas - A neutron ray-trace simulation package
McStas is a general tool for simulating neutron scattering instruments
and experiments. It is actively supported by DTU Physics, NBI KU, ESS, PSI and ILL.
Simulated
scattering from a hollow-cylinder vanadium
sample.
| The plot shows the intensity of scattered neutrons (red is
highest intensity). The sample is at the center of the sphere with the
neutron beam coming from the left. Clearly seen is the shadowing effect
of the sample causing a lower intensity opposite the beam. Also seen is
the effect of the non-symmetric geometry of the sample, causing lower intensity
directly above and to the side of the sample.
|
Recent news
Migrating from McStas 2.x to 3.x? - Use the wiki-based guides
March 31st, 2023: McStas 3.3 released
Dear all,
The new McStas release v. 3.3 "next-generation" is built and ready for download!
McStas 3.3 is the fourth official release in the 3.x series, with a modernised code-generator and support for GPU acceleration on NVIDIA cards.
3.3 could have been considered a 'minor' update, but new built-in
support for NeXus on all platforms and new SEARCH grammar warrant the .x increment.
Thanks:
Thanks to all members of the joint McStas-McXtrace team and input from our users via emails and GitHub issues alike!
Download and installation instructions are available via our GitHub INSTALL-doc pages.
Selected highlights from the releass are listed below. The full
list changes is also available at https://mcstas.org/CHANGES_McStas.
If you didn't start already, please start your migration to 3.x:
- If you are still in trouble, please write us a GitHub issue or an email to mcstas-users@mcstas.org
Fixes of issues from last 3.x release:
A number of issues from 3.2 were addressed, see the relevant GitHub issues for details:
3.2 issue list
Release highlights
- Installation and core packaging:
- McStas 3.3 comes with embedded NeXus support on macOS and on Debian/Ubuntu NeXus is pulled
as a package dependency. On Windows, please install NeXus from the extras/ folder alongside
your McStas bundle.
- The build process for macOS has been overhauled and is now performed with the embedded
conda environment. Further, the macOS builds should be more robust wrt. added, surrounding
non-standard Python environments on the target machine.
- GPU support:
- McStas 3.3 enables most components and instruments on GPU. A very limited instruments using
the "scatter logger" mechanism are still only available on 2.x and key components (e.g. Union
and NCrystal) compute only on CPU.
Tools:
mcrun now automatically adds NeXus support to your binary if --format=NeXus is given on the
commandline (or if DEPENDENCY " @NEXUSFLAGS@ " is
included in your instrument or component file).
- The new input flag
--IDF will run an IDF generator (i.e. mcdisplay-mantid) prior to performing
a NeXus-based simulation, i.e. for "one-click" support of output in Mantid-compatible NeXus
format with an embedded IDF. Please consult the naming-conventions for sourceMantid , sampleMantid
and nD_Mantid_xx found in https://github.com/McStasMcXtrace/McCode/wiki/McStas-and-Mantid#mcstas-mantid-workflow
to succesfully generate your IDF. Please also inspire from the example instruments in the Mantid
category, see mcgui -> File -> New from template -> Mantid .
mcrun now forwards the -I input to the code-generator, which allows you to add a chosen folder
with extra components etc. to your search path. Setting the -I flag implies recompilation (-c ).
(Please also note the related SEARCH grammar below which allows working on the component search
path directly via the instrument or component grammar.)
- The
mcgui run dialogue now allows to directly specify --format=NeXus and --format=NeXus --IDF when starting a simulation.
mcdisplay-mantid has been given a good overhaul and now works properly with all of the supported
mantid-event-detector geometries of Monitor_nD : rectangular, cylindrical/banana and OFF-file based.
Thanks to Torben R. Nielsen and Celine Durniak (ESS) for repeated testing.
mcplot (-pyqtgraph ) and numpy related bug was quickly spotted
and ironed out with the help of by Rose Robledo FZJ.
- Components and Instruments:
FZP_simple model.comp of Fresnel Zone-Plate (phenomenologic/closed-form thin-plate approximation) added
along with test instrument Test_FZP_simple.instr , work by Anders Komar Ravn (NBI), and Erik B Knudsen
(previously DTU, now Copenhagen Atomics)
Test_Monochromators.instr has been updated to include NCrystal_sample as a monochromator, plus
includes multiple ways of parametrizing Single_crystal lattice
orientation. (Please note that NCrystal support is still not complete on Windows.)
- The 3 example
ConicTracer interface-component codes Conics_EH.comp, Conics_PH.comp, Conics_PP.comp
have been updated to allow specifying non-equidistant radii of the nested optical shells. Please
use vector radii={a,b,c,d,e} or initialization via an instrument-based array and use a compatible
setting of nshells.
- The
Elliptical_guide_gravity.comp will now complain if you are using arrays for specifying varied coating
without setting the nSegments input.
- The multi-v-cavity support from the McStas 2.x version of
Pol_guide_vmirror.comp has been ported to 3.3.
Thanks to Damian Rodriguez and Hal Lee (ESS) for interactions on this component.
- By popular demand, certain characteristics of the
ESS_butterfly component may be modified using
compile-time re-definition. Defaults are
ESS_SOURCE_DURATION0=2.857e-3 s,
ESS_SOURCE_FREQUENCY 14 Hz,
ESS_SOURCE_POWER 5 MW. (Use e.g. mcrun --D1=ESS_SOURCE_DURATION=1.0e-3 to simulate a 1 ms pulse.)
- Similarly, the precession-algorithm constants of
pol-lib may also be redefined at compile-time,
defaults are: MCMAGNET_STACKSIZE=12 ,
mc_pol_angular_accuracy=(1.0*DEG2RAD) deg,
mc_pol_initial_timestep=1e-5 s.
- Core simulation framework / code-generator:
- A new syntax called
SEARCH has been added to the grammar, allowing users to run append a directory
to the mcstas search path when looking for components. The syntax may be given in the
instrument- or component-header directly after a SHELL token and before the DEPENDENCY , DECLARE
tokens, available in two variants:
SEARCH "/the/path/to/add/"
SEARCH SHELL "the_executable --and --some --options"
But you may also apply the same two SEARCH forms in connection with a component instance in TRACE , e.g.:
TRACE
...
SEARCH SHELL "readout-config --show compdir"
COMPONENT readout = Readout(ring="RING", fen="FEN", tube="TUBE", a="left", b="right", ...)
AT (0, 0, 0) ABSOLUTE
...
- Thanks to Gregory S. Tucker (ESS) for contributing this
grammar enhancement!
- Libraries and other runtime code:
- The
(r-)interoff-lib.c family of codes have again received a couple of updates, thanks to McStas user
Richard Wagner (ILL).
NCrystal library version 3.5.1 from T. Kittelmann (ESS) and X.X. Cai (CSNS), distributed
with McStas on Unix platforms only. (Cross-compiles for Windows, but still needs work
for "production" availability.)
MCPL library from the same authors included at v. 1.6.1
- Platforms:
- We still support 64bit Windows 10/11 on Intel, three most recent 64bit macOS (11 Big Sur -> 13 Ventura)
on both Intel and Apple Silicon/M-series processors. Debian-based distros on Intel and Arm, Fedora on Intel.
- On macOS and Windows we bundle a Mambaforge Python with the
installation.
Our Docker and binder containers will be updated within the
following weeks.
We hope you will enjoy this new release!!!
Previous news items: 2022, 2021,2020,2019, 2018, 2017, 2016,
2015, 2014, 2013,
2012, 2011, 2010, 2009,
2008, 2007, 2006,
2005, 2004, 2003, 2002, 2001, 2000, 1999,
1998.
Last Modified: Friday, 31-Mar-2023 14:24:02 CEST
|