forked from McStasMcXtrace/McCode
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES_McStas
2425 lines (2120 loc) · 143 KB
/
CHANGES_McStas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/*******************************************************************************
*
* McStas, neutron ray-tracing package
* Copyright 1997-, All rights reserved
* Risoe National Laboratory, Roskilde, Denmark
* Institut Laue Langevin, Grenoble, France
*
* Documentation: CHANGES
*
* %Identification
* Written by: KN, KL, PEO, EF, PW, EK, JB
* Origin: DTU, ILL, Uni Copenhagen, PSI
* Modified by: KN, October 26, 1998 : initial release 1.0
* Modified by: KN, March 31, 1999 : release 1.1
* Modified by: KN, January 31, 2000 : release 1.2
* Modified by: KN, May 18, 2000 : release 1.3
* Modified by: KN, July 28, 2000 : release 1.4
* Modified by: KN, PEO, March 16, 2001: release 1.4.1
* Modified by: PEO, EF, October, 10th, 2001: release 1.5
* Modified by: PW, EF, May 19th 2003: version 1.7
* Modified by: PW, EF, March 4th 2004: version 1.8
* Modified by: PW, EF, November 16th 2005: version 1.9
* Modified by: PW, EF, March 29th 2006: version 1.9.1
* Modified by: PW, EF, December 4th 2006: version 1.10
* Modified by: PW, EF, July 3rd 2007: version 1.11
* Modified by: PW, EF, EK May 8th 2008: version 1.12
* Modified by: PW, EF, EK April 2nd 2009: version 1.12a
* Modified by: PW, EF, EK June/July 2010: version 1.12b
* Modified by: PW May-June 2011: version 1.12c (re-release)
* Modified by: PW November 2012: version 2.0RC1 (pre-release)
* Modified by: PW December 2012: version 2.0RC2 (pre-release)
* Modified by: PW December 2012: version 2.0
* Modified by: PW February-July 2014: version 2.1 (and the 2.1RC1 pre-release)
* Modified by: PW and JG May 2015: versions 2.2 and 2.2a
* Modified by: PW March 2016: version 2.3
* Modified by: PW May 2017: version 2.4
* Modified by: PW June 2017: version 2.4.1
* Modified by: PW December 2018: version 2.5
* Modified by: PW January 2020: version 2.6
* Modified by: PW February 2020: 3.0beta tech preview
* Modified by: PW May 2020: version 2.6.1
* Modified by: PW November 2020: version 2.7
* Modified by: PW December 2020: version 3.0
* Modified by: PW September-October 2021: version 2.7.1
*
* This file is part of McStas 2.7.1, released October 4th 2021.
* It gives a 'changes' list from the beginning of the project
*
*******************************************************************************/
Changes in McStas v.2.7.1, October 4th, 2021
McStas 2.7.1 is the 11th release in the 2.x series, provides minor incremental
improvements and fixes various minor issues with McStas 2.7
Thanks:
- Thanks to all contributors of components, instruments etc.! This is what Open Source
and McStas is all about!
Installation:
- Our install docs are available on the McCode GitHub page at
https://github.com/McStasMcXtrace/McCode/tree/master/INSTALL-McStas
Fixes of issues from last release:
- A number of minor issues from 2.7 were addressed, see the relevant GitHub issues for details:
- https://github.com/McStasMcXtrace/McCode/issues?q=is%3Aissue+is%3Aclosed+label%3Amcstas-2.7
Tools:
- mcgui allows definition of an "external editor", see the configuration menu.
- On Linux we preconfigure for gedit (where we now also provide syntax-highlighting, on macOS
and Windows we default to use the OS file-type settings, i.e. whatever you get by double-clicking
an instr file.) Use ctrl/meta + shift + e to spawn the editor from mcgui.
- User-level configuration files are now in a more user-readable form with indentation.
- Use mcrun --write-user-config to save your user-level configuration file.
- Config setting 'QSCI' has been added, putting this to 0 disables the QScintilla editor.
- On macOS (from 11.0 Big Sur onwards), mcgui assumes light/dark mode with the system settings. A
side-effect is that the syntax-highlighting in our QScintilla editor becomes close-to-unredable.
Workarounds are:
- Use the "external editor" option added to mcgui, see above.
- Don't use dark mode
- Start mcgui in light mode, then switch to dark mode
Platforms:
- We still support 64bit Windows 10/11 on Intel, all recent 64bit macOS including 11.0 Big Sur on
both Intel and Apple Silicon/M1 processors. Debian-based distros on Intel and Arm, RPM-based distros on Intel.
(RPMs are built on/for CentOS and Fedora, you may get varying milage elsewhere.)
Libraries:
- Updated version 2.7.3 NCrystal library from T. Kittelmann (ESS) and X.X. Cai (CSNS), distributed with McStas on Unix
platforms only. With McStas 2.7.1, NCrystal is more tightly integrated and should run without using ncrystal_preparemcstasdir.
- MCPL library from the same authors included at v. 1.3.2.
Components:
- Minor updates only, adjustments to align with McStas 3.x features
Instruments:
- New "test" instruments have been added for easier comparison with McStas 3.x.
We hope you will enjoy this new release!!! (And keep an eye out for 3.1, it is almost also there...)
Changes in McStas 3.0, December 15th, 2020
McStas 3.0 is the first official release in the 3.x series, with a modernised
code-generator and support for GPU acceleration on NVIDIA cards.
Thanks:
- Thanks to all members of the joint McStas-McXtrace team, you guys ROCK!
- A special thanks to Jakob Garde who has continued to contribute (unpaid!)
to the 3.0 efforts even after leaving DTU.
- Thanks to Guido Juckeland (HZDR,DE) and Sebastian Alfthan (CSC,FI) who were
behind the GPU Hackathons we participated in
- Thanks to our NVIDIA mentors Vishal Metha, Christian Hundt and Alexey Romanenko
Installation:
- Our install docs are now available on the McCode GitHub page at
https://github.com/McStasMcXtrace/McCode/tree/master/INSTALL-McStas
- 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
- OpenACC GPU (and CPU multicore) acceleration is at the time of release ONLY
supported on Linux systems, as this is the only platform targeted by the NVIDIA
HPC package. Versions 20.x should all work. On Windows 64bit systems, support is
promised to arrive with WSL 2.0 (i.e. via a Linux-layer), but may also become
supported with a targeted release by NVIDIA. macOS is unfortunately not supported
by NVIDIA HPC acceleration.
Main new features and changes:
1. New code-generation scheme based on functions instead of #defines, which brings
* Much improved compilation-times, the code is better suited for modern compilers
* In most cases a speed-up of order 20%
* The neutron _particle is now represented by a struct
* The component types and instances are also represented by structs
* In the generic TRACE function of a given component type, the _comp var is
short-hand for "whatever the component instance is"
* New instrument section of USERVARS %{ double example_flag; %} which enriches
the _particle struct
* In component DECLARE blocks, assignments can no longer be done and all declarations
must be listed independently, i.e double a; is OK, double a,b; is not. Variables in
this scope are automatically so-called "OUTPUT PARAMETERS" (we may deprecate that
keyword completely for the official McStas 3.0 release)
* Components no longer support DEFINITION PARAMETERS, instead the SETTING PARAMETERS
must be used, which now includes a vector and string type supplementing the (default)
double/MCNUM and int types.
* New macros have been added for
* INSTRUMENT_GETPAR(parameter_name)
* COMP_GETPAR(component, parameter_name) which is similar to the legacy MC_GETPAR
* MC_GETPAR3(component_class, component_name,parameter_name)
* The function particle_getvar(_particle,"variable",success) provides component-access
to the instrument USERVARS, e.g. in Monitor_nD.
* Further, the new cogen implements support for Nvidia GPU's, for details see point 2 below.
2. Support for OpenACC acceleration on NVIDIA GPU's on Linux systems
* #pragma driven, inserted by the code-generation, but also implemented in libs and comps
* Speedups measured using top-notch NVIDIA V100 datacenter cards are in the range of 10-600 with
respect to a single-core of a modern CPU, see the figure in the below link. It was generated for
an "ideally" parallel instrument.
(https://camo.githubusercontent.com/96fcceec70d0761f8709eda4de7bcbde5597aee6/687474703a2f2f746d702e6d63737461732e6f72672f563130302d73706565647570732e706e67)
* Platform support / compiler configuration:
- Required compiler for GPU/OpenACC: NVIDIA HPC SDK 20.x or newer. Community edition works fine
- Required GPU hardware: NVIDIA Tesla card + configured driver
- Windows: At this point UNSUPPORTED for GPU/OpenACC since NVIDIA does not yet ship a package for
this platform. Support should come with WSL 2.0 or via native support from NVIDIA.
- macOS: At this point UNSUPPORTED for OpenACC since NVIDIA does not ship a package for
this platform.
- Linux: Full acceleration support with GPU, and with CPU/multicore.
* Install the compiler and put it on your system PATH. Install and configure Nvidia drivers for your card.
* We hope that GCC will offer better support for OpenACC in the near future.
* Tool support
- On Linux and macOS mcrun is preconfigured so that mcrun -c --openacc compiles with:
- Linux: nvc -ta:tesla,managed,deepcopy -DOPENACC
- Linux: You may configure for use on CPU/multicore via: nvc -ta:multicore -DOPENACC
- The --funnel option can be used to launch the FUNNEL simulation flow, see description below.
* For both of the above, adding -Minfo:accel will output verbose information on parallelisation
* In mcgui, the mcrun --openacc configuration can be selected via the preferences
* Both mcgui and mcrun allow combining --openacc and --mpi if you have multiple GPU's available.
The n'th mpi process will attempt to use the k'th GPU, where k = #available GPU's % #MPI nodes.
3. Special McStas 3.0 grammar for mixed CPU/GPU mode:
* A "FUNNEL" mode has been added, which allows
- Mixed GPU/CPU mode, were sections of the instrument are executed on each device type, with
copying of neutron-bunches back and forth.
- When this instrument grammar is specified, it signifies that the component should be executed
on CPU rather than GPU.
CPU SPLIT 10 COMPONENT Sample = Something()
- Sections before and after that are not marked CPU will be executed on GPU.
- If a component includes the NOACC token in the component header, the CPU-mode is forced
through the compilation, as it signifies that the component does NOT support GPU. This is
for the time being the case for Union_master. (Support is expected to come with McStas 3.1)
4. Interoperability with McStas 2.7
* Support for MCPL event interchange has been added through MCPL_input and MCPL_output components,
that work both on CPU and GPU for McStas 3.0. Note however that targeting GPU, MCPL_input reads
ALL particle events durin INITIALIZE and MCPL_output writes ALL particle events during SAVE,
whereas when using CPU in 3.0 or 2.7, reads and writes happen during the TRACE flow.
5. Known limitations
* The Union subsystem works on CPU only for now, but can be used in the mixed GPU/CPU funnnel
mode as mentioned above. Union_master is a NOACC component.
* The same solution is applied in use of the NCrystal_sample and will eventually come for Sample_nxs.
* Not all features of all components correspond to those from McStas 2.7, but all essential components
have beenfully ported from the 2.7 tree to the 3.0 tree. Hence, some parts distributed with McStas 2.7
will either not exist in the 3.0 release or may not function, due to either:
(1) very specialised features (2) maintainability issues or (3) use ofcomplex algorithms.
* Notable examples of unsupported / non-functional components or instruments are:
- The scatter_logger and shielding_logger components / instruments
- The Vitess_chopperfermi component
- The FZJ_BenchmarkSfin2 instrument / SANS_benchmark2 component
- The MCPL_merge instrument
- SEMSANS_instrument
- Sample_nxs
* Generally, most components/instruments are now ported to our OpenACC based GPU-technology, but you
likely may find combinations of use that slipped through our not fully exhaustive test-suite. Missing
support may come in the form of either
- Code that does not compile
- Instruments that segfaults during execution
- Instruments or components that produce obscure results
* At the time of release, the nightly tests http://new-nightly.mccode.org/ show that
- McStas 3.0 ships with 211 instruments that succesfully compiles
- These instruments use 147 of our components
* We don't ship an updated set of manuals for McStas 3.0, but essential documentation is available
on the McCode GitHub wiki https://github.com/McStasMcXtrace/McCode/wiki
Tools:
- The tools for McStas 3.0 correspond to those distributed with McStas 2.7, apart from the above-mentioned
mcrun options for --openacc and --funnel.
- On macOS (from 11.0 Big Sur onwards), mcgui will assume light/dark mode with the system settings.
(The change came from using the system python3 with our app/miniconda-distributed Qt libs etc.)
- We now no longer officially support the perl/PGPLOT backend, these may or may not work on your system.
- The mcformat utility has been deprecated.
Platforms:
- Nothing really new to report here. We still support 64bit Windows 10, all recent 64bit macOS including 11.0 Big Sur,
Debian-based and RPM-based distros. (RPMs are built on/for CentOS, you may get varying milage elsewhere.)
Libraries:
- Updated version 2.2.2 NCrystal library from T. Kittelmann (ESS) and X.X. Cai (CSNS), distributed with McStas on Unix
platforms only. With McStas 3.0, NCrystal is more tightly integrated and should run without using ncrystal_preparemcstasdir.
- MCPL library from the same authors now included at v. 1.3.2
We hope you will enjoy this new release!!!
Changes in McStas v.2.7, Novmeber 27th, 2020
McStas 2.7 is the 10th release in the 2.x series, provides minor incremental
improvements and fixes various minor issues with McStas 2.6.1
Thanks:
- Thanks to all contributors of components, instruments etc.! This is what Open Source
and McStas is all about!
Installation:
- Our install docs are now available on the McCode GitHub page at
https://github.com/McStasMcXtrace/McCode/tree/master/INSTALL-McStas
Fixes of issues from last release:
- A number of minor issues from 2.6.1 were addressed, see the relevant GitHub issues for details:
- https://github.com/McStasMcXtrace/McCode/issues?q=label%3A%22McStas+2.6.1%22+label%3A%22ready+for+release+on+master%22+is%3Aclosed
Tools:
- On macOS (from 11.0 Big Sur onwards), mcgui will assume light/dark mode with the system settings.
(The change came from using the system python3 with our app/miniconda-distributed Qt libs etc.)
- We now no longer officially support the perl/PGPLOT backend, these may or may not work on your system.
Platforms:
- Nothing really new to report here. We still support 64bit Windows 10, all recent 64bit macOS including 11.0 Big Sur,
Debian-based and RPM-based distros. (RPMs are built on/for CentOS, you may get varying milage elsewhere.)
Libraries:
- Updated version 2.1.1 NCrystal library from T. Kittelmann (ESS) and X.X. Cai (CSNS), distributed with McStas on Unix
platforms only. To use it, carry out the below steps:
mcstas:~/NCryst$ mcstas-2.7-environment
mcstas:~/NCryst$ source $MCSTAS/ncrystal/setup.sh
mcstas:~/NCryst$ ncrystal_preparemcstasdir
mcstas:~/NCryst$ cp $MCSTAS/examples/NCrystal_example_mcstas.instr .
mcstas:~/NCryst$ mcrun -c NCrystal_example_mcstas.instr
- MCPL library from the same authors now included at v. 1.3.2.
Components:
- Updated Union library from Mads Bertelsen, ESS DMSC.
- Cyl_monitor.comp, enriched with angular limits and dynamic allocation.
- Event_monitor_simple.comp, a simple ascii event-list monitor, good for debugging purposes
Instruments:
- New "unit test" instruments for basic functionalities and key components:
* Random numbers and focusing
. Test_RNG_rand01.instr
. Test_RNG_randnorm.instr
. _RNG_randpm1.instr
. Test_RNG_randtriangle.instr
. Test_RNG_randvec_target_circle.instr
. Test_RNG_randvec_target_rect.instr
. Test_RNG_randvec_target_rect_angular.instr
* Monitors
. Test_Monitor_nD.instr
* Sample components
. Test_Incoherent.instr
. Test_PowderN.instr
. Test_PowderN_concentric.instr
. Test_SX.instr
. Test_Sqw.instr
- Various new instruments used for comparison with the forthcoming McStas 3.0
ILL_D2B_noenv.instr, ILL_H22_D1A_noenv.instr, ILL_H22_D1B_noenv.instr,
- Name change, TasResoTest.instr is now called Test_TasReso.instr
- Instruments providing earlier models of ESS moderators have been retired, i.e. are not in the
release anymore:
ESS_2001_bispectral.instr, ESS_2015_test.instr, ESS_Brilliance_2001.instr, ESS_Brilliance_2013.instr,
ESS_Brilliance_2014.instr, ESS_Brilliance_2015.instr, ESS_Brilliance_TDR.instr
We hope you will enjoy this new release!!! (And keep an eye out for 3.0, it is almost also there...)
Changes in McStas v.2.6.1, May 4th, 2020
McStas 2.6.1 is the nineth release in the 2.x series and fixes various minor issues with McStas 2.6.
Thanks:
- Thanks to all contributors of components, instruments etc.! This is what Open Source
and McStas is all about!
Installation:
- Our install docs are now available on the McCode GitHub page at
https://github.com/McStasMcXtrace/McCode/tree/master/INSTALL-McStas
Fixes of issues from last release:
- A number of minor issues from 2.6 were addressed, see the relevant GitHub issues for details:
- https://github.com/McStasMcXtrace/McCode/issues?q=is%3Aissue++label%3A%22McStas+2.6%22+
Changes in McStas 3.0 technology preview, Feburary 25th, 2020
IMPORTANT: 3.0beta IS a proper 'beta', that is: Don't expect it to fully work, don't expect it to be fully stable,
Do on the other hand expect interesting BUGS!
McStas 3.0beta is a preview of technology in the forthcoming 3.x series.
Thanks:
- Thanks to all members of the joint McStas-McXtrace team, you guys ROCK!
- Thanks to Guido Juckeland (HZDR,DE) and Sebastian Alfthan (CSC,FI) who were
behind the GPU Hackathons we participated in
- Thanks to our NVIDIA mentors Vishal Metha, Christian Hundt and Alexey Romanenko
Installation:
- As this is NOT a production release, we will only offer installation packages in
the form of "manually installable" packages.
Main new features and changes:
1. New code-generation scheme based on functions instead of #defines, which brings
* Much improved compilation-times, the code is better suited for modern compilers
* In most cases a speed-up of order 20%
* The neutron _particle is now represented by a struct
* The component types and instances are also represented by structs
* In the generic TRACE function of a given component type, the _comp var is
short-hand for "whatever the component instance is"
* New instrument section of USERVARS %{ double example_flag; %} which enriches
the _particle struct
* In component DECLARE blocks, assignments can no longer be done and all declarations
must be listed independently, i.e double a; is OK, double a,b; is not. Variables in
this scope are automatically so-called "OUTPUT PARAMETERS" (we may deprecate that
keyword completely for the official McStas 3.0 release)
* Components no longer support DEFINITION PARAMETERS, instead the SETTING PARAMETERS
must be used, which now includes a vector and string type supplementing the (default)
double/MCNUM and int types.
* New macros have been added for
* INSTRUMENT_GETPAR(parameter_name)
* COMP_GETPAR(component, parameter_name) which is similar to the legacy MC_GETPAR
* MC_GETPAR3(component_class, component_name,parameter_name)
* Further, the new cogen implements support for Nvidia GPU's, for details see point 2 below.
* Status on CPU (20200220) is that 134 out of 176 instruments from the mcstas-3.0 branch compile
for CPU - and most run as expected.
2. Limited, experimental support for OpenACC acceleration on NVIDIA GPU's
* #pragma driven, inserted by the code-generation, but also implemented in (many, not all)
libs and comps
* Status on GPU (20200220) is that 91 out of 176 instruments from the mcstas-3.0 branch compile
for GPU. These 91 instruments include in total 73 out of 213 components. Out of the functional
instruments, around 45 produce meaningful data at this point.
* Speedups measured using top-notch NVIDIA V100 datacenter cards are in the range of 10-600 with
respect to a single-core of a modern CPU, see the figure in the below link. It was generated for
an "ideally" parallel instrument.
(https://camo.githubusercontent.com/96fcceec70d0761f8709eda4de7bcbde5597aee6/687474703a2f2f746d702e6d63737461732e6f72672f563130302d73706565647570732e706e67)
* Platform support / compiler configuration:
- Required compiler for GPU/OpenACC: PGI 19.4 or newer. Community edition works fine
- Required GPU hardware: NVIDIA Tesla card + configured driver
- Windows: At this point UNSUPPORTED for GPU/OpenACC since the CUDA managed memory mode is not
available for this platform. (Very simple instruments without monitors may work, at this point
untested). OpenACC multi-threading should work with pgcc -ta:multicore -DOPENACC, also untested.
- macOS: Only CPU-thread parallelisation is supported, since NVIDIA Cards at this point are
unsupported on recent macOS versions. Parallelises similarly to MPI, but slightly slower.
- Linux: Full acceleration support with GPU, and with multicore.
* Install the compiler and put it on your system PATH. Install and configure Nvidia drivers for your card.
* We hope that GCC will offer better support for OpenACC in the near future.
* Tool support
- On Linux and macOS mcrun is preconfigured so that mcrun -c --openacc compiles with:
- Linux: pgcc -ta:tesla,managed,deepcopy -DOPENACC
- macOS: pgcc -ta:multicore -DOPENACC
* For both of the above, adding -Minfo:accel will output verbose information on parallelisation
* In mcgui, the mcrun --openacc configuration can be selected via the preferences
3. Interoperability with McStas 2.6
* Rudimentary support for MCPL event interchange has been added through a set of MCPL_input_GPU
and MCPL_output_GPU components.
4. Known limitations
* As mentioned above, not all components/instruments are ported to the GPU technology yet
* We have not fully decided if our newly implemented random number algorithm is sufficiently
robust/stable.
* Monitor_nD user vars can not currently access the neutron USERVARS, but a solution is in the pipe.
* Not all features of all components correspond to those from McStas 2.6, partly because not all
modifications have been ported from the 2.6 tree to the 3.0 tree.
* Especially the sample components may
- Create GPU-side segmentation faults etc. with big datasets / large statistic, this is a
targeted area of development before the actual release of 3.0. :-)
- Give simulation results that are systematically 'off' with respect to CPU results.
Changes in McStas v.2.6, January 24th, 2020
McStas 2.6 is the eight release in the 2.x series and fixes various issues with McStas 2.5, plus
new developments.
Thanks:
- Thanks to all contributors of components, instruments etc.! This is what Open Source
and McStas is all about!
Installation:
- Our install docs are now available on the McCode GitHub page at
https://github.com/McStasMcXtrace/McCode/tree/master/INSTALL-McStas
Fixes of issues from last release:
- A number of issues from 2.5 were corrected, see the relevant GitHub issues for details:
- https://github.com/McStasMcXtrace/McCode/issues?utf8=✓&q=is%3Aissue+is%3Aclosed+label%3A%22McStas+2.5%22+
Plus lots of work in general:
https://github.com/McStasMcXtrace/McCode/issues?page=1&q=is%3Aissue+is%3Aclosed++project%3AMcStasMcXtrace%2FMcCode%2F5&utf8=✓
Tools:
- As for the earlier few releases the default set of tools are Python-based and developed by Jakob Garde, DTU.
The Perl ones are still around as a backup solution, handy for those that prefer "the oldschool way"
- See https://github.com/McStasMcXtrace/McCode/wiki/User-documentation-for-the-2017--Python-tool-set for usage
- On Unix platforms, the Perl tools are accessible by adding .pl to the wanted tool (mcgui.pl etc.)
- On Windows, the Perl tools are accessible by adding -pl to the wanted tool (mcgui-pl etc.)
- BUT: Please use the Python tools and provide feedback rather than sticking with the Perl! :-)
- Contribution from Tobias Weber ILL: Python-version of mcresplot.
Platforms:
- Nothing really new to report here. We still support 64bit Windows 10, all recent 64bit macOS, Debian-based and RPM-based distros
(RPMs are built on/for CentOS, you may get varying milage elsewhere.)
Libraries:
- Updated version 1.0.0 NCrystal library from T. Kittelmann (ESS) and X.X. Cai (CSNS), distributed with McStas on Unix
platforms only. To use it, carry out the below steps:
mcstas:~/NCryst$ mcstas-2.6-environment
mcstas:~/NCryst$ source $MCSTAS/ncrystal/setup.sh
mcstas:~/NCryst$ ncrystal_preparemcstasdir
mcstas:~/NCryst$ cp $MCSTAS/examples/NCrystal_example_mcstas.instr .
mcstas:~/NCryst$ mcrun -c NCrystal_example_mcstas.instr
The NCrystal library from this version of McStas also includes the nice ncrystal_inspectfile python tool that allows
to quickly visualise scattering-kernel data from .ncmat, .nxs, .lau and .laz files. To use that:
mcstas:~/NCryst$ mcstas-2.6-environment
mcstas:~/NCryst$ source $MCSTAS/ncrystal/setup.sh
mcstas:~/NCryst$ ncrystal_inspectfile $NCRYSTALDIR/data/Ca_sg225.ncmat
- MCPL library from the same authors now included at v. 1.3.0. The distributed version of MCPL now includes the
python-based pymcpltool command that can e.g. be used to extract gaussian statistics from MCPL files. McStas now
ships the mcpl2phits and phits2mcpl tools (mcpl2ssw and ssw2mcpl have been included since mcstas-2.3).
- Updated version of the NXS lib from Mirko Boin HZB.
Components:
- Updated Union library from Mads Bertelsen, ESS DMSC including:
- New geometries, mesh (for stl file input in Union setups) and cone (e.g. relevant for describing anvils
in pressure cells.
- New AF_HB_1D_process for modelling 1D antiferromagnetic Heisenberg chains and PhononSimple_process for
modelling single-branchg acoustic phonons ala Phonon_simple
- New SINE2020-developed Union physics processes from Victor Laliena, Uni Zaragoza: Texture_process.comp
and IncoherentPhonon_process.comp. See https://doi.org/10.3233/JNR-190117.
- Shieldinglogger-components from Rodion Kolevatov, IFE for estimating gamma-production in guides:
- Contributions Dose_calculator and Shielding_calculator
- Patched versions of optics-components: Elliptic_guide_gravity_shieldinglogger, Guide_channeled_shieldinglogger,
Guide_curved_shieldinglogger, Guide_gravity_shieldinglogger, Guide_shieldinglogger
- Components patched / derived from the "scatterlogger" framework to model Ni and Ti layers seperately: Shielding_log_iterator_Ni_new,
Shielding_log_iterator_Ti_new, Shielding_log_iterator_stop, Shielding_log_iterator_total, Shielding_logger.comp,
Shielding_logger_stop.comp.
- See https://doi.org/10.3233/JNR-190123, https://doi.org/10.1016/j.nima.2018.12.069 and https://doi.org/10.3233/JNR-180088
- Please note that the included Shielding- and Dose- calculators will only give sensible for guides with
borosilicate glass substrate. If the substrate is, e.g. copper, the dose rates from neutrons transmitted
through the coating and captured in the substrate will overshoot the coating contribution significantly,
so that shielding has to be enforced by few tens of centimeters of concrete.
- Guide_anyshape_r additions from Peter Link MLZ. Allows describing geometry in OFF format with reflectivity "per" face.
Test instrument is Test_guides which has been updated to include this modified component.
- Vertical_Bender from Andrew Jackson ESS and Richard Heenan STFC. Allows modelling a multi-channel bender
that curves vertically down.
- SANS_spheres2 by Peter Willendrup, derived from Henrich Frilinghaus' SANS_benchmark2. More realistic cross-section
calculations than from e.g. Sans_spheres. templateSANS2.instr is the related test instrument.
- Updated version of Sample_nxs from Mirko Boin HZB.
- Guide_simple is identical to Guide except from not having OFF library support. Common with forthcoming
McStas 3.0 beta release with GPU support.
- Elliptic_guide_gravity promoted from contrib to optics since Mads Bertelsen is full member of McStas dev team.
- PolAnalyser_ideal and Set_pol moved from misc to optics.
- NPI_tof_theta_monitor is in contrib, was by mistace placed in monitors before.
- Single_magnetic_crystal.comp is an experimental magnetic csingle crystal model. Its operational model is based
on that of Single_crystal.comp but supports SF and NSF magnetic scattering. The present model only supports
the SF-NSF paradigm along a given reference vector.
- PSD_monitor_4PI_spin.comp is a version of PSD_monitor_4PI but with separate SF- and NSF-channels
Instruments:
- Union_test_texture.instr demonstrates use of Texture_process.comp by Victor Laliena. To be used with datafile
"coef_Four_L2.txt" found in the installation data-folder. This datafile contains texture information on Zr alloys
derived from the publication https://doi.org/10.1016/j.jnucmat.2018.08.003.
- Union_IncoherentPhonon_test.instr demonstrates use of IncoherentPhonon_process.comp by Victor Laliena. To be used
with datafile "dos_meV.txt" found in the installation data-folder.
- Union_test_mesh.instr demonstrates use of mesh geometry in Union
- ESS_BIFROST_shielding.instr and PSI_Focus_shielding.instr, demonstration of Shielding_logger concept from
Rodion Kolevatov
- TasResoTest, triple-axis resolution test instrument from Tobias Weber ILL. Can be used with his new tool
development mcresplot.py.
- Tools_ONION, instrument to investigate q-resolution via Mantid, by Thomas Huegle, ORNL. See also
https://doi.org/10.1016/j.nima.2019.162711 and the related python code available at
https://github.com/McStasMcXtrace/McCode-contribution-support-docs/tree/master/McStas/2.6_Onion_tool_T_Huegle
- templateSANS_MCPL, behaves like the normal templateSANS but dumps all events in an MCPL file.
- MCPL-oriented tool-instruments by Peter Willendrup
- MCPL2Mantid_flat: Read MCPL input and write Mantid-compatible NeXus output
- MCPL_filter_energy: Read MCPL input and write only neutrons in wanted energy interval
- MCPL_filter_wavelength: Read MCPL input and write only neutrons in wanted wavelength interval
- MCPL_filter_radius: Read MCPL input and write only neutrons with position within wanted radius
- MCPL_merge: Read up to 10 MCPL input files and write neutrons to a merged MCPL file
- SINE2020-developed McStas_Isotropic_Sqw, McStas_PowderN, McStas_Single_crystal by Erik Knudsen. They have
MCPL input/output and are intended for easy use of McStas samples within SIMRES.
- Test_guides has been modified to include Guide_anyshape_r from Peter Link MLZ.
- templateSANS2 serves as test instrument for SANS_spheres2.
- BNL_H8_simple.instr is identical to BNL_H8.instr except e.g. not including SPLIT. Common with forthcoming
McStas 3.0 beta release with GPU support.
- PSI_DMC_simple is identical to PSI_DMC.instr except e.g. not including SPLIT. Common with forthcoming
McStas 3.0 beta release with GPU support.
- PSI_source is a simple frontend derived from PSI_DMC. Common with forthcoming McStas 3.0 beta release
with GPU support.
- mini minimal instrument with source, slit and PSD. Common with forthcoming McStas 3.0 beta release
with GPU support.
- Test_single_magnetic_crystal.instr is a skeleton Laue camera which exemplfies use of Single_magnetic_crystal.comp
Datafiles:
- Klaus Lieutenant from FZJ/Vitess has collected reflectitivy-data from SwissNeutronics, Mirrotron and S-DH, analysed
these and fitted the "classical" McStas mirror-reflectivity profile to these. The resulting data have been placed
in the data directory under the filenames of
- SwissNeutronics_mirors_2020.txt
- Mirrotron_mirors_2020.txt
- S-DH_mirors_2020.txt.
The files are not to be used directly with reflecting components, but can instead be used as lookup-tables for
relevant parameters in each case. I.e. for a mirror of nominal m-value m_nom, use m_real, R_0, W and alpha from the
relevant table.
- Most other new datafiles are directly related to component- or instrument-additions and have been mentioned above.
We hope you will enjoy this new release!!!
Changes in McStas v.2.5, December 12th, 2018
McStas 2.5 is the seventh release in the 2.x series and fixes various issues with McStas 2.4.1, plus
many new developments. McStas 2.5 is also the 20th anniversary release of McStas - 1.0 was released
in October 1998!
Thanks:
- Thanks to all contributors of components, instruments etc.! This is what Open Source
and McStas is all about!
Installation:
- Our install docs are now available on the McCode GitHub page at
https://github.com/McStasMcXtrace/McCode/tree/master/INSTALL-McStas
Fixes of issues from last release:
- A number of issues from 2.4.1 were corrected, see the relevant GitHub issues for details:
- https://github.com/McStasMcXtrace/McCode/issues?utf8=✓&q=is%3Aissue+is%3Aclosed+label%3A%22McStas+2.4.1%22+
Plus lots of work in general:
https://github.com/McStasMcXtrace/McCode/issues?utf8=✓&q=is%3Aissue+is%3Aclosed++project%3AMcStasMcXtrace%2FMcCode%2F1+
Tools:
- As for the earlier few releases the default set of tools are Python-based and developed by Jakob Garde, DTU.
The Perl ones are still around as a backup solution, handy for those that prefer "the oldschool way"
- See https://github.com/McStasMcXtrace/McCode/wiki/User-documentation-for-the-2017--Python-tool-set for usage
- On Unix platforms, the Perl tools are accessible by adding .pl to the wanted tool (mcgui.pl etc.)
- On Windows, the Perl tools are accessible by adding -pl to the wanted tool (mcgui-pl etc.)
- BUT: Please use the Python tools and provide feedback rather than sticking with the Perl! :-)
- Feature developments:
- mcgui: For a quick visualisation of your instrument, simply use Simulation -> Display-2D and Display-3D (will use the
default instrument parameters
- mcgui: The run-dialogue now gives quick access to all mcdisplay and mcplot utilities as comboboxes
- mcdoc: We now provide a mcdoc utility based on Python
Platforms:
- Our Windows release is finally 64bit. Also further prepackages GSL for use e.g. with Multilayer_sample.comp from
R. Dalgliesh (ISIS)
- If you want to use NeXus and / or MPI on Windows, please ensure to install Strawberry perl!
Libraries:
- NCrystal library from T. Kittelmann (ESS) and X.X. Cai (DTU Nutech/ESS) is distributed with McStas on Unix
platforms. To use it, carry out the below steps:
mcstas:~/NCryst$ mcstas-2.5-environment
mcstas:~/NCryst$ source $MCSTAS/ncrystal/setup.sh
mcstas:~/NCryst$ ncrystal_preparemcstasdir
mcstas:~/NCryst$ cp $MCSTAS/examples/NCrystal_example_mcstas.instr .
mcstas:~/NCryst$ mcrun -c NCrystal_example_mcstas.instr
- MCPL library from the same authors now included at v. 1.2.3
Components:
- Single_crystal_inelastic.comp is a development from Duc Le (ISIS) and presents our attempt at a general,
inelastic single crystal component. iFit can be used to generate its input, see
http://ifit.mccode.org/McStas.html#mozTocId36233
- E_4PI.comp is a monitor also from Duc Le, used to illustrate the output of his inelastic component in the
instrument Test_Single_crystal_inelastic.instr
- Magnon_bcc.comp is new inelastic component from K. Lefmann (KU), used in Test_Magnon_bcc_TAS.instr and
Test_Magnon_bcc_2D.instr
- Isotropic_Sqw.comp from E. Farhi has recieved a number of important edits, including correctiono of a bug
found by S. Bellissmia (CNR) relating to detailed balance
- PowderN received a bugfix from M. Bertelsen (KU) and a set of focusing patches from J. Saroun (NPI)
- NPI_tof_dhkl_detector.comp and NPI_tof_theta_monitor.comp are new monitor components from J. Saroun (NPI),
used in his model of the ESS BEER instrument, see below
- Guide_multichannel.comp is a new component from J. Saroun (NPI), based on Guide_channeled.comp. It allows to
simulate bi-spectral extraction optics.
- Sqq_w_monitor.comp is a development from P. Willendrup (DTU) and is a "scattering plane" monitor that outputs
a set of energy-slices over a (qh,qk) reciprocal space plane, used in Test_Magnon_bcc_2D.instr
- Pol_guide_mirror.comp is a development from E. Knudsen (DTU) which among other use cases allows to simulate a
so-called "frame overlap mirror" as envisioned for multiple ESS instruments
- Pol_Bfield.comp from E. Knudsen (DTU) has been updated to allow more flexible geometry and "rotatable" tabulated
field descriptions. It replaces Pol_simpleBfield which is now in obsolete.
- Absorber.comp received a bugfix thanks to Artur Glavic (PSI)
- FermiChopper.comp had a long-standing issue when using supermirror coatings in the slit-package which is
now fixed, thanks to Ryoichi Kajimoto (J-PARC)
- All monitors can now suppress file-output when their standard input parameter "nowritefile" is true. The idea
is to be able to suppress (some) output at runtime, e.g. in simulations with lots of monitors.
Instruments:
- ESS_Testbeamline_HZB_V20.instr from Alaa Al-Falahat and Robin Woracek (ESS/HZB) is a model of the ESS test-
beamline in Berlin
- ESS_BEER_MCPL.instr from J. Saroun (NPI) is a model of the ESS BEER secondary spectrometer. It uses MCPL input
calculated via SIMRES
- BTsimple.instr from P. Willendrup (DTU) shows a simple method to calculate brillance transfer through a guide
system
- ILL_H142_D11.instr and ILL_H142_D33.instr from E. Farhi (ILL) are models of the optics in the two well-known
ILL SANS instruments
- ILL_H5_new.instr from E. Farhi (ILL) is a model of the ILL IN5 spectrometer after the guide upgrade in 2011
- ILL_IN5_Spots.instr modified byP. Willendrup (DTU) is a model of the ILL IN5 spectrometer with multiple
resolution-calculation options
- ISIS_IMAT.instr from G. Burca (ISIS) is a model of the ISIS IMAT engineering-beamline
- ISIS_SANS2d_Mantid.instr from T. R. Nielsen (ESS) is a model of the ISIS SANS2d instrument with sample and
a Mantid output possibility
- ISIS_TOSCA_preupgrade.instr and ISIS_TOSCA_preupgrade_Mantid.instr from P. Willendrup and S. Mukhopadhyay,
based on an earlier model by M.Zanetti are models of the TOSCA spectrometer at ISIS
- NCrystal_example_mcstas.instr by X.X. Cai (DTU/ESS) is used to illustrate the use of the NCrystal library
in McStas
- Test_DiskChoppers.instr by P. Willendrup (DTU) compares the use of 2 DiskChoppers with one MultiDiskChopper
- Test_Magnon_bcc_TAS.instr from K. Lefmann (KU) and Test_Magnon_bcc_2D.instr P. Willendrup (DTU) illustrate
the use of the new Magnon_bcc.comp
- Test_Single_crystal_inelastic.instr from Duc Le (ISIS) is a test instrument for Single_crystal_inelastic.comp
- Test_Pol_Guide_mirror.instr from E. Knudsen (DTU) is a test instrument for Pol_guide_mirror.comp
- Test_focus.instr from T. Weber (ILL) compares focusing by Single_crystal and Monochromator_curved
We hope you will enjoy this 20th anniversary release!!!
Changes in McStas v.2.4.1, June 26th, 2017
McStas 2.4.1 is the sixth release in the 2.x series and fixes various issues with McStas 2.4, plus
provides a small set of new developments.
Thanks:
- Thanks to all contributors of components, instruments etc.! This is what Open Source
and McStas is all about!
Fixes of issues from last release:
- A number of issues from 2.4 were corrected, see the relevant GitHub issues for details:
- https://github.com/McStasMcXtrace/McCode/issues?utf8=✓&q=is%3Aissue%20is%3Aclosed%20label%3A%22McStas%202.4%22%20
Tools:
- As for 2.4 we the default set of tools are Python-based and developed by Jakob Garde, DTU.
The perl ones will stay around as a backup solution
- See https://github.com/McStasMcXtrace/McCode/wiki/User-documentation-for-the-2017--Python-tool-set for usage
- On Unix platforms, the perl tools are accessible by adding .pl to the wanted tool (mcgui.pl etc.)
- On Windows, the perl tools are accessible by adding -pl to the wanted tool (mcgui-pl etc.)
- BUT: Please use the Python tools and provide feedback rather that sticking with the Perl! :-)
- Minor feature developments:
- The mcrun utility script now automatically stores a copy of the instr file in the dataset output folder
- mcplot-pyqtgraph, mcdisplay-pyqtgraph and mcdisplay-webgl provide the --invcanvas to select white backgrounds in
the plots (for now only available from the commandline!)
- When installed, the mcstas-clusterscripts package provides an easy way to generate SLURM or PBS cluster batchfiles.
The Python mcgui allows to access these via the File -> Configuration menu.
Components and instruments:
- MCPL library still at v. 1.1
- A minor issue in MCPL_output.comp was fixed
- Minor updates to the ESS_butterfly_MCPL.instr, see also:
https://confluence.esss.lu.se/display/MCSTAS/Using+MCPL+as+source+term+in+McStas
- SNS_BASIS - model of the BASIS backscattering instrument at SNS, from Niko Tsapatsaris, ESS.
Further serves as test instrument for two component contributions from the same author:
- Spherical_Backscattering_Analyser, a spherical backscattering analyser with variable reflectivity
and mosaic gaussian response.
- Guide_m, guide piece like the normal Guide.comp, but with independent reflectivity specification
for all four mirrors.
Changes in McStas v.2.4, May 17th, 2017
McStas 2.4 is the fifth release in the 2.x series and fixes various issues with McStas 2.3, plus
provides important new developments.
Thanks:
- Thanks to all contributors of components, instruments etc.! This is what Open Source
and McStas is all about!
Tools:
- From 2.4 we will default to use our new set of Python tools, developed by Jakob Garde, DTU.
The perl ones will stay around as a backup solution
- See https://github.com/McStasMcXtrace/McCode/wiki/User-documentation-for-the-2017--Python-tool-set for usage
- On Unix platforms, the perl tools are accessible by adding .pl to the wanted tool (mcgui.pl etc.)
- On Windows, the perl tools are accessible by adding -pl to the wanted tool (mcgui-pl etc.)
- BUT: Please use the Python tools and provide feedback rather that sticking with the Perl! :-)
- Our Python tools are now Python 3 compliant
- A mcgui editor with rich syntax highlighting
- A mcrun utility script, with a few new features wrt. the legacy perl solution:
- The feature --autoplot spawns your selected plotter on sim completion
- The feature --multi (or -M) allows grid-scanning, i.e. multidimensional scans
- The --list (or -L) allows to make 1D-scans that are not equidistant, or even filename strings, etc…
- A newly developed mcplot-pyqtgraph, optically similar to the legacy mcplot solution, but with new features:
- Easy mouse-based zooming and panning on individual monitor plots
- Colormaps can be changed for 2D-plots
- Select a single plot by clicking, get back to the overview by right-clicking, or by pressing 'b'
- On scans ctrl-click (meta-click on OS X) to see monitor as function of scanned variable
- On scans press 'x' to receive all scan points as individual plot windows
- A newly developed mcdisplay-webgl
- Fully 3D and interactive, uses your HTML5-capable browser with javascript controls
- Pause or resume visualisation of the neutron rays in the instrument
- Allows to keep already rendered rays to illustrate the full beam
- Visualises rays with color, scaled with particle velocity (ideal for illustrating e.g. monochromatisation)
- A newly developed mcdisplay-pyqtgraph, modeled after the legacy mcdisplay tool, but with various improvements
- The cif2hkl software from iFit (http://ifit.mccode.org) is provided with McStas for easy generation of reflection
lists for the Single_crystal and PowderN components
Components and instruments:
- A new set of components referred to as “Union” components, contribution by Mads Bertelsen Uni Copenhagen.
- Allows very rich simulation of samples and sample environment
- Several instrument files included to illustrate the capabilities and use
- See http://media.mcstas.org/ESS_DMSC_20161117/DMSC_talk_MBertelsen_McStas_Union.mp4
- Component and Instrument documentation headers have been uniformised in preparation for a Python mcdoc. (This new
tool is NOT ready for distribution with McStas 2.4.) Please look inside the existing doc headers and adhere to the
new format when writing new components.
- MCPL library updated to v. 1.1
- See https://mctools.github.io/mcpl/
- MCPL_input allows to repeat input files an integer number of times
- possible to modify particle energy, position and direction on repetition
- MCPL_output has an option to merge generated output files in case of MPI
- MCPL2hist.instr provides a template for easy histogram visualisation of from MCPL data.
- ESS_butterfly.comp provides a time-focusing mode ala what was available in ESS_moderator_long.
- ESS_butterfly_MCPL.instr implements the use of MCPL files in the ESS butterfly geometry
- PowderN can “flip” the d_phi focusing to “zoom” on a range of angles.
- New PSD_monitor_TOF that outputs a TOF signal pr. PSD pixel (single files). Used in templateNMX_TOF.instr
- A version of Isotropic_Sqw from the McStas 2.0 release has been imported under the name of Isotropic_Sqw_legacy,
since some users reported that release being in better agreement with experiments.
- Some issues were corrected since 2.0 and fixed in today's component
- Today's component has a different set of issues, see e.g. https://github.com/McStasMcXtrace/McCode/issues/300
- By the help of a Japanse user, we have identified issues with the performance of the supermirror coating option
in FermiChopper.comp. We will investigate further and adress the issue over the course of 2017. Note that the
component works as expected when not implementing supermirror slits.
- Various bugfixes and improvements across the example instruments and component library
Platforms:
- Our macOS application bundle provides a 'miniconda' Python, including gcc, openmpi etc.
- Important: Please run the 'Check-PY-dependencies' script after dragging to /Applications
- Optionally run the 'Check-PL-dependencies' for access to the Perl tools
- Our Linux packages for RPM systems provide a 'miniconda' Python for all Python tool dependencies.
- Our RPM's were built on CentOS 7, and requires glibc-2.14, other builds can be made available on request.
- Our Windows installer provides a 'miniconda' Python, including gcc.
- Supplemental binaries for Microsoft MPI and NeXus are provided with the installer
- For full documentation support, you must still install the Strawberry Perl package prior to installing McStas
- On Windows 10 64bit and newer, the Windows Subsytem for Linux allows a much improved McStas experience, see
the page http://www.mcstas.org/news/2016.html at the heading "October 6th, 2016: Use Microsofts ... "
Changes in McStas v.2.3, April 6th, 2016
McStas 2.3 is the fourth release in the 2.x series and fixes various issues with McStas 2.2a, plus
provides important new developments.
IMPORTANT: Please ensure to use our "migration scripts" for McStas 2.0 and 1.12c if you want
these to co-exist with 2.3. See https://github.com/McStasMcXtrace/McCode/tree/master/tools/migration-tool
Also, please read the platform-specific notes below!
Thanks:
- Thanks to all contributors of components, instruments etc.! This is what Open Source
and McStas is all about!
General:
- As of McStas 2.3, we support a new binary event file format: "MCPL" (Monte Carlo Particle List), developed
by Thomas Kittelmann, ESS. The format aims to allow easier interchange of particle event data between monte
carlo codes, and read/write functionality has been implemented for MCNP, Geant4 and McStas.
- Interoperability with Mantid has been improved, as OFF-based detectors can be used to define detector geometries
in Mantid-oriented simulation runs. See https://github.com/McStasMcXtrace/McCode/wiki/McStas-and-Mantid for
more documentation on the use.
Infrastructure:
- To build McStas from GitHub, you will now need a CMake version >= 3.0
- At the ILL, Emmanuel Farhi has set up a nice web-service called cif2hkl, which allows to generate Laz/Lau
structure data files from CIF files. See http://barns.ill.fr/cif2hkl.html
- A new e-Learning infrastructure for neutron scattering has been set up at https://www.e-neutrons.org . Among
other things, it features a web-simulator powered by McStas. Once you have signed up, you will have access
to many interesting things, among these this "close to complete" list of McStas instruments that can be run
on the web: https://www.e-neutrons.org/mcstas-distrib
- We have started populating the McCode wiki at https://github.com/McStasMcXtrace/McCode/wiki with information
for developers and others who want to work on the McStas code at a 'deeper' level.
Components:
- New component SASview_model.comp by Jakob Garde and Torben Nielsen allows to use SASview scattering kernels
from within McStas. See also the test instrument templateSasView.instr
- New component Diaphragm - an alias of the Slit comoponent
- New components MCPL_input and MCPL_output by Erik Knudsen. Used to read and write MCPL binary event files. See
corresponding test instruments below.
- New component Refractor.comp by Emmanuel Farhi and Bob Cubitt, ILL. Implements a single bulk material shape
that can be used as a prism or lens.
- PerfectCrystal.comp by Markus Appel, ILL / FAU Erlangen-Nuernberg. Perfect crystal component, primarily for
use as monochromator and analyzer in backscattering spectrometers. Reflections are simulated using a Darwin,
Ewald or Gaussian profile. Doppler movement of the monochromator is supported.
- MultiDiskChopper.comp by Markus Appel, ILL / FAU Erlangen-Nuernberg. Models a disk chopper with a freely
configurable slit pattern. For simple applications, use the DiskChopper component instead.
- Updated version of Sample_nxs from Mirko Boin (HZB), including more nxs material definitions.
- Bugfix to ESS_moderator from Jan Saroun (RESTRAX/Simres): missing focusing/direction cosine inserted. Please
note that this component does not implement "engineering reality" and currently uses a coordinate system
centered on the moderator assembly. An updated moderator component which references the "Moderator focus
coordinate system" will be released later during the spring of 2016.
- Bugfixes to numerous other components...
Instruments:
- New test instrument templateSasView.instr, documenting use of SASview_model.comp
- New test instruments Test_MCPL_input.instr and Test_MCPL_output.instr, documenting use of the MCPL components
- New test instrument Test_PowderN_Res.instr, demonstrates difference of using 'banana, theta' and 'banana, divergence'
in Monitor_nD - and can be used to show influence of sample size on detected line with in diffractometers.
- New test instrument LLB_6T2.instr by Xavier Fabreges, LLB. Model of the LLB 6T2 thermal single crystal
diffractometer.
- New ILL_IN13.instr by E. Farhi and A. Dennison, ILL. Models the IN13 Thermal neutron backscattering spectrometer.
- New SAFARI_MPISI.instr by Deon Marais, Necsa. Models the SAFARI instrument 'Materials Probe for Internal Strain
Investigations'
- New SAFARI_PITSI.instr by Deon Marais, Necsa. Models the SAFARI instrument 'Powder Instrument for Transition in
Structure Investigations'
Datafiles:
- cif2hkl service: At the ILL, Emmanuel Farhi has set up a nice web-service called cif2hkl, which allows to generate
Laz/Lau structure data files from CIF files. See http://barns.ill.fr/cif2hkl.html
- New Sqw input data for H2O, D2O, He4, D2 by Emmanuel Farhi
- UO2.laz powder definition included by Emmanuel Farhi
- Further .nxs material definitions for Sample_nxs included
- Furhter moderator defintion files for SNS made available
Tools:
- McStas 2.3 is the second release to include a version of our mcgui-py tool, based on Python,
QT and Scintilla. It has been made available across platforms, but without (yet) becoming the
default GUI application for McStas. Therefore, a few manual steps may be required to
getting mcgui-py running on your platform:
To install/try the new mcgui-py tool, please follow
the instructions listed below.
* Debian Linux systems:
Simply apt-get install mcstas-tools-python-mcgui and dependencies should be autmatically resolved
* RPM-based Linux systems:
Use yum to install mcstas-tools-python-mcgui and dependencies should be autmatically resolved
(Tested to work for Fedora Core 21)
* OS X:
- Download and install Anaconda Python 2.7 (using the "for me only" option).
- When installation is done, start a new terminal and locate the folder where you downloaded
and unpacked the McStas installation bundle. Inside the extras/ folder you will find a subfolder
called QScintilla/.
- Run the script BuildMe.command by typing "./BuildMe.command".
(Browsing your way using Finder and double-clicking the BuildMe.command icon should also work)
- NOTE: If your system prompts you to install command line tools: Accept to install. Afterwards,
run the script "BuildMe.command" again.
- "mcgui-py" should now be available.
* Windows:
- Download and install Anaconda Python 2.7 and let it register as the default Python of your windows
system. All dependencies should be included.
- McStas 2.3 further includes the optional mcplot-gnuplot-py plotter based on Python and Gnuplot with
a Qt widget for control. On Mac OS X and Windows you need to install Gnuplot yourself, ensuring that the
Gnuplot executable is available on the system PATH.
Changes in McStas v2.2a, May 29th, 2015
McStas 2.2a is the third release in the 2.x series and fixes various minor issues with McStas 2.1,
plus provide important new developments.
IMPORTANT: Please ensure to use our "migration scripts" for McStas 2.0 and 1.12c if you want
these to co-exist with 2.2a. See https://github.com/McStasMcXtrace/McCode/tree/master/tools/migration-tool
Also, please read the platform-specific notes below!
Thanks:
- Thanks to all contributors of components, instruments etc.! This is what Open Source
and McStas is all about!
- Thanks to Joachim Wuttke from FZ Jülich / MLZ for helping us update the TeX documentation!
General:
- Fix wrt. random number seed initialization when using MPI. (<-- The only difference wrt. 2.2)
- The new component/instrument keyword DEPENDENCY allows to automatically require / compile instruments
with external libraries, such as GSL in the case of Multilayer_sample (see ISIS_CRISP.instr). We foresee
that this extension will see many great applications in the future.
- The Mantid-IDF generation through our Perl mcdisplay tool has been optimized.
For a "compact" i.e. source/sample/detector IDF use
mcdisplay --format=Mantid ILL_H16_IN5_Mantid.instr -n0
For a "full" IDF (also including visualisation of neutron optics etc use
mcdisplay --format=Mantid --complete ILL_H16_IN5_Mantid.instr -n0
- The use of WHEN with EXTEND code only considered the first statement (report by M. Appel). Fixed.
Infrastructure:
- McStas (and its X-ray counterpart McXtrace) are now on GitHub, see
https://github.com/McStasMcXtrace/McCode
- We will continually provide various bits of "missing information" on the related Wiki at
https://github.com/McStasMcXtrace/McCode/wiki
- If you want to contribute instrument models or components, the future way of doing that is to
fork / clone our GitHub repo, make your changes and send us a pull-request
- We will later provide a "cheat sheet" - McStas and GitHub for physicist... :-)
Components:
- A new model for the ESS butterfly moderator - see documentation for the ESS_moderator.comp. Developed by
Peter Willendrup in close collaboration with Troels Schoenfeldt DTU Nutech/ESS.
** A separate document with recommended settings for this component will be released later **
- the Isotropic_Sqw component was broken in McStas 2.1. The expected behaviour has been restored.
Users of this component should upgrade to McStas 2.2a asap. Sorry for the inconvenience.
Instruments:
- ILL_IN13 backscattering instrument contributed by Emmanuel Farhi
- ILL_IN4 tof instrument contributed by Emmanuel Farhi
- ILL_IN6 fixed time window (was too narrow, causing under-estimate of energy resolution)
Datafiles:
- Improved water Sqw data files contributed by Emmanuel Farhi (- see also JNST 52 (2015) 844 )
- Added CaF2 crystal, improved Al2O3 sapphire transmission
Tools:
- McStas 2.2a is the first release to include a first version of our new mcgui-py tool, based on Python,
QT and Scintilla, work done by new McStas team member Jakob Garde. We think it is a very nice start
at this long-awaited replacement of mcgui (Perl) and want you to try it out even though a few edges
may still be rough here and there. We therefore make it available across platforms, but without (yet)
making it the default GUI application for McStas. Therefore, a few manual steps may be required to
getting mcgui-py running on your platform:
To install/try the new mcgui-py tool, please follow
the instructions listed below.
* Debian Linux systems:
Simply apt-get install mcstas-tools-python-mcgui and dependencies should be autmatically resolved
* RPM-based Linux systems:
Use yum to install mcstas-tools-python-mcgui and dependencies should be autmatically resolved
(Tested to work for Fedora Core 21)
* OS X:
- Download and install Anaconda Python 2.7 (using the "for me only" option).
- When installation is done, start a new terminal and locate the folder where you downloaded
and unpacked the McStas installation bundle. Inside the extras/ folder you will find a subfolder
called QScintilla/.
- Run the script BuildMe.command by typing "./BuildMe.command".
(Browsing your way using Finder and double-clicking the BuildMe.command icon should also work)
- NOTE: If your system prompts you to install command line tools: Accept to install. Afterwards,
run the script "BuildMe.command" again.
- "mcgui-py" should now be available.
* Windows:
- Download and install Anaconda Python 2.7 and let it register as the default Python of your windows
system. All dependencies should be included.
- McStas 2.2a further includes a simple mcplot plotter for Unix platforms (Linux, OS X) based solely on
shell-script + Matlab/iFit/Octave, no need for Perl or Python with this plotter, called mcplot-matlab
Changes in McStas v2.1, September, 2014
McStas 2.1 is the second release in the 2.x series and fixes various issues with McStas 2.0,
plus provide important new developments.
IMPORTANT: Please ensure to use our "migration scripts" for McStas 2.0 and 1.12c if you want
these to co-exist with 2.1. Also, please read the platform-specific notes below!
Thanks:
- Thanks to all contributors of components, instruments etc.! This is what Open Source
and McStas is all about!
- Thanks to Jonas Stein from Uni Cologne for helping us modernize the TeX documentation!
General:
- Via NeXus libraries and a new --format=Mantid setting for the mcdisplay tool, we are now
able to generate NeXus/HDF files that can be read and treated by Mantid! Mcdisplay generates
a Mantid IDF description for embedding in the NeXus file, including the usual McStas instrument
geometry. Please read the specific guide for this method, documented in the McStas manual, Chapter 6.
- Use of STATE_PARAMETERS and POLARIZATION parameters is no longer supported!
If you have home-grown components using these, you will get this type of error with
McStas 2.1:
Translating instrument definition 'BNL_H8.instr' into C ...
mcstas -t -o BNL_H8.c BNL_H8.instr
Compiling simulation BNL_H8.instr
Arm.comp is using STATE PARAMETERS
mcstas-2.1 does NOT support this keyword. Please remove line 36
mcstas-2.1: 1 Errors encountered during parse of BNL_H8.instr.
** Error exit **
As the error message suggests, this can be fixed by simply removing/commenting out
the STATE and POLARISATION parameter lines in the top of the component, i.e.: