Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f7bc0d7e56 | |||
| da90617aa4 | |||
| 95344a175f | |||
| e85cf16d42 | |||
| 83d051ff2f | |||
| 80ff1e6785 | |||
| 7d32fb2313 | |||
| d3964c2883 |
Executable
+10
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
# compress McStas hdf5 files to increase performance and save disk space
|
||||
|
||||
for fi in $*
|
||||
do
|
||||
echo $fi
|
||||
h5repack -i $fi -o $fi.c -f /entry1/data/tof_VS_list_p_x_y_hd_vd_t_L/events:GZIP=5 -l /entry1/data/tof_VS_list_p_x_y_hd_vd_t_L/events:CHUNK=3072x7
|
||||
h5repack -i $fi -o $fi.c -f /entry1/data/tof_sample_list_p_x_y_hd_vd_t_L/events:GZIP=5 -l /entry1/data/tof_sample_list_p_x_y_hd_vd_t_L/events:CHUNK=3072x7
|
||||
mv $fi.c $fi
|
||||
done
|
||||
+55
-114
@@ -48,18 +48,27 @@
|
||||
* %End
|
||||
*******************************************************************************/
|
||||
|
||||
DEFINE INSTRUMENT ESS_reflectometer_Estia
|
||||
(double omegaa = 25, int sample = 0, double sample_length = 0.02, double sample_height = 0.015,
|
||||
int operationmode = 0, double over_illumination = 0.0, double theta_resolution = 0.04,
|
||||
double lambda_min = 3.75, double lambda_start = 0.1, double lambda_end = 12.0,
|
||||
int enable_chopper = 0, int enable_gravity=0, int enable_windows=1,
|
||||
int enable_polarizer = 0, int enable_analyzer = 0,
|
||||
double source_power = 5,
|
||||
double selene1_foot1y =0.0, double selene1_foot2y = 0.0
|
||||
)
|
||||
DEFINE INSTRUMENT ESS_reflectometer_Estia(
|
||||
int enable_gravity=0, int enable_polarizer = 0, int enable_analyzer = 0)
|
||||
|
||||
DECLARE
|
||||
%{
|
||||
// Fix parameters that are variables in normal simulation
|
||||
double omegaa = 0.0;
|
||||
int sample = 4;
|
||||
double sample_length = 0.020;
|
||||
double sample_height = 0.015;
|
||||
int operationmode = 0;
|
||||
double over_illumination = 0.0;
|
||||
double theta_resolution = 0.04;
|
||||
int enable_windows=1;
|
||||
double source_power = 5;
|
||||
int enable_chopper = 0;
|
||||
|
||||
double lambda_start = 0.1;
|
||||
double lambda_end = 30.1;
|
||||
double lambda_min = 3.75;
|
||||
|
||||
/* Geometrical parameters from CAD model of Estia (ESS-0050413)
|
||||
* TCS coordinate and directional rotation first focus point
|
||||
* refered to as focus_moderator_y_rot
|
||||
@@ -77,6 +86,8 @@ double selene1_foot2 = 7.00; // distance of second foot to VS focus
|
||||
double selene1_center;
|
||||
double selene1_shift;
|
||||
double selene1_rot;
|
||||
double selene1_foot1y =0.0;
|
||||
double selene1_foot2y = 0.0;
|
||||
|
||||
// Selene 2
|
||||
|
||||
@@ -216,46 +227,42 @@ COMPONENT moderator = ESS_butterfly(
|
||||
* Beam manipulation area around the virtual source *
|
||||
****************************************************/
|
||||
/* Absorber to reduce beam to needed size an for shielding purposes (CPC1 in CAD model) */
|
||||
COMPONENT CPC1_in = Slit(xwidth=0.0303, yheight=0.0792)
|
||||
AT (0, 0, -0.890) RELATIVE arm_virtual_source_beam
|
||||
COMPONENT CPC1_in = Slit(xwidth=0.027, yheight=0.067)
|
||||
AT (0, 0, -0.810) RELATIVE arm_virtual_source_beam
|
||||
|
||||
COMPONENT CPC1_monitor = Slit(xwidth=0.016344, yheight=0.05547)
|
||||
AT (0, 0, -0.3573) RELATIVE arm_virtual_source_beam
|
||||
//COMPONENT CPC1_monitor = Slit(xwidth=0.016344, yheight=0.05547)
|
||||
// AT (0, 0, -0.3573) RELATIVE arm_virtual_source_beam
|
||||
|
||||
COMPONENT CPC1_out = Slit(xwidth=0.013, yheight=0.038)
|
||||
AT (0, 0, -0.220) RELATIVE arm_virtual_source_beam
|
||||
COMPONENT CPC1_out = Slit(xwidth=0.0137, yheight=0.03373)
|
||||
AT (0, 0, -0.270) RELATIVE arm_virtual_source_beam
|
||||
|
||||
COMPONENT VS_PSD = PSD_monitor(
|
||||
filename = "VS_PSD", nx=100, ny=100,
|
||||
xwidth=0.05, yheight = 0.05, restore_neutron=1)
|
||||
AT (0, 0, 0) RELATIVE arm_virtual_source_beam
|
||||
|
||||
/* bandwidth definition chopper */
|
||||
COMPONENT chopper = DiskChopper(radius=chopper_diameter/2.0, yheight=0.02,
|
||||
theta_0=chopper_open, phase=chopper_phase+chopper_open/2.0,
|
||||
nu=chopper_freq, nslit=1)
|
||||
WHEN enable_chopper==1
|
||||
AT (0, 0, chopper_pos-2*NBOA_c) RELATIVE arm_virtual_source_beam
|
||||
COMPONENT VS_L = L_monitor(
|
||||
filename = "VS_L", nL=300,
|
||||
Lmin=lambda_start, Lmax=lambda_end,
|
||||
xwidth=0.05, yheight = 0.05, restore_neutron=1)
|
||||
AT (0, 0, 0) RELATIVE arm_virtual_source_beam
|
||||
|
||||
// COMPONENT VS_MCPL = MCPL_output(filename="VS")
|
||||
// AT (0, 0, 0) RELATIVE arm_selene1
|
||||
|
||||
COMPONENT CPC2_in = Slit(xwidth=0.00692, yheight=0.01506)
|
||||
AT (0, 0, 0.077) RELATIVE arm_virtual_source_beam
|
||||
|
||||
/* The actual virtual source mask, two L-shaped absorbers (first top-right) */
|
||||
COMPONENT virtual_source_TR = Slit(
|
||||
xmin = 0.0, xmax = 1.0, ymin = -1.0, ymax = sample_height/2+over_illumination*5)
|
||||
WHEN sample!=4
|
||||
AT (-over_illumination, 0, -0.5*sample_length) RELATIVE arm_virtual_source
|
||||
COMPONENT CPC2_out = Slit(xwidth=0.0198, yheight=0.04914)
|
||||
AT (0, 0, 0.595) RELATIVE arm_virtual_source_beam
|
||||
|
||||
// window to cut down to defined size for test setting
|
||||
COMPONENT virtual_source_HC = Slit(xwidth=sample_length, yheight=sample_height)
|
||||
WHEN sample==4
|
||||
AT (0, 0, 0) RELATIVE arm_virtual_source
|
||||
//
|
||||
/* The actual virtual source mask, two L-shaped absorbers (second bottom-left) */
|
||||
COMPONENT virtual_source_BL = Slit(
|
||||
xmin = -1.0, xmax = 0.0, ymin = -sample_height/2-over_illumination*5, ymax = 1.0)
|
||||
WHEN sample!=4
|
||||
AT (over_illumination, 0, 0.5*sample_length) RELATIVE arm_virtual_source
|
||||
COMPONENT VS_MCPL = MCPL_output(filename="selene1")
|
||||
AT (0, 0, 2.2) RELATIVE arm_selene1
|
||||
|
||||
|
||||
/******* Start of scatter logger. Logging scatterings and absorption in the guide system. *********/
|
||||
COMPONENT log_P_start=Shielding_logger()
|
||||
AT (0,0,0) RELATIVE PREVIOUS
|
||||
AT (0,0,0) RELATIVE arm_virtual_source_beam
|
||||
EXTEND
|
||||
%{
|
||||
#ifdef scatter_logger_stop
|
||||
@@ -445,86 +452,20 @@ COMPONENT ac_slit = Slit(
|
||||
/***************
|
||||
* Sample area *
|
||||
***************/
|
||||
COMPONENT tof_sample = Monitor_nD(
|
||||
filename = "tof_sample",
|
||||
options = "x limits=[-0.025 0.025] bins=1000 y limits=[-0.025 0.025] bins=1000 xdiv limits=[-0.75 0.75] bins=150 ydiv limits=[-2.0 2.0] bins=400 time limits=[0 0.6] bins=6000 lambda limits=[0 35] bins=3500 list all",
|
||||
xwidth=0.05, yheight = 0.05)
|
||||
WHEN sample==4
|
||||
COMPONENT SMPL_PSD = PSD_monitor(
|
||||
filename = "SMPL_PSD", nx=100, ny=100,
|
||||
xwidth=0.05, yheight = 0.05, restore_neutron=1)
|
||||
AT (0, 0, 0) RELATIVE arm_sample_beam
|
||||
ROTATED (0, 0, 0) RELATIVE arm_sample_beam
|
||||
|
||||
COMPONENT SMPL_L = L_monitor(
|
||||
filename = "SMPL_L", nL=300,
|
||||
Lmin=lambda_start, Lmax=lambda_end,
|
||||
xwidth=0.05, yheight = 0.05, restore_neutron=1)
|
||||
AT (0, 0, 0) RELATIVE arm_sample_beam
|
||||
|
||||
|
||||
|
||||
|
||||
/* NiTi multilayer sample */
|
||||
COMPONENT sample = Mirror(
|
||||
xwidth = sample_length, yheight = sample_height,
|
||||
center = 1, transmit = 0,
|
||||
reflect = "NiTiML.ref"
|
||||
)
|
||||
WHEN sample==0
|
||||
AT (0, 0, 0) RELATIVE arm_sample
|
||||
ROTATED (0, 90, 0) RELATIVE arm_sample
|
||||
|
||||
/* ideal reflector as reference */
|
||||
COMPONENT reference_sample = Mirror(
|
||||
xwidth = sample_length, yheight = sample_height,
|
||||
center = 1, transmit = 0,
|
||||
R0 = 0.999, alpha = 0.001, m = 50, center = 1, transmit = 0
|
||||
)
|
||||
WHEN sample==1
|
||||
AT (0, 0, 0) RELATIVE arm_sample
|
||||
ROTATED (0, 90, 0) RELATIVE arm_sample
|
||||
|
||||
/* Nickel film on silicon */
|
||||
COMPONENT ni_sample = Mirror(
|
||||
xwidth = sample_length, yheight = sample_height,
|
||||
center = 1, transmit = 0,
|
||||
reflect = "Si-Ni.ref"
|
||||
)
|
||||
WHEN sample==2
|
||||
AT (0, 0, 0) RELATIVE arm_sample
|
||||
ROTATED (0, 90, 0) RELATIVE arm_sample
|
||||
|
||||
/* Silicon with natural oxide */
|
||||
COMPONENT si_sample = Mirror(
|
||||
xwidth = sample_length, yheight = sample_height,
|
||||
center = 1, transmit = 0,
|
||||
reflect = "Si-SiO2.ref"
|
||||
)
|
||||
WHEN sample==3
|
||||
AT (0, 0, 0) RELATIVE arm_sample
|
||||
ROTATED (0, 90, 0) RELATIVE arm_sample
|
||||
|
||||
|
||||
COMPONENT arm_analyzer = Arm()
|
||||
AT (0, 0, 0) RELATIVE arm_detector
|
||||
ROTATED (-selene_theta+(Theta1_analyzer1-Theta2_analyzer1)/2.0, 0, 0) RELATIVE arm_detector
|
||||
|
||||
COMPONENT arm_analyzer2 = Arm()
|
||||
AT (0, 0, 0) RELATIVE arm_detector
|
||||
ROTATED (-selene_theta+(Theta1_analyzer2-Theta2_analyzer2)/2.0, 0, 0) RELATIVE arm_detector
|
||||
|
||||
/* polarization analyser */
|
||||
COMPONENT analyzer1 = Polariser(nIncRefr=1, d_substrate = 5e-4, reflect_d=0, reflect_u=0, lin=analyzer1_start, length=analyzer1_length,
|
||||
delta_theta=(Theta1_analyzer1+Theta2_analyzer1+0.05)*PI/180.0, h2=0.14, h1=0.05, abs_ref=0,
|
||||
m_u=5.5, m_d=0.45, both_coated=0, alpha=2.3, W = 0.0014)
|
||||
WHEN enable_analyzer
|
||||
AT (0, 0.0, analyzer1_start) RELATIVE arm_analyzer
|
||||
ROTATED (0,0,0.0) RELATIVE arm_analyzer
|
||||
|
||||
COMPONENT analyzer2 = Polariser(nIncRefr=1, d_substrate = 5e-4, reflect_d=0, reflect_u=0, lin=analyzer2_start, length=analyzer2_length,
|
||||
delta_theta=(Theta1_analyzer2+Theta2_analyzer2+0.05)*PI/180.0, h2=0.2, h1=0.05, abs_out=0,
|
||||
m_u=5.0, m_d=0.65, both_coated=1, alpha=2.3, W = 0.0014)
|
||||
WHEN enable_analyzer==2
|
||||
AT (0, 0.0, analyzer2_start) RELATIVE arm_analyzer
|
||||
ROTATED (0,0,0.0) RELATIVE arm_analyzer
|
||||
|
||||
/* detector */
|
||||
// COMPONENT tof_detector = Monitor_nD(
|
||||
// filename = "tof_detector",
|
||||
// options = "x limits=[-0.25 0.25] bins=1000 y limits=[-0.5 0.5] bins=1000 time limits=[0 0.6] bins=6000 lambda limits=[0 35] bins=3500 sx limits=[-1 1] bins=1000 sy limits=[-1 1] bins=1000, list all",
|
||||
// xwidth = 0.5, yheight = 1.0)
|
||||
// WHEN sample!=4
|
||||
// AT (0, 0, detector_arm+0.00001) RELATIVE arm_detector
|
||||
|
||||
/***********************************************************************/
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ DECLARE
|
||||
// NBOA
|
||||
// Entrance Window
|
||||
double NBOA_Al_entrance_start= 1.850;
|
||||
double NBOA_Al_entrance_length= 0.001;
|
||||
double NBOA_Al_entrance_length= 0.0015;
|
||||
// First segment with Cu-shielding in beginning
|
||||
double E02_01_01_Cu_start= 1.854;
|
||||
double E02_01_01_Cu_length= 0.345;
|
||||
@@ -75,7 +75,7 @@ DECLARE
|
||||
|
||||
// Exit Window
|
||||
double NBOA_Al_exit_start= 5.3396;
|
||||
double NBOA_Al_exit_length= 0.0049;
|
||||
double NBOA_Al_exit_length= 0.0060;
|
||||
|
||||
|
||||
// in-bunker feeder
|
||||
@@ -281,6 +281,19 @@ COMPONENT NBOA_Al_window_exit=Al_window(
|
||||
WHEN enable_windows
|
||||
AT (0,0,NBOA_Al_exit_start) RELATIVE ISCS
|
||||
|
||||
COMPONENT BBG_PSD = PSD_monitor(
|
||||
filename = "BBG_PSD", nx=500, ny=500,
|
||||
xwidth=0.25, yheight = 0.25, restore_neutron=1)
|
||||
AT (0,0,NBOA_Al_exit_start+0.1) RELATIVE ISCS
|
||||
|
||||
COMPONENT BBG_L = L_monitor(
|
||||
filename = "BBG_L", nL=300,
|
||||
Lmin=lambda_start, Lmax=lambda_end,
|
||||
xwidth=0.25, yheight = 0.25, restore_neutron=1)
|
||||
AT (0,0,NBOA_Al_exit_start+0.1) RELATIVE ISCS
|
||||
|
||||
|
||||
|
||||
// Aluminum Window at light shutter flight tube entrance
|
||||
COMPONENT LS_Al_window_in=Al_window(
|
||||
thickness=LS_Al_in_length)
|
||||
|
||||
@@ -78,6 +78,19 @@ COMPONENT polarizer1 = Polariser(nIncRefr=1, d_substrate = 5e-4, reflect_d=0, re
|
||||
ROTATED (0,0,90.0) RELATIVE arm_polarizer
|
||||
|
||||
|
||||
COMPONENT MF_PSD = PSD_monitor(
|
||||
filename = "MF_PSD", nx=100, ny=100,
|
||||
xwidth=0.05, yheight = 0.05, restore_neutron=1)
|
||||
AT (0, 0, 2*selene_c) RELATIVE arm_selene1
|
||||
|
||||
COMPONENT MF_L = L_monitor(
|
||||
filename = "MF_L", nL=300,
|
||||
Lmin=lambda_start, Lmax=lambda_end,
|
||||
xwidth=0.05, yheight = 0.05, restore_neutron=1)
|
||||
AT (0, 0, 2*selene_c) RELATIVE arm_selene1
|
||||
|
||||
|
||||
|
||||
/* The proximal polariser comes next */
|
||||
COMPONENT polarizer2 = Polariser(nIncRefr=1, d_substrate = 5e-4, reflect_d=0, reflect_u=0, lin=polarizer_start, length=polarizer_length,
|
||||
delta_theta=(Theta1_polarizer+Theta2_polarizer)*PI/180.0, h2=0.1, h1=0.05, abs_ref=1, m_u=4.0, m_d=0.65, both_coated=1, alpha=2.3, W = 0.0014)
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
*******************************************************************************/
|
||||
|
||||
DEFINE INSTRUMENT ESS_reflectometer_Estia
|
||||
(double lambda_start = 3.0, double lambda_end = 12.0,
|
||||
(double lambda_start = 0.1, double lambda_end = 30.1,
|
||||
int enable_gravity=1, int enable_windows=1, direct_beam=0,
|
||||
double source_power = 5, foil_thickness=0.00001)
|
||||
|
||||
@@ -164,34 +164,66 @@ COMPONENT moderator = ESS_butterfly(
|
||||
* Beam manipulation area around the virtual source *
|
||||
****************************************************/
|
||||
/* Absorber to reduce beam to needed size an for shielding purposes (CPC1 in CAD model) */
|
||||
COMPONENT CPC1_in = Slit(xwidth=0.0303, yheight=0.0792)
|
||||
AT (0, 0, -0.890) RELATIVE arm_virtual_source_beam
|
||||
COMPONENT CPC1_in = Slit(xwidth=0.027, yheight=0.067)
|
||||
AT (0, 0, -0.810) RELATIVE arm_virtual_source_beam
|
||||
|
||||
COMPONENT CPC1_monitor = Slit(xwidth=0.016344, yheight=0.05547)
|
||||
AT (0, 0, -0.3573) RELATIVE arm_virtual_source_beam
|
||||
COMPONENT CPC1_monitor = Slit(xwidth=0.01574, yheight=0.03683)
|
||||
AT (0, 0, -0.3536) RELATIVE arm_virtual_source_beam
|
||||
|
||||
// As TOF detector is rectangular, use focus_r size to limit to actual
|
||||
// detector size of 0.5'' diameter cylinder
|
||||
COMPONENT Vanadium_Foil = Incoherent(focus_r=0.00635, p_interact=0.9,
|
||||
COMPONENT Vanadium_Foil = Incoherent(focus_r=0.05, p_interact=0.9,
|
||||
xwidth=0.018, yheight=0.055, zdepth=foil_thickness,
|
||||
sigma_abs=5.08, sigma_inc=5.08, Vc=13.827,
|
||||
target_index=1)
|
||||
WHEN direct_beam<2
|
||||
AT (0, 0, -0.320) RELATIVE arm_virtual_source_beam
|
||||
ROTATED (34.3, 0, 0) RELATIVE arm_virtual_source_beam
|
||||
ROTATED (45.0, 0, 0) RELATIVE arm_virtual_source_beam
|
||||
|
||||
COMPONENT monitor_shielding = Slit(radius=0.01)
|
||||
WHEN direct_beam==0
|
||||
AT (0, 0, 0.030) RELATIVE arm_monitor
|
||||
|
||||
COMPONENT monitor_cossection = Slit(radius=0.025/2.0)
|
||||
WHEN direct_beam==0
|
||||
AT (0, 0, 0.030+0.01449) RELATIVE arm_monitor
|
||||
|
||||
COMPONENT tof_monitor = TOFLambda_monitor(
|
||||
filename = "monitor",
|
||||
tmin=0, tmax=120000, nt=1200,
|
||||
Lmin=0,Lmax=35,nL=350,
|
||||
filename = "monitor", restore_neutron=1,
|
||||
tmin=0, tmax=120000, nt=1201,
|
||||
Lmin=0.1,Lmax=30.1,nL=301,
|
||||
xwidth = 0.025, yheight = 0.025)
|
||||
WHEN direct_beam==0
|
||||
AT (0, 0, 0.1) RELATIVE arm_monitor
|
||||
AT (0, 0, 0.030+0.0145) RELATIVE arm_monitor
|
||||
|
||||
// two additional monitors at center and end of He tube, can be used to model
|
||||
// tof resolution for wavelength dependent absorption length
|
||||
COMPONENT monitor_cossection_2 = Slit(radius=0.025/2.0)
|
||||
WHEN direct_beam==0
|
||||
AT (0, 0, 0.030+0.01449+0.1778/2.0) RELATIVE arm_monitor
|
||||
|
||||
COMPONENT tof_monitor_2 = TOFLambda_monitor(
|
||||
filename = "monitor_2", restore_neutron=1,
|
||||
tmin=0, tmax=120000, nt=1201,
|
||||
Lmin=0.1,Lmax=30.1,nL=301,
|
||||
xwidth = 0.025, yheight = 0.025)
|
||||
WHEN direct_beam==0
|
||||
AT (0, 0, 0.030+0.0145+0.1778/2.0) RELATIVE arm_monitor
|
||||
|
||||
COMPONENT monitor_cossection_3 = Slit(radius=0.025/2.0)
|
||||
WHEN direct_beam==0
|
||||
AT (0, 0, 0.030+0.01449+0.1778) RELATIVE arm_monitor
|
||||
|
||||
COMPONENT tof_monitor_3 = TOFLambda_monitor(
|
||||
filename = "monitor_3",
|
||||
tmin=0, tmax=120000, nt=1201,
|
||||
Lmin=0.1,Lmax=30.1,nL=301,
|
||||
xwidth = 0.025, yheight = 0.025)
|
||||
WHEN direct_beam==0
|
||||
AT (0, 0, 0.030+0.0145+0.1778) RELATIVE arm_monitor
|
||||
|
||||
COMPONENT tof_direct = TOFLambda_monitor(
|
||||
filename = "VS",
|
||||
tmin=0, tmax=120000, nt=1200,
|
||||
Lmin=0,Lmax=35,nL=350,
|
||||
tmin=0, tmax=120000, nt=1201,
|
||||
Lmin=0.1,Lmax=30.1,nL=301,
|
||||
xwidth = 0.05, yheight = 0.05)
|
||||
WHEN direct_beam>0
|
||||
AT (0, 0, 0.08) RELATIVE arm_virtual_source_beam
|
||||
|
||||
@@ -7,5 +7,14 @@ if [ Estia_baseline.instr -nt Estia_baseline.out ] || [ ! -f Estia_baseline.out
|
||||
|| [ Estia_selene2.instr -nt Estia_baseline.out ]; then
|
||||
rm Estia_baseline.c Estia_baseline.out
|
||||
mcstas -o Estia_baseline.c Estia_baseline.instr
|
||||
mpicc -O3 -o Estia_baseline.out Estia_baseline.c -lm -DUSE_MPI
|
||||
mpicc -O3 -o Estia_baseline.out Estia_baseline.c -lm -DUSE_MPI -DUSE_NEXUS -lNeXus \
|
||||
-I/afs/psi.ch/project/sinq/sl6-64/mcstas2.4/mcstas/2.4/libs/mcpl \
|
||||
-L/afs/psi.ch/project/sinq/sl6-64/mcstas2.4/mcstas/2.4/libs/mcpl -lmcpl
|
||||
fi
|
||||
|
||||
if [ Estia_monitor.instr -nt Estia_monitor.out ] || [ ! -f Estia_monitor.out ] \
|
||||
|| [ Estia_feeder.instr -nt Estia_monitor.out ]; then
|
||||
rm Estia_monitor.c Estia_monitor.out
|
||||
mcstas -o Estia_monitor.c Estia_monitor.instr
|
||||
mpicc -O3 -o Estia_monitor.out Estia_monitor.c -lm -DUSE_MPI -DUSE_NEXUS -lNeXus
|
||||
fi
|
||||
|
||||
Executable
+16
@@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
DEST=../results
|
||||
ncount=1e9
|
||||
use_cores=$1
|
||||
|
||||
###################### Brilliance Transfer 10x10mm² and 1x1mm² VS ####################
|
||||
|
||||
DESTi=$DEST/mcnp_reference
|
||||
if [ -e "$DESTi" ]; then
|
||||
rm -r "$DESTi"
|
||||
fi
|
||||
|
||||
mpirun -np $use_cores Estia_baseline.out \
|
||||
--dir="$DESTi" --format=NeXuS --ncount=$ncount \
|
||||
enable_gravity=0 enable_polarizer=0 enable_analyzer=0
|
||||
@@ -0,0 +1,24 @@
|
||||
#!/bin/tcsh
|
||||
#SBATCH -J McEstia
|
||||
#SBATCH -N 3
|
||||
#SBATCH --ntasks-per-node=24
|
||||
#SBATCH --time=12:00:00
|
||||
#SBATCH --mail-type=fail
|
||||
#SBATCH --mail-user=artur.glavic@psi.ch
|
||||
|
||||
#SBATCH -o stdout.log
|
||||
#SBATCH -e stderr.log
|
||||
|
||||
#SBATCH --partition=ll_medium
|
||||
|
||||
echo "Starting at `date`"
|
||||
echo "Running on hosts: $SLURM_NODELIST"
|
||||
echo "Running on $SLURM_NNODES nodes."
|
||||
echo "Running on $SLURM_NPROCS processors."
|
||||
echo "Current working directory is `pwd`"
|
||||
|
||||
|
||||
module load mcstas
|
||||
|
||||
bash compile_if_needed.sh
|
||||
bash run_mcnpref.sh $SLURM_NPROCS
|
||||
@@ -1,52 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
#-*- coding: utf8 -*-
|
||||
|
||||
import sys, os
|
||||
from subprocess import call
|
||||
from numpy import *
|
||||
from scipy.optimize import leastsq
|
||||
|
||||
|
||||
CALL='/afs/psi.ch/project/sinq/sl6-64/bin/mpirun -np $SLURM_NPROCS Estia_baseline.out '
|
||||
CALL=+'--dir=../results/selene_geo --ncount=1e9 '
|
||||
CALL=+'omegaa=1.0 sample=4 sample_length=0.001 sample_height=0.01 '
|
||||
CALL=+'lambda_start=2.5 lambda_end=15.0 enable_gravity=1 enable_chopper=1 '
|
||||
CALL=+'lambda_min=3.75 selene1_foot1y=%.4f selene1_foot2y=%.4f '
|
||||
|
||||
def B(x,w):
|
||||
# box function with full width w
|
||||
return float32(abs(x)<=(w/2.))
|
||||
|
||||
def G(x,I0,x0,sigma):
|
||||
# Gaussian with intensity I0, center x0 and standard deviation sigma
|
||||
return I0*exp(-0.5*(x-x0)**2/sigma**2)
|
||||
|
||||
def Intensity(x, p):
|
||||
I0, x0, sigma, w=p
|
||||
return convolve(B(xc,w), G(xc, I0, x0, sigma), mode='same')
|
||||
|
||||
def Beam(x,I0,x0,sigma,w):
|
||||
I=I0*where((x-x0)<(-w/2.), exp(-0.5*(x-x0+w/2.)**2/sigma**2),
|
||||
where((x-x0)>(w/2.), exp(-0.5*(x-x0-w/2.)**2/sigma**2), 1.))
|
||||
return I
|
||||
|
||||
def residuals(p, x, y):
|
||||
I0, x0, sigma, w=p
|
||||
return y-Beam(x, I0, x0, sigma, w)
|
||||
|
||||
def FWHM(pi):
|
||||
rng=xc[where(Beam(xc, *pi)>=(pi[0]/2.))[0]]
|
||||
return rng[-1]-rng[0]
|
||||
|
||||
x=linspace(-10.0005, 10.0005, 20001)
|
||||
xc=(x[1:]+x[:-1])/2.
|
||||
|
||||
def analyze(fi):
|
||||
sim=mr.McSim(fi)
|
||||
det=sim['tof_sample']
|
||||
ignore,y=det.project1d('x', bins=x/1000.)
|
||||
p,res=leastsq(residuals, (y.max(), (xc*y).sum()/y.sum(), 0.01, 0.1), (xc, y))
|
||||
return p,det
|
||||
|
||||
if __name__=='__main__':
|
||||
pass
|
||||
@@ -1,121 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
DEST=../results
|
||||
ncount=1e9
|
||||
use_cores=6
|
||||
sample=4
|
||||
omega=0.8
|
||||
sample_length=0.005
|
||||
sample_height=0.01
|
||||
lambda_start=3.0
|
||||
lambda_end=32.0
|
||||
|
||||
###################### Brilliance Transfer 10x10mm² and 1x1mm² VS ####################
|
||||
bash compile_if_needed.sh
|
||||
|
||||
DESTi=$DEST/brilliance_nowindow_5x10
|
||||
if [ -e "$DESTi" ]; then
|
||||
rm -r "$DESTi"
|
||||
fi
|
||||
|
||||
mpirun -np $use_cores Estia_baseline.out \
|
||||
--dir="$DESTi" --format=NeXuS --ncount=$ncount --gravitation \
|
||||
omegaa=$omega operationmode=0 theta_resolution=0.04 over_illumination=0.000 \
|
||||
sample=$sample sample_length=$sample_length sample_height=$sample_height \
|
||||
enable_windows=0 \
|
||||
lambda_start=$lambda_start lambda_end=$lambda_end enable_gravity=1 enable_chopper=0
|
||||
|
||||
DESTi=$DEST/brilliance_5x10
|
||||
if [ -e "$DESTi" ]; then
|
||||
rm -r "$DESTi"
|
||||
fi
|
||||
|
||||
mpirun -np $use_cores Estia_baseline.out \
|
||||
--dir="$DESTi" --format=NeXuS --ncount=$ncount --gravitation \
|
||||
omegaa=$omega operationmode=0 theta_resolution=0.04 over_illumination=0.000 \
|
||||
sample=$sample sample_length=$sample_length sample_height=$sample_height \
|
||||
lambda_start=$lambda_start lambda_end=$lambda_end enable_gravity=1 enable_chopper=0
|
||||
|
||||
|
||||
ncount=1e10
|
||||
sample_length=0.001
|
||||
sample_height=0.001
|
||||
|
||||
DESTi=$DEST/brilliance_1x1
|
||||
if [ -e "$DESTi" ]; then
|
||||
rm -r "$DESTi"
|
||||
fi
|
||||
|
||||
mpirun -np $use_cores Estia_baseline.out \
|
||||
--dir="$DESTi" --format=NeXuS --ncount=$ncount --gravitation \
|
||||
omegaa=$omega operationmode=0 theta_resolution=0.04 over_illumination=0.000 \
|
||||
sample=$sample sample_length=$sample_length sample_height=$sample_height \
|
||||
lambda_start=$lambda_start lambda_end=$lambda_end enable_gravity=1 enable_chopper=0
|
||||
|
||||
|
||||
# ###################### Reference and Ni-layer measurement 10x10mm² sample ####################
|
||||
ncount=1e10
|
||||
sample_length=0.01
|
||||
sample_height=0.01
|
||||
lambda_start=3.25
|
||||
lambda_end=12.75
|
||||
sample=1
|
||||
|
||||
omega=1.0
|
||||
DESTi=$DEST/reference_10x10_10
|
||||
if [ -e "$DESTi" ]; then
|
||||
rm -r "$DESTi"
|
||||
fi
|
||||
|
||||
mpirun -np $use_cores Estia_baseline.out \
|
||||
--dir="$DESTi" --format=NeXuS --ncount=$ncount --gravitation \
|
||||
omegaa=$omega operationmode=0 theta_resolution=0.04 over_illumination=0.000 \
|
||||
sample=$sample sample_length=$sample_length sample_height=$sample_height \
|
||||
lambda_start=$lambda_start lambda_end=$lambda_end enable_gravity=1 enable_chopper=1
|
||||
|
||||
# Ni Sample
|
||||
|
||||
ncount=6e9
|
||||
sample=2
|
||||
omega=0.8
|
||||
DESTi=$DEST/nickle_10x10_08
|
||||
if [ -e "$DESTi" ]; then
|
||||
rm -r "$DESTi"
|
||||
fi
|
||||
|
||||
mpirun -np $use_cores Estia_baseline.out \
|
||||
--dir="$DESTi" --format=NeXuS --ncount=$ncount --gravitation \
|
||||
omegaa=$omega operationmode=0 theta_resolution=0.04 over_illumination=0.0001 \
|
||||
sample=$sample sample_length=$sample_length sample_height=$sample_height \
|
||||
lambda_start=$lambda_start lambda_end=$lambda_end enable_gravity=1 enable_chopper=1
|
||||
|
||||
ncount=2e9
|
||||
omega=3.0
|
||||
DESTi=$DEST/nickle_10x10_30
|
||||
if [ -e "$DESTi" ]; then
|
||||
rm -r "$DESTi"
|
||||
fi
|
||||
|
||||
mpirun -np $use_cores Estia_baseline.out \
|
||||
--dir="$DESTi" --format=NeXuS --ncount=$ncount --gravitation \
|
||||
omegaa=$omega operationmode=0 theta_resolution=0.04 over_illumination=0.0001 \
|
||||
sample=$sample sample_length=$sample_length sample_height=$sample_height \
|
||||
lambda_start=$lambda_start lambda_end=$lambda_end enable_gravity=1 enable_chopper=1
|
||||
|
||||
|
||||
ncount=1e9
|
||||
omega=8.0
|
||||
DESTi=$DEST/nickle_10x10_80
|
||||
if [ -e "$DESTi" ]; then
|
||||
rm -r "$DESTi"
|
||||
fi
|
||||
|
||||
mpirun -np $use_cores Estia_baseline.out \
|
||||
--dir="$DESTi" --format=NeXuS --ncount=$ncount --gravitation \
|
||||
omegaa=$omega operationmode=0 theta_resolution=0.04 over_illumination=0.0001 \
|
||||
sample=$sample sample_length=$sample_length sample_height=$sample_height \
|
||||
lambda_start=$lambda_start lambda_end=$lambda_end enable_gravity=1 enable_chopper=1
|
||||
|
||||
# ###################### Reference and Ni-layer measurement 1x1mm² sample ####################
|
||||
#
|
||||
#
|
||||
@@ -23,8 +23,8 @@ module load mcstas
|
||||
bash compile_if_needed.sh
|
||||
|
||||
mpirun -np $SLURM_NPROCS Estia_baseline.out \
|
||||
--dir=../results/shielding --ncount=1e9 \
|
||||
sample=0
|
||||
--dir=../results/shielding_2 --ncount=5e9 \
|
||||
enable_gravity=0
|
||||
|
||||
|
||||
echo "Program finished with exit code $? at: `date`"
|
||||
|
||||
Reference in New Issue
Block a user