November 29th, 2023: (experimental) McStas packages have hit conda-forge
Dear all,
Thanks to help from Thomas Kittelmann (ESS DMSC), McStas is now
available on conda-forge
Initially we support only support Unix platforms Linux and macOS Intel, but macOS Silicon
should come shortly.
The version tag of the packages is "3.4.7" meaning
functionality-wise like McStas 3.4 but with minor improvements. For
next official McStas release everything should match between our
classical binary-distributed platforms and conda-forge.
Should you experience problems, please write up a GitHub Issue.
In preparation for forthcoming McStas 3.5 we are very much open to contributions: 
Hence, if you have nice new component developments or new instrument
files to contribute, please fork the our repo and open a
pull request adding the files!
November 16th, 2023: The McStas project marks 25 year anniversary
The 25th-anniversary celebration of the McStas collaboration took place on the afternoon of November 16th, co-hosted by ESS DMSC and DTU Physics.
Commencing its journey at Risø National Laboratory in the spring of 1997, the McStas software commemorated its 25th year since the release of version 1.0 in October 1998. Over the years, the project expanded into an international collaboration, with notable contributions from institutions such as Institut Laue-Langevin (ILL) and The Paul Scherrer Institute (PSI). In 2007, Risø became part of DTU, and since 2012, the ongoing development of McStas found a new home at DTU Physics, actively collaborating with the Niels Bohr Institute, ILL, PSI, and ESS.
As an open-source software, McStas has benefited from widespread contributions by individual researchers from facilities and universities globally, enriching the codebase with new features and functionality.
McStas has evolved into the leading software globally for neutron scattering simulations, particularly in the realms of instrument design, optimization, and virtual experiments. Notably, the software played a crucial role in designing and optimizing most of the ESS instruments currently under construction in Lund, Sweden.
During the anniversary event, Peter Willendrup, the lead developer and technical-scientific support for the McStas user community since
2002, provided a comprehensive overview of
the 25-year development journey, highlighting key contributions from
various contributors.  Peter is Senior Research Engineer at DTU
Physics and ESS DMSC. Mads Bertelsen, the author of McStasScript,
guide_bot, and Union presented his work on these significant developments. Mads is recently appointed to a permanent position as Scientist at ESS DMSC.
Several event participants delivered short speeches in honor of the
McStas collaboration, including Kurt Clausen, originator of the
"simulation framework" idea and grant holder of the first EU funding
for McStas, Kim Lefmann founder and member of the McStas team since
the start , Kristian Nielsen, the computer scientist who engineered
the initial code-generator technology, and Thomas Holm Rod, head of
the ESS DMSC. Another important guest was Emmanuel Farhi from Synchrotron SOLEIL,
long time contributor to McStas and now the lead on McXtrace.
Pictures from the celebration:
 
 
 
 
 
 
 
 
 
 
 
Also, thanks to the colleagues at ORNL who sent us a nice
birthday card! :-)
 
 
And to José Robledo and Sunyoung Yoo who were behind this lovely
greeting and handcraft :-)
 
 
 
November 1st, 2023: Hints to install McStasScript with McStas 3.4 on Linux
Dear all,
As you may have noticed, the McStas installers for Windows and
macOS now come with McStasScript embedded.
To achieve the same functionality on Linux (e.g. Debian/Ubunutu),
you should perform these few steps
Once these steps are performed you should be able to perform tasks like
  - Use mcstas-pygento generate a McStasScript.pyversion
  of an existing instrument:
~> mcstas-pygen BNL_H8.instr 
Warning: 'V_sample' is an obsolete component (not maintained).
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!! WARNING: Your instrument file uses an input-parameter named !!!
!!!         "lambda" - which is a reserved word in Python       !!!
!!! As a workaround the variable has been named "Lambda" in     !!!
!!! the output python script.                                   !!!
!!! PLEASE consider renaming lambda->Lambda in the .instr file  !!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
CFLAGS=
   
- Use jupytextto convert from.pyto.ipynbformat:
~> jupytext --to ipynb BNL_H8_generated.py
[jupytext] Reading BNL_H8_generated.py in format py
[jupytext] Writing BNL_H8_generated.ipynb
   
- Run jupyter lab BNL_H8_generated.ipynbto interact
  with your converted instrument in Jypyter Lab.
- This should start a jupyter server and bring up a browser:
   
- Executing the cells should give you access to a rendering of the
  instrument and some output simulation data:
    
September 23rd, 2023: McStas 3.4 Docker and Binder available
Dear all,
A Ubuntu 22.04 + McStas-3.4 + McStasScript image is now uploaded to
dockerhub. To run from your local podman / Docker / etc. installation,
execute a command along the lines of:
podman run -p 8888:8888 docker.io/mccode/mcstas-3.4
+ follow instructions from podman/Docker
You may also run the same container via binder, please connect via
this icon:  
To start McStas, please issue the command mcgui from a terminal.
September 21st, 2023: McStas 3.4 linux 'meta-packages' respun
Dear all,
A minor hickup was found with our Debian/Fedora metapackages that
  both had a dependence on mcstas-mcpl-3.4 which is a
  non-existent package.
Newly built, corrected meta-packages have been uploaded as
  replacement, so please re-attempt installation if you experienced
  issues earlier.
 
Also, please be aware that mcpl and NCrystal now come
 in separate, non-McStas related packages - and are not included in
   the "metapackage" on Fedora. To install them, simply execute
sudo dnf install mcpl ncrystal
Sorry for any inconvenience caused!
September 19th, 2023: McStas 3.4 released
Dear all, 
The new McStas release v. 3.4 "next-generation" is built and ready for download!
McStas 3.4 is the fifth official release in the 3.x series, with a modernised code-generator and support for GPU acceleration on NVIDIA cards.
3.4 is a 'major' update with notable changes, e.g. tighter
integration/interoperability with McStasScript, 
new grammar and further CMake-standardisation which will eventually
bring McStas to the conda-forge ecosystem. (And todaay, almost all
dependencies for McStas are brought by mamba/conda on macOS and
Windows.) Thanks to Thomas Kittelmann (ESS) for lots of help and footwork!
Another notable change is that MCPL and NCrystal are now
distributed in stand-alone .deb / .rpm packages that are
McStas-release-independent, for convenience still available through the
packages.mccode.org repository. Please install using e.g.
apt install mcpl ncrystal
(The MCPL and NCrystal codes have been submitted to the
Debian ecosystem by Synchrotron SOLEIL / Emmanuel Farhi / Roland Mas
and should make it to the next Debian Stable, the same procedure is
also under way for McStas.)
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.
  - Fixes of issues from last 3.x release:
  
  
- Installation:
  
    - As usual, our install docs are available on the McCode GitHub pages
    
- The meta-packages for Debian/Ubuntu and RedHat/Centos/Fedora are named e.g.
    mcstas-suite-python-ng for 'next generation' for coexistance with the 2.x
    series packages. 
 (!!! Please note that there will be no future
    2.x releases !!!)
 
-  Tools:
  
  
-  Components and Instruments:
  
    - In relation to the HighNESS project, the Wolter-optic components Conics_* have been given an
    overhaul by Mads Bertelsen. New related instrument WOFSANS is included with McStas 3.4.
    
- Thanks to the work of José Robledo (FZJ), we now have a better interface to the Small-Angle Scattering
    models from SASview, aka. SASmodels. Due to the big number of included models that each correspond
    to a McStas component (94 in total!), these are now found in the "sasmodels" folder of your McStas
    installation. Two example instruments are also included: Test_SasView_bcc_paracrystal_aniso.instr and
    Test_SasView_guinier.instr.
    
- The strain-scanning instrument ILL_SALSA.instr was contributed by Daniel Lomholt Christensen,
    Uni Copenhagen and ILL.
  
 
- Core simulation framework / code-generator:
  
  
- START your migration to 3.x:
  
    - Following the release of 3.4, we will no longer systematically be releasing updates to the
    2.x series.
    
- The Wiki has a dedicated section on McStas 2.x -> McStas 3.x
    conversion. Please use it!
    
- If you are in trouble converting your instrument, please write us a GitHub issue or an email to mcstas-users@mcstas.org
  
 
We hope you will enjoy this new release!!!
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:
    - mcrunnow automatically adds NeXus support to your binary if- --format=NeXusis given on the
  commandline (or if- DEPENDENCY " @NEXUSFLAGS@ "is
    included in your instrument or component file).
- The new input flag --IDFwill 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 forsourceMantid,sampleMantidandnD_Mantid_xxfound in https://github.com/mccode-dev/McCode/wiki/McStas-and-Mantid#mcstas-mantid-workflow
    to succesfully generate your IDF. Please also inspire from the example instruments in theMantidcategory, seemcgui -> File -> New from template -> Mantid.
- mcrunnow forwards the- -Iinput to the code-generator, which allows you to add a chosen folder
    with extra components etc. to your search path. Setting the- -Iflag implies recompilation (- -c).
    (Please also note the related- SEARCHgrammar below which allows working on the component search
    path directly via the instrument or component grammar.)
- The mcguirun dialogue now allows to directly specify--format=NeXusand--format=NeXus --IDFwhen starting a simulation.
- mcdisplay-mantidhas 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.compof 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.instrhas been updated to include- NCrystal_sampleas 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 ConicTracerinterface-component codesConics_EH.comp, Conics_PH.comp, Conics_PP.comphave been updated to allow specifying non-equidistant radii of the nested optical shells. Please
    usevector radii={a,b,c,d,e}or initialization via an instrument-based array and use a compatible
    setting of nshells.
- The Elliptical_guide_gravity.compwill now complain if you are using arrays for specifying varied coating
    without setting thenSegmentsinput.
- The multi-v-cavity support from the McStas 2.x version of Pol_guide_vmirror.comphas 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_butterflycomponent may be modified using
    compile-time re-definition. Defaults areESS_SOURCE_DURATION0=2.857e-3s,ESS_SOURCE_FREQUENCY 14Hz,ESS_SOURCE_POWER 5MW. (Use e.g.mcrun --D1=ESS_SOURCE_DURATION=1.0e-3to simulate a 1 ms pulse.)
- Similarly, the precession-algorithm constants of pol-libmay also be redefined at compile-time,
    defaults are:MCMAGNET_STACKSIZE=12,mc_pol_angular_accuracy=(1.0*DEG2RAD)deg,mc_pol_initial_timestep=1e-5s.
 
- Core simulation framework / code-generator:
  
    - A new syntax called SEARCHhas 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 aSHELLtoken and before theDEPENDENCY,DECLAREtokens, available in two variants:
      - SEARCH "/the/path/to/add/" 
- SEARCH SHELL "the_executable --and --some --options"
      
 But you may also apply the same twoSEARCHforms in connection with a component instance inTRACE, 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.cfamily of codes have again received a couple of updates, thanks to McStas user
    Richard Wagner (ILL).
- NCrystallibrary 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.)
- MCPLlibrary 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.