McStas
John Copley
john.copley at nist.gov
Mon Aug 23 19:09:46 CEST 1999
Dear Kristian
Thanks for your message, and thanks for adding me to the mailing list.
I'm not sure whether your colleagues got a copy of your message. The CC
line read as follows:
CC: kim.lefmann at risoe.dk.kurt.clausen@risoe.dk
(note the . between dk and kurt)
Let me tell you a little bit about MSCAT.
The original program, called MSC, was written by Frank Bischoff roughly
30 years ago! When I was a postdoc at Argonne my supervisor, Mike Rowe,
asked me to acquire the program and get it into a form that would be
easier for neutron scatterers to use. In the process and since then a
number of new features have been added. The last official release was
about 15 years ago. It is described in Comp. Phys. Commun. 40 (1986)
337-357 (which I can send you if you are interested), together with
references therein.
Frankly the program is sufficiently antiquated that I don't particularly
like to use it myself! On the other hand it is still (I think) the only
comprehensive program that's available for this type of calculation.
I've tried on several occasions to persuade someone to have their
student rewrite the program under some sort of loose supervision from
me, but it has never taken off. I have also rewritten large parts of the
program myself, but there are challenges that I have never succeeded in
sorting out to my own satisfaction. Largely these challenges have to do
with the selection of a new direction and magnitude for the neutron wave
vector k, given S(Q,omega). Within MSCAT, before the Monte Carlo loop
begins, a number of functions are formed from the input S(Q,omega);
these include the upscattering probability as a function of the incident
neutron energy, the so-called marginal up- and down-scattering
functions, and so on. These functions are used to select the new
direction and magnitude of k in such a way that all choices are about
equally likely (i.e. to reduce the variance), but there are problems in
deciding how to do the various integrals necessary to form these
functions (number of points, mesh size etc). Every time I think about
this matter I ask myself whether it might be better to do the sampling
in a more straightforward but less efficient manner, and I have never
satisfactorily resolved this question. If you think this is worth
pursuing I can fill you in with more detailed information and I can send
you code. At present MSCAT is a standalone program written in Fortran
and the user is required to provide a subroutine that defines S(Q,omega)
(even though this is of course unknown, being the quanitity that one is
trying to measure when one does a neutron scattering experiment). This
should be kept in mind when rewriting the program and/or incorporating
it in a larger piece of software such as McStas.
With regard to simulating the optical filter at my instrument, I propose
to send you a fax containing a description of the geometry of the guide,
plus a measured reflectivity curve. What is your fax number?
Best wishes
John
--
John R.D. Copley
National Institute of Standards and Technology
100 Bureau Drive, Stop 8562
Gaithersburg, MD 20899-8562
Tel: (301)975-5133/6220
FAX: (301)921-9847
More information about the mcstas-users
mailing list