cylinder_intersect
Thomas Hansen
hansen at ill.fr
Wed Mar 10 20:26:26 CET 1999
Dear Kristian,
As 'promised', I've got some trouble with mcstas, trying to put in the
powder1 sample. In fact, all incoming neutrons are absorbed by the
condition:
...
if (cylinder_intersect(&t0, &t1, x, y, z, vx, vy, vz, radius, h))
{
printf("t0 %lf t1 %lf \n",t0, t1);
if (t0 < 0)
{
ABSORB;
}
...
I checked the neutron parameters, and a typical neutron comes in with:
vx= 15 vy= -29 vz= 2903 m/s
x=-0.003 y=-0.014 z= 0.000 m
The sample is defined as
radius 0.020000 height 0.050000 m
And the routine cylinder_intersect gives finally
t0 -0.000007 t1 0.000007
Unfortunately that routine cylinder_intersect is not very clear, especially
the meanings of D, t_in, y_in etc. The other way round it's probably easy
to understand, but coming from the source code to guess the systam is not
evident. I'd like to understand what's happening, why my neutron gets a
negative time t0 (I guess it's because the neutron arrives already at z=0,
so is already IN the sample at that time). If it is okay that the neutron
gets a negative time t0, why has it to be excluded from any diffraction,
even absorbed? So up to now with the existing components, the neutrons
cannot pass the sample.
On the other hand, up to that point, the sample position, I managed to
simulate fairly well the beam with focussing monochromators etc. and with a
better 'neutron production' in my Maxwell source in order to have better
efficiency. So now I can at least do rocking curves and check the focussing
of the monochromators, also in transmission (I just added xmin and xmax)
for my component Monochromator0.
Best wishes,
Thomas
________________________________________________________________________
Dr.Thomas HANSEN, Science/Diffrac/D20, Institut Laue-Langevin (ILL4-100)
BP 156, 38042 GRENOBLE Cedex 9, FRANCE, hansen at ill.fr, http://www.ill.fr
Phone (+33/0)4.76.20-70.44 Fax:(~)4.76.48.39.06 Home:(~)4.76.18.05.53
More information about the mcstas-users
mailing list