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

November 1st, 2022: macOS 13 Ventura issues

Dear all,

If you upgrade to macOS 13 Ventura (intel/x86_64), your already installed Python tools of McStas 2.7.1 / 3.1 and /Application bundles may not work after the upgrade.

A workaround is to:

New releases 2.7.2 and 3.2 are in preparation and should be released during November or December.


November 1st, 2022: Python 3.10 / pyqtgraph issues in current releases.

Dear all,

Several users have reported "yet another Python issue" that arise in current releases of McStas (2.7.1 / 3.1). After following the advice from September 23rd to replace mcgui/viewclasses.py and mccodelib/pqtgfrontend.py, mcplot-pyqtgraph fails with

mcplot error: scale(self): too many arguments
Traceback (most recent call last):
File "C:\mcstas-2.7.1\lib\tools\Python\mcplot\pyqtgraph\mcplot.py", line 67, in 
main(args)
File "C:\mcstas-2.7.1\lib\tools\Python\mcplot\pyqtgraph\mcplot.py", line 57, in main
raise e
File "C:\mcstas-2.7.1\lib\tools\Python\mcplot\pyqtgraph\mcplot.py", line 51, in main
plotter.runplot()
File "C:\mcstas-2.7.1\lib\tools\Python\mcplot\pyqtgraph....\mccodelib\pqtgfrontend.py", line 62, in runplot
plot_node(node, self.plot_func, plt_layout, viewmodel)
File "C:\mcstas-2.7.1\lib\tools\Python\mcplot\pyqtgraph....\mccodelib\pqtgfrontend.py", line 144, in plot_node
viewbox_lst.append(add_plot(layout, node, plot_func, i, n, viewmodel))
File "C:\mcstas-2.7.1\lib\tools\Python\mcplot\pyqtgraph....\mccodelib\pqtgfrontend.py", line 382, in add_plot
view_box, plt_itm = plot_node_func(node, i, plt, options)
File "C:\mcstas-2.7.1\lib\tools\Python\mcplot\pyqtgraph\plotfuncs.py", line 33, in plot
view_box, lyt = plot_Data2D(data, plt, log=opts['log'], legend=opts['legend'], icolormap=opts['icolormap'],
File "C:\mcstas-2.7.1\lib\tools\Python\mcplot\pyqtgraph\plotfuncs.py", line 203, in plot_Data2D
img.scale(dx,dy)
TypeError: scale(self): too many arguments'
To fix this issue, please replace your

New releases 2.7.2 and 3.2 are in preparation and should be released during November or December.


September 23rd, 2022: Python 3.10 issues in current releases.

Dear all,

We have recently become aware of a couple of issues that arise with all current releases of McStas (2.7.1 / 3.1)

On system with the newest Python versions (3.10 and beyond) you may experience that

In case you experience these problems you may replace the following files within your installation folder:

New stable releases of McStas should be released during November/December this year.

Best and sorry for the inconvenience,

Peter Willendrup


August 20th, 2022: Preview of ICNS 2022 presentation available.

On behalf of the McStas team, Peter Willendrup is giving an ICNS2022 presentation, entitled:

Speeding up legacy: GPU-accelerating the McStas instrument simulation code using OpenACC.

Abstract

The McStas neutron ray-tracing simulation package is a versatile tool for producing accurate simulations of neutron scattering instruments at reactors, short- and long-pulsed spallation sources such as the European Spallation Source.
McStas is extensively used for design and optimization of instruments, virtual experiments, data analysis and user training. McStas was founded as an scientific, open-source collaborative code in 1997 and thus celebrates 25 years of service to the neutron community in 2022.
The contribution presents the project at its current state, with emphasis on recent modernisation-efforts and GPU-acceleration. Using the OpenACC precompiler-mechanism, McStas and its X-ray counterpart McXtrace have received speedups in the range of 10-600 depending on problem size and model complextiy.
By a detailed walk-through of a selected instrument example including the utilised components, we will illustrate the few simple steps users should carry out to port their existing instrument-models.

The video has been pre-recorded and is now available at media.mcstas.org or on YouTube


May 14th, 2022: Neutron-optics and McStas/Union related Post Doc position at PSI:

Dear all,

An interesting Post Doc position is available within the Neutron Optics and Scientific Computing Group at PSI:
https://www.psi.ch/en/pa/job-opportunities/51272-post-doc-in-neutron-instrumentation

A central part of the position is expanding features of the McStas Union by adding support for reflectivity (and potentially refraction).

Main tasks are:

For more information please refer to the link below or contact Dr. Christine Klauser <christine.klauser@psi.ch>

Best,
Peter Willendrup


February 18th, 2022: New ready-to-run McStas box in a browser

We are happy to provide a ready-to-run system with McStas pre-installed. It typically pulls-out an 8-cores computer running at Binder, for free, with both McStas 2.x and 3.x (with MPI multi-core support but no GPU). Perfect for running McStas from anywhere, for training/schools/workshops.

Start it in a single click here:

(Please note that load-time can be a couple of minutes.)

screenshot

Update:

The above docker image has been pushed to dockerhub and can also be run locally at your machine using docker:

Previous news items: 2021,2020,2019, 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998.