flux-sources
Kristian Nielsen
kristian.nielsen at risoe.dk
Fri Jun 18 13:24:53 CEST 1999
> Date: Wed, 16 Jun 1999 16:52:36 +0200
> From: Daniel Berger <Daniel_Berger at Physik.TU-Muenchen.DE>
> I have some problems to understand Source_flux.
> How does the programme calculate d_Phi/d_Lambda*d_Omega and how is d_Omega
> calculated? A further question is the influx of the source_area to d_Omega.
The basic idea in the Source_flux component is to start off
mcget_ncount() neutron histories within a given wavelength range and
solid angle. The initial neutron weight is then calculated so that the
simulated intensity matches a given desired flux (neutrons per lambda
per solid angle per source area).
The solid angle (I think this is what you refer to with d_Omega?) is
defined by a rectangle of size xw x yh at distance dist, so the maximum
horizontal and vertical divergence may be computed as
hdiv = atan(xw/(2.0*dist))
vdiv = atan(yh/(2.0*dist))
The solid angle within which neutron histories are emitted is therefore
(4*hdiv*vdiv) (this implicitly makes approximations based on the
assumptions that the angles are small and that the source dimensions are
small compared to the distance dist. These approximation should probably
be removed in a later version).
The wavelength range delta_lambda of emitted neutron histories is easily
computed from E0 and dE, as is the area of the source source_area from
the source radius.
Now the number of neutron histories per solid angle per wavelength per
source area emitted in the simulation is
F = mcget_ncount()/((4*hdiv*vdiv)*delta_lambda*source_area
The simulated intensity in the simulation is p_in*F, where p_in is the
initial weight of the neutron. Thus, to make the simulated intensity
match a given flux, we should have
p_in = flux/F
This is what happens in the Source_flux component.
I hope this answers your questions, otherwise feel free to ask again
about details.
- Kristian.
More information about the mcstas-users
mailing list