[mcstas-users] Too low I and N

wokaoyan1981 wokaoyan1981 at 126.com
Sun Jul 27 09:49:58 CEST 2008


Hello colleagues,

   I've set up a residual stress instrument.The simulation result suggests(Neutron count=109): Neutrons after Fe(211) diffraction are I I_err N=[29927.1 31233.5 3];And neutrons reaching the detector through aperture are I I_err N=[0 0 0]. Both I and N are too low.
   I raised horizontal divergences of the first and second collimator but I and N remain too low. What should I do in order to get high I and N on detector?
   
   Here is the code:
/*******************************************************************************
*         McStas instrument definition URL=http://www.mcstas.org
*
* Instrument: residual stress instrument 
*
* %Identification
* Written by: Tom
* Date:10 Jan 2008
* Origin: institute
* Release: McStas 1.6
* Version: 0.2
* %INSTRUMENT_SITE:thesis
*
* residual stress instrument 
*
* %Description
* try to optimize parameters of residual stress instrument. default geometry is 
* from blueprints of residual stress instruments at CARR,FRM-II(Germany),E3* (Germany) * and SALSA(France) 
* Example: mcrun residual_stress.instr <RV=-1>
*
* %Parameters
* dist:       [m]    focusing distance from source to SlitIn
* GapM2_G:    [m]    distance between M2Exit and guide entrance
* xw:         [m]    width of neutron guide entrance
* yh:         [m]    height of neutron guide entrance
* l:          [m]    length of straight neutron guide
* m:          [1]    m-value of material1.5~3
* CH1:        [']    horizontal divergence of the first collimator
* len_C1      [m]    length of the first collimator
* L1:         [m]    distance between exit of first collimator and     
*                    monochromator,0.01~0.3m
* A1:         [deg]  rotation of mono
* DM:         [Angs] d-spacing of monochromator
* NH:         [columns]   number of slabs horizontal 
* NV:         [rows]   number of slabs vertical 
* mosaich:   [']    Horisontal mosaic FWHM 
* mosaicv:    [']    Vertical mosaic FWHM 
* RV:         [m]    Monochromator vertical curvature, 0 for flat, -1 for automatic
*                    setting(then RV=2*L2*sin(DEG2RAD*A1) )
* RH:         [m]    Monochromator horizontal curvature, 0 for flat, -1 for automatic
*                    setting(then  RH = 2*L2/sin(DEG2RAD*A1))
* L2:         [m]    distance between monochromator and sample,1.9~2.2
* CH2:        [']    horizontal divergence of the second collimator
* DS:         [Angs] d-spacing of sample:default Fe(hkl) 
* L3:         [m]    distance between sample and detector   
* %Link
* A reference/HTML link for more information
*
* %End
*******************************************************************************/
/* Change name of instrument and input parameters with default values */
DEFINE INSTRUMENT residual_stress(
   dist=2, GapM2_G=0, xw=0.06, yh=0.11, l=6, m=2, CH1=10,
   L1=0.3, A1=45, DM=1.0886, len_C1=0.6, NH=1, NV=15, mosaich=30,mosaicv=30,
   RV=-1, RH=0, L2=1.9,CH2=30,DS=1.1782,L3=1.0) 
/* The DECLARE section allows us to declare variables or  small      */
/* functions in C syntax. These may be used in the whole instrument. */

DECLARE
%{
double M2Exit_mono; /* distance between M2Exit and monochromator */
double lambda; /*wavelength after diffraction*/
double monow; /*width of mono*/ 
double A2;  /*half of sample take off angle*/
%}

/* The INITIALIZE section is executed when the simulation starts     */
/* (C code). You may use them as component parameter values.         */
INITIALIZE
%{
M2Exit_mono=GapM2_G+l+len_C1+L1;
lambda=2*DM*sin(DEG2RAD*A1);
if (RV<0) RV=2*L2*sin(DEG2RAD*A1);
if (RH<0) RH = 2*L2/sin(DEG2RAD*A1);
monow=xw/sin(DEG2RAD*A1);
A2=asin(lambda/(2*DS))*RAD2DEG;
printf("\nlambda=%f\tRV=%f\tRH=%f\tmonow=%f\tA2=%f\n",lambda,RV,RH,monow,A2); 
%}

/* Here comes the TRACE section, where the actual      */
/* instrument is defined as a sequence of components.  */
TRACE
/* Progress_bar is an Arm displaying simulation progress.*/
COMPONENT Origin = Progress_bar()
  AT (0,0,0) ABSOLUTE

/********************* neutron source********************************/
COMPONENT Source = Source_Maxwell_3(
    height = 0.75, width =0.52988 , 
    l_low =0.2,l_high =7,               
    dist = dist,                         
    xw = 0.06, yh = 0.11,
    T1 = 320,I1 =9.87E12) 
   AT (0, 0, 0)  RELATIVE Origin

/************channel(Al and Fe) inside reactor, length:4.049m**********/
COMPONENT SlitIn = Slit(
    width = 0.06, height = 0.11)
  AT (0, 0, 0 ) RELATIVE  Source

COMPONENT M2Exit = Slit(
    width = 0.06, height = 0.11)
  AT (0, 0, 4.049 ) RELATIVE SlitIn 


 /*************************straight_guide*******************/
COMPONENT straight_guide = Guide(
    w1 = xw, h1 = yh, w2 = xw, h2 = yh, l =l, m = m)
  AT (0, 0, GapM2_G) RELATIVE M2Exit


/**************************first collimator**************************/
COMPONENT collimator1 = Collimator_linear(
    xmin = -xw/2, xmax = xw/2, ymin = -yh/2, ymax = yh/2,
    len = len_C1, divergence = CH1)
  AT (0, 0, l) RELATIVE straight_guide


/*************************mono_craddle***************************/
COMPONENT mono_craddle = Arm(
    )
  AT (0, 0, M2Exit_mono) RELATIVE M2Exit
  ROTATED (0, A1, 0) RELATIVE Origin

/***************************monochromator Ge(511)****************************/
COMPONENT monochromator = Monochromator_curved(
    width=monow, height=0.15, NH=NH, NV=NV,reflect = "0", transmit = "0",
    gap = 0.0005,  mosaich = mosaich, mosaicv = mosaicv, r0 = 0.7, 
    t0 = 1.0, RV = RV, RH = RH, DM = DM)
  AT (0, 0, 0) RELATIVE mono_craddle

/*********************mono_out*******************/
COMPONENT mono_out = Arm(
    )
  AT (0, 0, 0) RELATIVE mono_craddle
  ROTATED (0, 2*A1, 0) RELATIVE Origin

/********************detectors before second collimator**************************/
COMPONENT LDbeforeC2 = L_monitor(
    nchan = 200, filename = "LDbeforeC2", xwidth = 0.15,
    yheight = 0.15, Lmin = 0, Lmax = lambda+0.1)
  AT (0, 0, 0.8) RELATIVE mono_out

COMPONENT PSDbeforeC2 = PSD_monitor(
    filename = "PSDbeforeC2", xwidth = 0.15, yheight = 0.15)
  AT (0, 0, 0.8) RELATIVE mono_out

/***********************second collimator***************************/
 COMPONENT collimator2 = Collimator_linear(
    xmin = -xw/2, xmax = xw/2, ymin = -yh/2, ymax = yh/2, len = 0.4,
    divergence = CH2)
 AT (0, 0, 0.8) RELATIVE mono_out

/**********************detector after second collimator********************/
COMPONENT PSDafterC2 = PSD_monitor(
    filename = "PSDafterC2", xwidth = 0.06, yheight = 0.11)
  AT (0, 0, 0.4) RELATIVE collimator2


/**********************aperture before sample*************************/
 COMPONENT slit_before = Slit(
     width = 0.008, height = 0.008)
   AT (0, 0, 1.88) RELATIVE mono_out

/**********************detector behind Slit_before***********************/
COMPONENT PSDafterSlit_before = PSD_monitor(
    filename = "PSDafterSlit_before", xwidth = 0.01, yheight = 0.01)
  AT (0, 0, 0.01) RELATIVE slit_before


/************************Fe(221) sample****************************/
COMPONENT Sample = PowderN(
    reflections = "Fe.laz", radius = 0.004, yheight = 0.8)
  AT (0, 0, L2) RELATIVE mono_out
EXTEND
%{
if(!SCATTERED) ABSORB;          /*perfect beamstop*/
%}

/************************sample_out************************/
COMPONENT sample_out = Arm(
   )
  AT (0, 0, 0) RELATIVE Sample
  ROTATED (0, -2*A2, 0) RELATIVE Sample

/************************detector before slit_after********************/
COMPONENT PSDbeforeSlit_after = PSD_monitor(
    filename = "PSDbeforeSlit_after", xwidth = 0.008,
    yheight = 0.050)
  AT (0, 0, 0.01) RELATIVE sample_out

/************************aperture after sample***************************/
COMPONENT slit_after = Slit(
    width = 0.008, height = 0.050)
 AT (0, 0, 0.02) RELATIVE sample_out

/************************detector*********************************/
COMPONENT PSDafterSample = PSDlin_monitor(
    nx = 200, filename = "PSDafterSample", xwidth = 0.2,
    yheight = 0.2)
  AT (0, 0, L3) RELATIVE sample_out

 
/* This section is executed when the simulation ends (C code). Other    */
/* optional sections are : SAVE                                         */
FINALLY
%{
%}
/* The END token marks the instrument definition end */
END

Regards,
Tom


  

 
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman2.mcstas.org/pipermail/mcstas-users/attachments/20080727/6a26484c/attachment.html>
-------------- next part --------------
_______________________________________________
mcstas-users mailing list
mcstas-users at mcstas.org
http://mailman.mcstas.org/cgi-bin/mailman/listinfo/mcstas-users


More information about the mcstas-users mailing list