<div>Hello colleagues,<br><br> I've set up a residual stress instrument.The simulation result suggests(Neutron count=10<font size="1">9<font size="3">)</font></font>:
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.<br> 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?<br> <br> Here is the code:<br>/*******************************************************************************<br>* McStas instrument definition URL=http://www.mcstas.org<br>*<br>* Instrument: residual stress instrument <br>*<br>* %Identification<br>* Written by: Tom<br>* Date:10 Jan 2008<br>* Origin: institute<br>* Release: McStas 1.6<br>* Version: 0.2<br>* %INSTRUMENT_SITE:thesis<br>*<br>* residual stress instrument <br>*<br>* %Description<br>* try to optimize parameters of residual stress instrument. default geometry is <br>* from blueprints of residual stress instruments at CARR,FRM-II(Germany),E3* (Germany) * and SALSA(France) <br>* Example: mcrun residual_stress.instr <RV=-1><br>*<br>* %Parameters<br>* dist: [m] focusing distance from source to SlitIn<br>* GapM2_G: [m] distance between M2Exit and guide entrance<br>* xw: [m] width of neutron guide entrance<br>* yh: [m] height of neutron guide entrance<br>* l: [m] length of straight neutron guide<br>* m: [1] m-value of material1.5~3<br>* CH1: ['] horizontal divergence of the first collimator<br>* len_C1 [m] length of the first collimator<br>* L1: [m] distance between exit of first collimator and <br>* monochromator£¬0.01~0.3m<br>* A1: [deg] rotation of mono<br>* DM: [Angs] d-spacing of monochromator<br>* NH: [columns] number of slabs horizontal <br>* NV: [rows] number of slabs vertical <br>* mosaich£º ['] Horisontal mosaic FWHM <br>* mosaicv: ['] Vertical mosaic FWHM <br>* RV: [m] Monochromator vertical curvature, 0 for flat, -1 for automatic<br>* setting(then RV=2*L2*sin(DEG2RAD*A1) )<br>* RH: [m] Monochromator horizontal curvature, 0 for flat, -1 for automatic<br>* setting(then RH = 2*L2/sin(DEG2RAD*A1))<br>* L2: [m] distance between monochromator and sample,1.9~2.2<br>* CH2: ['] horizontal divergence of the second collimator<br>* DS: [Angs] d-spacing of sample:default Fe(hkl) <br>* L3: [m] distance between sample and detector <br>* %Link<br>* A reference/HTML link for more information<br>*<br>* %End<br>*******************************************************************************/<br>/* Change name of instrument and input parameters with default values */<br>DEFINE INSTRUMENT residual_stress(<br> dist=2, GapM2_G=0, xw=0.06, yh=0.11, l=6, m=2, CH1=10,<br> L1=0.3, A1=45, DM=1.0886, len_C1=0.6, NH=1, NV=15, mosaich=30,mosaicv=30,<br> RV=-1, RH=0, L2=1.9,CH2=30,DS=1.1782,L3=1.0) <br>/* The DECLARE section allows us to declare variables or small */<br>/* functions in C syntax. These may be used in the whole instrument. */<br><br>DECLARE<br>%{<br>double M2Exit_mono; /* distance between M2Exit and monochromator */<br>double lambda; /*wavelength after diffraction*/<br>double monow; /*width of mono*/ <br>double A2; /*half of sample take off angle*/<br>%}<br><br>/* The INITIALIZE section is executed when the simulation starts */<br>/* (C code). You may use them as component parameter values. */<br>INITIALIZE<br>%{<br>M2Exit_mono=GapM2_G+l+len_C1+L1;<br>lambda=2*DM*sin(DEG2RAD*A1);<br>if (RV<0) RV=2*L2*sin(DEG2RAD*A1);<br>if (RH<0) RH = 2*L2/sin(DEG2RAD*A1);<br>monow=xw/sin(DEG2RAD*A1);<br>A2=asin(lambda/(2*DS))*RAD2DEG;<br>printf("\nlambda=%f\tRV=%f\tRH=%f\tmonow=%f\tA2=%f\n",lambda,RV,RH,monow,A2); <br>%}<br><br>/* Here comes the TRACE section, where the actual */<br>/* instrument is defined as a sequence of components. */<br>TRACE<br>/* Progress_bar is an Arm displaying simulation progress.*/<br>COMPONENT Origin = Progress_bar()<br> AT (0,0,0) ABSOLUTE<br><br>/********************* neutron source********************************/<br>COMPONENT Source = Source_Maxwell_3(<br> height = 0.75, width =0.52988 , <br> l_low =0.2,l_high =7, <br> dist = dist, <br> xw = 0.06, yh = 0.11,<br> T1 = 320,I1 =9.87E12) <br> AT (0, 0, 0) RELATIVE Origin<br><br>/************channel(Al and Fe) inside reactor, length:4.049m**********/<br>COMPONENT SlitIn = Slit(<br> width = 0.06, height = 0.11)<br> AT (0, 0, 0 ) RELATIVE Source<br><br>COMPONENT M2Exit = Slit(<br> width = 0.06, height = 0.11)<br> AT (0, 0, 4.049 ) RELATIVE SlitIn <br><br><br> /*************************straight_guide*******************/<br>COMPONENT straight_guide = Guide(<br> w1 = xw, h1 = yh, w2 = xw, h2 = yh, l =l, m = m)<br> AT (0, 0, GapM2_G) RELATIVE M2Exit<br><br><br>/**************************first collimator**************************/<br>COMPONENT collimator1 = Collimator_linear(<br> xmin = -xw/2, xmax = xw/2, ymin = -yh/2, ymax = yh/2,<br> len = len_C1, divergence = CH1)<br> AT (0, 0, l) RELATIVE straight_guide<br><br><br>/*************************mono_craddle***************************/<br>COMPONENT mono_craddle = Arm(<br> )<br> AT (0, 0, M2Exit_mono) RELATIVE M2Exit<br> ROTATED (0, A1, 0) RELATIVE Origin<br><br>/***************************monochromator Ge(511)****************************/<br>COMPONENT monochromator = Monochromator_curved(<br> width=monow, height=0.15, NH=NH, NV=NV,reflect = "0", transmit = "0",<br> gap = 0.0005, mosaich = mosaich, mosaicv = mosaicv, r0 = 0.7, <br> t0 = 1.0, RV = RV, RH = RH, DM = DM)<br> AT (0, 0, 0) RELATIVE mono_craddle<br><br>/*********************mono_out*******************/<br>COMPONENT mono_out = Arm(<br> )<br> AT (0, 0, 0) RELATIVE mono_craddle<br> ROTATED (0, 2*A1, 0) RELATIVE Origin<br><br>/********************detectors before second collimator**************************/<br>COMPONENT LDbeforeC2 = L_monitor(<br> nchan = 200, filename = "LDbeforeC2", xwidth = 0.15,<br> yheight = 0.15, Lmin = 0, Lmax = lambda+0.1)<br> AT (0, 0, 0.8) RELATIVE mono_out<br><br>COMPONENT PSDbeforeC2 = PSD_monitor(<br> filename = "PSDbeforeC2", xwidth = 0.15, yheight = 0.15)<br> AT (0, 0, 0.8) RELATIVE mono_out<br><br>/***********************second collimator***************************/<br> COMPONENT collimator2 = Collimator_linear(<br> xmin = -xw/2, xmax = xw/2, ymin = -yh/2, ymax = yh/2, len = 0.4,<br> divergence = CH2)<br> AT (0, 0, 0.8) RELATIVE mono_out<br><br>/**********************detector after second collimator********************/<br>COMPONENT PSDafterC2 = PSD_monitor(<br> filename = "PSDafterC2", xwidth = 0.06, yheight = 0.11)<br> AT (0, 0, 0.4) RELATIVE collimator2<br><br><br>/**********************aperture before sample*************************/<br> COMPONENT slit_before = Slit(<br> width = 0.008, height = 0.008)<br> AT (0, 0, 1.88) RELATIVE mono_out<br><br>/**********************detector behind Slit_before***********************/<br>COMPONENT PSDafterSlit_before = PSD_monitor(<br> filename = "PSDafterSlit_before", xwidth = 0.01, yheight = 0.01)<br> AT (0, 0, 0.01) RELATIVE slit_before<br><br><br>/************************Fe(221) sample****************************/<br>COMPONENT Sample = PowderN(<br> reflections = "Fe.laz", radius = 0.004, yheight = 0.8)<br> AT (0, 0, L2) RELATIVE mono_out<br>EXTEND<br>%{<br>if(!SCATTERED) ABSORB; /*perfect beamstop*/<br>%}<br><br>/************************sample_out************************/<br>COMPONENT sample_out = Arm(<br> )<br> AT (0, 0, 0) RELATIVE Sample<br> ROTATED (0, -2*A2, 0) RELATIVE Sample<br><br>/************************detector before slit_after********************/<br>COMPONENT PSDbeforeSlit_after = PSD_monitor(<br> filename = "PSDbeforeSlit_after", xwidth = 0.008,<br> yheight = 0.050)<br> AT (0, 0, 0.01) RELATIVE sample_out<br><br>/************************aperture after sample***************************/<br>COMPONENT slit_after = Slit(<br> width = 0.008, height = 0.050)<br> AT (0, 0, 0.02) RELATIVE sample_out<br><br>/************************detector*********************************/<br>COMPONENT PSDafterSample = PSDlin_monitor(<br> nx = 200, filename = "PSDafterSample", xwidth = 0.2,<br> yheight = 0.2)<br> AT (0, 0, L3) RELATIVE sample_out<br><br> <br>/* This section is executed when the simulation ends (C code). Other */<br>/* optional sections are : SAVE */<br>FINALLY<br>%{<br>%}<br>/* The END token marks the instrument definition end */<br>END<br><br>Regards,<br>Tom<br><br><br> <br></div><div> </div><div> </div><div> </div>