Close This Window

Merci de télécharger les logos officiels de l'ILL ici


Pour utiliser sur le web

Pour imprimer en haute résolution


Télécharger PNG

Télécharger TIF


Télécharger JPG

Télécharger EPS



Computing for Science

The Computing for Science (CS) group supports ILL scientists, students and visitors in a number of activities including data analysis, instrument simulation and sample simulation.

Back to ILL Homepage
English French Deutsch 

Virtual instruments and experiments

DEFINE INSTRUMENT TAS1(PHM,TTM,TT,OMA,TTA,C1,OMC1,C2,C3)

DECLARE
%{
/* Mosaicity used on monochromator and analysator */
double tas1_mono_mosaic = 45; /* Measurements indicate its really 45' */
double tas1_ana_mosaic = 45; /* Measurements indicate its really 45' */
/* Q vector for bragg scattering with monochromator and analysator */
double tas1_mono_q = 2*1.87325; /* Fake 2nd order scattering for 20meV */
double tas1_mono_r0 = 0.6;
double tas1_ana_q = 1.87325; /* 20meV */
double tas1_ana_r0 = 0.6;

double OMC1_d;
double alu_focus_x;

double mpos0, mpos1, mpos2, mpos3, mpos4, mpos5, mpos6, mpos7;
double mrot0, mrot1, mrot2, mrot3, mrot4, mrot5, mrot6, mrot7;
%}

INITIALIZE
%{
double d = 0.0125; /* 12.5 mm between slab centers. */
double phi = 0.5443; /* Rotation between adjacent slabs. */
mpos0 = -3.5*d; mrot0 = -3.5*phi;
mpos1 = -2.5*d; mrot1 = -2.5*phi;
mpos2 = -1.5*d; mrot2 = -1.5*phi;
mpos3 = -0.5*d; mrot3 = -0.5*phi;
mpos4 = 0.5*d; mrot4 = 0.5*phi;
mpos5 = 1.5*d; mrot5 = 1.5*phi;
mpos6 = 2.5*d; mrot6 = 2.5*phi;
mpos7 = 3.5*d; mrot7 = 3.5*phi;

OMC1_d = OMC1/60.0;
alu_focus_x = TT >= 0 ? 1000 : -1000;
%}

TRACE

COMPONENT a1 = Arm()
AT (0,0,0) ABSOLUTE

COMPONENT source = Source_flat(
radius = 0.060,
dist = 3.288,
xw = 0.042, yh = 0.082,
E0 = 20, /* 20 meV */
dE = 0.82) /* Sufficient for TAS1 geometry */
AT (0,0,0) RELATIVE a1 ROTATED (0,0,0) RELATIVE a1

COMPONENT slit1 = Slit(
xmin=-0.020, xmax=0.065,
ymin = -0.075, ymax = 0.075)
AT (0, 0, 1.1215) RELATIVE a1 ROTATED (0,0,0) RELATIVE a1

COMPONENT slit2 = Slit(
xmin = -0.020, xmax = 0.020,
ymin = -0.040, ymax = 0.040)
AT (0,0,1.900) RELATIVE a1 ROTATED (0,0,0) RELATIVE a1

COMPONENT slit3 = Slit(
xmin = -0.021, xmax = 0.021,
ymin = -0.041, ymax = 0.041)
AT (0,0,3.288) RELATIVE a1 ROTATED (0,0,0) RELATIVE a1

COMPONENT focus_mono = Arm()
AT (0, 0, 3.56) RELATIVE a1 ROTATED (0, PHM, 0) RELATIVE a1

COMPONENT m0 = Monochromator(
zmin=-0.0375,zmax=0.0375,ymin=-0.006,ymax=0.006,
mosaich=tas1_mono_mosaic,mosaicv=tas1_mono_mosaic,
r0=tas1_mono_r0, Q=tas1_mono_q)
AT (0, mpos0, 0) RELATIVE focus_mono
ROTATED (0, 0, mrot0) RELATIVE focus_mono

COMPONENT m1 = Monochromator(
zmin=-0.0375,zmax=0.0375,ymin=-0.006,ymax=0.006,
mosaich=tas1_mono_mosaic,mosaicv=tas1_mono_mosaic,
r0=tas1_mono_r0, Q=tas1_mono_q)
AT (0, mpos1, 0) RELATIVE focus_mono
ROTATED (0, 0, mrot1) RELATIVE focus_mono

COMPONENT m2 = Monochromator(
zmin=-0.0375,zmax=0.0375,ymin=-0.006,ymax=0.006,
mosaich=tas1_mono_mosaic,mosaicv=tas1_mono_mosaic,
r0=tas1_mono_r0, Q=tas1_mono_q)
AT (0, mpos2, 0) RELATIVE focus_mono
ROTATED (0, 0, mrot2) RELATIVE focus_mono

COMPONENT m3 = Monochromator(
zmin=-0.0375,zmax=0.0375,ymin=-0.006,ymax=0.006,
mosaich=tas1_mono_mosaic,mosaicv=tas1_mono_mosaic,
r0=tas1_mono_r0, Q=tas1_mono_q)
AT (0, mpos3, 0) RELATIVE focus_mono
ROTATED (0, 0, mrot3) RELATIVE focus_mono

COMPONENT m4 = Monochromator(
zmin=-0.0375,zmax=0.0375,ymin=-0.006,ymax=0.006,
mosaich=tas1_mono_mosaic,mosaicv=tas1_mono_mosaic,
r0=tas1_mono_r0, Q=tas1_mono_q)
AT (0, mpos4, 0) RELATIVE focus_mono
ROTATED (0, 0, mrot4) RELATIVE focus_mono

COMPONENT m5 = Monochromator(
zmin=-0.0375,zmax=0.0375,ymin=-0.006,ymax=0.006,
mosaich=tas1_mono_mosaic,mosaicv=tas1_mono_mosaic,
r0=tas1_mono_r0, Q=tas1_mono_q)
AT (0, mpos5, 0) RELATIVE focus_mono
ROTATED (0, 0, mrot5) RELATIVE focus_mono

COMPONENT m6 = Monochromator(
zmin=-0.0375,zmax=0.0375,ymin=-0.006,ymax=0.006,
mosaich=tas1_mono_mosaic,mosaicv=tas1_mono_mosaic,
r0=tas1_mono_r0, Q=tas1_mono_q)
AT (0, mpos6, 0) RELATIVE focus_mono
ROTATED (0, 0, mrot6) RELATIVE focus_mono

COMPONENT m7 = Monochromator(
zmin=-0.0375,zmax=0.0375,ymin=-0.006,ymax=0.006,
mosaich=tas1_mono_mosaic,mosaicv=tas1_mono_mosaic,
r0=tas1_mono_r0, Q=tas1_mono_q)
AT (0, mpos7, 0) RELATIVE focus_mono
ROTATED (0, 0, mrot7) RELATIVE focus_mono

COMPONENT a2 = Arm()
AT (0,0,0) RELATIVE focus_mono ROTATED (0, TTM, 0) RELATIVE a1

COMPONENT slitMS1 = Slit(
xmin = -0.0105, xmax = 0.0105, ymin = -0.035, ymax = 0.035)
AT (0,0,0.565) RELATIVE a2 ROTATED (0,0,0) RELATIVE a2

COMPONENT slitMS2 = Slit(
xmin = -0.0105, xmax = 0.0105, ymin = -0.035, ymax = 0.035)
AT (0,0,0.855) RELATIVE a2 ROTATED (0,0,0) RELATIVE a2

COMPONENT c1 = Soller(
xmin = -0.02, xmax = 0.02, ymin = -0.0375, ymax = 0.0375,
len = 0.250, divergence = C1)
AT (0, 0, 0.87) RELATIVE a2 ROTATED (0,OMC1_d,0) RELATIVE a2

COMPONENT slitMS3 = Circular_slit(radius = 0.025)
AT (0,0,1.130) RELATIVE a2 ROTATED (0,0,0) RELATIVE a2

COMPONENT slitMS4 = Circular_slit(radius = 0.025)
AT (0,0,1.180) RELATIVE a2 ROTATED (0,0,0) RELATIVE a2

COMPONENT slitMS5 = Circular_slit(radius = 0.0275)
AT (0,0,1.230) RELATIVE a2 ROTATED (0,0,0) RELATIVE a2

COMPONENT mon = Monitor(
xmin = -0.025, xmax = 0.025, ymin = -0.0375, ymax = 0.0375)
AT (0, 0, 1.280) RELATIVE a2 ROTATED (0,0,0) RELATIVE a2

COMPONENT emon1 = E_monitor(
xmin = -0.01, xmax = 0.01, ymin = -0.1, ymax = 0.1,
Emin = 19.25, Emax = 20.75, nchan = 35,
filename = "sim/linup_7_1.vmon")
AT(0, 0, 1.5) RELATIVE a2 ROTATED (0,0,0) RELATIVE a2

COMPONENT sample = Powder1(
radius = 0.007,
h = 0.015,
q = 1.8049,
d_phi0 = 4,
pack = 1, j = 6, DW = 1,
F2 = 56.8,
Vc = 85.0054, sigma_a = 0.463,
target_x = alu_focus_x, /* ToDo: GET_X(ana) */
target_y = 0, target_z = 1000)
AT (0, 0, 1.565) RELATIVE a2 ROTATED (0,0,0) RELATIVE a2

COMPONENT a3 = Arm()
AT (0,0,0) RELATIVE sample ROTATED (0, TT, 0) RELATIVE a2

COMPONENT c2 = Soller(
xmin = -0.02, xmax = 0.02, ymin = -0.0315, ymax = 0.0315,
len = 0.300, divergence = C2)
AT (0, 0, 0.370) RELATIVE a3 ROTATED (0,0,0) RELATIVE a3

COMPONENT ana = Monochromator(
zmin = -0.0375, zmax = 0.0375,
ymin = -0.024, ymax = 0.024,
mosaich = tas1_ana_mosaic, mosaicv = tas1_ana_mosaic,
r0 = tas1_ana_r0, Q = tas1_ana_q)
AT (0, 0, 0.770) RELATIVE a3 ROTATED (0, OMA, 0) RELATIVE a3

COMPONENT a4 = Arm()
AT (0, 0, 0) RELATIVE ana ROTATED (0, TTA, 0) RELATIVE a3

COMPONENT c3 = Soller(
xmin = -0.02, xmax = 0.02, ymin = -0.05, ymax = 0.05,
len = 0.270, divergence = C3)
AT (0,0,0.104) RELATIVE a4 ROTATED (0,0,0) RELATIVE a4

COMPONENT sng = Monitor(
xmin = -0.01, xmax = 0.01, ymin = -0.045, ymax = 0.045)
AT(0, 0, 0.43) RELATIVE a4 ROTATED (0,0,0) RELATIVE a4

COMPONENT emon2 = E_monitor(
xmin = -0.0125, xmax = 0.0125, ymin = -0.05, ymax = 0.05,
Emin = 19.25, Emax = 20.75, nchan = 35,
filename = "sim/linup_7_2.vmon")
AT(0, 0, 0.43) RELATIVE a4 ROTATED (0,0,0) RELATIVE a4

END