- Timestamp:
- 05/04/11 00:19:39 (13 months ago)
- Location:
- branches/mcstas-1.x/lib
- Files:
-
- 4 modified
-
examples/templateTAS.instr (modified) (8 diffs)
-
monitors/Monitor_nD.comp (modified) (1 diff)
-
optics/FermiChopper.comp (modified) (4 diffs)
-
share/monitor_nd-lib.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/mcstas-1.x/lib/examples/templateTAS.instr
r2876 r3064 2 2 * 3 3 * McStas, neutron ray-tracing package 4 * Copyright (C) 1997-20 08, All rights reserved4 * Copyright (C) 1997-2010, All rights reserved 5 5 * Risoe National Laboratory, Roskilde, Denmark 6 6 * Institut Laue Langevin, Grenoble, France … … 12 12 * Date: 2006 13 13 * Origin: <a href="http://www.ill.fr">ILL (France)</a> 14 * Release: McStas 1.12 14 * Release: McStas 1.12b 15 15 * Version: $Revision: 1.6 $ 16 16 * %INSTRUMENT_SITE: Templates … … 441 441 442 442 /* geometry tests w/r to collimator lengths */ 443 if (machine_hkl.l1 <= 5.34)444 exit(fprintf(stderr, "%s: ERROR: L1 too short. Min= 5.34\n", NAME_CURRENT_COMP));443 if (machine_hkl.l1 <= 1) 444 exit(fprintf(stderr, "%s: ERROR: L1 too short. Min=1\n", NAME_CURRENT_COMP)); 445 445 446 446 if (machine_hkl.l2 <= 0.35) … … 463 463 double L; 464 464 L = 1/(1/L1+1/L2); 465 if (RMV < 0) machine_real.rmv = 2*L*sin(DEG2RAD*machine_real.a1);466 if (RMH < 0) machine_real.rmh = 2*L/sin(DEG2RAD*machine_real.a1);465 if (RMV < 0) machine_real.rmv = fabs(2*L*sin(DEG2RAD*machine_real.a1)); 466 if (RMH < 0) machine_real.rmh = fabs(2*L/sin(DEG2RAD*machine_real.a1)); 467 467 L = 1/(1/L3+1/L4); 468 if (RAV < 0) machine_real.rav = 2*L*sin(DEG2RAD*machine_real.a5);469 if (RAH < 0) machine_real.rah = 2*L/sin(DEG2RAD*machine_real.a5);468 if (RAV < 0) machine_real.rav = fabs(2*L*sin(DEG2RAD*machine_real.a5)); 469 if (RAH < 0) machine_real.rah = fabs(2*L/sin(DEG2RAD*machine_real.a5)); 470 470 471 471 if (verbose) { … … 481 481 machine_hkl.da, machine_real.rah, machine_real.rav, 482 482 (!machine_real.rah && !machine_real.rav ? "flat" : "curved")); 483 483 484 } 484 485 %} … … 488 489 /* Source description */ 489 490 491 INSTRUMENT COMPONENT Origin=Progress_bar() 492 AT (0,0,0) ABSOLUTE 493 490 494 /* a flat constant source */ 491 COMPONENT Source = Source_gen(495 INSTRUMENT COMPONENT Source = Source_gen( 492 496 radius = 0.10, 493 497 dist = machine_hkl.l1, … … 497 501 AT (0,0,0) ABSOLUTE 498 502 499 COMPONENT SC1 = Collimator_linear(503 INSTRUMENT COMPONENT SC1 = Collimator_linear( 500 504 xmin =-0.08/2, ymin =-0.11/2, 501 505 xmax = 0.08/2, ymax = 0.11/2, 502 len = 5.34,506 len = machine_hkl.l1 > 6.34 ? 5.34 : machine_hkl.l1/2, 503 507 divergence=ALF1, 504 508 divergenceV=BET1) 505 AT (0, 0, (machine_hkl.l1-5.34)/2) RELATIVE Source 509 WHEN (ALF1 && BET1) 510 AT (0, 0, (machine_hkl.l1-5.34)/2) ABSOLUTE 511 512 INSTRUMENT COMPONENT Guide_out=Arm() 513 AT (0, 0, machine_hkl.l1) ABSOLUTE 506 514 507 515 COMPONENT Mono_Cradle = Arm() 508 AT (0, 0, machine_hkl.l1) RELATIVE Source 509 ROTATED (0, machine_real.a1, 0) RELATIVE Source 510 516 AT (0, 0, 0) RELATIVE PREVIOUS 517 511 518 SPLIT COMPONENT PG1Xtal = Monochromator_curved( 512 519 width = 0.10, … … 514 521 NH=1, NV=9, 515 522 RV=machine_real.rmv, RH=machine_real.rmh, 516 mosaich = machine_hkl.etam, mosaicv = machine_hkl.etam, 517 r0 = 0.7, DM=machine_hkl.dm) 523 DM=machine_hkl.dm, mosaich = machine_hkl.etam, mosaicv = machine_hkl.etam, 524 r0 = (fabs(machine_hkl.dm-3.355) < 0.2 ? 1: 0.7), 525 reflect=(fabs(machine_hkl.dm-3.355) < 0.2 ? "HOPG.rfl" : "")) 518 526 AT (0, 0, 0) RELATIVE Mono_Cradle 527 ROTATED (0, machine_real.a1, 0) RELATIVE Mono_Cradle 519 528 520 529 /* on mono, pointing towards sample */ -
branches/mcstas-1.x/lib/monitors/Monitor_nD.comp
r2879 r3064 121 121 * variable with limits to define arc. 122 122 * (diameter is xwidth, height is yheight). 123 * disk Disk flat xy monitor. radiusis xwidth.123 * disk Disk flat xy monitor. diameter is xwidth. 124 124 * sphere To get a spherical monitor (e.g. a 4PI) 125 125 * (diameter is xwidth). -
branches/mcstas-1.x/lib/optics/FermiChopper.comp
r2828 r3064 394 394 mean_t = FCVars.sum_t/FCVars.sum_N; 395 395 mean_phase = fmod(mean_t*nu*2*PI, 2*PI); 396 /* now we shift the phase so that the neutron pulse is centered on the slit pack */ 397 mean_phase+=radius/vxp1*2*PI*nu; 396 398 FCVars.ph0 = -mean_phase; 397 399 } … … 644 646 /* base opening time */ 645 647 double div, mean_phase; 646 div = atan (w/length);648 div = atan2(w,length)/PI*180; 647 649 mean_phase = fmod(mean_t*nu*360, 360); 650 mean_phase+=radius/mean_v*360*nu; 648 651 if (mean_phase > 180) mean_phase -= 360; 649 652 … … 656 659 " Mean energy omega = %g [meV]\n" 657 660 " Mean arrival time t = %g [s]\n" 658 " Mean phase = %g [deg] (negate to optimize transmission)\n" 661 " Mean phase = %g [deg] (%s)\n" 662 " Slit pack divergence = %g [deg] (full width)\n" 659 663 " Opening time dt = %g [s]\n" 660 664 " Intensity reaching FC = %g [n/s]\n" … … 662 666 , NAME_CURRENT_COMP, 663 667 mean_v, mean_L, mean_w, mean_t, mean_phase, 668 (zero_time > 1 ? "set automatically" : "use phase=-(this value) to optimize"), 669 2*div, 664 670 (nu ? div/PI/nu : 1), 665 671 FCVars.sum_N, -
branches/mcstas-1.x/lib/share/monitor_nd-lib.c
r2699 r3064 790 790 if ((abs(mc_mn_Vars->Flag_Shape) == mc_mn_DEFS->SHAPE_DISK) || (abs(mc_mn_Vars->Flag_Shape) == mc_mn_DEFS->SHAPE_SPHERE)) 791 791 { 792 mc_mn_Vars->area = PI*mc_mn_Vars->Sphere_Radius*mc_mn_Vars->Sphere_Radius ;/* disk shapes */792 mc_mn_Vars->area = PI*mc_mn_Vars->Sphere_Radius*mc_mn_Vars->Sphere_Radius*1E4 /* disk shapes */ 793 793 } 794 794 if (mc_mn_Vars->area == 0) mc_mn_Vars->Coord_Number = 0;
