McStas logo McStas - A neutron ray-trace simulation package ILL; PSI; ESS Niels Bohr Institute DTU Physics NEXMAP


About McStas
 Conditions of use
 Project funding

 Other Downloads (share)

Mailing list

Search web/mailinglist

 Wiki (GitHub)
 McStas manual


Report bugs (GitHub)

Code-repository (GitHub)

McStas: Source_gen4

[ Identification | Description | Input parameters | Links ]

The Source_gen4 Component

Circular/squared neutron source with flat or Maxwellian energy/wavelength spectrum (possibly spatially gaussian)


  • Site:
  • Author: Emmanuel Farhi, Kim Lefmann, modified to PSI use by Jonas Okkels Birk
  • Origin: ILL/Risoe
  • Date: Aug 27, 2001


This routine is a neutron source (rectangular or circular), which aims at
a square target centered at the beam (in order to improve MC-acceptance
rate). The angular divergence is then given by the dimensions of the
The neutron energy/wavelength is distributed between Emin=E0-dE and
Emax=E0+dE or Lmin=Lambda0-dLambda and Lmax=Lambda0+dLambda. The I1 may
be either arbitrary (I1=0), or specified in neutrons per steradian per
square cm per Angstrom. A Maxwellian spectra may be selected if you give
the source temperatures (up to 3). And a high energytail of the shape A/(lambda0-lambda) can also be
specified if you give an A. Finally, a file with the flux as a
function of the wavelength [lambda(AA) flux(n/s/cm^2/st/AA)] may be used
with the 'flux_file' parameter. Format is 2 columns free text.
Additionl distributions for the horizontal and vertical phase spaces
distributions (position-divergence) may be specified with the
'xdiv_file' and 'ydiv_file' parameters. Format is free text, requiring
a comment line '# xylimits: pos_min pos_max div_min div_max' to set
the axis of the distribution matrix. All these files may be generated using
standard monitors (better in McStas/PGPLOT format), e.g.:
Monitor_nD(options="auto lambda per cm2")
Monitor_nD(options="x hdiv, all auto")
Monitor_nD(options="y vdiv, all auto")
The source shape is defined by its radius, or can alternatively be squared
if you specify non-zero h and w parameters.
The beam is spatially uniform, but becomes gaussian if one of the source
dimensions (radius, h or w) is negative, or you set the gaussian flag.
Divergence profiles are triangular.
The source may have a thickness, which will broaden the default zero time
For the Maxwellian spectra, the generated intensity is dPhi/dLambda (n/s/AA)
For flat spectra, the generated intensity is Phi (n/s).

Usage example:
Source_gen(radius=0.1,Lambda0=2.36,dLambda=0.16, T1=20, I1=1e13)
Source_gen(h=0.1,w=0.1,Emin=1,Emax=3, I1=1e13, verbose=1, gaussian=1)
t = rand0max(1e-3); // set time from 0 to 1 ms for TOF instruments.

Some sources parameters:
PSI cold source T1= 296.16, I1=8.5E11, T2=40.68, I2=5.2E11
ILL VCS cold source T1=216.8,I1=1.24e+13,T2=33.9,I2=1.02e+13
(H1)         T3=16.7 ,I3=3.0423e+12
ILL HCS cold source T1=413.5,I1=10.22e12,T2=145.8,I2=3.44e13
(H5)         T3=40.1 ,I3=2.78e13
ILL Thermal tube    T1=683.7,I1=0.5874e+13,T2=257.7,I2=2.5099e+13
(H12)        T3=16.7 ,I3=1.0343e+12
ILL Hot source      T1=1695,I1=1.74e13,T2=708,I2=3.9e12

Feb 2005: output cross-checked for 3 Maxwellians against VITESS source
I(lambda), I(hor_div), I(vert_div) identical in shape and absolute values
Validated by: K. Lieutenant

Input parameters

Parameters in boldface are required; the others are optional.
flux_filestrName of a two columns [lambda flux] text file that contains the wavelength distribution of the flux in [1/(s*cm**2*st*AA)]. Comments (#) and further columns are ignored. Format is compatible with McStas/PGPLOT wavelength monitor files. When specified, temperature and intensity values are ignored. NO correction for solid-angle is applied, the intensity emitted into the chosen xw x yh rectangle at distance dist.0
xdiv_filestrName of the x-horiz. divergence distribution file, given as a free format text matrix, preceeded with a line '# xylimits: xmin xmax xdiv_min xdiv_max'0
ydiv_filestrName of the y-vert. divergence distribution file, given as a free format text matrix, preceeded with a line '# xylimits: ymin ymax ydiv_min ydiv_max'0
radiusmRadius of circle in (x,y,0) plane where neutrons are generated. You may also use 'h' and 'w' for a square source0.0
distmDistance to target along z axis.0
xwmWidth(x) of target. If dist=0.0, xw = full horz. div in deg0
yhmHeight(y) of target. If dist=0.0, yh = full vert. div in deg0
E0meVMean energy of neutrons.0
dEmeVEnergy spread of neutrons, half width.0
Lambda0AAMean wavelength of neutrons.0
dLambdaAAWavelength spread of neutrons,half width0
I11/(cm**2*st)Source flux per solid angle, area and Angstrom0
hmSource y-height, then does not use radius parameter0
wmSource x-width, then does not use radius parameter0
gaussian0/1Use gaussian divergence beam, normal distributions0
verbose0/1display info about the source. -1 unactivate source.0
T1KTemperature of the Maxwellian source, 0=none0
flux_file_perAA1When true (1), indicates that flux file data is already per Angstroem. If false, file data is per wavelength bin.0
flux_file_log1When true, will transform the flux table in log scale to improve the sampling. This may also cause0
LminAAMinimum wavelength of neutrons0
LmaxAAMaximum wavelength of neutrons0
EminmeVMinimum energy of neutrons0
EmaxmeVMaximum energy of neutrons0
T2KSecond Maxwellian source Temperature, 0=none0
I21/(cm**2*st)Second Maxwellian Source flux0
T3KThird Maxwellian source Temperature, 0=none0
I31/(cm**2*st)Third Maxwellian Source flux0
lengthmSource z-length, not anymore flat0
phi_initdegreesAngle abowe the x-z-plan that the source is amied at0
theta_initdegreesAngle from the z-axis in the x-z-plan that the source is amied at0
HEtailA1/(cm**2*st*AA)Amplitude of heigh energy tail0
HEtailL0AAOffset of heigh energy tail0


[ Identification | Description | Input parameters | Links ]

Generated on 2023-09-19 20:01:36

Last Modified: Wednesday, 03-Jan-2024 19:59:10 CET
Search website mailinglist archive GitHub repos