8 Commits

26 changed files with 9178 additions and 110172 deletions
+9
View File
@@ -0,0 +1,9 @@
#!/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/of_detector_list_p_x_y_t_L_sx_sy/events:GZIP=5 -l /entry1/data/of_detector_list_p_x_y_t_L_sx_sy/events:CHUNK=3072x7
mv $fi.c $fi
done
+25 -136
View File
@@ -10,147 +10,36 @@ seterr(all='ignore')
import estia_help as eh
import mcstas_reader as mr
# Scaling factor of source monitor after normalizing by area to get to brilliance.
# Converts from 1.5x4.0 degree² acceptance range to 1/steradian
# Factor 10 due to 0.1 Angstrom binning.
BT_SOURCE_SCALE=10.*(180.**2/pi**2)/1.5/4.0
BT_SAMPLE_SCALE=10.*(180.**2/pi**2)/1.5/1.5
# work around for wrong wavelength calculation in pulse skipping mode
eh.l_code='((t-0.0335)%%(%f/14.)+0.0335-0.0015)*101.436605'
if __name__=='__main__':
if not os.path.exists('../results/analyzed'):
os.mkdir('../results/analyzed')
if not os.path.exists('../results/mooc_analyzed'):
os.mkdir('../results/mooc_analyzed')
if len(sys.argv)>1:
only_items=map(int, sys.argv[1:])
else:
only_items=range(100)
if 1 in only_items:
print "Brilliance Transfer 5x10"
bt_10=mr.McSim('../results/brilliance_5x10/mccode.h5')
d=bt_10['tof_sample.L']
vs=bt_10['tof_virtual_source.L']
r=bt_10['tof_source.L']
x, y, e=eh.calc_brilliance_transfer(d, BT_SAMPLE_SCALE*2., r, BT_SOURCE_SCALE)
savetxt('../results/analyzed/brilliance_transfer_5x10.dat', array([x, y, e]).T)
savetxt('../results/analyzed/brilliance_5x10.dat', array([x, d.data*BT_SAMPLE_SCALE*2.,
d.errors*BT_SAMPLE_SCALE*2.]).T)
x, y, e=eh.calc_brilliance_transfer(vs, BT_SAMPLE_SCALE, r, BT_SOURCE_SCALE)
savetxt('../results/analyzed/brilliance_transfer_vs_5x10.dat', array([x, y, e]).T)
btn_10=mr.McSim('../results/brilliance_nowindow_5x10/mccode.h5')
d=btn_10['tof_sample.L']
vs=btn_10['tof_virtual_source.L']
r=btn_10['tof_source.L']
x, y, e=eh.calc_brilliance_transfer(d, BT_SAMPLE_SCALE*2., r, BT_SOURCE_SCALE)
savetxt('../results/analyzed/brilliance_transfer_nowindow_5x10.dat', array([x, y, e]).T)
x, y, e=eh.calc_brilliance_transfer(vs, BT_SAMPLE_SCALE, r, BT_SOURCE_SCALE)
savetxt('../results/analyzed/brilliance_transfer_nowindow_vs_5x10.dat', array([x, y, e]).T)
print "pulse skipping mode"
opts=dict(qres=0.02, qmin=0.007, qmax=0.2, mindq=2e-5, crop_overlap=False)
names=['q_z', 'Intensity(ToF)', 'Reflectivity(ToF)',
'1s-Stat(ToF)', '1pulse-Stat(ToF)', '10s-Statistics(ToF)',
'Intensity(λ)', 'Reflectivity(λ)']
units=['A^{-1}', 'cts/s', '1', 'cts/s', '1']
info='Reflectivity simulation for 50x10mm² sample, 2-pulse skipping'
if 2 in only_items:
print "Brilliance Transfer 1x1"
bt_1=mr.McSim('../results/brilliance_1x1/mccode.h5')
d=bt_1['tof_sample.L']
r=bt_1['tof_source.L']
x, y, e=eh.calc_brilliance_transfer(d, BT_SAMPLE_SCALE*100, r, BT_SOURCE_SCALE)
savetxt('../results/analyzed/brilliance_transfer_1x1.dat', array([x, y, e]).T)
savetxt('../results/analyzed/brilliance_1x1.dat', array([x, d.data*BT_SAMPLE_SCALE*100,
d.errors*BT_SAMPLE_SCALE*100]).T)
if 3 in only_items:
print "Refelctiviy 10x10 sample"
opts=dict(qres=0.01, qmin=0.003, qmax=0.5, mindq=5e-4)
names=['q_z', 'Intensity(ToF)', 'Reflectivity(ToF)', 'dR (1s ToF)', 'Intensity(λ)', 'Reflectivity(λ)']
units=['A^{-1}', 'cts/s', '1', 'cts/s', '1']
info='Reflectivity simulation for 10x10mm² sample, omega=%.1f deg'
print "0.8 degree"
ref=mr.McSim('../results/reference_10x10_10/mccode.h5')['tof_detector']
ni_08=mr.McSim('../results/nickle_10x10_08/mccode.h5')['tof_detector']
q, I, R=eh.calcR(ni_08, ref, 0.8, 1.0, detcorr=True, **opts)
q, I_real, R_real=eh.calcR(ni_08, ref, 0.8, 1.0, use_tof=False, **opts)
idx_start, idx_end=where((I>0.)&(I_real>0.))[0][[0,-1]]
eh.save_w_header('../results/analyzed/reflectivity_10x10_08.dat',
[q[idx_start:idx_end+1],
I[idx_start:idx_end+1], R[idx_start:idx_end+1],
(R/sqrt(I))[idx_start:idx_end+1],
I_real[idx_start:idx_end+1], R_real[idx_start:idx_end+1]],
info, names, units)
del(ni_08)
print "3.0 degree"
ni_30=mr.McSim('../results/nickle_10x10_30/mccode.h5')['tof_detector']
q, I, R=eh.calcR(ni_30, ref, 3.0, 1.0, detcorr=True, **opts)
q, I_real, R_real=eh.calcR(ni_30, ref, 3.0, 1.0, use_tof=False, **opts)
idx_start, idx_end=where((I>0.)&(I_real>0.))[0][[0,-1]]
eh.save_w_header('../results/analyzed/reflectivity_10x10_30.dat',
[q[idx_start:idx_end+1],
I[idx_start:idx_end+1], R[idx_start:idx_end+1],
(R/sqrt(I))[idx_start:idx_end+1],
I_real[idx_start:idx_end+1], R_real[idx_start:idx_end+1]],
info, names, units)
del(ni_30)
print "8.0 degree"
ni_80=mr.McSim('../results/nickle_10x10_80/mccode.h5')['tof_detector']
q, I, R=eh.calcR(ni_80, ref, 8.0, 1.0, detcorr=True, **opts)
q, I_real, R_real=eh.calcR(ni_80, ref, 8.0, 1.0, use_tof=False, **opts)
idx_start, idx_end=where((I>0.)&(I_real>0.))[0][[0,-1]]
eh.save_w_header('../results/analyzed/reflectivity_10x10_80.dat',
[q[idx_start:idx_end+1],
I[idx_start:idx_end+1], R[idx_start:idx_end+1],
(R/sqrt(I))[idx_start:idx_end+1],
I_real[idx_start:idx_end+1], R_real[idx_start:idx_end+1]],
info, names, units)
if 4 in only_items:
print "10x10 sample pulse skipping mode."
opts=dict(qres=0.04, qmin=0.003, qmax=0.2, mindq=2e-4)
names=['q_z', 'Intensity(ToF)', 'Reflectivity(ToF)', 'Intensity(λ)', 'Reflectivity(λ)']
units=['A^{-1}', 'cts/s', '1', 'cts/s', '1']
info='Reflectivity simulation for 10x10mm² sample, 2-pulse skipping'
ref=mr.McSim('../results/single_skip_reference/mccode.h5')['tof_detector']
ni=mr.McSim('../results/single_skip_nickle/mccode.h5')['tof_detector']
q, I, R=eh.calcR(ni, ref, 2.0, skip_pulses=2, **opts)
q, I_real, R_real=eh.calcR(ni, ref, 2.0, skip_pulses=2, use_tof=False, **opts)
ref=mr.McSim('../results/mooc_reference_ps')['tof_detector']
for i in range(6):
print "dataset",i
sample=mr.McSim('../results/mooc_model_ps_%i'%i)['tof_detector']
q, I, R=eh.calcR(sample, ref, 1.5, 1.5, skip_pulses=2, **opts)
q, I_real, R_real=eh.calcR(sample, ref, 1.5, 1.5, skip_pulses=2, use_tof=False, **opts)
idx_start, idx_end=where((I>0.))[0][[0,-1]]
eh.save_w_header('../results/analyzed/single_skip_reflectivity.dat',
[q[idx_start:idx_end+1],
I[idx_start:idx_end+1], R[idx_start:idx_end+1],
eh.save_w_header('../results/mooc_analyzed/model%i_skip_reflectivity.dat'%i,
[q[idx_start:idx_end+1],
I[idx_start:idx_end+1], R[idx_start:idx_end+1],
random.poisson(I[idx_start:idx_end+1])/I[idx_start:idx_end+1]*R[idx_start:idx_end+1],
random.poisson(I[idx_start:idx_end+1]*3./14.)/I[idx_start:idx_end+1]*14./3.*R[idx_start:idx_end+1],
random.poisson(I[idx_start:idx_end+1]*10.)/I[idx_start:idx_end+1]/10.*R[idx_start:idx_end+1],
I_real[idx_start:idx_end+1], R_real[idx_start:idx_end+1]],
info, names, units)
info, names, units)
if 5 in only_items:
print "Extracting event statistics."
fh=open('../results/analyzed/event_stats.dat', 'w')
fh.write('# event statistics for Estia\n')
fh.write('# item avg. total peak total avg. ROI peak ROI\n')
fh.write('# [cps] [cps] [cps/mm²] [cps/mm²]\n')
line='%(name)s %(total) 12e %(peak) 12e %(roi) 12e %(roi_peak) 12e\n'
ds=mr.McSim('../results/reference_10x10_10/mccode.h5')['tof_detector']
res=eh.calcStat(ds)
res['name']='Reference'
fh.write(line%res)
ds=mr.McSim('../results/nickle_10x10_08/mccode.h5')['tof_detector']
res=eh.calcStat(ds)
res['name']='Ni-0.8deg'
fh.write(line%res)
ds=mr.McSim('../results/nickle_10x10_30/mccode.h5')['tof_detector']
res=eh.calcStat(ds)
res['name']='Ni-3.0deg'
fh.write(line%res)
ds=mr.McSim('../results/nickle_10x10_80/mccode.h5')['tof_detector']
res=eh.calcStat(ds)
res['name']='Ni-8.0deg'
fh.write(line%res)
fh.close()
+9 -195
View File
@@ -49,7 +49,8 @@
*******************************************************************************/
DEFINE INSTRUMENT ESS_reflectometer_Estia
(double omegaa = 1.2, int sample = 0, double sample_length = 0.01, double sample_height = 0.01,
(double omegaa = 1.2, int sample = 1, string sample_file="alessandra_model_2_nores_000.dat",
double sample_length = 0.01, double sample_height = 0.01,
int operationmode = 0, double over_illumination = 0.0, double theta_resolution = 0.04,
double lambda_min = 3.75, double lambda_start = 3.0, double lambda_end = 12.0,
int enable_chopper = 0, int enable_gravity=0, int enable_windows=1,
@@ -89,7 +90,7 @@ double chopper_phase ; // deg phase between pulse and chopper ope
double chopper_open ; // deg of opening angle in the chopper
double pulse_zero = 0.00175; // ms intensity weighted average time of emitted neutron pulse
double opening_time = 0.0015; // ms time to reach full intensity on detector, used to adjust phase to get full intensity at beginning of selected band
double chopper_freq = 14.0 ; // Hz chopper frequency
double chopper_freq = 14.0; // Hz chopper frequency
double slit_distance = 1.775; //m, distance slit to sample
@@ -112,6 +113,8 @@ double Theta1_analyzer1, Theta1_analyzer2, Theta2_analyzer1, Theta2_analyzer2, d
INITIALIZE
%{
chopper_freq/=fmax(1.0, enable_chopper);
// chopper coupling together
velocity_max= 3.956034E3 / lambda_min; // h/m_n over lambda - ((3.9..e-7m^2/s))/(1e-10m)
chopper_phase=360.0*(chopper_pos*chopper_freq/velocity_max+(pulse_zero-opening_time)*chopper_freq);
@@ -198,16 +201,6 @@ COMPONENT moderator = ESS_butterfly(
n_pulses = 1+enable_chopper, acc_power=source_power)
AT (0, 0, 0) RELATIVE origin
// monitor used for brilliance transfer calculations
COMPONENT tof_source = Monitor_nD(
filename = "tof_source",
options = "xdiv limits=[-0.75 0.75] bins=15 ydiv limits=[-2.0 2.0] bins=40 time limits=[0 0.6] bins=600 lambda limits=[0 35] bins=350",
xwidth=0.01, yheight = 0.01)
WHEN sample==4
AT (0, 0, 0.03) RELATIVE ISCS
ROTATED (0,-selene_theta,0) RELATIVE ISCS
/***************************************
* Geometry of neutron feeder separate *
***************************************/
@@ -228,34 +221,9 @@ COMPONENT FeNi_out = Slit(xwidth=0.013, yheight=0.038)
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
WHEN enable_chopper!=0
AT (0, 0, chopper_pos-2*NBOA_c) RELATIVE arm_virtual_source_beam
// Beam monitoring before VS
COMPONENT DP_before_virtual_source = DivPos_monitor(
filename = "DP_before_virtual_source" ,
nh = 200, ndiv = 200,
xwidth = 0.2, yheight = 0.2,
maxdiv_h = 6,
restore_neutron = 1)
AT (0, 0, -0.022) RELATIVE arm_virtual_source_beam
COMPONENT PP_small_before_virtual_source = PSD_monitor(
filename = "PP_small_before_virtual_source",
nx = 200, ny = 200,
xwidth = 0.1, yheight = 0.1,
restore_neutron = 1)
WHEN PP_small ==1
AT (0, 0, -0.021) RELATIVE arm_virtual_source_beam
COMPONENT PP_large_before_virtual_source = PSD_monitor(
filename = "PP_large_before_virtual_source",
nx = 200, ny = 200,
xmin = -1.8, xmax = 1.8, ymin = -1.8, ymax = 1.8,
restore_neutron = 1)
WHEN PP_large ==1
AT (0, 0, 2*NBOA_c-0.02) RELATIVE ISCS
/* The actual virtual source mask, two L-shaped absorbers (first top-right) */
COMPONENT virtual_source_TR = Slit(
@@ -276,48 +244,6 @@ COMPONENT virtual_source_BL = Slit(
WHEN sample!=4
AT (over_illumination, 0, 0.5*sample_length) RELATIVE arm_virtual_source
// Beam monitoring after VS
COMPONENT tof_virtual_source = Monitor_nD(
filename = "tof_virtual_source",
options = "xdiv limits=[-0.75 0.75] bins=15 ydiv limits=[-2.0 2.0] bins=40 time limits=[0 0.6] bins=600 lambda limits=[0 35] bins=350",
xwidth=sample_length, yheight = sample_height)
WHEN sample==4
AT (0, 0, 0.019) RELATIVE arm_virtual_source_beam
COMPONENT DL_behind_virtual_source = DivLambda_monitor(
filename = "DL_behind_virtual_source",
nL = 200, nh = 200,
xwidth = 0.02, yheight = 0.06,
maxdiv_h = 3,
Lmin = lambda_start, Lmax = lambda_end,
restore_neutron = 1)
AT (0, 0, 0.02) RELATIVE arm_virtual_source_beam
COMPONENT DP_behind_virtual_source = DivPos_monitor(
filename = "DP_behind_virtual_source" ,
nh = 200, ndiv = 200,
xwidth = 0.2, yheight = 0.2,
maxdiv_h = 3,
restore_neutron = 1)
AT (0, 0, 0.021) RELATIVE arm_virtual_source_beam
COMPONENT PP_small_behind_virtual_source = PSD_monitor(
filename = "PP_small_behind_virtual_source",
nx = 200, ny = 200,
xwidth = 0.02, yheight = 0.05,
restore_neutron = 1)
WHEN PP_small ==1
AT (0, 0, 0.022) RELATIVE arm_virtual_source_beam
COMPONENT PP_large_behind_virtual_source = PSD_monitor(
filename = "PP_large_behind_virtual_source",
nx = 200, ny = 200,
xmin = -1.8, xmax = 1.8, ymin = -1.8, ymax = 1.8,
restore_neutron = 1)
WHEN PP_large ==1
AT (0, 0, 2*NBOA_c+0.023) RELATIVE ISCS
/*************************************
* Geometry of Selene guide separate *
*************************************/
@@ -343,70 +269,6 @@ COMPONENT ac_slit = Slit(
/***************
* Sample area *
***************/
// Beam monitoring before sample
COMPONENT PP_small_sample_focus = PSD_monitor(
filename = "PP_small_sample_focus",
nx = 200, ny = 200,
xwidth = 0.02, yheight = 0.05,
restore_neutron = 1)
WHEN PP_small ==1
AT (0, 0, -0.001) RELATIVE arm_sample
COMPONENT DL_sample_focus = DivLambda_monitor(
filename = "DL_sample_focus",
nL = 200, nh = 200,
xwidth = 0.02, yheight = 0.06,
maxdiv_h = 3,
Lmin = lambda_start, Lmax = lambda_end,
restore_neutron = 1)
AT (0, 0, -0.001) RELATIVE arm_sample
/* monitor at sample position for footprint */
COMPONENT PL_sample = Monitor_nD(
filename = "PL_sample",
options = "lambda limits=[0 35] bins=350 x limits=[-0.02 0.02] bins 160",
xwidth = 0.04, yheight = 0.02, restore_neutron=1)
WHEN sample!=4
AT (0, 0, -0.001) RELATIVE arm_sample
ROTATED (0, -90, 0) RELATIVE arm_sample
COMPONENT PSD_sample = PSD_monitor(
filename = "PSD_sample",
nx = 100, ny = 100,
xwidth = 4*sample_length, yheight = 4*sample_height,
restore_neutron = 1)
WHEN sample!=4
AT (0, 0, -0.001) RELATIVE arm_sample
ROTATED (0, -90, 0) RELATIVE arm_sample
COMPONENT tof_sample = Monitor_nD(
filename = "tof_sample",
options = "xdiv limits=[-0.75 0.75] bins=15 ydiv limits=[-2.0 2.0] bins=40 time limits=[0 0.6] bins=600 lambda limits=[0 35] bins=350",
xwidth=sample_length, yheight = sample_height)
WHEN sample==4
AT (0, 0, -0.0005) RELATIVE arm_sample_beam
ROTATED (0, 0, 0) RELATIVE arm_sample_beam
/* monitor for full beam at sample position ( n/cm²/s ) */
COMPONENT PP_small_sample = PSD_monitor(
filename = "PSD_sample_perp",
nx = 200, ny = 200,
xwidth = 0.05, yheight = 0.05,
restore_neutron = 1)
WHEN sample==4
AT (0, 0, 0) RELATIVE arm_sample_beam
ROTATED (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(
@@ -418,67 +280,19 @@ COMPONENT reference_sample = Mirror(
AT (0, 0, 0) RELATIVE arm_sample
ROTATED (0, 90, 0) RELATIVE arm_sample
/* Nickel film on silicon */
COMPONENT ni_sample = Mirror(
/* User defined sample file */
COMPONENT mooc_sample = Mirror(
xwidth = sample_length, yheight = sample_height,
center = 1, transmit = 0,
reflect = "Si-Ni.ref"
reflect = sample_file
)
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 */
// Beam monitoring at detector position
COMPONENT PP_large_detector = PSD_monitor(
filename = "PP_large_detector",
nx = 200, ny = 200,
xmin = -1.8, xmax = 1.8, ymin = -1.8, ymax = 1.8,
restore_neutron = 1)
AT (0, 0, total_length+detector_arm-0.001) RELATIVE ISCS
// Detector with 0.5x1mm² resolution
COMPONENT PP_detector = PSD_monitor(
filename = "PP_detector",
nx = 1000, ny = 500,
xwidth = 0.5, yheight = 0.5,
restore_neutron = 1)
AT (0, 0, detector_arm) RELATIVE arm_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",
+1 -37
View File
@@ -128,37 +128,8 @@ COMPONENT block_after_selene_guide_1 = Absorber(
/**************************************
* Middle focus between Selene guides *
**************************************/
COMPONENT arm_polarizer = Arm()
AT (0, 0, 2*selene_c) RELATIVE arm_selene1
ROTATED (selene_theta, -selene_theta, 0) RELATIVE ISCS
**************************************/
COMPONENT polarizer1 = Polariser(nIncRefr=1, d_substrate = 5e-4, reflect_d=0, reflect_u=0, lin=-(polarizer_start+polarizer_length), 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)
WHEN enable_polarizer
AT (0, 0, -(polarizer_start+polarizer_length)) RELATIVE arm_polarizer
ROTATED (0,0,90.0) RELATIVE arm_polarizer
COMPONENT polmon_mfocus=PolLambda_monitor(Lmin=lambda_start, Lmax=lambda_end, nL=30, npol=101, my=1, filename="polmon_mfocus")
WHEN enable_polarizer
AT (0, 0, 2*selene_c) RELATIVE arm_selene1
ROTATED (0.0,0.0,0.0) RELATIVE arm_selene1
COMPONENT PP_small_before_middle_focus = PSD_monitor(
filename = "PP_small_before_middle_focus",
nx = 200, ny = 200,
xwidth = 0.1, yheight = 0.1,
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)
WHEN (enable_polarizer>1)
AT (0, 0, polarizer_start) RELATIVE arm_polarizer
ROTATED (0.0,0,90.0) RELATIVE arm_polarizer
/**************************
@@ -194,13 +165,6 @@ COMPONENT slit_within_selene_guide_2 = Slit(
ymin = -selene_b, ymax=-selene_b*0.45+0.005)
AT (0, 0, 1.0*selene_c) RELATIVE arm_selene2
/*COMPONENT block_within_selene_guide_2 = Absorber(
xmin =-1, xmax=1,
ymin =-selene_b*0.25+0.001,
ymax = selene_b*0.25-0.001,
zmin=0.0, zmax=0.0001)
AT (0, 0, 3.0*selene_c+0.0001) RELATIVE arm_selene2*/
/* Selene 2 elliptic guide first half */
COMPONENT selene_guide_22 = Elliptic_guide_gravity(
l=0.5*selene_length-0.001, dimensionsAt = "mid",
-18001
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-18000
View File
File diff suppressed because it is too large Load Diff
-18000
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-4
View File
@@ -1,4 +0,0 @@
foreach z ( `seq -0.5 0.125 0.5` )
echo $z
./run_simu.sh $z
end
-213
View File
@@ -1,213 +0,0 @@
#!/bin/bash
DEST=../results
ncount=2e7
use_cores=4
sample=4
omega=0.8
sample_length=0.01
sample_height=0.01
lambda_start=3.0
lambda_end=32.0
###################### Brilliance Transfer 10x10mm² and 1x1mm² VS ####################
if [ Estia_baseline.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 -DUSE_NEXUS -lNeXus
fi
#
# if [ Estia_baseline_ana1.instr -nt Estia_baseline_ana1.out ]; then
# rm Estia_baseline_ana1.c Estia_baseline_ana1.out
# mcstas -o Estia_baseline_ana1.c Estia_baseline_ana1.instr
# mpicc -O3 -o Estia_baseline_ana1.out Estia_baseline_ana1.c -lm -DUSE_MPI -DUSE_NEXUS -lNeXus
# fi
#
# if [ Estia_baseline_ana2.instr -nt Estia_baseline_ana2.out ]; then
# rm Estia_baseline_ana2.c Estia_baseline_ana2.out
# mcstas -o Estia_baseline_ana2.c Estia_baseline_ana2.instr
# mpicc -O3 -o Estia_baseline_ana2.out Estia_baseline_ana2.c -lm -DUSE_MPI -DUSE_NEXUS -lNeXus
# fi
###################### Reference and Ni-layer measurement 10x10mm² sample ####################
# ncount=1e10
sample_length=0.01
sample_height=0.01
lambda_start=3.5
lambda_end=30.0
sample=1
# omega=1.0
# DESTi=$DEST/pol_ref_10x10_10
# if [ -e "$DESTi" ]; then
# rm -r "$DESTi"
# fi
#
# mpirun -np $use_cores Estia_baseline.out \
# --dir="$DESTi" --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 enable_polarizer=0 enable_analyzer=0
#
# DESTi=$DEST/pol1_10x10_10
# if [ -e "$DESTi" ]; then
# rm -r "$DESTi"
# fi
#
# mpirun -np $use_cores Estia_baseline.out \
# --dir="$DESTi" --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 enable_polarizer=1 enable_analyzer=0
#
# DESTi=$DEST/pol2_10x10_10
# if [ -e "$DESTi" ]; then
# rm -r "$DESTi"
# fi
#
# mpirun -np $use_cores Estia_baseline.out \
# --dir="$DESTi" --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 enable_polarizer=2 enable_analyzer=0
# #
# omega=7.0
# DESTi=$DEST/pol1_10x10_70
# if [ -e "$DESTi" ]; then
# rm -r "$DESTi"
# fi
#
# mpirun -np $use_cores Estia_baseline.out \
# --dir="$DESTi" --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 enable_polarizer=1 enable_analyzer=0
#
# DESTi=$DEST/pol2_10x10_70
# if [ -e "$DESTi" ]; then
# rm -r "$DESTi"
# fi
#
# mpirun -np $use_cores Estia_baseline.out \
# --dir="$DESTi" --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 enable_polarizer=2 enable_analyzer=0
#
# ncount=1e8
omega=0.0
# DESTi=$DEST/pol1_10x50_70
# if [ -e "$DESTi" ]; then
# rm -r "$DESTi"
# fi
#
# mpirun -np $use_cores Estia_baseline.out \
# --dir="$DESTi" --ncount=$ncount --gravitation \
# omegaa=$omega operationmode=0 theta_resolution=0.04 over_illumination=0.0025 \
# sample=$sample sample_length=$sample_length sample_height=$sample_height \
# lambda_start=$lambda_start lambda_end=$lambda_end enable_gravity=1 enable_chopper=0 enable_polarizer=1 enable_analyzer=0
DESTi=$DEST/pol2_10x50_70
if [ -e "$DESTi" ]; then
rm -r "$DESTi"
fi
mpirun -np $use_cores Estia_baseline.out \
--dir="$DESTi" --ncount=$ncount --gravitation \
omegaa=$omega operationmode=0 theta_resolution=0.04 over_illumination=0.0025 \
sample=$sample sample_length=$sample_length sample_height=$sample_height \
lambda_start=$lambda_start lambda_end=$lambda_end enable_gravity=1 enable_chopper=0 enable_polarizer=2 enable_analyzer=0
#
# ncount=5e9
# sample_length=0.01
# omega=1.0
# sample_length=0.003
# DESTi=$DEST/pol_ref_3x10_10
# if [ -e "$DESTi" ]; then
# rm -r "$DESTi"
# fi
#
# mpirun -np $use_cores Estia_baseline.out \
# --dir="$DESTi" --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 enable_polarizer=0 enable_analyzer=0
#
# DESTi=$DEST/pol1_3x10_10
# if [ -e "$DESTi" ]; then
# rm -r "$DESTi"
# fi
#
# mpirun -np $use_cores Estia_baseline.out \
# --dir="$DESTi" --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 enable_polarizer=1 enable_analyzer=0
#
# DESTi=$DEST/pol2_3x10_10
# if [ -e "$DESTi" ]; then
# rm -r "$DESTi"
# fi
#
# mpirun -np $use_cores Estia_baseline.out \
# --dir="$DESTi" --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 enable_polarizer=2 enable_analyzer=0
#
#
# sample_height=0.01
# sample_length=0.01
# DESTi=$DEST/ana1_10x10_10
# if [ -e "$DESTi" ]; then
# rm -r "$DESTi"
# fi
#
# mpirun -np $use_cores Estia_baseline.out \
# --dir="$DESTi" --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 enable_polarizer=0 enable_analyzer=1
# sample_height=0.001
# DESTi=$DEST/ana1_10x1_10
# if [ -e "$DESTi" ]; then
# rm -r "$DESTi"
# fi
#
# mpirun -np $use_cores Estia_baseline_ana1.out \
# --dir="$DESTi" --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 enable_polarizer=0 enable_analyzer=1
#
# sample_height=0.01
# DESTi=$DEST/ana2_10x10_10
# if [ -e "$DESTi" ]; then
# rm -r "$DESTi"
# fi
#
# mpirun -np $use_cores Estia_baseline.out \
# --dir="$DESTi" --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 enable_polarizer=0 enable_analyzer=2
# sample_height=0.001
# DESTi=$DEST/ana2_10x1_10
# if [ -e "$DESTi" ]; then
# rm -r "$DESTi"
# fi
#
# mpirun -np $use_cores Estia_baseline_ana2.out \
# --dir="$DESTi" --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 enable_polarizer=0 enable_analyzer=2
###################### Reference and Ni-layer measurement 1x1mm² sample ####################
-46
View File
@@ -1,46 +0,0 @@
#!/usr/bin/env python
#-*- coding: utf8 -*-
import sys, os
import numpy as np
from subprocess import call
FOLDER='../results2/'
PREFIX='selene_geo_'
SEED=3798
ITEMS=1000
CALL='mpirun -np 6 Selene_geometry.out --dir=%s --ncount=4e8 enable_gravity=0 sample_length=0.003 '
CALL+='tx_1=%f tz_1=%f ry_1=%f rz_1=%f tx_2=%f tz_2=%f ry_2=%f rz_2=%f '
TX=[-0.001, 0.001]
TZ=[-0.005, 0.005]
RY=[-0.001, 0.001]
RZ=[-2.5, 2.5]
if __name__=='__main__':
call('mcstas -t -o Selene_geometry.c Selene_geometry.instr'.split())
call('mpicc -O2 -o Selene_geometry.out Selene_geometry.c -lm -DUSE_MPI'.split())
np.random.seed(SEED)
fh=open(os.path.join(FOLDER, PREFIX+'sims.dat'), 'w')
fh.write('# index tx_1 tz_1 ry_1 rz_1 tx_2 tz_2 ry_2 rz_2\n')
fh.write('# seed = %i\n'%SEED)
for i in range(ITEMS):
tx_1=np.random.random()*(TX[1]-TX[0])+TX[0]
tx_2=np.random.random()*(TX[1]-TX[0])+TX[0]
tz_1=np.random.random()*(TZ[1]-TZ[0])+TZ[0]
tz_2=np.random.random()*(TZ[1]-TZ[0])+TZ[0]
ry_1=np.random.random()*(RY[1]-RY[0])+RY[0]
ry_2=np.random.random()*(RY[1]-RY[0])+RY[0]
rz_1=np.random.random()*(RZ[1]-RZ[0])+RZ[0]
rz_2=np.random.random()*(RZ[1]-RZ[0])+RZ[0]
ln=' '.join(['%f'%val for val in [tx_1, tz_1, ry_1, rz_1, tx_2, tz_2, ry_2, rz_2]])
fh.write(ln+'\n')
print i, ':', ln
call((CALL%(os.path.join(FOLDER, PREFIX+'%05i/'%i), tx_1, tz_1, ry_1, rz_1, tx_2, tz_2, ry_2, rz_2)).split())
fh.close()
+99 -103
View File
@@ -1,121 +1,117 @@
#!/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
ncount=4e9
use_cores=${SLURM_NPROCS:-6}
sample_length=0.05
sample_height=0.01
lambda_start=3.25
lambda_end=12.75
sample=1
lambda_end=25.5
omega=1.0
DESTi=$DEST/reference_10x10_10
bash compile_if_needed.sh
echo "Running with $use_cores threads"
# ###################### Reference and sample measurement pulse skipping ####################
#
# Reference in pulse skipping mode
omega=1.5
DESTi=$DEST/mooc_reference_ps
echo "Reference, pulse skipping"
echo "Results saved to $DESTi"
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
--dir="$DESTi" --ncount=$ncount --gravitation --format=NeXus \
omegaa=$omega operationmode=0 theta_resolution=0.04 over_illumination=0.0002 \
sample=1 sample_length=$sample_length sample_height=$sample_height \
lambda_start=$lambda_start lambda_end=$lambda_end enable_gravity=1 enable_chopper=3
#
# Sample models in pulse skipping mode
for MODEL in 0 1 2 3 4 5
do
omega=1.5
DESTi="$DEST/mooc_model_ps_$MODEL"
echo "Model $MODEL, pulse skipping"
echo "Results saved to $DESTi"
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
mpirun -np $use_cores Estia_baseline.out \
--dir="$DESTi" --ncount=$ncount --gravitation --format=NeXus \
omegaa=$omega operationmode=0 theta_resolution=0.04 over_illumination=0.0002 \
sample=2 sample_length=$sample_length sample_height=$sample_height \
lambda_start=$lambda_start lambda_end=$lambda_end enable_gravity=1 enable_chopper=3 \
sample_file="alessandra_model_2_nores_00$MODEL.dat"
ncount=2e9
omega=3.0
DESTi=$DEST/nickle_10x10_30
if [ -e "$DESTi" ]; then
rm -r "$DESTi"
fi
done
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
#
# Sample models in pulse skipping mode, larger angle
for MODEL in 0 1 2 3 4 5
do
omega=4.0
DESTi="$DEST/mooc_model_ps2_$MODEL"
echo "Model $MODEL, pulse skipping"
echo "Results saved to $DESTi"
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
mpirun -np $use_cores Estia_baseline.out \
--dir="$DESTi" --ncount=$ncount --gravitation --format=NeXus \
omegaa=$omega operationmode=0 theta_resolution=0.04 over_illumination=0.0002 \
sample=2 sample_length=$sample_length sample_height=$sample_height \
lambda_start=$lambda_start lambda_end=$lambda_end enable_gravity=1 enable_chopper=3 \
sample_file="alessandra_model_2_nores_00$MODEL.dat"
# ###################### Reference and Ni-layer measurement 1x1mm² sample ####################
done
# ###################### Reference and samples in conventional mode ####################
#
#
#
# Reference in conventional mode
ncount=4e9
lambda_end=13.5
theta_resolution=0.1
omega=1.5
DESTi=$DEST/mooc_reference_tof
echo "Reference, omega=$omega, Delta omega=$theta_resolution"
echo "Results saved to $DESTi"
if [ -e "$DESTi" ]; then
rm -r "$DESTi"
fi
mpirun -np $use_cores Estia_baseline.out \
--dir="$DESTi" --ncount=$ncount --gravitation --format=NeXus \
omegaa=$omega operationmode=1 theta_resolution=$theta_resolution over_illumination=0.0002 \
sample=1 sample_length=$sample_length sample_height=$sample_height \
lambda_start=$lambda_start lambda_end=$lambda_end enable_gravity=1 enable_chopper=1
#
# Sample models in pulse skipping mode
for MODEL in 0 1 2 3 4 5
do
for omega in 0.3 0.75 1.875 4.6875 11.71875
do
ncount=$(bc <<< "5000000000/$omega/$omega")
theta_resolution=$(bc <<< "scale=10;0.05*$omega")
DESTi="$DEST/mooc_model_tof_$MODEL-$omega"
echo "Model $MODEL, omega=$omega, Delta omega=$theta_resolution, n=$ncount"
echo "Results saved to $DESTi"
if [ -e "$DESTi" ]; then
rm -r "$DESTi"
fi
mpirun -np $use_cores Estia_baseline.out \
--dir="$DESTi" --ncount=$ncount --gravitation --format=NeXus \
omegaa=$omega operationmode=1 theta_resolution=$theta_resolution over_illumination=0.0002 \
sample=2 sample_length=$sample_length sample_height=$sample_height \
lambda_start=$lambda_start lambda_end=$lambda_end enable_gravity=1 enable_chopper=1 \
sample_file="alessandra_model_2_nores_00$MODEL.dat"
done
done
+23
View File
@@ -0,0 +1,23 @@
#!/bin/tcsh
#SBATCH -J mooc_McEstia
#SBATCH -N 2
#SBATCH --ntasks-per-node=24
#SBATCH --time=1-00:00:00
#SBATCH --mail-type=fail
#SBATCH --mail-user=artur.glavic@psi.ch
#SBATCH -o stdout.log
#SBATCH -e stderr.log
#SBATCH --partition=ll_long
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 run_simu.sh
-86
View File
@@ -1,86 +0,0 @@
#!/bin/bash
DEST=../results
use_cores=6
###################### Compile model if necessary ####################
bash compile_if_neede.sh
######## Reference and Ni-layer conventional measurement 10x10mm² sample #############
ncount=1e10
sample_length=0.01
sample_height=0.01
lambda_start=3.25
lambda_min=3.75
lambda_end=12.75
sample=1
omega=1.0
DESTi=$DEST/tof_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=1 theta_resolution=0.01 over_illumination=0.0001 \
sample=$sample sample_length=$sample_length sample_height=$sample_height \
lambda_start=$lambda_start lambda_min=$lambda_min lambda_end=$lambda_end enable_gravity=1 enable_chopper=1
# Ni Sample
ncount=2e10
sample=2
omega=0.5
DESTi=$DEST/tof_nickle_10x10_05
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=1 theta_resolution=0.03 over_illumination=0.0001 \
sample=$sample sample_length=$sample_length sample_height=$sample_height \
lambda_start=$lambda_start lambda_min=$lambda_min lambda_end=$lambda_end enable_gravity=1 enable_chopper=1
ncount=1e10
omega=1.2
DESTi=$DEST/tof_nickle_10x10_12
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=1 theta_resolution=0.03 over_illumination=0.0001 \
sample=$sample sample_length=$sample_length sample_height=$sample_height \
lambda_start=$lambda_start lambda_min=$lambda_min lambda_end=$lambda_end enable_gravity=1 enable_chopper=1
ncount=5e9
omega=3.0
DESTi=$DEST/tof_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=1 theta_resolution=0.03 over_illumination=0.0001 \
sample=$sample sample_length=$sample_length sample_height=$sample_height \
lambda_start=$lambda_start lambda_min=$lambda_min lambda_end=$lambda_end enable_gravity=1 enable_chopper=1
ncount=2e9
omega=7.5
DESTi=$DEST/tof_nickle_10x10_75
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=1 theta_resolution=0.03 over_illumination=0.0001 \
sample=$sample sample_length=$sample_length sample_height=$sample_height \
lambda_start=$lambda_start lambda_min=$lambda_min lambda_end=$lambda_end enable_gravity=1 enable_chopper=1
###################### Reference and Ni-layer measurement 1x1mm² sample ####################
-46
View File
@@ -1,46 +0,0 @@
#!/bin/bash
DEST=../results
ncount=1e9
use_cores=6
sample=4
omega=0.8
sample_length=0.01
sample_height=0.01
lambda_start=3.0
lambda_end=32.0
bash compile_if_neede.sh
################# Reference and Ni-layer measurement 2 pulse skipping ####################
ncount=4e9
sample_length=0.01
sample_height=0.01
lambda_start=3.9
lambda_end=24.0
sample=1
omega=2.0
DESTi=$DEST/single_skip_reference
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.0002 \
sample=$sample sample_length=$sample_length sample_height=$sample_height \
lambda_start=$lambda_start lambda_end=$lambda_end enable_gravity=1 enable_chopper=3
sample=2
DESTi=$DEST/single_skip_nickle
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.0002 \
sample=$sample sample_length=$sample_length sample_height=$sample_height \
lambda_start=$lambda_start lambda_end=$lambda_end enable_gravity=1 enable_chopper=3
-119
View File
@@ -1,119 +0,0 @@
#!/bin/bash
DEST=../results
ncount=1e9
use_cores=6
sample=1
omega=15.0
sample_length=0.02
sample_height=0.01
lambda_start=3.5
lambda_min=5.0
lambda_end=15.5
frame_usage=0.92
###################### Brilliance Transfer 10x10mm² and 1x1mm² VS ####################
bash compile_if_neede.sh
###################### Reference and Ni-layer measurement 10x10mm² sample ####################
frame_usage=0.92
DESTi=$DEST/chopper_f1_092
if [ -e "$DESTi" ]; then
rm -r "$DESTi"
fi
mpirun -np $use_cores Estia_baseline.out \
--dir="$DESTi" --format=NeXuS --ncount=$ncount \
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=0 enable_chopper=1 \
frame_usage=$frame_usage lambda_min=$lambda_min
frame_usage=0.94
DESTi=$DEST/chopper_f1_094
if [ -e "$DESTi" ]; then
rm -r "$DESTi"
fi
mpirun -np $use_cores Estia_baseline.out \
--dir="$DESTi" --format=NeXuS --ncount=$ncount \
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=0 enable_chopper=1 \
frame_usage=$frame_usage lambda_min=$lambda_min
frame_usage=0.96
DESTi=$DEST/chopper_f1_096
if [ -e "$DESTi" ]; then
rm -r "$DESTi"
fi
mpirun -np $use_cores Estia_baseline.out \
--dir="$DESTi" --format=NeXuS --ncount=$ncount \
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=0 enable_chopper=1 \
frame_usage=$frame_usage lambda_min=$lambda_min
frame_usage=0.974
DESTi=$DEST/chopper_f1_097s
if [ -e "$DESTi" ]; then
rm -r "$DESTi"
fi
mpirun -np $use_cores Estia_baseline.out \
--dir="$DESTi" --format=NeXuS --ncount=$ncount \
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=0 enable_chopper=1 \
frame_usage=$frame_usage lambda_min=$lambda_min
frame_usage=0.98
DESTi=$DEST/chopper_f1_098
if [ -e "$DESTi" ]; then
rm -r "$DESTi"
fi
mpirun -np $use_cores Estia_baseline.out \
--dir="$DESTi" --format=NeXuS --ncount=$ncount \
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=0 enable_chopper=1 \
frame_usage=$frame_usage lambda_min=$lambda_min
frame_usage=0.99
DESTi=$DEST/chopper_f1_099
if [ -e "$DESTi" ]; then
rm -r "$DESTi"
fi
mpirun -np $use_cores Estia_baseline.out \
--dir="$DESTi" --format=NeXuS --ncount=$ncount \
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=0 enable_chopper=1 \
frame_usage=$frame_usage lambda_min=$lambda_min
frame_usage=0.98
lambda_start=2.75
lambda_min=3.75
lambda_end=12.75
DESTi=$DEST/chopper_f1_375A
if [ -e "$DESTi" ]; then
rm -r "$DESTi"
fi
mpirun -np $use_cores Estia_baseline.out \
--dir="$DESTi" --format=NeXuS --ncount=$ncount \
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=0 enable_chopper=1 \
frame_usage=$frame_usage lambda_min=$lambda_min
###################### Reference and Ni-layer measurement 1x1mm² sample ####################
-32
View File
@@ -1,32 +0,0 @@
#!/bin/bash
DEST=../results
ncount=1e8
use_cores=6
sample=1
omega=0.8
sample_length=0.01
sample_height=0.015
if [ Estia_vs.instr -nt Estia_vs.out ]; then
rm Estia_vs.c Estia_vs.out
mcstas -t -o Estia_vs.c Estia_vs.instr
mpicc -O3 -o Estia_vs.out Estia_vs.c -lm -DUSE_MPI -DUSE_NEXUS -lNeXus
fi
omega=2.0
DESTi=$DEST/vs_data
if [ -e "$DESTi" ]; then
rm -r "$DESTi"
fi
mpirun -np $use_cores Estia_vs.out \
--dir="$DESTi" --format=NeXuS --ncount=$ncount --gravitation \
omegaa=$omega operationmode=0 theta_resolution=0.04 over_illumination=0.0025 \
sample=$sample sample_length=$sample_length sample_height=$sample_height \
enable_gravity=1 enable_chopper=0 source_power=5
###################### Reference and Ni-layer measurement 1x1mm² sample ####################