[mcstas-users] elliptic mirror problem

Екатерина Рувинская ruvinskaia.e.e at mail.ru
Sun Sep 16 21:56:25 CEST 2018


Dear all,

I have a problem. I need to neutron beam pass through elliptical mirrors system. I tried approach through component "Guide_tapering" and component "Mirror_Elliptic". But in both cases neutron beam does not move after the mirror. Could you say what the source of the problem and how I can fix this. Code with "Guide_tapering" for example are attached.

Thanking in advance.
Yours faithfully, Ekaterina .


DEFINE INSTRUMENT NSE_res(double slit_w = 0.1)


DECLARE
%{

double slit_h;
int iter;
double arm_lenght = 5;
%}


INITIALIZE
%{

%}


TRACE


COMPONENT Origin = Progress_bar()
  AT (0,0,0) ABSOLUTE

COMPONENT source =  Source_gen(
    yheight=0.00001,xwidth=slit_w, lambda0=9, dlambda=0.000000000000001,I1=1e13,
    verbose=1,focus_xw=slit_w,focus_yh=0.0001, dist = arm_lenght/4)
    AT (0, 0, 0)  RELATIVE Origin
  EXTEND
  %{
     t = rand0max(1e-20); // set time from 0 to 1 ms for TOF instruments.
  %}
    

COMPONENT mon_TOF_source = Monitor_nD(
    xwidth = 0.4, yheight = 0.4, restore_neutron = 1,
    options = "time, limits=[0.000000001 0.3], bins=180, lambda, limits=[8.9 9.1], bins=180")
    AT (0, 0, 0.00001) RELATIVE PREVIOUS

COMPONENT monitor_lambda_source = Monitor_nD(
    xwidth = 0.4, yheight = 0.4, restore_neutron = 1,
    options = "lambda, limits = [8.99, 9.01], bins = 180")
    AT (0, 0, 0.00001) RELATIVE PREVIOUS


COMPONENT first_arm = Arm()
    AT (0, 0, 0.000001) RELATIVE PREVIOUS

    COMPONENT slit_first = Slit(xwidth = slit_w, yheight = 0.00001)
        AT (0, 0, 1E-4) RELATIVE first_arm

    COMPONENT elliptical_1 = Guide_tapering(
        option = "elliptical", w1 = 1, h1 = 0.5, l = arm_lenght,
        linw = 0.5, loutw = 0.5,  linh = 0.5, louth = 0.5,
         segno = 100, R0 = 0.995, 
        Qcx = 0.0217, Qcy = 0.0217, alphax = 6.07,
        alphay = 6.07, W = 0.003, mx = 3, my = 3)
        AT (-0.5+slit_w/2, 0,1E-3) RELATIVE first_arm
        EXTEND
        %{
           if(!SCATTERED) ABSORB;
        %}


COMPONENT second_arm = Arm()
    AT (0, 0, arm_lenght) RELATIVE first_arm

    COMPONENT elliptical_2 = Guide_tapering(
        option = "elliptical", w1 = 1, h1 = 0.5, l = arm_lenght,
        linw = 0.5, loutw = 0.5,  linh = 0.5, louth = 0.5,
         segno = 10, R0 = 0.995, 
        Qcx = 0.0217, Qcy = 0.0217, alphax = 6.07,
        alphay = 6.07, W = 0.003, mx = 3, my = 3)
        AT (0.5-slit_w/2, 0,1E-3) RELATIVE second_arm
        EXTEND
        %{
           if(!SCATTERED) ABSORB;
        %}


    COMPONENT slit_f = Slit(xwidth = slit_w, yheight = 0.00001)
        AT (0, 0, arm_lenght) RELATIVE second_arm

COMPONENT mon_TOF_end = Monitor_nD(
    xwidth = 0.4, yheight = 0.4, restore_neutron = 1,
    options = "time bins=180, lambda, limits=[29 31], bins=180")
    AT (0, 0, 0.001) RELATIVE PREVIOUS

COMPONENT monitor_lambda_end = Monitor_nD(
    xwidth = 0.4, yheight = 0.4, restore_neutron = 1,
    options = "lambda, limits = [8.99, 9.01], bins = 180")
    AT (0, 0, 0.001) RELATIVE PREVIOUS


COMPONENT monitor_time_end_9 = Monitor_nD(
    xwidth = 0.4, yheight = 0.4, restore_neutron = 1,
    options = "time, limits = [0.022784, 0.022792] bins = 200")
    AT (0, 0, 0.001) RELATIVE PREVIOUS

COMPONENT monitor_time_end_30 = Monitor_nD(
    xwidth = 0.4, yheight = 0.4, restore_neutron = 1,
    options = "time, limits = [0.0455305, 0.0455307] bins = 200")
    AT (0, 0, 0.001) RELATIVE PREVIOUS



FINALLY
%{
%}

END


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman2.mcstas.org/pipermail/mcstas-users/attachments/20180916/3989071d/attachment.html>


More information about the mcstas-users mailing list