forked from McStasMcXtrace/McCode
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES_McStas
1583 lines (1387 loc) · 90.6 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-2010, 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
* Date: 2012
* Origin: DTU, ILL, Uni Copenhagen, PSI
* Release: McStas 2.1
* 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
* This file is part of McStas version 2.2a, released May 2015.
* It gives a 'changes' list from the beginning of the project
*
*******************************************************************************/
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.:
/* STATE PARAMETERS (x,y,z,vx,vy,vz,t,s1,s2,p) */
/* POLARISATION PARAMETERS (sx,sy,sz) */
- In case of "negative time" propagation we no longer ABSORB these neutrons but rather restore
the incoming neutron state, leaving it untouched for the following components. This avoids
various types of shadowing effects, e.g. when placing parallel monitors that are not in a
GROUP. This is furhter in preparation for the forthcoming ASSEMBLY keyword which will work
roughly like an "iterative group" that loops on the ASSEMBLY of components until no furhter
scattering is achieved, but always scatters first on the component which is closest (in time)
to the neutron.
- "Scatter logging": With this release we provide this special ensemble of instrument examples
- Test_Scatter_log_losses.instr
- Test_Scatter_log_mvalues.instr
- Test_Scatter_log_ssw_mcnp.instr
that together with the (misc cathegory) components
- Scatter_log_iterator.comp
- Scatter_log_iterator_stop.comp
- Scatter_logger.comp
- Scatter_logger_stop.comp
provide a powerful post-processing mechanism, mainly for guide systems - that for instance
can be used to study the non-propagated, i.e. absorbed neutron flux along the guide. For
more information, a paper by Esben Klinkby et. al. will be available in one of the next
issues of Journal of Physics: Conference Series, proceedings of the NOP&D 2013 meeting in
Ismaning. Slides from Esbens talk are available here:
http://orbit.dtu.dk/files/57025387/prod11375088187360.NO_P_v8.pdf
- As of this release, McStas is distributed using easy-to-use meta-packages for the Windows
and Mac OS X systems. (these already existed for the deb and rpm based Linux packages, see
below) The content of these packages are:
* Windows:
- See http://www.mcstas.org/download/install_windows for details
- Strawberry Perl (including a gcc compiler)
- Perl PPD extensions for PDL, PGPLOT and Tk
- The core mcstas package
- The mcstas component package, with comps, instruments, datafiles
- The mcstas Perl tools package with mcgui, mcplot etc.
- The mcstas manuals package with PDF docs
- For VRML and X3D viewing of instruments, we recommend Instant Player from
http://www.instantreality.org
- ! The mcstas Python tool packages are installed by default, but if you want to
make use of our OPTIONAL Python based packages, their dependencies need to be installed
by hand !
- Needed dependencies for the Python packages are all available in the Python(x,y)
package available from https://code.google.com/p/pythonxy/
- ! We are only distributing a 32bit package for windows, since we feel the 64-bin gcc on
windows is not mature - gives problems in a few, specific cases. In any case, the 32-bit
McStas for windows works perfectly fine on a 64-bit operating system !
- ! If you experience strange behavior from perl/mcgui on Windows like
a) ppm shell not being able to install the extra Perl packages
b) mcgui not being able to run / compile a simulation (all you get is mcrun -- help output)
c) mcgui not being able to access local component files
- Solution can be to ensure your user has "full control" to the executables in
c:\strawberry\perl\bin (Right-click, Properties, Security, Authenticated users -> Edit)
* Mac OS X:
- 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. They MUST be applied before installing 2.1!
- See http://www.mcstas.org/download/install_mac_os_x for details
- A McStas 'app' bundle in /Applications/McStas-2.1.app - you can uninstall all of McStas 2.1
by dragging this bundle to the trash bin.
- Tk perl package for mcgui
- SciPDL package for mcplot, including the core pgplot package
- The core mcstas package
- The mcstas component package, with comps, instruments, datafiles
- The mcstas Perl tools package with mcgui, mcplot etc.
- The mcstas manuals package with PDF docs
- For VRML and X3D viewing of instruments, we recommend Instant Player from
http://www.instantreality.org
- ! If you want to use our OPTIONAL Python based packages, select these for installation
in the Metapackage installer !
- For the Python mcrun, you need to install PyYAML from http://www.pyyaml.org/wiki/PyYAML
- Most other needed dependencies for the Python packages are available through the
SciPy superpack available from http://fonnesbeck.github.io/ScipySuperpack/
- You may also choose the commerical Anaconda or Enthought Python distributions
- ! The install location of the McStas components and libraries on Mac OS X has changed! Your files
are now placed in /Applications/McStas-2.1.app/Contents/Resources/mcstas/2.1/ - but for ease
of use, a link is also available in /usr/local/mcstas/2.1/ (Note that we have dropped 'lib' in
that path.) Links to binaries are in /usr/local/bin.
* For Linux (Debian and RPM based)
- 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. They MUST be applied before installing 2.1!
- See http://www.mcstas.org/download/install_linux for details
- For some RPM based systems, you may futher need to install the EPEL extensions, see https://fedoraproject.org/wiki/EPEL
- For Deb and RPM type systems we provide a set of APT and YUM repositories. Simply follow the
instructions on the link provided to add the relevant repository to your Linux.
- Afterwards, simply choose to install mcstas-suite-perl (perl tools), mcstas-suite-python
(python tools) or mcstas-suite (both toolsets) and all dependencies should be taken care of.
- ! The install location of the McStas components and libraries on Linux X has changed!
* On Debian, your files are now placed in /usr/share/mcstas/2.1/ - links to binaries are in /usr/bin
* On RedHat, your files are now placed in /usr/local/mcstas/2.1/ - links to binaries are in /usr/local/bin
(Note that we have dropped 'lib' in the mcstas system path.)
- A given McStas 2.x release is "self-contained" and can be installed in parallel with other versions
of McStas and McXtrace
- We provide a "migration tool" for Unix based systems (i.e. Linux & Mac) to let your already
installed McStas 1.x or 2.0 co-exist with the new 2.1
- Using McStas with NeXus does no longer require recompilation if you only want to _write_ NeXus.
(Simply install NeXus and update your MCSTAS_CFLAGS to include -lNeXus -DUSE_NEXUS). For the
conversion of files using mcformat NeXus must still be available at compile time
Core & runtime code:
- Backward compatibility 1: As written above, STATE and POLARIZATION parameters are no longer supported!
- Complete rework of the DETECTOR_OUT infrastructure:
* Simplified code-structure
* Proper support for MPI when generating NeXus event lists
- New logic wrt. negative time propagation: Neutrons are restored rather than ABSORB'ed
- Improvement of the interpolation routines e.g. for magnetic fields: search is performed roughly in constant time
- Read_Table: better search for files, including from full executable path, from source.instr location, from
PWD and from McCode lib.
- ref-lib.c: If components use alpha=0 and w=0 in parametrizing the reflectivity, the StdReflecFunc
applies a phenomenological fit of Swiss Neutronics mirrors (above m=3 including a 2nd order beta term). The fits
were done by Henrik Jacobsen, University of Copenhagen.
Tools:
- Since 2.0 mcgui Perl and mcrun Python has been generating time-stamped output directories if no output dir
was specified. The legacy mcrun Perl now exhibit this behavior also. This is balanced by the possiblitiy
to choose . (dot) as the output directory - then the legacy behaviour of storing data in the working
directory is enabled.
Documentation:
- Modernized and facelifted TeX documentation in the manuals, which include slightly updated Component manual.
A few components-docs parameter tables are now extracted from mcdoc and included in the manual.
New Components:
- Rotator and Derotator - components that allow a section of the instrument to rotate in time.
- New ESS_moderator component by P Willendrup, E Klinkby and T Schoenfeldt DTU
* new ess_source-lib with brilliance defintitions corresponding to Mezei 2001, TDR and 2014 brilliances
* support for geometrical brilliance variation (i.e. "pancake" geometry)
* much simplified input-parameter setup
* various fixes wrt. McStas 2.0 and later updated source modules
- Monitor_Sqw - generates an Sqw between a sample and a detector, a kind of inelastic resolution monitor.
(Emmanuel Farhi)
- Analyzer_ideal.comp, ideal analyzer for Spin-Echo techniques (Erik Knudsen)
- Pol_pi_2_rotator.comp, idealized pi/2 flipper for Spin-Echo (Erik Knudsen)
- Pol_triafield.comp, idealized triangular coil (Delft) for Spin-Echo (Erik Knudsen)
- Scatter_log_iterator.comp, see above notice about "Scatter logging"
- Scatter_log_iterator_stop.comp, see above notice about "Scatter logging"
- Scatter_logger.comp, see above notice about "Scatter logging"
- Scatter_logger_stop.comp, see above notice about "Scatter logging"
- SANS_benchmark2.comp, benchmarked SANS component from Heinrich Frielinghaus, FZJ
Updated Components:
- Single_crystal and PowderN have both been optimized for speed - especially in connection with using
the SPLIT keyword:
* The first precomputations relating to structure and crossections is kept for each incoming netron,
so that the component may skip these calculations for the next SPLIT version of the neutron (there
is a built-in check for whether that kind of neutron was processed before). This means that a set'
of SPLIT neutron may be scattered across ALL reflection that are allowed for that specific incoming
direction and wavelength. Further, the components estimate the optimal value of the SPLIT. For large
single crystal unit cells (i.e. protein crystals etc.), speedups of a factor of 500 have been observed!
The method works with all orders of scattering, even though the largest gain is seen with order=1.
* Use is easy, e.g.
SPLIT 43 COMPONENT SX=Single_crystal(order=1, ...)
- Single_crystal now allows to be used as a Powder, mainly for benchmarking purposes - at the point of scattering,
the "crystallite" is randomly oriented. Final validation is pending, but in this setting, the component already
gives the same order of manitude scattering as PowderN, where this powder ring "intergration" has been
implemented using a completely different strategy - provided the right values of mosaicity and delta_d_d are
given!
- ISIS moderator component allow specification of the accellerator current. The component performance
defaults to the actual, relevant accellerator setting for each target station (TS). All TS1 and TS2
moderator input files are now included with McStas and have meaningful names with reference to the
relevant TS.
- Source_gen now contains LLB and FRM-II source parameters in the component help.
- Monitor_nD contains infrastructure for handling events in Mantid NeXus files.
- Isotropic_Sqw - various fixes, including optimized memory usage
- Lens component - support for abstract geometries via the OFF/PLY input format
- Guide_anyshape - various improvements
- FermiChopper - fixed bug in tangent intersection
- Elliptic_guide_gravity - support for curvature via horizontal, vectorial addition to gravity
Instruments:
- Various instruments have been included, allowing to estimate pulsed-source average and peak brilliance.
- ISIS_SANS2d instrument contributed by R. Heenan, ISIS
- Test_Guide_Curved - test instrument for simple, curved guide types
- HZB_FLEX contributed by Klaus Habicht and Markos Skoulatos, HZB
- SEMSANS_instrument.instr by Morten Sales, HZB
- Test_Scatter_log_losses.instr, see above notice about "Scatter logging"
- Test_Scatter_log_mvalues.instr, see above notice about "Scatter logging"
- Test_Scatter_log_ssw_mcnp.instr, see above notice about "Scatter logging"
- FZJ_BenchmarkSfin2.instr by Heinrich Frielinghaus, FZJ. Test instrument for the SANS_benchmark2.comp
- templateNMX.instr, templateLaue variant demonstrating the Single_crystal speed improvement mentioned above
Data:
- New .lau datafiles for macromolecular structures Rubedoxin and Perdeuterated pyrophosphatase, contributed by
Esko Oksanen, ESS.
Changes in McStas v2.0, December 21st, 2012
McStas 2.0 is the long-awaited major release of McStas
Thanks:
- Thanks to all contributors of components, instruments etc.! This is what Open Source
and McStas is all about!
- Thanks to Johan Brinch for helping us modernize the structure of the code and bring
new solutions in the tool area!
- Thanks to Esben Klinkby for debugging results of the McStas (physics) test!
General:
- As documented in the manual, a new major release means loss of backward compatibility.
See remarks below about STATE_PARAMETERS and naming of component parameters. Most of your
existing instruments and components should be trivial to port to the new release as the
code generation gives you helpful debugging information. Should you fail after trying,
feel free to send us a tgz or zip with all needed instrument- and component code to
[email protected] and we will try to help.
- As of this release, McStas is distributed as multiple packages rather than a monolithic:
- mcstas, contains code generator and runtime codes
* Dependencies: a C-compiler (and mcstas-comps)
* Optional: an MPI environment
- mcstas-comps, contains component- and instrument example libraries
* Dependencies: mcstas
- mcstas-tools-Perl, contains our "legacy" set of perl tools
* Dependencies: mcstas, Perl, Perl::Tk, pgplot, perl-PGPLOT, Gnuplot
* Optional: Perl::Tk::CodeText, Perl::Math::Amoeba, Matlab, a VRML-viewer, (Scilab 4.0)
* Remark: As far as possible, we provide dependencies in the installation bundles
* Remark: mcgui can be configured to run python-based tools for sub-tasks
- mcstas-doc, contains our PDF manuals
- mcstas-tools-Python-mcrun, contains our new, python-based compile/run script
* Dependencies: python-yaml
* Remark: The script falls back to the perl version if dependencies do not resolve
- mcstas-tools-Python-mcplot-matplotlib, contains a new matplotlib mcplot solution
* Dependencies: python-matplotlib
* Remark: A bit on the slow side for large datasets
* Remark: Features zooming on individual plots
* Remark: "Standard" mcplot shortcuts for graphics dumps etc.
* Remark: Recommendations for platform-specific python-distributions below
* Remark: The script falls back to the perl version if dependencies do not resolve
- mcstas-tools-Python-mcplot-chaco, contains a draft implementation of mcplot based on chaco
* Dependencies: python-chaco
* Remark: Faster than matplotlib-solution, but a bit on the slow side for large datasets
* Remark: Features zooming on individual plots
* Remark: Recommendations for platform-specific python-distributions below
* Remark: Not easy to install dependencies for chaco if not in your python distro
* Remark: The script falls back to the perl version if dependencies do not resolve
- mcstas-web, contains a webserver-based run/trace/plot solution
* Dependencies: python, python-XXX, R or perl+pgplot+perl-PGPLOT, nginx or apache
* Remark: Currently not packaged, get it from our SVN.
- In the future, we will release new versions of e.g. the component library, docs or tools while
maintaining the core mcstas package. See repository-remarks below.
- A given McStas 2.x release is "self-contained" and can be installed in parallel with other of
McStas and McXtrace (i.e. run mcgui-2.0RC2 to select a specific version)
- We provide the new mccode-select and mccode-select-bundle that allows to select the version of
a given tool (i.e. mcrun) which is run by default
- We provide a "migration tool" for Unix based systems (i.e. Linux & Mac) to let your already
installed McStas 1.x co-exist with the new 2.x
- Using McStas with NeXus does no longer require recompilation if you only want to _write_ NeXus.
(Simply install NeXus and update your MCSTAS_CFLAGS to include -lNeXus -DUSE_NEXUS). For the
conversion of files using mcformat NeXus must still be available at compile time
Platform support:
- We have moved from autoconf+make to CMake for easy multi-platform support
- Supported platforms / targeted distributions of McStas are available for
- Debian-based Linux systems (including Ubuntu, Mint etc.)
* Versions: 32 and 64 bit
* Remark: Dependencies resolved through OS package system
* Remark: We provide debian packages for dependencies that are not in the OS'es by default
* Remark: On Debian you need to enable the 'non-free' and 'contrib' apt-repositories
* Remark: We will soon provide an apt repository for your sources.list
- RPM-based Linux systems (including Scientific Linux, CentOS etc.)
* Versions: 32 and 64 bit
* Remark: Dependencies resolved through OS package system
* Remark: For most of these distros you will need to enable the RPMforge and EPEL repositories.
See e.g.: http://www.howtoforge.com/perfect-server-centos-6.3-x86_64-nginx-courier-ispconfig-3-p3
* Remark: We provide RPM or SRPM packages for dependencies that are not in the OS'es by default
* Remark: We will soon provide an RPM repository for your yum
* Remark: The 'python-chaco' dependency for the chaco-mcplot is not easily available here
- Mac OS X, through a set of .pkg packages
* Versions: Independent 64 bit versions for 10.6 Snow Leopard, 10.7 Lion and 10.8 Mountain Lion.
Older versions are not directly supported, but installation should be possible if you
build from the SVN tree using cmake.
* Remark: On 10.6 you need to install a compatible Xcode - available from http://developer.apple.com
or use the one on your original installation medium.
* Remark: On 10.7 and 10.8 you need to get Xcode from the App store and through the in-app preferences
download the 'Command Line Tools'.
* Remark: On 10.8 you need to install XQuartz from http://xquartz.macosforge.org/landing/
* Remark: We distribute dmg images for each supported target release of OS X including all other
bits you need for runing McStas and the Perl tools. Follow instructions in the README file.
* Remark: To run the python-mcrun tool you need to install python-yaml via Terminal.app and this commmand:
sudo easy_install pyyaml
* Remark: To run the python-mcplot tools you need to either get
a) Enthought Python (Commercial Python distribution) from http://www.enthought.com/products/epd.php .
This enables both the matplotlib and chaco based mcplot tools. You need to make the installed
python the system-default python 2.7, the instructions from Enthought:
http://www.enthought.com/products/epdgetstart.php?platform=mac#default
b) SciPy superpack from http://fonnesbeck.github.com/ScipySuperpack/ . This enables the
matplotlib mcplot tool with the default Python available on OS X.
- Microsoft Windows systems
* Versions: 32 and 64 bit, tested on XP, Windows 7 and Windows 8
* Remark: We distribute zip files for each 32 and 64 bit Windows independently. Follow instructions
in the README file.
* Remark: We recommend using Strawberry Perl (v. 5.16) and provide compatible ppd's for the various
perl-tool dependencies (perl-PDL, pgplot, perl-PGPLOT, perl-Tk-CodeText, perl-Math-Amoeba).
Get Strawberry Perl via http://strawberryperl.com
* Remark: Strawberry Perl includes gcc! Hence no need to install a separate c-compiler!
* Remark: For MPI parallelization, we recommend installing MPICH2 from http://www.mpich.org
* Remark: We recommend Python(x,y) on Windows systems as it includes both matplotlib and chaco. Get
Python(x,y) via http://code.google.com/p/pythonxy/
* Remark: To enable the Python based mcrun tool with Python(x,y) you need to install PyYAML from
http://pyyaml.org/wiki/PyYAML
* Remark: Windows installations now recide in e.g. c:\mcstas-2.0RC2 and we provide two version-
dependent desktop links: mcgui-2.0RC2 and mcstas-environment-2.0RC2 (the latter for running
simulations using the windows cmd.exe). We do not touch the system registry for setting up
PATH's etc., all is handled from the two links/batch files.
- As far as possible, we build the packages on "standard" versions of the relevant OS'es (with the exception
of the windows builds that are created on Debian Linux via cross-compilation)
Tools
- Many new developments as mentioned above. Just to name a few:
- New mcrun tool based on Python
- New mcplot tool based on Python+matplotlib
- New mcplot tool baded on Python+chaco
- New web-frontend based on Python
- Mcgui perl-tool has been refurbished, updated look plus new button for changing working dir
Core & runtime code:
- Backward compatibility 1: Some backward-compatibility is lost in the new version of the code-generation,
as we no longer use the information defined in the component STATE_PARAMETERS and POLARISATION_PARAMETERS
macros. A warning is issued in case of components using these macros, e.g.:
Warning: /usr/local/lib/mcstas-2.0delta/monitors/TOF2Q_cylPSD_monitor.comp is using STATE PARAMETERS
mcstas-2.0delta 2.0delta support is PARTIAL for these and support will END with next release
- Backward compatibility 2: We have standardized naming of component parameters - see the file NOMENCLATURE
installed in the McStas library. The code generation will give error messages of e.g. using xw and yh where
one should now be using xwidth and yheight.
- Support for tabulated magnetic fields. New code for handling interpolation in sparse data is included
in the share/interpolation/ area. The test instrument Test_pol_tabled.instr takes use of this feature.
The curren implementation is in draft status, we expect speedup in the next McStas release.
New Components:
- Sample_nxs.comp from Mirko Boin, HZB. Diffraction/imaging oriented sample where one defines the structure
by means of the NXS crystallography library which is now also included with McStas. The component comes with the test-
instruments Test_Sample_nxs_diffraction.instr and Test_Sample_nxs_imaging.instr.
- Elliptic_guide_gravity.comp from Henrik Carlsen, NBI. Analytical approach to describing an elliptical guide
geometry where gravity is taken into account. Included in the Reflectometer.instr from Anette Vickery, NBI.
- Suite of SANS-samples from Martin Cramer Pedersen, NBI. Various approaches to describing SANS diffraction
e.g. using the PDB data bank. Component names are SANSShells.comp SANSPDBFast.comp SANSPDB.comp
SANSNanodiscsWithTagsFast.comp SANSNanodiscsWithTags.comp SANSNanodiscsFast.comp SANSNanodiscs.comp
SANSLiposomes.comp SANSEllipticCylinders.comp SANSCylinders.comp SANSCurve.comp SANSSpheres.comp. Included
(some as comments) in the TestSANS.instr.
- SANSQMonitor.comp also from Martin Cramer Pedersen, NBI. Q-monitor for SANS also included in TestSANS.instr.
- TOF2Q_cylPSD_monitor from Anette Vickery, NBI. Time-of-flight vs. q monitor of cylindrical shape. Included
in the Reflectometer.instr test instrument.
- SNS_source_analytic.comp from Franz X. Gallmeier, SNS. Smooth-fit description of the SNS-moderators. Fits are
derived from the same underlying raw-data as the ordinary SNS_source.comp is using directly with linear
interpolation. NOTE: This component uses the atypical neutrons/pulse intensity unit. The used input file MUST
be given with a full path.
- Brilliance_monitor.comp from Peter Willendrup, DTU Fysik. Monitor for easy evaluation of mean and instantaneous
source brilliance for source comparison. Used in the ESS_brilliance.instr test instrument.
- TOF_PSD_monitor_rad.comp from Kim Lefmann, KU. Derived from PSD_monitor_rad by Henrich Frielinghaus, FZJ.
Position-sensitive TOF monitor with radially averaging.
- PSD_TOF_monitor.comp from Peter Willendrup, DTU Fysik. PSD-monitor with a number of independent time-slices.
Derived from PSD_monitor by Kim Lefmann, KU.
- Source_gen4.comp from Jonas O Birk, NBI and Uwe Filges PSI. Version of source_gen with PSI-specific changes,
e.g. a high-energy tail contribution. Included in the RITA-II.instr from Linda Udby, NBI.
- Absorber.comp from Peter Willendrup, DTU Fysik. Slab of perfectly absorbing material. Included in the RITA-II.instr
from Linda Udby, NBI.
- PSD_monitor_psf.comp and PSD_monitor_psf_eff.comp from Kim Lefmann and Linda Udby, KU. Two derivatives of
PSD_monitor.comp both with gaussian point-spread-function and _eff with a 1/k efficiency parameter. Included
in the RITA-II.instr from Linda Udby, NBI.
- Virtual_mcnp_ss_input.comp and Virtual_mcnp_ss_output.comp from Esben Klinkby, DTU Nutech. Allows to read and write
MCNP/MCNPX 'source surfaces'. For use in simulations where neutrons need transport in both codes.
- Virtual_mcnp_ss_Guide.comp from Esben Klinkby, DTU Nutech. Single guide piece sitting in a 'sandwich' between
an input and an output MCNP/X source surface.
- Mirror_Curved_Bispectral.comp and Mirror_Elliptic_Bispectral.comp from Henrik Jacobsen, KU. Mirrors for the
bispectral ESS instrument ESS_2001_bispectral.instr.
- Radial_div.comp from Kaspar Klenoe, KU. Divergence monitor measuring the radial deviation in divergence. Used in
Henrik Jacobsen's ESS_2001_bispectral.instr.
Updated Components:
- ESS_moderator_long.comp patches from Kim Lefmann KU (multiple-pulses, TOF-focusing) and Esben Klinkby DTU Nutech
(geometry and spectrum from ESS MCNPX models). Thanks to Klaus Lieutenant from Vitess/HZB for providing adjusted
parameters for the 'Mezei moderator' and a wavelength-dependent corretion term. The legacy 2001 ESS parametrization
is provided in obsolete as ESS_moderator_long_2001.comp.
- Bugfix of the SNS_source.comp from Garrett Granroth, SNS (segfaulted on windows). NOTE: This component uses the
atypical neutrons/pulse intensity unit. The used input file MUST be given with a full path.
- Bugfix of the Multilayer_sample from Rob Dalgliesh, ISIS.
- Many other components received updates...
Instruments:
- HZB_NEAT.instr from Emmanuel Farhi, ILL - written in collaboration with Ruep E Lechner. The NEAT spectrometer
from the HZB.
- TestSANS.instr from Martin Cramer Pedersen, NBI. Test SANS setup for the new SANS components described above.
- Reflectometer.instr from Anette Vickery, NBI. Reflectometer on pulsed source. Test instrument for a couple of
components from NBI contributors decribed above.
- Test_Sample_nxs_imaging.instr and Test_Sample_nxs_diffraction.instr from Mirko Boin, HZB. Test instruments for
the use of Sample_nxs.comp. NOTE: Special compilation required, see instrument source codes!
- RITA-II.instr from Linda Udby, NBI. Very detailed and complete, experimentally benchmarked description of the
RITA-II spectrometer at PSI. Use the RITA-II_test.sh script for test-scans.
- Test_SSR_SSW.instr and Test_SSR_SSW_Guide.instr from Esben Klinkby DTU Nutech. Test instruments for the above
mentioned components.
- ESS_2001_bispectral.instr from Henrik Jacobsen, KU. Model of a bispectral extraction system for the ESS (currently
using the 2001 version of the source)
- ILL_D22.instr from Emmanuel Farhi. Model of the D22 SANS from ILL.
Changes in McStas v1.12c, June 3rd, 2011
McStas 1.12c is bugfix release.
Bugfixes include:
Runtime
- Fix of a bug in the rectangular focusing routine, reported to mcstas-users by Markos Skoulatos, HZB
(see http://mailman.mcstas.org/pipermail/mcstas-users/2010q4/000845.html)
- Introduction of --ncount as unsigned long long int in place of double. Using double could potentially lead
simulations to "hang". A re-release of McStas 1.12c was done due to bugs in components related to the new
type returned from mcget_ncount.
Tools
- If gnuplot is available at installation time, mcplot and mcgui can use this in place of PGPLOT.
To use gnuplot, either
- edit your mcstas_config.perl and put PLOTTER => 'Gnuplot',
- set the enviroment variable MCSTAS_FORMAT to Gnuplot
Components
- Lens.comp, typo in author name corrected
- Guide_four_side.comp (and other similar), by Tobias Panzner updated
- Single_crystal.comp, corrected initialization when providing lattice consts and angles
- Source_simple.comp, corrected centering-bug when using gaussian wavelength distribution
- Monochromator_pol.comp, now works properly in GROUPS/multi-slab configurations
- Pol_simpleBfield.comp, potential polarisation exit-state bug corrected
- FermiChopper.comp, fixed error when computing automatic phase
- Monitor_nD.comp, fixed geometry bugs reported by Lambert van Eijck
Example instruments
- ESS_IN5_reprate.instr, parameter naming change in ESS_moderator_long component was not accomodated.
- templateTAS.instr, fixes relating to inclusion in other instrument files
Changes in McStas v1.12b, July 15th, 2010
McStas 1.12b is mostly a bugfix release, and the VERY last release in the 1.x series.
- A few extra features and contributions have been included.
McStas 2.0 will be released late 2010 and will introduce new features that
could break ceartain backward compatibility, hence we move from the 1.x series.
Bugfixes include:
Runtime
- Further adjustments to the MPI implementation, solves problems of hanging processes on large cluster runs.
- Threading support completely removed.
Components
- New contributions
- Multilayer_Sample.comp (Robert Dalgliesh, ISIS)
Multilayer Reflecting sample using matrix Formula. Requires GSL (GNU Scientific Library)
- Lens.comp (C. Monzat/E. Farhi/S. Desert/G.Euzin, ILL/LLB)
Refractive lens with absorption, incoherent scattering and surface imperfection.
- Lens_simple.comp (Henrich Frielinghaus, FZ Juelich)
Rectangular/circular slit with parabolic/spherical LENS
- Guide_four_side.comp (Tobias Panzner, PSI)
Models a guide with elliptic, parabolic or straight shaped side walls.
- Guide_four_side_2_shells.comp (Tobias Panzner, PSI)
Models a guide with elliptic, parabolic or straight shaped side walls.
As -"- with 2 outer mirror layer shells.
- Guide_four_side_10_shells.comp (Tobias Panzner, PSI)
Models a guide with elliptic, parabolic or straight shaped side walls.
As -"- with 10 outer mirror layer shells.
- Pol_FieldBox (Peter Willendrup)
Easier to use precession area. Corresponds to a set of Pol_simpleBfield's plus slits.
- Sapphire_Filter (Jonas O Birk, Uni CPH). Filter component, defaulting to saphire material properties
- New component features
- Addition of high-energy tail to Source_gen.comp (edits by Uwe Filges, PSI)
- Single_crystal.comp extended for anisotropic mosaicity (EXPERIMENTAL), (edits by Erik Knudsen, Risoe DTU)
- Various minor bugfixes to
- Guide_curved.comp
- DiskChopper.comp
- SNS_source.comp
- ESS_moderator_long.comp
Example instruments
- New examples
- ISIS_CRISP.instr, CRISP reflectometer from ISIS, test instrument for Multilayer_Sample.comp above
- Test_Lens.instr, test instrument for Lens.comp above
- FZJ_KWS2_Lens.instr, KWS2 SANS from FZJ, test instrument for Lens_simple.comp above
- templateTOF.instr (Was ILL_TOF_Env before)
- templateLaue.instr (Derived from the old tutorial Laue instrument)
- SE_example.instr and SE_example2.instr, simplistic Spin-Echo machines for illustrating use of Pol options
- template.instr ("Void" instrument skeleton - like Insert->Instrument Template)
- Test_shellguides.instr, test instrument for contributions from Tobias Panzner and Jonas O Birk.
- Minor improvements to
- templateDIFF.instr (SPLIT improves statistics)
- templateTAS.instr (SPLIT improves statistics)
- SNS_test.instr (Cleanup)
Datafiles
- Added SNS moderator input file source_sct091_tu_02_1.dat
- Added ISIS moderator input file h.crisp
Licensing
- We have decided to distribute the components and the other runtime code under the LGPL license (see the LGPL
file under lib/ . This allows to link (unmodified) code from that directory with other software and achieve
non-GPL binaries.
Platform support/Tools
- Mac OS X 10.3 Panther, 10.4 Tiger, 10.5 Leopard, 10.6 Snow Leopard (PPC/Intel, 32/64bit)
- Fix for problems with multiple perl installs, currently locked to perl 5.8.
- Instructions for using Matlab visualisation in the .dmg README file
- Windows XP 32/64bit, Windows Vista 32/64bit, Windows 7 32/64bit
- Note that we provide only a 32 bit package, but shown to work on 64 bit
- Fixed mcrun / mcgui for Windows for missing transfer of mpi parameters
- Fixed mcplot for Windows, foreground color is now black, not cyan
- Linux: Ubuntu is now our only "reference" Linux (Debian does not provide perl-pgplot)
- Ubuntu .deb's for 32 and 64bit, work for both for 9.10 Karmic Koala and 10.04 Lucid Lynx
- The .deb's require PGPLOT and perl-pgplot from Ubuntu Universe/Multiverse repositories
Parallelisation
- Improved stability of MPI simulations
Various
- A number of unlisted minor bugs ironed out, both in components, runtime code and tools.
McStas 1.12a is essentially a bugfix release, and the last release in the 1.x series.
McStas 2.0 will be released late 2009 / early 2010 and will introduce new features that
could break ceartain backward compatibility, hence we move from the 1.x series.
Bugfixes include:
Runtime
- Adjustments to the MPI implementation, solves problems of hanging processes on large cluster runs.
Components
- Various minor bugfixes to
- Isotropic_sqw.comp
- Vitess_input.comp
- Pol_bender.comp
- Pol_monitor.comp
- PolLambda_monitor.comp
- SNS_source.comp
- ISIS_moderator.comp
- FermiChopper_ILL.comp
- Progress_bar.comp
- TOFRes_sample.comp
- Virtual_tripoli4_output.comp
- Guide_honeycomb.comp
Example instruments
- Minor improvements to
- PSI_DMC.instr (source-guide focusing corrected)
- templateDIFF.instr (SPLIT improves statistics)
- templateTAS.instr (SPLIT improves statistics)
- SNS_test.instr (Cleanup)
Datafiles
- Added SNS moderator input file source_sct091_tu_02_1.dat
Tools
- Fixed mcrun / mcgui for Win32 for 'fixed --ncount at 1e6' when scanning/optimizing
Platform support
- Mac OS X, fix for problems with multiple perl install
- Windows XP, Windows Vista - see Tools section
- Linux, pgplot and pgperl now builds using gfortran (replacing g77)
Parallelisation
- Improved stability of MPI simulations
- Preference for OpenMPI (standard on Ubuntu and Mac OS X)
Various
- A number of unlisted minor bugs ironed out, both in components, runtime code and tools.
Changes in McStas v1.12, May 8th, 2008
Metalanguage
- New %include "instr" mechanism to include one instrument in another. (Useful for independent
build-up of e.g. primary and secondary spectrometer. Or easily see the effect of moving an instrument
to a different beamport or facility!) See the manual for details.
- When applying the WHEN keyword, an applied EXTEND %{ %} block will only be active if the WHEN
returns 'true'.
- Please take care when combining WHEN, GROUP and EXTEND %{ %} - see the manual.
Runtime
- Fix of a limiting case focusing problem reported to mcstas-users by George Apostolopoulos.
( See http://mailman.risoe.dk/pipermail/neutron-mc/2007q4/002915.html )
Components
- When using the Virtual_input type components, --ncount is always set to an integer multiplum
(repeat_count) of the number of events in the file. See also related remark about MPI below.
- New component: MirrorElli.comp, elliptical mirror. Contributed by Sylvain Desert, LLB
- New component: MirrorPara.comp, parabolic mirror. Contributed by Sylvain Desert, LLB
- Single_crystal validation still ongoing, but has progressed: The algorithm seems OK, but is to some
extent not in sync with the documentation. New option to specify reciprocal space vectors directly.
(before only real space definitions were possible)
- Most monitors now allow to 'not propagate' the neutron, i.e. not influence the beam. Parameter name
is 'restore_neutron'.
Example instruments
- ILL_H25_IN22_sample/_resolution.instr (CRG instrument @ ILL) by E. Farhi / P. Willendrup
- Incoherent_Test.instr - instrument to compare incoherent scattering from the different sample comps
(V_samle, PowderN, Single_crystal, Isotropic_sqw). More instruments of this type planned (compare
guides etc.), P. Willendrup / E. Knudsen / A. Daoud-Aladine
- FocalisationMirrors.instr - test instrument for MirrorElli and MirrorPara, Sylvain Desert, LLB
- PSI_DMC.instr, Powder Diffractometer, PSI, L. Keller / U. Filges / P. Willendrup
Datafiles
- 'Bugfix', some of the provided .laz files did not have proper unit for |F2|.
Tools
- Support for per-user mcstas_config.perl file, located in $HOME/.mcstas/ . This folder is also the default
location of the 'host list' for use with MPI or gridding, simply name the file 'hosts'.
- mcgui Save Configuration for saving chosen settings on the 'Configuration options' and 'Run dialogue'.
- Possibilty to run MPI or grid simulations by default from mcgui.
- When scanning parameters, mcrun now terminates with a relevant error message if one or more scan steps
failed (intensities explicitly set to 0 in those cases).
- When running parameter optimisations, a logfile (default name is "mcoptim_XXXX.dat" where XXXX is a
pseudo-random string) is created during the optimisation, updated at each optim step.
- We now provide syntax-highlighting setup files for vim and gedit editors.
Output formats
- Rudimentary support for GNUPLOT when plotting with mcplot. Data file format is standard McStas/PGPLOT.
Platform support
- Mac OS X 10.3 Panther (ppc), 10.4 Tiger (pcc/intel), 10.5 Leopard (ppc/intel)
- Windows XP, Windows Vista (Now with a recent perl version; 5.10 plus various fixes). New feature on Windows:
Simulations _always_ run in the background, freeing mcgui for other work.
- "Any" Linux - reference platforms are Ubuntu 8.04 (and earlier) and Debian 4.0 (and earlier). We have also tested
Fedora 8, OpenSuSE 10.3 and CentOS 4 releases recently.
- FreeBSD (FreeBSD release 6.3 and its cousin DesktopBSD 1.6 recently tested)
- SUN Solaris 10 (Intel tested, Sparc probably OK)
- Plus probably any UNIX/POSIX type environment with a bit of effort...
Parallelisation
- Improved stability of MPI simulations by addition of an 'MPI barrier' (reduces probability of nodes beeing 'out of sync'.
- On Windows, an 'mpicc.bat' script has been added for easier setup of McStas with gcc and MPI (We recommend MPICH).
- Mac OS X 10.5 Leopard is shipped with built-in support for MPI (OpenMPI). No need to install extra packages.
- Use of 'virtual sources' is now supported on MPI clusters. (If running on N nodes, all neutron events will be processed
on each of the N nodes - implicit repetition N times of the source contents.)
- OpenMP threading support
- Much improved gridding support (via ssh). Ready for heterogenous systems, e.g. mixed operating systems and hardware
types! (Requires -c compile flag for mcrun or equivalent setting in mcgui.) The only requirement is ssh client on the machine
where the grid run is started, plus ssh daemon and c-compiler (e.g. gcc or simply cc) on the remote machines. Files in the
current dir are transparently copied back and forth, causes a substantial network traffic in some cases. Output data from the
nodes are automatically merged using mcformat. Just as efficient as MPI without any library dependencies at all. Make use
of all processer cores in your machine, simply choose to 'grid'. Windows 'client' host OK, we autodetect ssh and scp binaries
from the Putty package.
Various
- A number of minor bugs ironed out, both in components, runtime code and tools.
- From release 1.12, McStas is GPL 2 only. The debate on the internet about the future GPL 3 license suggests that this license
might have implications on the 'derived work', hence have implications on what and how our users use their McStas simulations
for. To protect user freedom, we will stick with GPL 2.
WARNING: The 'dash' shell which is used as /bin/sh on some Linux system (Including Ubuntu 8.04) makes the 'Cancel' and 'Update'
buttons fail in mcgui. Solutions:
a) If your system is a Debian or Ubuntu, please dpkg-reconfigure dash and say 'no' to install dash as /bin/sh
b) If you run another Linux with /bin/sh beeing dash, please install bash and manually change the /bin/sh link to point at bash.
Changes in McStas v1.11, July 3rd, 2007
Metalanguage
- New SPLIT keyword for improving statistics. WARNING: Follow instructions in the documentation for safe
use of the SPLIT keyword.
Components
- Source_adapt.comp, additions by Aaron Percival which allows to specify a flat wavlength distibution.
- Single_crystal.comp, warning NOT to use this component as a monochromator (bug fix/validation under way).
- PowderN.comp, can now be used in concentric mode, i.e. for modelling sample surroundings (cryostat, container..).
- Tunneling_sample.comp (new) Double-cylinder shaped all-incoherent scatterer with elastic, quasielastic (Lorentzian)
and tunneling (sharp) components. No multiple scattering. Absorbtion included. By Kim Lefmann
- TOF2E_monitor.comp (new) TOF-sensitive monitor, converting to energy. By Kim Lefmann
Example instruments
- New ILL_H15_IN6 and ILL_H142_IN12 instruments by Emmanuel Farhi are included.
- Histogrammer.instr - see the 'Tools' section
- New ESS_IN5_reprate.instr Instrument for simulating IN5-TYPE (cold chopper) multi-frame spectrometer at ESS LPT.
(Also example instrument for Tunneling_sample.comp.) By Kim Lefmann
Datafiles
- Reflectivity curves from Swiss Neutronics (more work done, available in the next McStas release).
- More Sqw tables for use with the Isotropic_Sqw component.
Tools
- PGPLOT output format (original McStas format) is now possible on Windows. A pgplot/pgperl installation
is included in a standard McStas Win32 installation.
- New mcdaemon for visualisation of intermediate simulation results (obtained by sending USR2 signal to a
running simulation or by using the Progress_bar component with flag_save=1).
- Improvements to mcgui:
* New tool menu with hooks to mcformat, mcdaemon and mcplot
* Possibility for auto-setup of MPI ssh keys
* Possibility to run the McStas editor in 'detached' mode, hence available whilst a simulation is running
- Histogrammer.instr: Special histogramming instrument for visualisation of virtual source files (Virtual_input,
VitESS, MCNP and Tripoli formats)
Output formats
- NeXus output format possible. To use this feature, HDF and NeXus libraries must be available
and functional on your system before installing McStas from source. (In case of a binary package,
you MUST recompile the McStas software.) To enable a McStas build with NeXus, run
./configure --with-nexus.
Platform support
- Mac OS X is now considered a supported platform. For now, no actuall installer program
is given, but all needed software has been packed together with easy to follow instructions.
Test of the instructions have been performed on Mac OS X 10.4 Tiger on both Intel and PPC
hardware.
- McStas now comes in a Debian binary package (.deb), tested to work on Debian and Ubuntu systems. The debian
package provides McStas, pgplot and pgperl and have dependencies for the perl, perl-tk, gcc, libg2c0, pdl and libc6-dev
packages.
Parallelisation
- The threading mechanism for parallelisation has been removed from McStas since it caused too many problems. For
parallelisation on single machines (e.g. modern dual-core processors) or clusters, MPI (MPICH) is the recommended solution.
The McStas team members routinely run developer machines and clusters using MPI.
Intel C compiler
- The documentation now includes instructions to run McStas with the Intel C compiler (available on Windows,
Linux x86 and Mac OS x86 systems). Typically, a performance gain of 2 is found relative to gcc -O2. Relevant
compiler flags are:
MCSTAS_CFLAGS="-g -O2 -wd177,266,1011,181"
export MCSTAS_CC="icc"
- To run McStas with MPI and the Intel C compiler, you may have to edit your mpicc shell script to set:
CC="icc"
Various
- A standard McStas source package now works directly within the DANSE framework.
WARNING: The 'dash' shell which is used as /bin/sh on some Linux system (Including Ubuntu 7.04) makes the 'Cancel' and 'Update'
buttons fail in mcgui. Solutions:
a) If your system is a Debian or Ubuntu, please install our Debian package which requests automatic removal of 'dash'.
b) If your /bin/sh is dash, please install bash and manually change the /bin/sh link to point at bash.
Changes in McStas v1.10, Dec 4, 2006
General
- This release is a major step forward for McStas in terms of support for polarisation.
Peter Christiansen who worked at Risoe March-October 2006 was the main workforce
behind this new functionality, backed by funding from ISIS, work by Rob Dalgliesh at
ISIS and inspiration from the VitESS and NISP packages. As this is the first release
with polarisation support, the methods and algorithms implemented will certainly be
developed further. Hence, documentation of the functionality has been placed in an
appendix to the manual.
Polarisation users: Please give us feedback for further development!
Items marked by (p) below relate to the new polarisation support.
- New keywords for the meta language improves support for e.g. description of sample
enviroments.
- A method for automatic optimisation has been implemented, e.g. for achieving maximum flux
at the sample position (any quantity measured by a McStas monitor can be optimised) as a
function of simulation parameters.
- Bugfixes in many different areas.
Documentation
- Manual and component manual slightly updated according to adding/modification of components
and functionality. New appendix on the polarisation features. (p)
Kernel
- New WHEN keyword, conditional use of components,
COMPONENT MyComp=Component(...) WHEN (condition) AT
- New JUMP keyword, possibility to iterate a given component a number of times (multiple
scattering) or for 'teleportation' to a given component. (USE WITH CAUTION)
- Improved COPY keyword with parameter substitution (Make a copy of an other component
instance with a few parameters changed)
- Spin propagation algorithm (When magnetic field is set 'on', the central propagation
routines also handle Larmor precession in the field) (p)
- Handeling of analytical B-fields (p)
Tools
- New 'merge/convert' tool mcformat: Convert between McStas output formats and merge cluster
node datasets into one dataset.
- TOF mode for mcdisplay (Statistical chopper acceptance diagrams generated from the simulated
neutron rays. Currently only supported on Unix systems with PGPLOT.)
- Optmisation support in mcrun/mcgui using Perl::Amoeba (se description above)
- POSIX threading on multi-core processors (BEWARE, performance is generally better using MPI)
- mcgui: Note that if you experience crashes when starting/running GNOME/Gtk2 applications,
update your perl-Tk installation. Two ways to do this:
1) Get the tarball from http://www.mcstas.org/download/Tk-804.027_gtk2_patch.tar.gz and
install using 'perl Makefile.PL && make && make install'.
2) Do a 'make tk' in the McStas unpacked McStas source directory. This will download and
install the tarball into your McStas system directory.
Components
- Monochromator_pol.comp - Polarising monochromator/analyzer (p)
- Pol_bender.comp - Polarising bender (p)
- Pol_mirror.comp - Polarising mirror (p)
- Pol_guide_vmirror.comp - Guide with semi-transparent, polarising mirror (p)
- Pol_simpleBfield.comp - Numerical precession in analytical B-fields (p)
- 3 Polarisation monitors - MeanPolLambda_monitor.comp, PolLambda_monitor.comp
Pol_monitor.comp (p)
- PSD_Detector.comp - Physical detector - comes with many gas lookup tables
(Contrib: Thorwald van Vuure, ILL)
- Virtual_mcnp_*.comp - MCNP event file handeling
(Contrib: Chama Hennane, ENSIMAG and Emmanuel Farhi, ILL)
- Source_multi_surfaces.comp - Source comp with multiple surface areas with individual
spectrums
(Contrib: Ludovic Giller, EPFL and Uwe Filges, PSI)
- multi_pipe.comp - Defines a 'grid' of slits (focusing device)
(Contrib: Uwe Filges, PSI)
- Exact_radial_coll.comp - Radial collimator comp, exact model
(Contrib: Roland Schedler, HMI)
- FermiChopper_ILL.comp - Fermi Chopper comp with optional supermirror coated blades.
(Contrib: Helmut Schober, ILL)
- V_sample enriched with quasi-elastic features (Kim Lefmann)
Example Instruments
- TAS frontend with reciprocal space (hkl) calculator (Emmanuel Farhi)
- Example instruments for polarisation comps (p)
- QUENS_test.instr (Test of new quasi-elastic features V_sample)
Installation
- Much easier installation on Windows, single executable file with all support applications
is now available. Simply click 'next' alle the way and you are done.
- PGPLOT and Scilab installation help tools on Linux systems
WARNINGS (Almost identical to those from release 1.9.1)
- Because of rapid changes in the support software for McStas, the current release has support
for only some releases of:
* Scilab (Win32 and Unix) - pick release 4.0 if available or pick release 3.0 from , e.g. from
http://www.scilab.org/download/index_download.php?page=oldReleases.html
(Automatically included in the Win32 .exe installer and Linux Scilab installer)
* Perl (Win32) - on Windows we only support Perl 5.6 - pick
http://downloads.activestate.com/ActivePerl/Windows/5.6/ActivePerl-5.6.1.638-MSWin32-x86.msi
(Automatically included in the Win32 .exe installer)
* If you are running Unix with GNOME/Gtk2 applications, you may experience problems with mcgui
crashing, please install updated perl-Tk from http://www.mcstas.org/download
Changes in McStas v1.9.1, Mar 29, 2006
General
- Update release, mainly bugfixes plus a few other things
Documentation
- Component manual slightly updated according to adding/modification of components.