diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5f2af2ba76..144526eeb2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.7)
+cmake_minimum_required(VERSION 3.7.2)
set(Horace_ROOT ${CMAKE_CURRENT_LIST_DIR})
file(READ "${Horace_ROOT}/VERSION" _version)
@@ -28,9 +28,6 @@ set(Horace_DLL_DIRECTORY "${Horace_ROOT}/horace_core/DLL")
# This is the directory that contains horace_init.m (used in admin/CMakeLists.txt)
set(Horace_CORE "${CMAKE_CURRENT_LIST_DIR}/horace_core")
-# Set our options
-option(BUILD_TESTS "Build the C++ tests" ON)
-
# Look for packages early so we can exit if they're not found
find_package(Herbert REQUIRED)
find_package(OpenMP)
@@ -38,14 +35,21 @@ include(PACE_AddMex)
include(PACE_FindMatlab)
include(horace_FindHDF5)
include(PACE_Version)
-if(${BUILD_TESTS})
- include(CTest)
+
+# Make analysis ignore Herbert in case of nesting
+# Needs to have found herbert for Herbert_ROOT
+set(PACE_MLINT_IGNORE ${PACE_MLINT_IGNORE} "${Herbert_ROOT}/**/*.m")
+
+include(PACE_CodeAnalysis)
+include(CTest)
+if(BUILD_TESTING)
include(PACE_FindGTest)
enable_testing()
endif()
+include(PACE_Docs)
add_subdirectory("_LowLevelCode")
-if(${BUILD_TESTS})
+if(BUILD_TESTING)
add_subdirectory("_test")
endif()
add_subdirectory("admin")
@@ -54,7 +58,6 @@ add_subdirectory("admin")
# Install commands
# =============================================================================
include(PACE_CPackConfig)
-
if(WIN32)
# Don't package external Linux libraries on Windows
set(EXTERNAL_IGNORE_PATTERN "*/external/glnxa64")
@@ -72,7 +75,7 @@ install(
DESTINATION "."
)
install(
- DIRECTORY "${Herbert_ROOT}/"
+ DIRECTORY "${Herbert_CORE}/"
DESTINATION "Herbert"
USE_SOURCE_PERMISSIONS
PATTERN "*.m~" EXCLUDE
diff --git a/_LowLevelCode/cpp/CMakeLists.txt b/_LowLevelCode/cpp/CMakeLists.txt
index d9e91f60de..bd7d393728 100644
--- a/_LowLevelCode/cpp/CMakeLists.txt
+++ b/_LowLevelCode/cpp/CMakeLists.txt
@@ -17,6 +17,6 @@ foreach(_mex_func ${MEX_FUNCTIONS})
add_subdirectory("${_mex_func}")
endforeach(_mex_func)
-if(${BUILD_TESTS})
+if(BUILD_TESTING)
add_subdirectory(test)
endif()
diff --git a/_LowLevelCode/cpp/sort_pixels_by_bins/CMakeLists.txt b/_LowLevelCode/cpp/sort_pixels_by_bins/CMakeLists.txt
index e986ff92c8..1a99b2e3a9 100644
--- a/_LowLevelCode/cpp/sort_pixels_by_bins/CMakeLists.txt
+++ b/_LowLevelCode/cpp/sort_pixels_by_bins/CMakeLists.txt
@@ -14,6 +14,7 @@ pace_add_mex(
NAME "${MEX_NAME}"
SRC "${SRC_FILES}" "${HDR_FILES}"
)
+# openmp is currently disabled here but it may be used in a future
#if(${OPENMP_FOUND})
# target_compile_options("${MEX_NAME}" PRIVATE ${OpenMP_CXX_FLAGS})
# target_link_options("${MEX_NAME}" PRIVATE ${OpenMP_EXE_LINKER_FLAGS})
diff --git a/_test/performance_test/.gitignore b/_test/performance_test/.gitignore
index b6162a2191..f9f1dde9ea 100755
--- a/_test/performance_test/.gitignore
+++ b/_test/performance_test/.gitignore
@@ -1,4 +1,5 @@
*.nxspe
*.csv
+*.tmp
diff --git a/_test/performance_test/IDaaaSvsISISCOMPUTE_gen_sqw_performance.odp b/_test/performance_test/IDaaaSvsISISCOMPUTE_gen_sqw_performance.odp
index 862c3a4095..b7230eb705 100644
Binary files a/_test/performance_test/IDaaaSvsISISCOMPUTE_gen_sqw_performance.odp and b/_test/performance_test/IDaaaSvsISISCOMPUTE_gen_sqw_performance.odp differ
diff --git a/_test/performance_test/perf_imgs/Profiling_mpiexec_2021-07-26_12-14-54.png b/_test/performance_test/perf_imgs/Profiling_mpiexec_2021-07-26_12-14-54.png
new file mode 100644
index 0000000000..245e6e36f8
Binary files /dev/null and b/_test/performance_test/perf_imgs/Profiling_mpiexec_2021-07-26_12-14-54.png differ
diff --git a/_test/performance_test/perf_imgs/Profiling_slurm_slow_io1_2021-07-26_12-14-54.png b/_test/performance_test/perf_imgs/Profiling_slurm_slow_io1_2021-07-26_12-14-54.png
new file mode 100644
index 0000000000..3e19624280
Binary files /dev/null and b/_test/performance_test/perf_imgs/Profiling_slurm_slow_io1_2021-07-26_12-14-54.png differ
diff --git a/_test/performance_test/perf_imgs/Profiling_slurm_slow_io2_2021-07-26_12-14-54.png b/_test/performance_test/perf_imgs/Profiling_slurm_slow_io2_2021-07-26_12-14-54.png
new file mode 100644
index 0000000000..e89c85eeab
Binary files /dev/null and b/_test/performance_test/perf_imgs/Profiling_slurm_slow_io2_2021-07-26_12-14-54.png differ
diff --git a/_test/performance_test/profile_machine.m b/_test/performance_test/profile_machine.m
index a9a6fe3103..b0d998e7ad 100644
--- a/_test/performance_test/profile_machine.m
+++ b/_test/performance_test/profile_machine.m
@@ -10,7 +10,11 @@
force_perf = false;
end
-hor_tes = test_SQW_GENCUT_perf();
+%hor_tes = test_SQW_GENCUT_perf(); % build new performance results per
+% session
+hor_tes = test_SQW_GENCUT_perf(... % Load previous performance result, do not recalculate
+ fullfile(fileparts(mfilename('fullpath')),'test_SQW_GENCUT_perf_PerfRez.xml'));
+%
hpcc = hpc_config;
conf_2store = hpcc.get_data_to_store;
clob = onCleanup(@()set(hpcc,conf_2store));
@@ -22,20 +26,20 @@
hrc.delete_tmp = false;
clob1 = onCleanup(@()set(hrc,'delete_tmp',true));
-% get the method used to combine partial sqw files together. Used in
-% calculating test performance name
-comb_method = hor_tes.combine_method();
-
-hor_tes.n_files_to_use=50;
-n_workers = [0,1,2,4,6,8,10,12,14,16];
-perf_graph = zeros(numel(n_workers),2);
+hor_tes.n_files_to_use=250;
+%n_workers = [0,1,2,4,6,8,10,12,14,16,20,32];
+n_workers = [0,1,2,4,8,12,14,16]; % local machine
+perf_graph = zeros(numel(n_workers),3);
for i=1:numel(n_workers)
nwk = num2str(n_workers(i));
- test_name = sprintf('gen_sqw_nwk%s_comb_%s',nwk,comb_method);
- per = hor_tes.knownPerformance(test_name);
- if isempty(per) || force_perf
+ hor_tes.build_default_test_names(nwk);
+ test_names_map = hor_tes.default_test_names;
+ tn = test_names_map('gen_sqw');
+ per1 = hor_tes.known_performance(tn{1});
+ per2 = hor_tes.known_performance(tn{2});
+ if isempty(per1) || isempty(per2) || force_perf
try
perf_rez = hor_tes.test_gensqw_performance(n_workers(i),'gen_sqw');
catch ME
@@ -44,15 +48,40 @@
getReport(ME)
rethrow(ME);
end
- per = perf_rez.(test_name);
+ per1 = perf_rez.(tn{1});
+ per2 = perf_rez.(tn{2});
end
perf_graph(i,1) = n_workers(i);
- perf_graph(i,2) = per.time_sec;
+ perf_graph(i,2) = per1.time_sec/hor_tes.data_size;
+ perf_graph(i,3) = per2.time_sec/hor_tes.data_size;
end
+% Process some averages to display
+min_gen_time = min(perf_graph(:,2));
+max_gen_time = max(perf_graph(:,2));
+min_comb_time = min(perf_graph(:,3));
+max_comb_time = max(perf_graph(:,3));
+
+min_prod_time = round((min_gen_time+min_comb_time)*hor_tes.data_size/60,1); % in minutes
+max_prod_time = round((max_gen_time+max_comb_time)*hor_tes.data_size/60,1); % in minutes
+tc1 = strrep(tn{1},'_','\_');
+tc2 = strrep(tn{2},'_','\_');
+title_string = sprintf(['Dataset silze~ %dGb, %d input files;\n',...
+ ' Final DB test codes:\n %s; %s\n',...
+ 'Production time: min=%.1f(min); max=%.1f(min)'],...
+ round(hor_tes.data_size),hor_tes.n_files_to_use,...
+ tc1,tc2,min_prod_time,max_prod_time );
+
+%plot results
figure;
plot(perf_graph(:,1),perf_graph(:,2),'o-');
+ylabel('Processing Time (sec/Gb)')
+xlabel('n-workers');
+title(title_string)
+hold on
+plot(perf_graph(:,1),perf_graph(:,3),'*-');
+legend('gen\_tmp perf','combine perf')
buf_val = [-1,0,1024,2048,4*1024,8*1024,16*1024,32*1024,64*1024];
comb_perf = zeros(numel(buf_val),2);
@@ -95,7 +124,7 @@
end
comb_perf(i,1) = buf;
comb_perf(i,2) = per.time_sec;
-
+
end
figure
plot(comb_perf(:,1),comb_perf(:,2),'o-');
diff --git a/_test/performance_test/test_SQW_GENCUT_perf.m b/_test/performance_test/test_SQW_GENCUT_perf.m
index 3b667347e2..16eaf188ad 100644
--- a/_test/performance_test/test_SQW_GENCUT_perf.m
+++ b/_test/performance_test/test_SQW_GENCUT_perf.m
@@ -5,10 +5,12 @@
% The performance results (in second) are stored in a Matlab binary file
% combining results for all hosts where the tests were run
% The format of the file is as follows:
- % -host_name1->test_name1(nworkers)->test_time(sec)
+ % -host_name1_testClassName...
+ % ->test_name1(nworkers)->test_time(sec)
% |->test_name2(nworkers)->test_time(sec)
% |->test_name3(nworkers)->test_time(sec)
- % -host_name2->test_name1(nworkers)->test_time(sec)
+ % -host_name2_testClassName...
+ % ->test_name1(nworkers)->test_time(sec)
% |->test_name2(nworkers)->test_time(sec)
% |->test_name3(nworkers)->test_time(sec)
%
@@ -31,6 +33,14 @@
% Number of input files to use. Depending on this number the test
% would verify small, large or huge datasets
n_files_to_use% = 10;
+ % the byte-size of the sample file, used to estimate the
+ % performance in Gb/sec
+ sample_data_size
+ % The size of generated data (in Gb)
+ data_size
+ % The names of the tests, used as the fields of the database
+ % (test_nameN(nWorkergs) above)
+ default_test_names
end
properties
@@ -42,8 +52,6 @@
% target file for gen_sqw command and source file for cut commands
sqw_file = 'GenSQW_perfTest.sqw'
%
- tests_availible = {'gen_sqw','small_cut',...
- 'big_cut_nopix','big_cut_filebased'}
end
properties(Access=private)
@@ -52,14 +60,22 @@
%
% Number of input files to use. Depending on this number the test
% would verify small, large or huge datasets
- n_files_to_use_ = 10;
+ n_files_to_use_ = 5;
% Template file name: the name of the file used as a template for
% others. HACK. Nice version would generate test source files from
% some scattering and instrument models.
template_file_ = 'MER19566_22.0meV_one2one125.nxspe';
% parameter file
par_file = 'one2one_125.par'
-
+ % the byte-size of the sample file, used to estimate the
+ % performance in MB/sec = n_detectors*nEnerty_transfer_Bins.
+ % The value is defined by the size of the reference template file
+ % template_file_
+ sample_data_size_ = 20262912;
+ % Total size of generated data (in mb)
+ data_size_
+ %
+ default_test_names_ = containers.Map();
end
methods
%------------------------------------------------------------------
@@ -83,6 +99,10 @@
end
obj = obj@TestPerformance(argi{:});
%
+ % define the list of the tests available to run
+ obj.tests_available_ = {'gen_sqw','small_cut',...
+ 'big_cut_nopix','big_cut_filebased'};
+ %
obj.source_data_dir = pwd();
% locate the test data folder
stat = mkdir('test_SQWGEN_performance_rw_test');
@@ -102,6 +122,7 @@
end
%-------------------------------------------------------------
+
function set.n_files_to_use(obj,val)
% change number of files to use and modify all related
% internal properties which depends on this number
@@ -128,8 +149,12 @@
obj.test_source_files_list_ = filelist;
fb = 'GenSQW_perfTest';
obj.sqw_file = sprintf('%s_%dFiles.sqw',fb,obj.n_files_to_use_);
+
+ obj.data_size_ = obj.n_files_to_use_*obj.sample_data_size_*(4*9)/ ... %numWords*word_size = bytes
+ (1024*1024*1024); %Convert to Gb
end
- function method = combine_method(obj,add_info)
+ %
+ function method = combine_method(~,add_info)
% method returns name and parameters of a combine method used
% during sqw file generation.
hpc = hpc_config;
@@ -146,15 +171,20 @@
if exist('add_info','var')
method = [method,add_info];
end
-
end
%--------------------------------------------------------------------------
function perf_val=combine_performance_test(obj,varargin)
- % this method tests tmp file combine operations only. It can be
+ % Test the speed of tmp file combine operations only.
+ %
+ % tmp files should to be available so the method can be
% deployed after test_gensqw_performance method has been run
% with hor_config class delete_tmp option set to false. In this
% case tmp files created by gen_sqw method are kept and this
- % method may test combine operations only.
+ % method will test combine operations only.
+ %
+ % if tmp files are not available, the method generates them,
+ % which may take significant time (not included in the combine
+ % performance evaluations)
%
% Usage:
% tob.combine_performance_test([n_workers],[addinfo],['-keep_tmp'])
@@ -189,7 +219,7 @@
[~,fn] = fileparts(fn);
fn = fullfile(fp,[fn,'.tmp']);
end
-
+
wk_dir = obj.working_dir;
spe_files = obj.test_source_files_list_;
tmp_files = cellfun(@(fn)(replace_fext(wk_dir,fn)),spe_files,'UniformOutput',false);
@@ -221,12 +251,12 @@
combine_method = obj.combine_method(addinfo);
obj.add_to_files_cleanList(obj.sqw_file)
- test_name = ['combine_tmp_using_',combine_method];
+ test_name = ['combine_tmp_using_',combine_method];
ts = tic();
write_nsqw_to_sqw(tmp_files,obj.sqw_file);
%
-
+
perf_val=obj.assertPerformance(ts,...
test_name,...
'performance of the tmp-files combine procedure');
@@ -240,6 +270,19 @@
end
end
+ function delete_tmp_files(obj)
+ function tmp_name = gen_tmp_name(fname)
+ [fp,fn] = fileparts(fname);
+ tmp_name = fullfile(fp,[fn,'.tmp']);
+ end
+ tmp_files = cellfun(@gen_tmp_name,obj.test_source_files_list_,...
+ 'UniformOutput',false);
+ for i=1:numel(tmp_files)
+ if is_file(tmp_files{i})
+ delete(tmp_files{i});
+ end
+ end
+ end
%------------------------------------------------------------------
function perf_res= test_gensqw_performance(obj,varargin)
% test performance (time spent on processing) class-defined
@@ -264,12 +307,22 @@
n_workers = varargin{1};
end
[clob_wk,~,nwk] = check_and_set_workers_(obj,n_workers);
- if nargin == 3 && ~isempty(varargin{2})
+ if nargin >= 3 && ~isempty(varargin{2})
test_names_to_run = varargin{2};
- tests_to_run = ismember(obj.tests_availible,test_names_to_run);
+ tests_to_run = ismember(obj.tests_available,test_names_to_run);
else
tests_to_run = true(1,numel(obj.tests_availible));
end
+ if nargin>3
+ field_names_map = varargin{3};
+ if numel(test_field_names) ~= sum(tests_to_run)
+ error('HORACE:performance_tests:invalid_argument',...
+ 'number of test field names differs from the numner of tests to run')
+ end
+ else
+ obj.build_default_test_names(nwk);
+ field_names_map = obj.default_test_names;
+ end
efix= 22.8;%incident energy in meV
@@ -286,7 +339,7 @@
nfiles=numel(obj.test_source_files_list_);
psi= 0.5*(1:nfiles);
%psi=round(psi);
- comb_metnod = obj.combine_method();
+
% define location of the sqw file to be the same as working
% directory
fp = fileparts(obj.sqw_file);
@@ -296,66 +349,85 @@
end
obj.add_to_files_cleanList(obj.sqw_file)
- if tests_to_run(1)
- ts = tic();
- gen_sqw (obj.test_source_files_list_,'',obj.sqw_file, efix, emode, alatt, angdeg,u, v, psi, omega, dpsi, gl, gs,'replicate');
+ if tests_to_run(1)
+ test_fld_names = field_names_map('gen_sqw');
+ % delete exisiting tmp files as gen_sqw keeps existing in
+ % 'tmp_only' mode
+ obj.delete_tmp_files();
- perf_res=obj.assertPerformance(ts,sprintf('gen_sqw_nwk%s_comb_%s',nwk,comb_metnod),...
+ %profile on
+ % generate
+ ts = tic();
+ [tmp_files,~,~,jd]=gen_sqw (obj.test_source_files_list_,'',...
+ obj.sqw_file, efix, ...
+ emode, alatt, angdeg,u, v, psi, omega, dpsi, gl, gs,...
+ 'replicate','tmp_only');
+ perf_res=obj.assertPerformance(ts,test_fld_names{1},...
'whole sqw file generation');
+ % combine
+ ts = tic();
+ write_nsqw_to_sqw (tmp_files, obj.sqw_file,'allow_equal_headers',jd);
+ perf_res=obj.assertPerformance(ts,test_fld_names{2},...
+ 'calc headers and combine all tmp files');
+ %profile off
+ %profile viewer
end
if tests_to_run(2)
+ test_fld_names = field_names_map('small_cut');
% test small 1 dimensional cuts, non-axis aligned
ts = tic();
proj1 = struct('u',[1,0,0],'v',[0,1,1]);
sqw1 = cut_sqw(obj.sqw_file,proj1,0.01,[-0.1,0.1],[-0.1,0.1],[-5,5]);
- obj.assertPerformance(ts,['cutH1D_Small_nwk',nwk,'_comb_',comb_metnod],...
+ obj.assertPerformance(ts,test_fld_names{1},...
'small memory based 1D cut in non-axis aligned direction 1');
ts = tic();
sqw1 = cut_sqw(obj.sqw_file,proj1,[-0.1,0.1],0.01,[-0.1,0.1],[-5,5]);
- obj.assertPerformance(ts,['cutK1D_Small_nwk',nwk,'_comb_',comb_metnod],...
+ obj.assertPerformance(ts,test_fld_names{2},...
'small memory based 1D cut in non-axis aligned direction 2');
ts = tic();
sqw1 = cut_sqw(obj.sqw_file,proj1,[-0.1,0.1],[-0.1,0.1],0.01,[-5,5]);
- obj.assertPerformance(ts,['cutL1D_Small_nwk',nwk,'_comb_',comb_metnod],...
+ obj.assertPerformance(ts,test_fld_names{3},...
'small memory based 1D cut in non-axis aligned direction 3');
ts = tic();
sqw1 = cut_sqw(obj.sqw_file,proj1,[-0.1,0.1],[-0.1,0.1],[-0.1,0.1],0.2);
- perf_res=obj.assertPerformance(ts,['cutE_Small_nwk',nwk,'_comb_',comb_metnod],...
+ perf_res=obj.assertPerformance(ts,test_fld_names{4},...
'small memory based 1D cut along energy direction (q are not axis aligned)');
end
% check nopix performance -- read and integrate the whole file from the HDD
hs = head_sqw(obj.sqw_file);
urng = hs.urange';
if tests_to_run(3)
+ test_fld_names = field_names_map('big_cut_nopix');
ts = tic();
proj1 = struct('u',[1,0,0],'v',[0,1,1]);
sqw1=cut_sqw(obj.sqw_file,proj1,0.01,urng(2,:),urng(3,:),urng(4,:),'-nopix');
- obj.assertPerformance(ts,['cutH1D_AllInt_nopix_nwk',nwk],...
+ obj.assertPerformance(ts,test_fld_names{1},...
'large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode');
ts = tic();
sqw1=cut_sqw(obj.sqw_file,proj1,urng(1,:),0.01,urng(3,:),urng(4,:),'-nopix');
- obj.assertPerformance(ts,['cutK1D_AllInt_nopix_nwk',nwk],...
+ obj.assertPerformance(ts,test_fld_names{2},...
'large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode');
ts = tic();
sqw1=cut_sqw(obj.sqw_file,proj1,urng(1,:),urng(2,:),0.01,urng(4,:),'-nopix');
- obj.assertPerformance(ts,['cutL1D_AllInt_nopix_nwk',nwk],...
+ obj.assertPerformance(ts, test_fld_names{3},...
'large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode');
ts = tic();
sqw1=cut_sqw(obj.sqw_file,proj1,urng(1,:),urng(2,:),urng(3,:),0.2,'-nopix');
- perf_res=obj.assertPerformance(ts,['cutE_AllInt_nopix_nwk',nwk],...
+ perf_res=obj.assertPerformance(ts, test_fld_names{4},...
'large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode');
end
if tests_to_run(4)
+ test_fld_names = field_names_map('big_cut_filebased');
% test large 1 dimensional cuts, non-axis aligned, with whole
% integration. for big input sqw files this should go to
% file-based cuts
@@ -366,22 +438,22 @@
ts = tic();
proj1 = struct('u',[1,0,0],'v',[0,1,1]);
cut_sqw(obj.sqw_file,proj1,0.01,urng(2,:),urng(3,:),urng(4,:),'cutH1D_AllInt.sqw');
- obj.assertPerformance(ts,['cutH1D_AllInt_filebased_nwk',nwk],...
+ obj.assertPerformance(ts,test_fld_names{1},...
'large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions');
ts = tic();
cut_sqw(obj.sqw_file,proj1,urng(1,:),0.01,urng(3,:),urng(4,:),'cutK1D_AllInt.sqw');
- obj.assertPerformance(ts,['cutK1D_AllInt_filebased_nwk',nwk],...
+ obj.assertPerformance(ts,test_fld_names{2},...
'large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions');
ts = tic();
cut_sqw(obj.sqw_file,proj1,urng(1,:),urng(2,:),0.01,urng(4,:),'cutL1D_AllInt.sqw');
- obj.assertPerformance(ts,['cutL1D_AllInt_filebased_nwk',nwk],...
+ obj.assertPerformance(ts,test_fld_names{3},...
'large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions');
ts = tic();
cut_sqw(obj.sqw_file,proj1,urng(1,:),urng(2,:),urng(3,:),0.2,'cutE_AllInt.sqw');
- perf_res=obj.assertPerformance(ts,['cutE_AllInt_filebased_nwk',nwk],...
+ perf_res=obj.assertPerformance(ts,test_fld_names{4},...
'large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions');
end
@@ -389,9 +461,54 @@
% before the end of the test
assertTrue(isa(clob_wk,'onCleanup'))
end
+ function build_default_test_names(obj,nwk)
+ if isnumeric(nwk)
+ nwk = num2str(nwk);
+ end
+ comb_method = obj.combine_method();
+ pc = parallel_config;
+ cluster = pc.parallel_cluster;
+ % 1
+ tf{1} = sprintf('gen_tmp_nwk_%s_%s',nwk,cluster);
+ % combine method name includes workers if they are used, but if
+ % they are not, we still need them to store appropriate
+ % dependence.
+ tf{2} = sprintf('comb_tmp_nwk_%s_%s',nwk,comb_method);
+
+ obj.default_test_names_('gen_sqw') = tf;
+ % 2
+ tf{1} = ['cutH1D_Small_nwk',nwk];
+ tf{2} = ['cutK1D_Small_nwk',nwk];
+ tf{3} = ['cutL1D_Small_nwk',nwk];
+ tf{4} = ['cutE_Small_nwk',nwk];
+ obj.default_test_names_('small_cut') = tf;
+ % 3
+ tf{1} = ['cutH1D_AllInt_nopix_nwk',nwk];
+ tf{2} = ['cutK1D_AllInt_nopix_nwk',nwk];
+ tf{3} = ['cutL1D_AllInt_nopix_nwk',nwk];
+ tf{4} = ['cutE_AllInt_nopix_nwk',nwk];
+ obj.default_test_names_('big_cut_nopix') = tf;
+ % 4
+ tf{1} =sprintf('cutH1D_AllInt_flBsd_nwk%s_comb_%s',nwk,comb_method);
+ tf{2} =sprintf('cutK1D_AllInt_flBsd_nwk%s_comb_%s',nwk,comb_method);
+ tf{3} =sprintf('cutL1D_AllInt_flBsd_nwk%s_comb_%s',nwk,comb_method);
+ tf{4} =sprintf('cutE_AllInt_flBsd_nwk%s_comb_%s',nwk,comb_method);
+ obj.default_test_names_('big_cut_filebased') = tf;
+ end
+ %------------------------------------------------------------------
+ function ds = get.data_size(obj)
+ ds = obj.data_size_;
+ end
+ %
+ function sds = get.sample_data_size(obj)
+ sds = obj.sample_data_size_;
+ end
+ function names_map = get.default_test_names(obj)
+ names_map = obj.default_test_names_;
+ end
end
methods(Access=private)
- function [clob,hc,nwkc] = check_and_set_workers_(obj,n_workers)
+ function [clob,hc,nwkc] = check_and_set_workers_(~,n_workers)
% function verifies and sets new number of MPI workers
%
% returns cleanup object which returns the number of temporary
@@ -400,9 +517,9 @@
% workers remains unchanged
%
hc = hpc_config;
- bsp = hc.build_sqw_in_parallel;
+ bsp = hc.build_sqw_in_parallel;
if n_workers == 0 % keep existing number of workers unchanged
- clob = onCleanup(@()(0));
+ clob = onCleanup(@()(0));
if bsp
nwkc = num2str(hc.parallel_workers_number);
else
@@ -412,7 +529,7 @@
else
nwkc = num2str(n_workers);
end
-
+
an = hc.parallel_workers_number;
if bsp && an > 1
clob = onCleanup(@()set(hc,'build_sqw_in_parallel',bsp,'parallel_workers_number',an));
@@ -423,7 +540,6 @@
hc.build_sqw_in_parallel = true;
hc.parallel_workers_number = n_workers;
end
-
- end
- end
+ end %function
+ end %Methods
end
diff --git a/_test/performance_test/test_SQW_GENCUT_perf_PerfRez.xml b/_test/performance_test/test_SQW_GENCUT_perf_PerfRez.xml
index e43d58e1fd..ea4b134a8b 100644
--- a/_test/performance_test/test_SQW_GENCUT_perf_PerfRez.xml
+++ b/_test/performance_test/test_SQW_GENCUT_perf_PerfRez.xml
@@ -1,3370 +1,871 @@
-
-
-
- 97.0657560425196
- whole sqw file generation
- [2018 6 15 16 40 14.759]
-
-
- 0.810486282035237
- small memory based 1D cut in non-axis aligned direction 1
- [2018 6 15 16 40 15.786]
-
-
- 0.785347771414268
- small memory based 1D cut in non-axis aligned direction 2
- [2018 6 15 16 40 16.77]
-
-
- 0.783746961440842
- small memory based 1D cut in non-axis aligned direction 3
- [2018 6 15 16 40 17.753]
-
-
- 0.67700819707411
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2018 6 15 16 40 18.644]
-
-
- 8.55921242135835
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 15 16 40 27.774]
-
-
- 8.2038590942892
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 15 16 40 35.979]
-
-
- 9.41925395302393
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 15 16 40 45.399]
-
-
- 7.57954188030113
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 15 16 40 52.979]
-
-
- 52.3608752109858
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 15 16 41 45.341]
-
-
- 54.0405830987576
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2018 6 15 16 42 39.607]
-
-
- 58.3227504398503
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 15 16 43 38.158]
-
-
- 44.6629634485585
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2018 6 15 16 44 23.045]
-
-
- 89.0166295517136
- whole sqw file generation
- [2018 6 16 22 30 27.425]
-
-
- 0.646961308406388
- small memory based 1D cut in non-axis aligned direction 1
- [2018 6 16 22 30 28.451]
-
-
- 0.710750026652576
- small memory based 1D cut in non-axis aligned direction 2
- [2018 6 16 22 30 29.541]
-
-
- 0.734722114618656
- small memory based 1D cut in non-axis aligned direction 3
- [2018 6 16 22 30 30.633]
-
-
- 0.646947733802684
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2018 6 16 22 30 31.652]
-
-
- 8.19573552169189
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 16 22 30 40.609]
-
-
- 8.75523201646434
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 16 22 30 49.783]
-
-
- 9.51111097867595
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 16 22 30 59.704]
-
-
- 7.77258731284429
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 16 22 31 7.851]
-
-
- 50.3433318566813
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 16 22 31 58.582]
-
-
- 52.709266752882
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2018 6 16 22 32 51.706]
-
-
- 61.1199918817248
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 16 22 33 53.238]
-
-
- 47.063928437338
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2018 6 16 22 34 40.763]
-
-
- 127.1933144
- whole sqw file generation
- [2021 6 9 17 46 23.608]
-
-
- 1.8220946
- small memory based 1D cut in non-axis aligned direction 1
- [2021 6 9 17 46 26.813]
-
-
- 0.7797652
- small memory based 1D cut in non-axis aligned direction 2
- [2021 6 9 17 46 28.727]
-
-
- 0.8233894
- small memory based 1D cut in non-axis aligned direction 3
- [2021 6 9 17 46 30.72]
-
-
- 0.6371014
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2021 6 9 17 46 32.438]
-
-
- 12.2528266
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2021 6 9 17 46 46.366]
-
-
- 13.1130188
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2021 6 9 17 47 0.535]
-
-
- 14.5441637
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2021 6 9 17 47 16.199]
-
-
- 11.6119857
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2021 6 9 17 47 28.902]
-
-
- 49.3741101
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2021 6 9 17 48 19.269]
-
-
- 50.7675323
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2021 6 9 17 49 11.105]
-
-
- 56.396151
- large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
- [2021 6 9 17 50 8.564]
-
-
- 46.1201896
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2021 6 9 17 50 55.741]
-
-
-
-
- 543.352669197503
- whole sqw file generation
- [2018 6 15 16 53 45.495]
-
-
- 4.19056492203211
- small memory based 1D cut in non-axis aligned direction 1
- [2018 6 15 16 53 50.306]
-
-
- 7.99662621434763
- small memory based 1D cut in non-axis aligned direction 2
- [2018 6 15 16 53 58.512]
-
-
- 5.2512453871179
- small memory based 1D cut in non-axis aligned direction 3
- [2018 6 15 16 54 3.974]
-
-
- 1.01142451891273
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2018 6 15 16 54 5.215]
-
-
- 99.9928634004184
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 15 16 55 45.92]
-
-
- 76.5263734684702
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 15 16 57 2.653]
-
-
- 63.4304851166058
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 15 16 58 6.278]
-
-
- 39.6669129960607
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 15 16 58 46.149]
-
-
- 332.675538828995
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 15 17 4 19.029]
-
-
- 337.705917136646
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2018 6 15 17 9 56.99]
-
-
- 319.958899410862
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 15 17 15 17.237]
-
-
- 265.150517192401
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2018 6 15 17 19 42.646]
-
-
- 151.154215113103
- performance of the tmp-files combine procedure
- [2018 6 16 23 16 46.342]
-
-
- 630.50756469623
- whole sqw file generation
- [2018 6 16 22 45 31.863]
-
-
- 1.43762966229697
- small memory based 1D cut in non-axis aligned direction 1
- [2018 6 16 22 45 33.759]
-
-
- 1.27461059097203
- small memory based 1D cut in non-axis aligned direction 2
- [2018 6 16 22 45 35.4]
-
-
- 1.0207515960092
- small memory based 1D cut in non-axis aligned direction 3
- [2018 6 16 22 45 36.792]
-
-
- 0.930726148593572
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2018 6 16 22 45 38.102]
-
-
- 51.9917211471798
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 16 22 46 30.977]
-
-
- 58.220826024568
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 16 22 47 29.615]
-
-
- 55.7735034330504
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 16 22 48 25.764]
-
-
- 39.6610742610284
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 16 22 49 5.819]
-
-
- 346.069898945353
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 16 22 54 52.276]
-
-
- 412.590868397197
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2018 6 16 23 1 45.35]
-
-
- 389.736502374231
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 16 23 8 15.613]
-
-
- 355.097812634711
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2018 6 16 23 14 11.194]
-
-
- 1241.9291665
- whole sqw file generation
- [2021 6 9 18 12 4.106]
-
-
- 1.1134285
- small memory based 1D cut in non-axis aligned direction 1
- [2021 6 9 18 12 6.356]
-
-
- 1.5154268
- small memory based 1D cut in non-axis aligned direction 2
- [2021 6 9 18 12 8.898]
-
-
- 1.2263659
- small memory based 1D cut in non-axis aligned direction 3
- [2021 6 9 18 12 11.219]
-
-
- 0.8181987
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2021 6 9 18 12 13.042]
-
-
- 78.3471429
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2021 6 9 18 13 32.903]
-
-
- 84.0248101
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2021 6 9 18 14 57.94]
-
-
- 75.7927109
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2021 6 9 18 16 14.78]
-
-
- 60.2764085
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2021 6 9 18 17 16.061]
-
-
- 304.5434295
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2021 6 9 18 22 21.644]
-
-
- 529.7862463
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2021 6 9 18 31 12.491]
-
-
- 473.4029878
- large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
- [2021 6 9 18 39 7.068]
-
-
- 345.1834229
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2021 6 9 18 44 53.321]
-
-
- 748.0398559
- performance of the tmp-files combine procedure
- [2021 6 9 18 57 26.562]
-
-
-
-
- 2741.79593927318
- whole sqw file generation
- [2018 6 15 18 11 2.992]
-
-
- 8.38725000380751
- small memory based 1D cut in non-axis aligned direction 1
- [2018 6 15 18 11 11.692]
-
-
- 15.7735034330504
- small memory based 1D cut in non-axis aligned direction 2
- [2018 6 15 18 11 27.706]
-
-
- 8.63151407156663
- small memory based 1D cut in non-axis aligned direction 3
- [2018 6 15 18 11 36.559]
-
-
- 3.11729020449975
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2018 6 15 18 11 39.903]
-
-
- 586.499980465814
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 15 18 21 28.03]
-
-
- 671.785602709094
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 15 18 32 40.16]
-
-
- 618.052557885752
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 15 18 42 58.549]
-
-
- 586.628395223594
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 15 18 52 45.523]
-
-
- 2214.39961746105
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 15 19 29 40.31]
-
-
- 2392.12404009342
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2018 6 15 20 9 33.494]
-
-
- 2210.29323660269
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 15 20 46 24.161]
-
-
- 2106.77257142063
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2018 6 15 21 21 31.427]
-
-
- 3718.91333741234
- whole sqw file generation
- [2018 6 17 0 21 46.098]
-
-
- 6.954681351077
- small memory based 1D cut in non-axis aligned direction 1
- [2018 6 17 0 21 53.558]
-
-
- 14.9717277424507
- small memory based 1D cut in non-axis aligned direction 2
- [2018 6 17 0 22 8.956]
-
-
- 8.59273738836544
- small memory based 1D cut in non-axis aligned direction 3
- [2018 6 17 0 22 17.978]
-
-
- 3.16557308334873
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2018 6 17 0 22 21.566]
-
-
- 589.802057446399
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 17 0 32 13.23]
-
-
- 689.460136355239
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 17 0 43 43.324]
-
-
- 607.673902261529
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 17 0 53 51.623]
-
-
- 587.712641531798
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 17 1 3 39.974]
-
-
- 3394.4848414718
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 17 2 0 15.088]
-
-
- 3865.43966750829
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2018 6 17 3 4 41.802]
-
-
- 3979.38511283144
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 17 4 11 2.267]
-
-
- 4282.74699885377
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2018 6 17 5 22 26.09]
-
-
- 6555.1893427
- whole sqw file generation
- [2021 6 9 20 49 47.072]
-
-
- 6.4760179
- small memory based 1D cut in non-axis aligned direction 1
- [2021 6 9 20 49 54.795]
-
-
- 14.6690381
- small memory based 1D cut in non-axis aligned direction 2
- [2021 6 9 20 50 10.478]
-
-
- 7.443178
- small memory based 1D cut in non-axis aligned direction 3
- [2021 6 9 20 50 18.947]
-
-
- 2.1637333
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2021 6 9 20 50 22.143]
-
-
- 699.7694373
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2021 6 9 21 2 3.892]
-
-
- 734.7275244
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2021 6 9 21 14 19.891]
-
-
- 727.1672901
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2021 6 9 21 26 28.261]
-
-
- 718.5394986
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2021 6 9 21 38 28.017]
-
-
- 5456.5679079
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2021 6 9 23 9 25.794]
-
-
- 5370.8613508
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2021 6 10 0 38 57.969]
-
-
- 5147.396207
- large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
- [2021 6 10 2 4 46.516]
-
-
- 2801.2644796
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2021 6 10 2 51 28.985]
-
-
-
-
-
- 106.825340540455
- whole sqw file generation
- [2018 6 15 23 2 59.268]
-
-
- 0.892788111030988
- small memory based 1D cut in non-axis aligned direction 1
- [2018 6 15 23 3 0.447]
-
-
- 0.838905542610019
- small memory based 1D cut in non-axis aligned direction 2
- [2018 6 15 23 3 1.521]
-
-
- 0.838375470889759
- small memory based 1D cut in non-axis aligned direction 3
- [2018 6 15 23 3 2.604]
-
-
- 0.825990134905074
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2018 6 15 23 3 3.709]
-
-
- 7.96009397598818
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 15 23 3 12.278]
-
-
- 7.88791184851007
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 15 23 3 20.378]
-
-
- 8.95912355736727
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 15 23 3 29.55]
-
-
- 7.23340272935617
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 15 23 3 37.009]
-
-
- 45.8472459777787
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 15 23 4 23.082]
-
-
- 48.8625564753177
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2018 6 15 23 5 12.178]
-
-
- 54.1320308997711
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 15 23 6 6.549]
-
-
- 46.0814966232346
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2018 6 15 23 6 52.894]
-
-
- 609.636678049469
- whole sqw file generation
- [2018 6 18 9 52 22.137]
-
-
- 1.10387518516091
- small memory based 1D cut in non-axis aligned direction 1
- [2018 6 18 9 52 23.833]
-
-
- 0.921719564579687
- small memory based 1D cut in non-axis aligned direction 2
- [2018 6 18 9 52 25.209]
-
-
- 0.926074032577725
- small memory based 1D cut in non-axis aligned direction 3
- [2018 6 18 9 52 26.567]
-
-
- 0.771326861227157
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2018 6 18 9 52 27.789]
-
-
- 8.96616182384402
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 18 9 52 37.741]
-
-
- 9.61852416908526
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 18 9 52 47.362]
-
-
- 10.8961042873896
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 18 9 52 58.676]
-
-
- 8.60358713869206
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 18 9 53 7.676]
-
-
- 57.1271751646997
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 18 9 54 5.251]
-
-
- 58.5895168964086
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2018 6 18 9 55 4.365]
-
-
- 69.1253766952528
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 18 9 56 14.006]
-
-
- 54.5607195334574
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2018 6 18 9 57 9.082]
-
-
- 159.573499526213
- whole sqw file generation
- [2018 6 18 18 48 16.654]
-
-
- 0.945719795016862
- small memory based 1D cut in non-axis aligned direction 1
- [2018 6 18 18 48 20.142]
-
-
- 0.828471638679807
- small memory based 1D cut in non-axis aligned direction 2
- [2018 6 18 18 48 21.417]
-
-
- 0.876284041629668
- small memory based 1D cut in non-axis aligned direction 3
- [2018 6 18 18 48 22.294]
-
-
- 0.674374723955467
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2018 6 18 18 48 23.409]
-
-
- 8.69158798362837
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 18 18 48 33.417]
-
-
- 9.46888204199121
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 18 18 48 43.348]
-
-
- 10.847997216213
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 18 18 48 54.642]
-
-
- 8.48155277574159
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 18 18 49 3.602]
-
-
- 58.9908762108712
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 18 18 50 3.045]
-
-
- 59.5022136536675
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2018 6 18 18 51 3.041]
-
-
- 75.2509305225295
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 18 18 52 18.817]
-
-
- 52.6457180733598
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2018 6 18 18 53 11.953]
-
-
-
-
- 507.112771847994
- whole sqw file generation
- [2018 6 15 23 15 40.34]
-
-
- 2.57866085541193
- small memory based 1D cut in non-axis aligned direction 1
- [2018 6 15 23 15 43.223]
-
-
- 6.39414259161037
- small memory based 1D cut in non-axis aligned direction 2
- [2018 6 15 23 15 49.88]
-
-
- 2.83371607094022
- small memory based 1D cut in non-axis aligned direction 3
- [2018 6 15 23 15 52.965]
-
-
- 0.911370750238549
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2018 6 15 23 15 54.136]
-
-
- 68.2791666914983
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 15 23 17 3.133]
-
-
- 62.0049841971748
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 15 23 18 5.388]
-
-
- 55.5259178915263
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 15 23 19 1.181]
-
-
- 39.1203186654774
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 15 23 19 40.538]
-
-
- 318.609362635936
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 15 23 24 59.391]
-
-
- 329.834131586249
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2018 6 15 23 30 29.481]
-
-
- 320.247994103987
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 15 23 35 50.227]
-
-
- 268.77405403222
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2018 6 15 23 40 19.316]
-
-
- 152.038766088389
- performance of the tmp-files combine procedure
- [2018 6 18 20 12 7.225]
-
-
- 534.093795876366
- whole sqw file generation
- [2018 6 16 7 14 53.489]
-
-
- 2.68005519897389
- small memory based 1D cut in non-axis aligned direction 1
- [2018 6 16 7 14 56.783]
-
-
- 1.33960380698105
- small memory based 1D cut in non-axis aligned direction 2
- [2018 6 16 7 14 58.433]
-
-
- 1.07208280110954
- small memory based 1D cut in non-axis aligned direction 3
- [2018 6 16 7 14 59.784]
-
-
- 1.02806632087847
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2018 6 16 7 15 1.102]
-
-
- 52.0540351999407
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 16 7 15 53.928]
-
-
- 57.5314738774962
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 16 7 16 51.742]
-
-
- 52.8302909666641
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 16 7 17 44.852]
-
-
- 38.6870424779148
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 16 7 18 23.837]
-
-
- 314.039364695303
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 16 7 23 38.166]
-
-
- 411.872355683753
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2018 6 16 7 30 30.43]
-
-
- 392.453197746219
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 16 7 37 3.497]
-
-
- 355.790856411815
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2018 6 16 7 42 59.682]
-
-
- 1282.8312034449
- whole sqw file generation
- [2018 6 18 19 14 53.839]
-
-
- 3.09183418058726
- small memory based 1D cut in non-axis aligned direction 1
- [2018 6 18 19 14 57.874]
-
-
- 8.7711437696211
- small memory based 1D cut in non-axis aligned direction 2
- [2018 6 18 19 15 7.111]
-
-
- 5.05865751804595
- small memory based 1D cut in non-axis aligned direction 3
- [2018 6 18 19 15 12.169]
-
-
- 0.978569342717689
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2018 6 18 19 15 13.148]
-
-
- 96.5880150817158
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 18 19 16 50.214]
-
-
- 70.6839358801939
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 18 19 18 1.314]
-
-
- 63.205404943672
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 18 19 19 4.521]
-
-
- 45.728296691836
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 18 19 19 50.252]
-
-
- 729.425723741585
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 18 19 32 0.113]
-
-
- 847.376631352832
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2018 6 18 19 46 7.927]
-
-
- 730.013663997436
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 18 19 58 18.551]
-
-
- 674.820062337229
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2018 6 18 20 9 34.084]
-
-
- 1119.08307690576
- whole sqw file generation
- [2018 6 18 10 29 32.342]
-
-
-
-
- 2635.70510994436
- whole sqw file generation
- [2018 6 16 0 29 43.824]
-
-
- 9.14222244736199
- small memory based 1D cut in non-axis aligned direction 1
- [2018 6 16 0 29 53.357]
-
-
- 15.3562595146384
- small memory based 1D cut in non-axis aligned direction 2
- [2018 6 16 0 30 8.967]
-
-
- 8.76857121667518
- small memory based 1D cut in non-axis aligned direction 3
- [2018 6 16 0 30 17.991]
-
-
- 3.43374004170383
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2018 6 16 0 30 21.694]
-
-
- 580.537258976289
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 16 0 40 3.939]
-
-
- 669.796415708664
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 16 0 51 14.128]
-
-
- 611.987990117688
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 16 1 1 26.481]
-
-
- 617.811979488443
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 16 1 11 44.667]
-
-
- 2234.00085685547
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 16 1 48 59.078]
-
-
- 2361.73847830679
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2018 6 16 2 28 21.343]
-
-
- 2232.70030751444
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 16 3 5 34.513]
-
-
- 2216.28515176738
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2018 6 16 3 42 31.857]
-
-
- 2771.87275994207
- whole sqw file generation
- [2018 6 16 8 34 43.195]
-
-
- 7.49114174336318
- small memory based 1D cut in non-axis aligned direction 1
- [2018 6 16 8 34 57.336]
-
-
- 15.5117413700285
- small memory based 1D cut in non-axis aligned direction 2
- [2018 6 16 8 35 13.144]
-
-
- 8.62234889645094
- small memory based 1D cut in non-axis aligned direction 3
- [2018 6 16 8 35 22.089]
-
-
- 3.11011619198595
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2018 6 16 8 35 25.523]
-
-
- 580.464226615096
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 16 8 45 7.728]
-
-
- 665.947230217995
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 16 8 56 14.146]
-
-
- 609.445600603375
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 16 9 6 24.001]
-
-
- 587.396327771719
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 16 9 16 11.841]
-
-
- 2174.62291009043
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 16 9 52 26.927]
-
-
- 2377.4670163617
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2018 6 16 10 32 4.843]
-
-
- 2235.61382371424
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 16 11 9 21.248]
-
-
- 2149.21909575923
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2018 6 16 11 45 10.943]
-
-
- 6045.00803782083
- whole sqw file generation
- [2018 6 18 21 55 53.396]
-
-
- 7.58296930219253
- small memory based 1D cut in non-axis aligned direction 1
- [2018 6 18 21 56 1.526]
-
-
- 14.7180376023144
- small memory based 1D cut in non-axis aligned direction 2
- [2018 6 18 21 56 16.244]
-
-
- 8.24904696349359
- small memory based 1D cut in non-axis aligned direction 3
- [2018 6 18 21 56 24.494]
-
-
- 3.20822945450621
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2018 6 18 21 56 27.702]
-
-
- 563.592097726552
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 18 22 5 52.754]
-
-
- 669.141198392502
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 18 22 17 1.906]
-
-
- 609.693090460497
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 18 22 27 11.608]
-
-
- 586.887226496567
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2018 6 18 22 36 58.504]
-
-
- 4434.32813591555
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 18 23 50 52.932]
-
-
- 4598.55505395739
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2018 6 19 1 7 32.697]
-
-
- 4544.96023402617
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 6 19 2 23 18.887]
-
-
- 4439.77941302089
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2018 6 19 3 37 19.92]
-
-
-
-
-
- 352.827548
- whole sqw file generation
- [2018 6 21 10 27 1.208812]
-
-
- 283.547536
- whole sqw file generation
- [2018 6 21 11 25 55.072464]
-
-
- 254.934048
- whole sqw file generation
- [2018 6 21 12 11 6.301359]
-
-
- 260.923057
- whole sqw file generation
- [2018 6 21 13 5 39.799325]
-
-
- 266.170116
- whole sqw file generation
- [2018 6 21 14 2 6.101395]
-
-
- 265.239976
- whole sqw file generation
- [2018 6 21 15 52 24.178905]
-
-
- 440.452671
- whole sqw file generation
- [2018 6 21 16 30 22.787302]
-
-
- 245.213099
- whole sqw file generation
- [2018 6 21 17 50 21.724114]
-
-
- 228.247387
- whole sqw file generation
- [2018 6 21 18 3 27.390375]
-
-
-
-
-
- 1939.337711
- whole sqw file generation
- [2018 9 20 15 39 13.210396]
-
-
- 557.848706
- whole sqw file generation
- [2018 9 20 15 50 36.905163]
-
-
- 288.076396
- whole sqw file generation
- [2018 9 20 16 6 49.459222]
-
-
- 268.338491
- whole sqw file generation
- [2018 9 20 16 12 2.721499]
-
-
- 306.781138
- whole sqw file generation
- [2018 9 20 16 17 59.608481]
-
-
-
-
- 176.566433
- whole sqw file generation
- [2018 9 26 17 38 24.71337]
-
-
- 0.839655
- small memory based 1D cut in non-axis aligned direction 1
- [2018 9 26 17 38 27.307025]
-
-
- 0.485078
- small memory based 1D cut in non-axis aligned direction 2
- [2018 9 26 17 38 28.005875]
-
-
- 0.437313
- small memory based 1D cut in non-axis aligned direction 3
- [2018 9 26 17 38 28.683096]
-
-
- 0.365594
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2018 9 26 17 38 29.317309]
-
-
- 6.699144
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 26 17 38 36.229787]
-
-
- 6.593909
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 26 17 38 42.824612]
-
-
- 8.414354
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 26 17 38 51.495107]
-
-
- 5.555965
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 26 17 38 57.052155]
-
-
- 653.037222
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 9 26 17 49 50.094926]
-
-
- 119.540576
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2018 9 26 17 51 51.201965]
-
-
- 64.561181
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 9 26 17 52 57.424553]
-
-
- 81.998733
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2018 9 26 17 54 20.339464]
-
-
-
-
- 503.611363
- whole sqw file generation
- [2018 9 26 14 15 42.590341]
-
-
- 5.067794
- small memory based 1D cut in non-axis aligned direction 1
- [2018 9 26 14 15 51.404954]
-
-
- 1.205744
- small memory based 1D cut in non-axis aligned direction 2
- [2018 9 26 14 15 52.779401]
-
-
- 0.951936
- small memory based 1D cut in non-axis aligned direction 3
- [2018 9 26 14 15 53.965473]
-
-
- 0.843857
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2018 9 26 14 15 55.066236]
-
-
- 49.420273
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 26 14 16 45.288871]
-
-
- 45.386182
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 26 14 17 31.932325]
-
-
- 41.490381
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 26 14 18 13.619415]
-
-
- 35.142643
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 26 14 18 49.956683]
-
-
-
-
-
- 86.081466
- whole sqw file generation
- [2018 9 27 10 38 29.927325]
-
-
- 1.876971
- small memory based 1D cut in non-axis aligned direction 1
- [2018 9 27 10 38 33.449436]
-
-
- 0.561829
- small memory based 1D cut in non-axis aligned direction 2
- [2018 9 27 10 38 34.227037]
-
-
- 0.478438
- small memory based 1D cut in non-axis aligned direction 3
- [2018 9 27 10 38 34.871738]
-
-
- 0.396749
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2018 9 27 10 38 35.45258]
-
-
- 5.954419
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 27 10 38 41.875309]
-
-
- 5.636303
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 27 10 38 47.692113]
-
-
- 7.666804
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 27 10 38 55.533447]
-
-
- 5.553034
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 27 10 39 1.267454]
-
-
- 24.719926
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 9 27 10 39 26.177616]
-
-
- 51.097204
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2018 9 27 10 40 17.459619]
-
-
- 145.534413
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 9 27 10 42 44.217596]
-
-
- 116.820975
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2018 9 27 10 44 42.921485]
-
-
-
-
- 815.748016
- whole sqw file generation
- [2018 9 27 10 58 22.04073]
-
-
- 22.717454
- small memory based 1D cut in non-axis aligned direction 1
- [2018 9 27 10 58 52.334846]
-
-
- 5.950516
- small memory based 1D cut in non-axis aligned direction 2
- [2018 9 27 10 58 58.679405]
-
-
- 1.817509
- small memory based 1D cut in non-axis aligned direction 3
- [2018 9 27 10 59 0.789252]
-
-
- 0.864035
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2018 9 27 10 59 1.912469]
-
-
- 491.452011
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 27 11 7 14.091774]
-
-
- 300.374264
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 27 11 12 16.644747]
-
-
- 132.605803
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 27 11 14 31.346145]
-
-
- 28.307777
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 27 11 15 0.889173]
-
-
- 2804.92324
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 9 27 12 1 46.091114]
-
-
- 3482.937658
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2018 9 27 12 59 51.685963]
-
-
- 3375.317688
- large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
- [2018 9 27 13 56 14.591097]
-
-
- 3450.573954
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2018 9 27 14 53 50.868187]
-
-
-
-
-
- 101.238683
- whole sqw file generation
- [2018 9 28 13 7 19.509309]
-
-
- 0.797652
- small memory based 1D cut in non-axis aligned direction 1
- [2018 9 28 13 7 21.025775]
-
-
- 0.686096
- small memory based 1D cut in non-axis aligned direction 2
- [2018 9 28 13 7 22.363469]
-
-
- 0.750574
- small memory based 1D cut in non-axis aligned direction 3
- [2018 9 28 13 7 23.719673]
-
-
- 0.831096
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2018 9 28 13 7 25.125957]
-
-
- 28.871411
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 28 13 7 54.992317]
-
-
- 27.976064
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 28 13 8 23.619671]
-
-
- 33.691722
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 28 13 8 57.927743]
-
-
- 26.348071
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 28 13 9 24.938411]
-
-
- 75.913509
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 9 28 13 10 41.533608]
-
-
- 78.053113
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2018 9 28 13 12 0.230212]
-
-
- 84.294407
- large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
- [2018 9 28 13 13 25.319378]
-
-
- 64.78216
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2018 9 28 13 14 30.74741]
-
-
-
-
- 312.839443
- performance of the tmp-files combine procedure
- [2018 7 6 11 8 12.610498]
-
-
- 240.826789
- whole sqw file generation
- [2018 9 28 13 18 53.842277]
-
-
- 2.174581
- small memory based 1D cut in non-axis aligned direction 1
- [2018 9 28 13 18 56.613789]
-
-
- 12.116586
- small memory based 1D cut in non-axis aligned direction 2
- [2018 9 28 13 19 9.331429]
-
-
- 4.798738
- small memory based 1D cut in non-axis aligned direction 3
- [2018 9 28 13 19 15.015245]
-
-
- 1.210076
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2018 9 28 13 19 16.848965]
-
-
- 183.972872
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 28 13 22 22.050255]
-
-
- 174.699505
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 28 13 25 17.363336]
-
-
- 130.819881
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 28 13 27 28.810441]
-
-
- 111.35266
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 28 13 29 20.811339]
-
-
- 596.356193
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 9 28 13 39 17.811081]
-
-
- 427.968573
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2018 9 28 13 46 26.537612]
-
-
- 389.796031
- large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
- [2018 9 28 13 52 57.063978]
-
-
- 360.976703
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2018 9 28 13 58 58.685097]
-
-
- 73.141038
- performance of the tmp-files combine procedure
- [2018 9 28 14 2 41.664294]
-
-
-
-
- 1033.637482
- whole sqw file generation
- [2018 9 28 14 20 9.254375]
-
-
- 12.927324
- small memory based 1D cut in non-axis aligned direction 1
- [2018 9 28 14 20 23.10014]
-
-
- 38.096308
- small memory based 1D cut in non-axis aligned direction 2
- [2018 9 28 14 21 1.860401]
-
-
- 14.444515
- small memory based 1D cut in non-axis aligned direction 3
- [2018 9 28 14 21 16.984153]
-
-
- 4.521745
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2018 9 28 14 21 22.165832]
-
-
- 1322.279897
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 28 14 43 26.806801]
-
-
- 1387.531131
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 28 15 6 35.203207]
-
-
- 825.753014
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 28 15 20 21.913675]
-
-
- 700.341196
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2018 9 28 15 32 2.937933]
-
-
- 2558.317614
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 9 28 16 14 41.980211]
-
-
- 2867.158164
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2018 9 28 17 2 30.024324]
-
-
- 2866.464098
- large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
- [2018 9 28 17 50 17.762239]
-
-
- 3371.686919
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2018 9 28 18 47 2.576702]
-
-
- 2212.095796
- whole sqw file generation
- [2020 5 4 21 53 30.322488]
-
-
-
-
-
- 63.732373
- whole sqw file generation
- [2018 10 2 12 22 12.091598]
-
-
- 1.722002
- small memory based 1D cut in non-axis aligned direction 1
- [2018 10 2 12 22 14.856796]
-
-
- 0.52436
- small memory based 1D cut in non-axis aligned direction 2
- [2018 10 2 12 22 15.87825]
-
-
- 0.49395
- small memory based 1D cut in non-axis aligned direction 3
- [2018 10 2 12 22 16.906561]
-
-
- 0.389828
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2018 10 2 12 22 17.800875]
-
-
- 5.662735
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2018 10 2 12 22 24.142412]
-
-
- 5.679151
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2018 10 2 12 22 30.319546]
-
-
- 6.340497
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2018 10 2 12 22 37.162529]
-
-
- 5.627124
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2018 10 2 12 22 43.288976]
-
-
- 27.15797
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 10 2 12 23 10.926636]
-
-
- 28.62873
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2018 10 2 12 23 40.227915]
-
-
- 178.608188
- large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
- [2018 10 2 12 26 39.746845]
-
-
- 26.587102
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2018 10 2 12 27 7.288886]
-
-
-
-
- 134.425342
- whole sqw file generation
- [2018 10 2 12 29 36.555813]
-
-
- 0.902002
- small memory based 1D cut in non-axis aligned direction 1
- [2018 10 2 12 29 38.379263]
-
-
- 1.042517
- small memory based 1D cut in non-axis aligned direction 2
- [2018 10 2 12 29 40.062852]
-
-
- 0.818659
- small memory based 1D cut in non-axis aligned direction 3
- [2018 10 2 12 29 41.373637]
-
-
- 0.782689
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2018 10 2 12 29 42.711885]
-
-
- 29.020796
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2018 10 2 12 30 12.635469]
-
-
- 35.027705
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2018 10 2 12 30 48.146901]
-
-
- 33.072049
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2018 10 2 12 31 22.230682]
-
-
- 27.339543
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2018 10 2 12 31 50.065216]
-
-
- 168.273166
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 10 2 12 34 39.22747]
-
-
- 203.101244
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2018 10 2 12 38 3.271079]
-
-
- 226.516673
- large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
- [2018 10 2 12 41 50.737076]
-
-
- 148.260979
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2018 10 2 12 44 19.914427]
-
-
- 88.506984
- performance of the tmp-files combine procedure
- [2018 10 2 12 45 56.364224]
-
-
-
-
- 846.121918
- whole sqw file generation
- [2018 10 2 13 1 20.564572]
-
-
- 10.485779
- small memory based 1D cut in non-axis aligned direction 1
- [2018 10 2 13 1 33.020543]
-
-
- 29.366102
- small memory based 1D cut in non-axis aligned direction 2
- [2018 10 2 13 2 2.972816]
-
-
- 11.429862
- small memory based 1D cut in non-axis aligned direction 3
- [2018 10 2 13 2 14.955207]
-
-
- 2.887145
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2018 10 2 13 2 18.358423]
-
-
- 731.963577
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2018 10 2 13 14 32.16017]
-
-
- 694.147223
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2018 10 2 13 26 7.178176]
-
-
- 624.817088
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2018 10 2 13 36 32.902492]
-
-
- 543.059481
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2018 10 2 13 45 36.842951]
-
-
- 1918.744175
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2018 10 2 14 17 36.637245]
-
-
- 1891.14147
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2018 10 2 14 49 8.949297]
-
-
- 1816.039894
- large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
- [2018 10 2 15 19 26.225944]
-
-
- 5268.178321
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2018 10 2 16 47 16.320757]
-
-
-
-
-
- 79.886261
- whole sqw file generation
- [2019 5 22 12 58 57.07777]
-
-
- 0.542699
- small memory based 1D cut in non-axis aligned direction 1
- [2019 5 22 12 58 58.694148]
-
-
- 0.57345
- small memory based 1D cut in non-axis aligned direction 2
- [2019 5 22 12 59 0.088025]
-
-
- 0.584385
- small memory based 1D cut in non-axis aligned direction 3
- [2019 5 22 12 59 1.633284]
-
-
- 0.50883
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2019 5 22 12 59 2.876837]
-
-
- 7.329362
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2019 5 22 12 59 11.262793]
-
-
- 7.859275
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2019 5 22 12 59 19.859639]
-
-
- 8.397392
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2019 5 22 12 59 28.968273]
-
-
- 7.016319
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2019 5 22 12 59 36.698962]
-
-
- 39.458084
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2019 5 22 13 0 16.859088]
-
-
- 42.983196
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2019 5 22 13 1 0.578707]
-
-
- 48.979452
- large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
- [2019 5 22 13 1 50.331256]
-
-
- 36.447188
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2019 5 22 13 2 27.535763]
-
-
-
-
- 809.215494
- whole sqw file generation
- [2019 5 22 13 16 25.067886]
-
-
- 3.134759
- small memory based 1D cut in non-axis aligned direction 1
- [2019 5 22 13 16 31.937996]
-
-
- 10.545194
- small memory based 1D cut in non-axis aligned direction 2
- [2019 5 22 13 16 43.254783]
-
-
- 5.758744
- small memory based 1D cut in non-axis aligned direction 3
- [2019 5 22 13 16 49.774437]
-
-
- 1.074346
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2019 5 22 13 16 51.624154]
-
-
- 118.646339
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2019 5 22 13 18 51.527622]
-
-
- 99.225057
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2019 5 22 13 20 31.478133]
-
-
- 56.44501
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2019 5 22 13 21 28.683487]
-
-
- 35.897868
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2019 5 22 13 22 5.335246]
-
-
- 499.422569
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2019 5 22 13 30 25.500682]
-
-
- 587.289264
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2019 5 22 13 40 14.719483]
-
-
- 537.860648
- large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
- [2019 5 22 13 49 16.214707]
-
-
- 432.896846
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2019 5 22 13 56 30.041509]
-
-
- 425.819959
- performance of the tmp-files combine procedure
- [2019 5 22 14 3 44.446144]
-
-
- 803.73952
- whole sqw file generation
- [2019 7 16 14 25 8.794333]
-
-
- 819.736159
- whole sqw file generation
- [2019 7 16 15 10 39.051073]
-
-
- 693.034723
- whole sqw file generation
- [2019 7 16 15 22 16.639388]
-
-
- 667.242863
- whole sqw file generation
- [2019 7 16 15 33 26.9294]
-
-
- 730.035408
- whole sqw file generation
- [2019 7 16 15 45 42.610362]
-
-
- 713.365642
- whole sqw file generation
- [2019 7 16 15 57 39.797344]
-
-
- 1909.992739
- whole sqw file generation
- [2019 7 16 16 29 34.287299]
-
-
- 2827.568505
- whole sqw file generation
- [2019 7 16 17 17 26.238498]
-
-
- 2305.743257
- whole sqw file generation
- [2019 7 16 17 56 11.820611]
-
-
- 376.792128
- performance of the tmp-files combine procedure
- [2019 7 17 17 34 4.388177]
-
-
- 408.023812
- performance of the tmp-files combine procedure
- [2019 7 17 17 40 53.657224]
-
-
- 653.614958
- performance of the tmp-files combine procedure
- [2019 7 17 17 51 49.871471]
-
-
- 776.690457
- performance of the tmp-files combine procedure
- [2019 7 17 18 4 48.555905]
-
-
- 779.603034
- performance of the tmp-files combine procedure
- [2019 7 17 18 17 51.357289]
-
-
- 720.25436
- performance of the tmp-files combine procedure
- [2019 7 17 18 29 52.800274]
-
-
- 697.516411
- performance of the tmp-files combine procedure
- [2019 7 17 18 41 32.286073]
-
-
- 597.742346
- performance of the tmp-files combine procedure
- [2019 7 17 18 51 31.610347]
-
-
- 521.394432
- performance of the tmp-files combine procedure
- [2019 7 17 19 0 17.227559]
-
-
-
-
- 4509.011461
- whole sqw file generation
- [2019 5 22 15 22 35.307652]
-
-
- 11.929544
- small memory based 1D cut in non-axis aligned direction 1
- [2019 5 22 15 22 49.551487]
-
-
- 28.935567
- small memory based 1D cut in non-axis aligned direction 2
- [2019 5 22 15 23 19.241499]
-
-
- 13.950057
- small memory based 1D cut in non-axis aligned direction 3
- [2019 5 22 15 23 33.948068]
-
-
- 4.244292
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2019 5 22 15 23 38.947659]
-
-
- 651.214695
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2019 5 22 15 34 32.617095]
-
-
- 704.3381
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2019 5 22 15 46 17.719443]
-
-
- 677.782591
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2019 5 22 15 57 36.309235]
-
-
- 698.143762
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2019 5 22 16 9 15.255445]
-
-
- 3791.94072
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2019 5 22 17 12 28.056935]
-
-
- 3827.057332
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2019 5 22 18 16 17.99922]
-
-
- 3656.176791
- large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
- [2019 5 22 19 17 16.428407]
-
-
- 4541.914016
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2019 5 22 20 32 59.647295]
-
-
-
-
- 38.51548
- whole sqw file generation
- [2019 7 16 12 50 10.476884]
-
-
- 55.083464
- whole sqw file generation
- [2019 7 16 12 52 5.14253]
-
-
- 55.240706
- whole sqw file generation
- [2019 7 16 12 53 0.734015]
-
-
- 58.034669
- whole sqw file generation
- [2019 7 16 12 51 8.861853]
-
-
- 46.544452
- whole sqw file generation
- [2019 7 16 12 53 47.639236]
-
-
- 51.45903
- whole sqw file generation
- [2019 7 16 12 54 40.264167]
-
-
- 50.9584
- whole sqw file generation
- [2019 7 16 12 55 32.414904]
-
-
- 51.542837
- whole sqw file generation
- [2019 7 16 12 56 25.121158]
-
-
- 46.486941
- whole sqw file generation
- [2019 7 16 12 57 12.761242]
-
-
- 46.820272
- whole sqw file generation
- [2019 7 16 12 58 0.739055]
-
-
- 29.143289
- performance of the tmp-files combine procedure
- [2019 7 17 13 41 39.937883]
-
-
- 7.901716
- performance of the tmp-files combine procedure
- [2019 7 17 13 43 29.21725]
-
-
- 5.287909
- performance of the tmp-files combine procedure
- [2019 7 17 13 44 34.657423]
-
-
- 10.951501
- performance of the tmp-files combine procedure
- [2019 7 17 13 45 5.772702]
-
-
- 5.626505
- performance of the tmp-files combine procedure
- [2019 7 17 13 45 16.487014]
-
-
- 5.584067
- performance of the tmp-files combine procedure
- [2019 7 17 13 45 22.938375]
-
-
- 5.579993
- performance of the tmp-files combine procedure
- [2019 7 17 13 45 29.35584]
-
-
- 5.618698
- performance of the tmp-files combine procedure
- [2019 7 17 13 45 35.803233]
-
-
- 5.631005
- performance of the tmp-files combine procedure
- [2019 7 17 13 45 42.264742]
-
-
- 5.672947
- performance of the tmp-files combine procedure
- [2019 7 17 13 45 48.772495]
-
-
-
-
-
-
- 68.902094
- whole sqw file generation
- [2019 7 17 14 8 52.049367]
-
-
- 115.21413
- whole sqw file generation
- [2019 7 17 14 10 51.216806]
-
-
- 80.806949
- whole sqw file generation
- [2019 7 17 14 12 13.658608]
-
-
- 80.247251
- whole sqw file generation
- [2019 7 17 14 13 36.43051]
-
-
- 77.865051
- whole sqw file generation
- [2019 7 17 14 14 55.821486]
-
-
- 88.245225
- whole sqw file generation
- [2019 7 17 14 16 26.126182]
-
-
- 66.832439
- whole sqw file generation
- [2019 7 17 14 17 34.438206]
-
-
- 66.012501
- whole sqw file generation
- [2019 7 17 14 18 41.912985]
-
-
- 67.605412
- whole sqw file generation
- [2019 7 17 14 19 51.563044]
-
-
- 70.560972
- whole sqw file generation
- [2019 7 17 14 21 3.58414]
-
-
- 43.086904
- performance of the tmp-files combine procedure
- [2019 7 17 14 21 51.8585]
-
-
- 21.027099
- performance of the tmp-files combine procedure
- [2019 7 17 14 22 14.004524]
-
-
- 13.364578
- performance of the tmp-files combine procedure
- [2019 7 17 14 22 28.464727]
-
-
- 10.142027
- performance of the tmp-files combine procedure
- [2019 7 17 14 22 39.66727]
-
-
- 18.574754
- performance of the tmp-files combine procedure
- [2019 7 17 14 22 59.299474]
-
-
- 17.410379
- performance of the tmp-files combine procedure
- [2019 7 17 14 23 18.260121]
-
-
- 16.341324
- performance of the tmp-files combine procedure
- [2019 7 17 14 23 36.47872]
-
-
- 14.998322
- performance of the tmp-files combine procedure
- [2019 7 17 14 23 53.402666]
-
-
- 13.615178
- performance of the tmp-files combine procedure
- [2019 7 17 14 24 8.772248]
-
-
-
-
- 518.144202
- whole sqw file generation
- [2019 7 17 14 50 26.382142]
-
-
- 648.412031
- whole sqw file generation
- [2019 7 17 15 1 16.457274]
-
-
- 417.644765
- whole sqw file generation
- [2019 7 17 15 8 16.190422]
-
-
- 299.641541
- whole sqw file generation
- [2019 7 17 15 13 17.972339]
-
-
- 272.803076
- whole sqw file generation
- [2019 7 17 15 17 52.521346]
-
-
- 292.058748
- whole sqw file generation
- [2019 7 17 15 22 46.92283]
-
-
- 335.190146
- whole sqw file generation
- [2019 7 17 15 28 24.461873]
-
-
- 367.259398
- whole sqw file generation
- [2019 7 17 15 34 34.221864]
-
-
- 315.750386
- whole sqw file generation
- [2019 7 17 15 40 3.481758]
-
-
- 364.770615
- whole sqw file generation
- [2019 7 17 15 46 20.644724]
-
-
- 411.477615
- performance of the tmp-files combine procedure
- [2019 7 17 15 53 24.003618]
-
-
- 87.217659
- performance of the tmp-files combine procedure
- [2019 7 17 15 54 52.661857]
-
-
- 87.744217
- performance of the tmp-files combine procedure
- [2019 7 17 15 56 21.629066]
-
-
- 74.82789
- performance of the tmp-files combine procedure
- [2019 7 17 15 57 38.096735]
-
-
- 83.322238
- performance of the tmp-files combine procedure
- [2019 7 17 15 59 2.528416]
-
-
- 69.461426
- performance of the tmp-files combine procedure
- [2019 7 17 16 0 13.14778]
-
-
- 74.240727
- performance of the tmp-files combine procedure
- [2019 7 17 16 1 28.624209]
-
-
- 86.172403
- performance of the tmp-files combine procedure
- [2019 7 17 16 2 56.19077]
-
-
- 99.21681
- performance of the tmp-files combine procedure
- [2019 7 17 16 4 47.558328]
-
-
-
-
-
-
- 501.751482
- whole sqw file generation
- [2019 7 16 13 19 13.081771]
-
-
- 509.179147
- whole sqw file generation
- [2019 7 16 13 27 45.616389]
-
-
- 469.014134
- whole sqw file generation
- [2019 7 16 13 35 37.316824]
-
-
- 474.485073
- whole sqw file generation
- [2019 7 17 10 44 48.483544]
-
-
- 507.305083
- whole sqw file generation
- [2019 7 17 11 56 55.070455]
-
-
- 416.322954
- whole sqw file generation
- [2019 7 17 12 3 56.543698]
-
-
- 386.817107
- whole sqw file generation
- [2019 7 16 15 35 23.180427]
-
-
- 420.714787
- whole sqw file generation
- [2019 7 17 12 10 58.215468]
-
-
- 249.191538
- performance of the tmp-files combine procedure
- [2019 7 17 14 18 18.371943]
-
-
- 136.470683
- performance of the tmp-files combine procedure
- [2019 7 17 14 20 36.631869]
-
-
- 143.776852
- performance of the tmp-files combine procedure
- [2019 7 17 14 23 2.008306]
-
-
- 153.822676
- performance of the tmp-files combine procedure
- [2019 7 17 14 25 37.588726]
-
-
- 138.836327
- performance of the tmp-files combine procedure
- [2019 7 17 14 27 58.084239]
-
-
- 146.917486
- performance of the tmp-files combine procedure
- [2019 7 17 14 30 26.732337]
-
-
- 161.796551
- performance of the tmp-files combine procedure
- [2019 7 17 14 33 9.883987]
-
-
- 167.777174
- performance of the tmp-files combine procedure
- [2019 7 17 14 36 44.307218]
-
-
- 149.387816
- performance of the tmp-files combine procedure
- [2019 7 17 14 39 37.96956]
-
-
-
-
- 183.042053073319
- whole sqw file generation
- [2019 7 17 12 34 4.619]
-
-
- 99.6553730527919
- whole sqw file generation
- [2019 7 17 12 38 17.463]
-
-
- 134.580932673366
- whole sqw file generation
- [2019 7 17 12 40 33.26]
-
-
- 131.9240174152
- whole sqw file generation
- [2019 7 17 12 42 46.355]
-
-
- 145.823728706938
- whole sqw file generation
- [2019 7 17 13 3 33.029]
-
-
- 124.918789875346
- whole sqw file generation
- [2019 7 17 13 5 42.088]
-
-
-
-
- 143.586897213899
- whole sqw file generation
- [2019 7 17 13 20 39.051]
-
-
- 199.137535384972
- whole sqw file generation
- [2019 7 17 13 23 59.962]
-
-
- 150.749321436257
- whole sqw file generation
- [2019 7 17 13 26 32.619]
-
-
- 124.531845978115
- whole sqw file generation
- [2019 7 17 13 28 38.578]
-
-
- 110.649172446902
- whole sqw file generation
- [2019 7 17 13 30 31.029]
-
-
- 102.469224096545
- whole sqw file generation
- [2019 7 17 13 32 14.644]
-
-
- 119.872675352194
- whole sqw file generation
- [2019 7 17 13 34 16.707]
-
-
- 129.890760673432
- whole sqw file generation
- [2019 7 17 13 36 28.255]
-
-
- 144.928134818812
- whole sqw file generation
- [2019 7 17 13 38 58.31]
-
-
- 171.049210190872
- whole sqw file generation
- [2019 7 17 13 41 53.906]
-
-
-
-
-
-
- 938.857086
- whole sqw file generation
- [2019 7 17 18 31 34.404487]
-
-
- 661.988997
- whole sqw file generation
- [2019 7 17 18 42 46.121453]
-
-
- 545.466816
- whole sqw file generation
- [2019 7 17 18 51 53.490046]
-
-
- 753.080147
- whole sqw file generation
- [2019 7 17 15 34 9.188083]
-
-
- 497.329568
- whole sqw file generation
- [2019 7 17 19 0 12.074394]
-
-
- 694.534157
- whole sqw file generation
- [2019 7 17 19 11 59.512082]
-
-
- 763.167765
- whole sqw file generation
- [2019 7 17 19 25 3.525436]
-
-
- 724.539261
- whole sqw file generation
- [2019 7 17 19 37 42.698468]
-
-
- 529.363347
- whole sqw file generation
- [2019 7 17 16 17 34.752542]
-
-
- 928.19213
- whole sqw file generation
- [2019 7 17 16 33 24.45706]
-
-
- 658.869942
- whole sqw file generation
- [2019 7 17 16 44 54.551266]
-
-
- 294.377405
- performance of the tmp-files combine procedure
- [2019 7 17 16 50 12.258303]
-
-
- 95.707908
- performance of the tmp-files combine procedure
- [2019 7 17 16 51 50.666766]
-
-
- 257.895869
- performance of the tmp-files combine procedure
- [2019 7 17 16 56 11.088262]
-
-
- 199.941027
- performance of the tmp-files combine procedure
- [2019 7 17 16 59 33.509749]
-
-
- 143.617905
- performance of the tmp-files combine procedure
- [2019 7 17 17 1 59.710466]
-
-
- 370.344874
- performance of the tmp-files combine procedure
- [2019 7 17 17 8 16.892882]
-
-
- 296.807564
- performance of the tmp-files combine procedure
- [2019 7 17 17 13 17.669436]
-
-
- 177.122027
- performance of the tmp-files combine procedure
- [2019 7 17 17 16 16.442419]
-
-
- 504.278019
- performance of the tmp-files combine procedure
- [2019 7 17 17 24 44.871803]
-
-
- 491.367185
- performance of the tmp-files combine procedure
- [2019 7 17 17 53 51.144917]
-
-
-
-
-
- 201.18399
- whole sqw file generation
- [2020 4 21 10 32 22.362145]
-
-
- 1.874405
- small memory based 1D cut in non-axis aligned direction 1
- [2020 4 21 10 32 25.648808]
-
-
- 0.545979
- small memory based 1D cut in non-axis aligned direction 2
- [2020 4 21 10 32 26.752512]
-
-
- 0.488856
- small memory based 1D cut in non-axis aligned direction 3
- [2020 4 21 10 32 27.760756]
-
-
- 0.415896
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2020 4 21 10 32 28.747238]
-
-
- 6.211973
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2020 4 21 10 32 35.772075]
-
-
-
-
- 689.638454
- whole sqw file generation
- [2020 4 21 10 47 14.092582]
-
-
- 5.475905
- small memory based 1D cut in non-axis aligned direction 1
- [2020 4 21 10 47 21.205623]
-
-
- 1.682
- small memory based 1D cut in non-axis aligned direction 2
- [2020 4 21 10 47 26.712057]
-
-
- 0.995129
- small memory based 1D cut in non-axis aligned direction 3
- [2020 4 21 10 47 31.09614]
-
-
- 0.623344
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2020 4 21 10 47 32.395005]
-
-
- 76.016984
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2020 4 21 10 48 49.322888]
-
-
- 49.631907
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2020 4 21 10 49 40.060562]
-
-
- 1108.389657
- whole sqw file generation
- [2020 4 21 11 16 23.635784]
-
-
- 1522.967328
- whole sqw file generation
- [2020 4 21 11 41 47.885794]
-
-
- 2020.562451
- whole sqw file generation
- [2020 4 21 12 16 3.3705]
-
-
- 1988.939533
- whole sqw file generation
- [2020 4 21 12 49 14.401371]
-
-
- 2236.444416
- whole sqw file generation
- [2020 4 21 13 27 7.824067]
-
-
- 680.650687
- performance of the tmp-files combine procedure
- [2020 4 21 13 39 6.542542]
-
-
- 740.129803
- performance of the tmp-files combine procedure
- [2020 4 21 13 51 31.669244]
-
-
- 707.479143
- performance of the tmp-files combine procedure
- [2020 4 21 14 3 21.530788]
-
-
- 634.196556
- performance of the tmp-files combine procedure
- [2020 4 21 14 13 57.37213]
-
-
- 621.21472
- performance of the tmp-files combine procedure
- [2020 4 21 14 24 22.507575]
-
-
- 772.913334
- performance of the tmp-files combine procedure
- [2020 4 21 14 37 27.322522]
-
-
- 490.844113
- performance of the tmp-files combine procedure
- [2020 4 21 14 45 54.542516]
-
-
- 435.139937
- performance of the tmp-files combine procedure
- [2020 4 21 14 53 10.756114]
-
-
- 522.3928
- performance of the tmp-files combine procedure
- [2020 4 21 15 2 3.797033]
-
-
-
-
- 11823.589859
- whole sqw file generation
- [2020 4 23 15 36 17.22208]
-
-
- 12522.032862
- whole sqw file generation
- [2020 4 23 19 5 50.317784]
-
-
- 10432.505119
- whole sqw file generation
- [2020 4 23 22 0 15.686863]
-
-
- 9016.736609
- whole sqw file generation
- [2020 4 24 2 7 45.821591]
-
-
- 9486.36589
- whole sqw file generation
- [2020 4 24 4 46 30.947634]
-
-
-
-
-
-
- 309.738872
- whole sqw file generation
- [2020 4 30 16 23 33.71256]
-
-
- 428.738987
- whole sqw file generation
- [2020 4 30 16 30 44.191219]
-
-
- 325.148681
- whole sqw file generation
- [2020 4 30 16 36 10.414983]
-
-
- 372.173824
- whole sqw file generation
- [2020 4 30 16 42 23.861097]
-
-
- 194.395254
- whole sqw file generation
- [2020 4 30 16 45 39.21093]
-
-
- 205.465275
- whole sqw file generation
- [2020 4 30 16 49 6.142205]
-
-
- 181.969448
- performance of the tmp-files combine procedure
- [2020 4 30 16 52 11.356963]
-
-
- 63.069975
- performance of the tmp-files combine procedure
- [2020 4 30 16 53 15.003539]
-
-
- 82.070733
- performance of the tmp-files combine procedure
- [2020 4 30 16 54 37.943404]
-
-
- 58.559823
- performance of the tmp-files combine procedure
- [2020 4 30 16 55 37.263812]
-
-
- 58.548919
- performance of the tmp-files combine procedure
- [2020 4 30 16 56 36.865096]
-
-
- 70.449209
- performance of the tmp-files combine procedure
- [2020 4 30 16 57 47.933584]
-
-
- 54.853658
- performance of the tmp-files combine procedure
- [2020 4 30 16 58 52.022743]
-
-
- 70.153242
- performance of the tmp-files combine procedure
- [2020 4 30 17 0 3.736113]
-
-
- 53.885278
- performance of the tmp-files combine procedure
- [2020 4 30 17 0 58.700472]
-
-
-
-
- 2434.798518
- whole sqw file generation
- [2020 4 30 17 49 22.310421]
-
-
- 2707.212954
- whole sqw file generation
- [2020 4 30 18 34 31.893914]
-
-
- 2173.28866
- whole sqw file generation
- [2020 5 1 17 50 25.682681]
-
-
- 2044.788267
- whole sqw file generation
- [2020 5 1 18 24 33.073652]
-
-
- 2030.222352
- whole sqw file generation
- [2020 5 1 18 58 25.347656]
-
-
- 1962.374383
- whole sqw file generation
- [2020 5 1 19 31 9.877927]
-
-
- 1451.627067
- performance of the tmp-files combine procedure
- [2020 5 1 19 55 26.133719]
-
-
- 1015.733692
- performance of the tmp-files combine procedure
- [2020 5 1 20 12 22.596077]
-
-
- 1148.428696
- performance of the tmp-files combine procedure
- [2020 5 1 20 31 31.726476]
-
-
- 1252.570105
- performance of the tmp-files combine procedure
- [2020 5 1 20 52 25.2395]
-
-
- 1075.406059
- performance of the tmp-files combine procedure
- [2020 5 1 21 10 21.59124]
-
-
- 1131.057859
- performance of the tmp-files combine procedure
- [2020 5 1 21 29 13.567435]
-
-
- 1101.610753
- performance of the tmp-files combine procedure
- [2020 5 1 21 47 35.900081]
-
-
- 1084.893654
- performance of the tmp-files combine procedure
- [2020 5 1 22 5 41.489906]
-
-
- 1117.490041
- performance of the tmp-files combine procedure
- [2020 5 1 22 24 19.687747]
-
-
-
-
-
-
- 2579.339004
- whole sqw file generation
- [2020 5 5 10 28 39.67682]
-
-
- 2730.222332
- whole sqw file generation
- [2020 5 5 11 14 13.212553]
-
-
- 1449.289501
- whole sqw file generation
- [2020 5 5 12 29 3.874575]
-
-
- 1223.657781
- whole sqw file generation
- [2020 5 5 12 54 41.283676]
-
-
- 1209.930274
- whole sqw file generation
- [2020 5 5 13 14 55.015524]
-
-
- 1217.043274
- whole sqw file generation
- [2020 5 5 13 35 15.222849]
-
-
- 567.549234
- whole sqw file generation
- [2020 5 5 19 21 14.062416]
-
-
- 1257.356419
- whole sqw file generation
- [2020 5 5 21 3 22.944883]
-
-
- 1362.166291
- whole sqw file generation
- [2020 5 5 21 26 8.944933]
-
-
- 1350.629186
- whole sqw file generation
- [2020 5 5 21 48 43.079698]
-
-
- 1166.679237
- performance of the tmp-files combine procedure
- [2020 5 5 22 8 14.712728]
-
-
- 361.599821
- performance of the tmp-files combine procedure
- [2020 5 5 22 14 18.001292]
-
-
- 303.49041
- performance of the tmp-files combine procedure
- [2020 5 5 22 19 23.114394]
-
-
- 284.500051
- performance of the tmp-files combine procedure
- [2020 5 5 22 24 9.663979]
-
-
-
-
-
- 95.0863674
- whole sqw file generation
- [2021 6 9 15 25 23.367]
-
-
- 0.46045
- small memory based 1D cut in non-axis aligned direction 1
- [2021 6 9 15 25 23.828]
-
-
- 0.4487759
- small memory based 1D cut in non-axis aligned direction 2
- [2021 6 9 15 25 24.277]
-
-
- 0.451143
- small memory based 1D cut in non-axis aligned direction 3
- [2021 6 9 15 25 24.729]
-
-
- 0.3850648
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2021 6 9 15 25 25.114]
-
-
- 9.3026359
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2021 6 9 15 25 35.231]
-
-
- 10.2489083
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2021 6 9 15 25 45.48]
-
-
- 11.0363675
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2021 6 9 15 25 56.51]
-
-
- 9.1873687
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2021 6 9 15 26 5.705]
-
-
- 32.4748459
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2021 6 9 15 26 38.181]
-
-
- 33.5339218
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2021 6 9 15 27 12.266]
-
-
- 41.9314006
- large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
- [2021 6 9 15 27 54.729]
-
-
- 33.4618468
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2021 6 9 15 28 28.769]
-
-
-
-
- 516.3904859
- whole sqw file generation
- [2021 6 9 15 37 20.077]
-
-
- 0.9014353
- small memory based 1D cut in non-axis aligned direction 1
- [2021 6 9 15 37 21.536]
-
-
- 1.2160399
- small memory based 1D cut in non-axis aligned direction 2
- [2021 6 9 15 37 23.287]
-
-
- 0.8981015
- small memory based 1D cut in non-axis aligned direction 3
- [2021 6 9 15 37 24.171]
-
-
- 0.5611907
- small memory based 1D cut along energy direction (q are not axis aligned)
- [2021 6 9 15 37 24.732]
-
-
- 55.5005532
- large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
- [2021 6 9 15 38 20.59]
-
-
- 66.8795665
- large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
- [2021 6 9 15 39 27.458]
-
-
- 65.0762518
- large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
- [2021 6 9 15 40 32.547]
-
-
- 57.5258582
- large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
- [2021 6 9 15 41 30.073]
-
-
- 221.3410977
- large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
- [2021 6 9 15 45 11.416]
-
-
- 256.7977594
- large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
- [2021 6 9 15 49 28.787]
-
-
- 251.3642226
- large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
- [2021 6 9 15 53 40.748]
-
-
- 220.4748572
- large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
- [2021 6 9 15 57 21.978]
-
-
- 104.8600304
- performance of the tmp-files combine procedure
- [2021 6 9 15 59 9.159]
-
-
+
+
+ 26.674305
+ whole sqw file generation
+ [2021 7 25 12 34 13.154538]
+
+
+ 3.987717
+ calc headers and combine all tmp files
+ [2021 7 25 12 34 17.184901]
+
+
+ 58.819965
+ whole sqw file generation
+ [2021 7 25 12 35 23.220157]
+
+
+ 3.879291
+ calc headers and combine all tmp files
+ [2021 7 25 12 35 27.142321]
+
+
+ 37.174747
+ whole sqw file generation
+ [2021 7 25 12 36 5.574616]
+
+
+ 4.068295
+ calc headers and combine all tmp files
+ [2021 7 25 12 36 9.699058]
+
+
+ 38.537721
+ whole sqw file generation
+ [2021 7 25 12 36 50.226341]
+
+
+ 3.892876
+ calc headers and combine all tmp files
+ [2021 7 25 12 36 54.166089]
+
+
+ 42.406685
+ whole sqw file generation
+ [2021 7 25 12 37 39.388689]
+
+
+ 3.986377
+ calc headers and combine all tmp files
+ [2021 7 25 12 37 43.42733]
+
+
+ 39.194848
+ whole sqw file generation
+ [2021 7 25 12 38 25.188802]
+
+
+ 6.582896
+ calc headers and combine all tmp files
+ [2021 7 25 12 38 31.934388]
+
+
+ 64.284104
+ whole sqw file generation
+ [2021 7 25 12 43 17.935509]
+
+
+ 4.388452
+ calc headers and combine all tmp files
+ [2021 7 25 12 43 22.488739]
+
+
+ 53.695343
+ whole sqw file generation
+ [2021 7 25 12 44 17.006729]
+
+
+ 3.944302
+ calc headers and combine all tmp files
+ [2021 7 25 12 44 21.00929]
+
+
+
+
+ 132.627215
+ whole sqw file generation
+ [2021 7 25 12 47 46.904728]
+
+
+ 27.290313
+ calc headers and combine all tmp files
+ [2021 7 25 12 48 14.249642]
+
+
+ 204.245204
+ whole sqw file generation
+ [2021 7 25 12 51 47.960798]
+
+
+ 35.395405
+ calc headers and combine all tmp files
+ [2021 7 25 12 52 23.542936]
+
+
+ 127.431867
+ whole sqw file generation
+ [2021 7 25 12 54 33.457247]
+
+
+ 26.270283
+ calc headers and combine all tmp files
+ [2021 7 25 12 54 59.787993]
+
+
+ 87.711388
+ whole sqw file generation
+ [2021 7 25 12 56 37.826397]
+
+
+ 25.956011
+ calc headers and combine all tmp files
+ [2021 7 25 12 57 3.846535]
+
+
+ 103.854896
+ whole sqw file generation
+ [2021 7 25 12 58 58.513819]
+
+
+ 25.74243
+ calc headers and combine all tmp files
+ [2021 7 25 12 59 24.325265]
+
+
+ 108.977872
+ whole sqw file generation
+ [2021 7 25 13 1 23.942721]
+
+
+ 40.437125
+ calc headers and combine all tmp files
+ [2021 7 25 13 2 4.446712]
+
+
+ 107.402779
+ whole sqw file generation
+ [2021 7 25 13 4 0.032524]
+
+
+ 29.850019
+ calc headers and combine all tmp files
+ [2021 7 25 13 4 29.95511]
+
+
+ 108.306158
+ whole sqw file generation
+ [2021 7 25 13 6 28.562489]
+
+
+ 39.526198
+ calc headers and combine all tmp files
+ [2021 7 25 13 7 8.357515]
+
+
+
+
+ 296.283336
+ whole sqw file generation
+ [2021 7 25 13 13 55.340395]
+
+
+ 151.228476
+ calc headers and combine all tmp files
+ [2021 7 25 13 16 26.642466]
+
+
+ 437.031585
+ whole sqw file generation
+ [2021 7 25 13 23 50.915464]
+
+
+ 194.494691
+ calc headers and combine all tmp files
+ [2021 7 25 13 27 5.48643]
+
+
+ 293.616184
+ whole sqw file generation
+ [2021 7 25 13 32 3.43655]
+
+
+ 200.302487
+ calc headers and combine all tmp files
+ [2021 7 25 13 35 23.816788]
+
+
+ 214.846203
+ whole sqw file generation
+ [2021 7 25 13 39 2.832526]
+
+
+ 196.019246
+ calc headers and combine all tmp files
+ [2021 7 25 13 42 18.932942]
+
+
+ 181.956537
+ whole sqw file generation
+ [2021 7 25 13 45 29.728294]
+
+
+ 210.653581
+ calc headers and combine all tmp files
+ [2021 7 25 13 49 0.471152]
+
+
+ 225.130048
+ whole sqw file generation
+ [2021 7 25 13 52 49.822784]
+
+
+ 214.073774
+ calc headers and combine all tmp files
+ [2021 7 25 13 56 24.035385]
+
+
+ 220.232538
+ whole sqw file generation
+ [2021 7 25 14 0 13.226745]
+
+
+ 219.319661
+ calc headers and combine all tmp files
+ [2021 7 25 14 3 52.855007]
+
+
+ 217.338297
+ whole sqw file generation
+ [2021 7 25 14 7 34.865515]
+
+
+ 225.99043
+ calc headers and combine all tmp files
+ [2021 7 25 14 11 21.180649]
+
+
+
+
+ 288.659124
+ whole sqw file generation
+ [2021 7 25 14 20 13.602016]
+
+
+ 167.736376
+ calc headers and combine all tmp files
+ [2021 7 25 14 23 1.48769]
+
+
+ 835.901454
+ whole sqw file generation
+ [2021 7 25 14 37 1.504316]
+
+
+ 1032.089346
+ calc headers and combine all tmp files
+ [2021 7 25 14 54 13.678227]
+
+
+ 431.290717
+ whole sqw file generation
+ [2021 7 25 15 1 29.500757]
+
+
+ 1111.335398
+ calc headers and combine all tmp files
+ [2021 7 25 15 20 0.922121]
+
+
+ 246.870288
+ whole sqw file generation
+ [2021 7 25 15 24 12.616205]
+
+
+ 1427.854284
+ calc headers and combine all tmp files
+ [2021 7 25 15 48 0.56181]
+
+
+ 167.037372
+ whole sqw file generation
+ [2021 7 26 11 39 17.688852]
+
+
+ 223.767823
+ calc headers and combine all tmp files
+ [2021 7 26 12 24 18.896297]
+
+
+ 161.422147
+ whole sqw file generation
+ [2021 7 25 16 50 45.761469]
+
+
+ 293.605367
+ calc headers and combine all tmp files
+ [2021 7 25 16 55 39.545439]
+
+
+ 145.424951
+ whole sqw file generation
+ [2021 7 25 16 58 13.95407]
+
+
+ 288.674741
+ calc headers and combine all tmp files
+ [2021 7 25 17 3 4.542429]
+
+
+ 158.669128
+ whole sqw file generation
+ [2021 7 25 17 5 55.634605]
+
+
+ 290.194862
+ calc headers and combine all tmp files
+ [2021 7 25 17 10 45.941769]
+
+
+ 194.349356
+ whole sqw file generation
+ [2021 7 25 19 1 2.576926]
+
+
+ 711.688733
+ calc headers and combine all tmp files
+ [2021 7 25 19 12 54.359763]
+
+
+ 154.437277
+ whole sqw file generation
+ [2021 7 25 19 15 34.976949]
+
+
+ 363.555633
+ calc headers and combine all tmp files
+ [2021 7 25 19 21 39.567795]
+
+
+ 123.938349
+ whole sqw file generation
+ [2021 7 25 19 23 55.839964]
+
+
+ 275.858159
+ calc headers and combine all tmp files
+ [2021 7 25 19 28 36.686518]
+
+
+ 146.2628
+ whole sqw file generation
+ [2021 7 25 19 31 14.073762]
+
+
+ 369.942443
+ calc headers and combine all tmp files
+ [2021 7 25 19 37 24.158296]
+
+
+ 222.231753
+ whole sqw file generation
+ [2021 7 26 12 20 34.488064]
+
+
+
+
+ 278.041622
+ whole sqw file generation
+ [2021 7 25 19 48 49.306085]
+
+
+ 136.520628
+ calc headers and combine all tmp files
+ [2021 7 25 19 51 5.942804]
+
+
+ 453.824362
+ whole sqw file generation
+ [2021 7 25 19 58 43.547663]
+
+
+ 176.892175
+ calc headers and combine all tmp files
+ [2021 7 25 20 1 40.545101]
+
+
+ 307.627289
+ whole sqw file generation
+ [2021 7 25 20 6 52.154021]
+
+
+ 186.746809
+ calc headers and combine all tmp files
+ [2021 7 25 20 9 59.020337]
+
+
+ 230.68412
+ whole sqw file generation
+ [2021 7 25 20 13 54.036912]
+
+
+ 208.293255
+ calc headers and combine all tmp files
+ [2021 7 25 20 17 22.932747]
+
+
+ 194.060204
+ whole sqw file generation
+ [2021 7 25 20 20 41.415848]
+
+
+ 202.747285
+ calc headers and combine all tmp files
+ [2021 7 25 20 24 4.305779]
+
+
+ 212.57112
+ whole sqw file generation
+ [2021 7 25 20 27 41.260303]
+
+
+ 213.953108
+ calc headers and combine all tmp files
+ [2021 7 25 20 31 15.380704]
+
+
+ 352.997362
+ whole sqw file generation
+ [2021 7 25 20 37 12.712093]
+
+
+ 223.999265
+ calc headers and combine all tmp files
+ [2021 7 25 20 40 56.931129]
+
+
+ 214.991214
+ whole sqw file generation
+ [2021 7 25 20 44 36.31907]
+
+
+ 236.900651
+ calc headers and combine all tmp files
+ [2021 7 25 20 48 33.643044]
+
+
+
+
+ 136.657941
+ whole sqw file generation
+ [2021 7 25 22 13 29.701445]
+
+
+ 28.914993
+ calc headers and combine all tmp files
+ [2021 7 25 22 13 58.933956]
+
+
+ 421.385456
+ whole sqw file generation
+ [2021 7 25 22 21 10.101923]
+
+
+ 2476.472316
+ calc headers and combine all tmp files
+ [2021 7 25 23 2 26.704157]
+
+
+ 246.882412
+ whole sqw file generation
+ [2021 7 25 23 6 35.759327]
+
+
+ 3780.798377
+ calc headers and combine all tmp files
+ [2021 7 26 0 9 36.683346]
+
+
+ 154.260421
+ whole sqw file generation
+ [2021 7 26 0 12 14.014851]
+
+
+ 2533.298434
+ calc headers and combine all tmp files
+ [2021 7 26 0 54 27.443707]
+
+
+ 122.804593
+ whole sqw file generation
+ [2021 7 26 0 56 30.996919]
+
+
+ 1556.509975
+ calc headers and combine all tmp files
+ [2021 7 26 1 22 27.6333]
+
+
+ 128.474455
+ whole sqw file generation
+ [2021 7 26 1 24 38.75515]
+
+
+ 3079.925727
+ calc headers and combine all tmp files
+ [2021 7 26 2 15 58.807749]
+
+
+ 114.783116
+ whole sqw file generation
+ [2021 7 26 2 17 56.221599]
+
+
+ 235.859415
+ calc headers and combine all tmp files
+ [2021 7 26 2 21 53.813991]
+
+
+ 77.695163
+ whole sqw file generation
+ [2021 7 26 2 23 16.239861]
+
+
+ 332.327066
+ calc headers and combine all tmp files
+ [2021 7 26 2 28 48.702562]
+
+
+ 84.537279
+ whole sqw file generation
+ [2021 7 26 2 30 17.706461]
+
+
+ 352.815489
+ calc headers and combine all tmp files
+ [2021 7 26 2 36 11.624695]
+
+
+ 103.912427
+ whole sqw file generation
+ [2021 7 26 2 37 59.924284]
+
+
+ 395.870836
+ calc headers and combine all tmp files
+ [2021 7 26 2 44 35.927492]
+
+
+ 84.664693
+ whole sqw file generation
+ [2021 7 26 2 46 5.297949]
+
+
+ 132.450326
+ calc headers and combine all tmp files
+ [2021 7 26 2 48 18.386122]
+
+
+ 139.315205
+ whole sqw file generation
+ [2021 7 26 2 50 42.382584]
+
+
+ 141.39722
+ calc headers and combine all tmp files
+ [2021 7 26 2 53 3.938761]
+
+
+
+
+ 134.677607
+ whole sqw file generation
+ [2021 7 26 10 18 47.187536]
+
+
+ 26.063455
+ calc headers and combine all tmp files
+ [2021 7 26 10 19 13.494313]
+
+
+ 226.053718
+ whole sqw file generation
+ [2021 7 26 10 23 6.94605]
+
+
+ 27.33874
+ calc headers and combine all tmp files
+ [2021 7 26 10 23 34.466471]
+
+
+ 140.50041
+ whole sqw file generation
+ [2021 7 26 10 26 4.475146]
+
+
+ 28.064546
+ calc headers and combine all tmp files
+ [2021 7 26 10 26 32.68203]
+
+
+ 97.064347
+ whole sqw file generation
+ [2021 7 26 10 28 19.66475]
+
+
+ 27.32874
+ calc headers and combine all tmp files
+ [2021 7 26 10 28 47.21356]
+
+
+ 106.307941
+ whole sqw file generation
+ [2021 7 26 11 16 47.203099]
+
+
+ 151.368795
+ calc headers and combine all tmp files
+ [2021 7 26 11 27 4.457615]
+
+
+ 229.281861
+ whole sqw file generation
+ [2021 7 26 10 34 56.9895]
+
+
+ 70.632441
+ calc headers and combine all tmp files
+ [2021 7 26 10 36 7.847831]
+
+
+ 109.605037
+ whole sqw file generation
+ [2021 7 26 10 38 1.857939]
+
+
+ 53.049404
+ calc headers and combine all tmp files
+ [2021 7 26 10 38 55.677074]
+
+
+ 149.445197
+ whole sqw file generation
+ [2021 7 26 10 41 28.921017]
+
+
+ 67.929141
+ calc headers and combine all tmp files
+ [2021 7 26 10 42 37.144768]
+
+
+ 114.703906
+ whole sqw file generation
+ [2021 7 26 11 24 31.744382]
+
+
+
+
+ 905.328671
+ whole sqw file generation
+ [2021 7 26 17 54 50.903103]
+
+
+ 617.561135
+ calc headers and combine all tmp files
+ [2021 7 26 18 5 8.850827]
+
+
+ 1863.933346
+ whole sqw file generation
+ [2021 7 26 18 36 14.269513]
+
+
+ 1090.379972
+ calc headers and combine all tmp files
+ [2021 7 26 18 54 24.814503]
+
+
+ 986.973827
+ whole sqw file generation
+ [2021 7 26 19 10 58.589706]
+
+
+ 2766.013745
+ calc headers and combine all tmp files
+ [2021 7 26 19 57 4.77664]
+
+
+ 542.247235
+ whole sqw file generation
+ [2021 7 26 20 6 14.686043]
+
+
+ 2526.030692
+ calc headers and combine all tmp files
+ [2021 7 26 20 48 20.891103]
+
+
+ 427.232672
+ whole sqw file generation
+ [2021 7 26 20 55 39.560849]
+
+
+ 702.841314
+ calc headers and combine all tmp files
+ [2021 7 26 21 7 22.566816]
+
+
+ 362.961157
+ whole sqw file generation
+ [2021 7 26 21 13 37.432497]
+
+
+ 1521.29428
+ calc headers and combine all tmp files
+ [2021 7 26 21 38 58.900465]
+
+
+ 325.13376
+ whole sqw file generation
+ [2021 7 26 21 44 41.590095]
+
+
+ 729.226486
+ calc headers and combine all tmp files
+ [2021 7 26 21 56 50.997007]
+
+
+ 269.246307
+ whole sqw file generation
+ [2021 7 26 22 1 35.446328]
+
+
+ 732.761821
+ calc headers and combine all tmp files
+ [2021 7 26 22 13 48.695522]
+
+
+ 255.178431
+ whole sqw file generation
+ [2021 7 26 22 18 19.389019]
+
+
+ 722.950774
+ calc headers and combine all tmp files
+ [2021 7 26 22 30 22.919663]
+
+
+ 221.565851
+ whole sqw file generation
+ [2021 7 26 22 34 20.205125]
+
+
+ 772.257564
+ calc headers and combine all tmp files
+ [2021 7 26 22 47 12.722259]
+
+
+ 195.246971
+ whole sqw file generation
+ [2021 7 26 22 50 50.186914]
+
+
+ 727.574206
+ calc headers and combine all tmp files
+ [2021 7 26 23 3 0.825627]
+
+
+ 174.915308
+ whole sqw file generation
+ [2021 7 26 23 6 14.209215]
+
+
+ 700.235905
+ calc headers and combine all tmp files
+ [2021 7 26 23 17 55.155426]
+
+
+
+
+ 1098.583177
+ whole sqw file generation
+ [2021 7 27 7 38 57.538381]
+
+
+ 693.32559
+ calc headers and combine all tmp files
+ [2021 7 27 7 50 31.217104]
+
+
+ 1224.308722
+ whole sqw file generation
+ [2021 7 27 8 11 2.029323]
+
+
+ 699.038651
+ calc headers and combine all tmp files
+ [2021 7 27 8 22 41.427392]
+
+
+ 780.092925
+ whole sqw file generation
+ [2021 7 27 8 35 49.017905]
+
+
+ 714.058752
+ calc headers and combine all tmp files
+ [2021 7 27 8 47 43.403695]
+
+
+ 549.98285
+ whole sqw file generation
+ [2021 7 27 8 57 1.463662]
+
+
+ 722.015364
+ calc headers and combine all tmp files
+ [2021 7 27 9 9 4.383996]
+
+
+ 496.952857
+ whole sqw file generation
+ [2021 7 27 9 17 35.093753]
+
+
+ 732.554631
+ calc headers and combine all tmp files
+ [2021 7 27 9 29 48.094025]
+
+
+ 491.613575
+ whole sqw file generation
+ [2021 7 27 9 38 7.703963]
+
+
+ 725.073454
+ calc headers and combine all tmp files
+ [2021 7 27 9 50 13.461806]
+
+
+ 504.862574
+ whole sqw file generation
+ [2021 7 27 9 58 51.195491]
+
+
+ 740.380232
+ calc headers and combine all tmp files
+ [2021 7 27 10 11 12.559374]
+
+
+ 572.685478
+ whole sqw file generation
+ [2021 7 27 10 20 47.803666]
+
+
+ 750.286496
+ calc headers and combine all tmp files
+ [2021 7 27 10 33 18.603157]
+
+
\ No newline at end of file
diff --git a/_test/performance_test/test_SQW_GENCUT_perf_PerfRez_to07_2021.xml b/_test/performance_test/test_SQW_GENCUT_perf_PerfRez_to07_2021.xml
new file mode 100644
index 0000000000..a9ec04bb01
--- /dev/null
+++ b/_test/performance_test/test_SQW_GENCUT_perf_PerfRez_to07_2021.xml
@@ -0,0 +1,3508 @@
+
+
+
+
+
+ 97.0657560425196
+ whole sqw file generation
+ [2018 6 15 16 40 14.759]
+
+
+ 0.810486282035237
+ small memory based 1D cut in non-axis aligned direction 1
+ [2018 6 15 16 40 15.786]
+
+
+ 0.785347771414268
+ small memory based 1D cut in non-axis aligned direction 2
+ [2018 6 15 16 40 16.77]
+
+
+ 0.783746961440842
+ small memory based 1D cut in non-axis aligned direction 3
+ [2018 6 15 16 40 17.753]
+
+
+ 0.67700819707411
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2018 6 15 16 40 18.644]
+
+
+ 8.55921242135835
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 15 16 40 27.774]
+
+
+ 8.2038590942892
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 15 16 40 35.979]
+
+
+ 9.41925395302393
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 15 16 40 45.399]
+
+
+ 7.57954188030113
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 15 16 40 52.979]
+
+
+ 52.3608752109858
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 15 16 41 45.341]
+
+
+ 54.0405830987576
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2018 6 15 16 42 39.607]
+
+
+ 58.3227504398503
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 15 16 43 38.158]
+
+
+ 44.6629634485585
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2018 6 15 16 44 23.045]
+
+
+ 89.0166295517136
+ whole sqw file generation
+ [2018 6 16 22 30 27.425]
+
+
+ 0.646961308406388
+ small memory based 1D cut in non-axis aligned direction 1
+ [2018 6 16 22 30 28.451]
+
+
+ 0.710750026652576
+ small memory based 1D cut in non-axis aligned direction 2
+ [2018 6 16 22 30 29.541]
+
+
+ 0.734722114618656
+ small memory based 1D cut in non-axis aligned direction 3
+ [2018 6 16 22 30 30.633]
+
+
+ 0.646947733802684
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2018 6 16 22 30 31.652]
+
+
+ 8.19573552169189
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 16 22 30 40.609]
+
+
+ 8.75523201646434
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 16 22 30 49.783]
+
+
+ 9.51111097867595
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 16 22 30 59.704]
+
+
+ 7.77258731284429
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 16 22 31 7.851]
+
+
+ 50.3433318566813
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 16 22 31 58.582]
+
+
+ 52.709266752882
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2018 6 16 22 32 51.706]
+
+
+ 61.1199918817248
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 16 22 33 53.238]
+
+
+ 47.063928437338
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2018 6 16 22 34 40.763]
+
+
+ 127.1933144
+ whole sqw file generation
+ [2021 6 9 17 46 23.608]
+
+
+ 1.8220946
+ small memory based 1D cut in non-axis aligned direction 1
+ [2021 6 9 17 46 26.813]
+
+
+ 0.7797652
+ small memory based 1D cut in non-axis aligned direction 2
+ [2021 6 9 17 46 28.727]
+
+
+ 0.8233894
+ small memory based 1D cut in non-axis aligned direction 3
+ [2021 6 9 17 46 30.72]
+
+
+ 0.6371014
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2021 6 9 17 46 32.438]
+
+
+ 12.2528266
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2021 6 9 17 46 46.366]
+
+
+ 13.1130188
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2021 6 9 17 47 0.535]
+
+
+ 14.5441637
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2021 6 9 17 47 16.199]
+
+
+ 11.6119857
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2021 6 9 17 47 28.902]
+
+
+ 49.3741101
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2021 6 9 17 48 19.269]
+
+
+ 50.7675323
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2021 6 9 17 49 11.105]
+
+
+ 56.396151
+ large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
+ [2021 6 9 17 50 8.564]
+
+
+ 46.1201896
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2021 6 9 17 50 55.741]
+
+
+
+
+ 543.352669197503
+ whole sqw file generation
+ [2018 6 15 16 53 45.495]
+
+
+ 4.19056492203211
+ small memory based 1D cut in non-axis aligned direction 1
+ [2018 6 15 16 53 50.306]
+
+
+ 7.99662621434763
+ small memory based 1D cut in non-axis aligned direction 2
+ [2018 6 15 16 53 58.512]
+
+
+ 5.2512453871179
+ small memory based 1D cut in non-axis aligned direction 3
+ [2018 6 15 16 54 3.974]
+
+
+ 1.01142451891273
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2018 6 15 16 54 5.215]
+
+
+ 99.9928634004184
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 15 16 55 45.92]
+
+
+ 76.5263734684702
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 15 16 57 2.653]
+
+
+ 63.4304851166058
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 15 16 58 6.278]
+
+
+ 39.6669129960607
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 15 16 58 46.149]
+
+
+ 332.675538828995
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 15 17 4 19.029]
+
+
+ 337.705917136646
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2018 6 15 17 9 56.99]
+
+
+ 319.958899410862
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 15 17 15 17.237]
+
+
+ 265.150517192401
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2018 6 15 17 19 42.646]
+
+
+ 151.154215113103
+ performance of the tmp-files combine procedure
+ [2018 6 16 23 16 46.342]
+
+
+ 630.50756469623
+ whole sqw file generation
+ [2018 6 16 22 45 31.863]
+
+
+ 1.43762966229697
+ small memory based 1D cut in non-axis aligned direction 1
+ [2018 6 16 22 45 33.759]
+
+
+ 1.27461059097203
+ small memory based 1D cut in non-axis aligned direction 2
+ [2018 6 16 22 45 35.4]
+
+
+ 1.0207515960092
+ small memory based 1D cut in non-axis aligned direction 3
+ [2018 6 16 22 45 36.792]
+
+
+ 0.930726148593572
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2018 6 16 22 45 38.102]
+
+
+ 51.9917211471798
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 16 22 46 30.977]
+
+
+ 58.220826024568
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 16 22 47 29.615]
+
+
+ 55.7735034330504
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 16 22 48 25.764]
+
+
+ 39.6610742610284
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 16 22 49 5.819]
+
+
+ 346.069898945353
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 16 22 54 52.276]
+
+
+ 412.590868397197
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2018 6 16 23 1 45.35]
+
+
+ 389.736502374231
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 16 23 8 15.613]
+
+
+ 355.097812634711
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2018 6 16 23 14 11.194]
+
+
+ 1241.9291665
+ whole sqw file generation
+ [2021 6 9 18 12 4.106]
+
+
+ 1.1134285
+ small memory based 1D cut in non-axis aligned direction 1
+ [2021 6 9 18 12 6.356]
+
+
+ 1.5154268
+ small memory based 1D cut in non-axis aligned direction 2
+ [2021 6 9 18 12 8.898]
+
+
+ 1.2263659
+ small memory based 1D cut in non-axis aligned direction 3
+ [2021 6 9 18 12 11.219]
+
+
+ 0.8181987
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2021 6 9 18 12 13.042]
+
+
+ 78.3471429
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2021 6 9 18 13 32.903]
+
+
+ 84.0248101
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2021 6 9 18 14 57.94]
+
+
+ 75.7927109
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2021 6 9 18 16 14.78]
+
+
+ 60.2764085
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2021 6 9 18 17 16.061]
+
+
+ 304.5434295
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2021 6 9 18 22 21.644]
+
+
+ 529.7862463
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2021 6 9 18 31 12.491]
+
+
+ 473.4029878
+ large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
+ [2021 6 9 18 39 7.068]
+
+
+ 345.1834229
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2021 6 9 18 44 53.321]
+
+
+ 748.0398559
+ performance of the tmp-files combine procedure
+ [2021 6 9 18 57 26.562]
+
+
+
+
+ 2741.79593927318
+ whole sqw file generation
+ [2018 6 15 18 11 2.992]
+
+
+ 8.38725000380751
+ small memory based 1D cut in non-axis aligned direction 1
+ [2018 6 15 18 11 11.692]
+
+
+ 15.7735034330504
+ small memory based 1D cut in non-axis aligned direction 2
+ [2018 6 15 18 11 27.706]
+
+
+ 8.63151407156663
+ small memory based 1D cut in non-axis aligned direction 3
+ [2018 6 15 18 11 36.559]
+
+
+ 3.11729020449975
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2018 6 15 18 11 39.903]
+
+
+ 586.499980465814
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 15 18 21 28.03]
+
+
+ 671.785602709094
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 15 18 32 40.16]
+
+
+ 618.052557885752
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 15 18 42 58.549]
+
+
+ 586.628395223594
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 15 18 52 45.523]
+
+
+ 2214.39961746105
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 15 19 29 40.31]
+
+
+ 2392.12404009342
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2018 6 15 20 9 33.494]
+
+
+ 2210.29323660269
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 15 20 46 24.161]
+
+
+ 2106.77257142063
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2018 6 15 21 21 31.427]
+
+
+ 3718.91333741234
+ whole sqw file generation
+ [2018 6 17 0 21 46.098]
+
+
+ 6.954681351077
+ small memory based 1D cut in non-axis aligned direction 1
+ [2018 6 17 0 21 53.558]
+
+
+ 14.9717277424507
+ small memory based 1D cut in non-axis aligned direction 2
+ [2018 6 17 0 22 8.956]
+
+
+ 8.59273738836544
+ small memory based 1D cut in non-axis aligned direction 3
+ [2018 6 17 0 22 17.978]
+
+
+ 3.16557308334873
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2018 6 17 0 22 21.566]
+
+
+ 589.802057446399
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 17 0 32 13.23]
+
+
+ 689.460136355239
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 17 0 43 43.324]
+
+
+ 607.673902261529
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 17 0 53 51.623]
+
+
+ 587.712641531798
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 17 1 3 39.974]
+
+
+ 3394.4848414718
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 17 2 0 15.088]
+
+
+ 3865.43966750829
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2018 6 17 3 4 41.802]
+
+
+ 3979.38511283144
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 17 4 11 2.267]
+
+
+ 4282.74699885377
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2018 6 17 5 22 26.09]
+
+
+ 6555.1893427
+ whole sqw file generation
+ [2021 6 9 20 49 47.072]
+
+
+ 6.4760179
+ small memory based 1D cut in non-axis aligned direction 1
+ [2021 6 9 20 49 54.795]
+
+
+ 14.6690381
+ small memory based 1D cut in non-axis aligned direction 2
+ [2021 6 9 20 50 10.478]
+
+
+ 7.443178
+ small memory based 1D cut in non-axis aligned direction 3
+ [2021 6 9 20 50 18.947]
+
+
+ 2.1637333
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2021 6 9 20 50 22.143]
+
+
+ 699.7694373
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2021 6 9 21 2 3.892]
+
+
+ 734.7275244
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2021 6 9 21 14 19.891]
+
+
+ 727.1672901
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2021 6 9 21 26 28.261]
+
+
+ 718.5394986
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2021 6 9 21 38 28.017]
+
+
+ 5456.5679079
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2021 6 9 23 9 25.794]
+
+
+ 5370.8613508
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2021 6 10 0 38 57.969]
+
+
+ 5147.396207
+ large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
+ [2021 6 10 2 4 46.516]
+
+
+ 2801.2644796
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2021 6 10 2 51 28.985]
+
+
+
+
+
+ 106.825340540455
+ whole sqw file generation
+ [2018 6 15 23 2 59.268]
+
+
+ 0.892788111030988
+ small memory based 1D cut in non-axis aligned direction 1
+ [2018 6 15 23 3 0.447]
+
+
+ 0.838905542610019
+ small memory based 1D cut in non-axis aligned direction 2
+ [2018 6 15 23 3 1.521]
+
+
+ 0.838375470889759
+ small memory based 1D cut in non-axis aligned direction 3
+ [2018 6 15 23 3 2.604]
+
+
+ 0.825990134905074
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2018 6 15 23 3 3.709]
+
+
+ 7.96009397598818
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 15 23 3 12.278]
+
+
+ 7.88791184851007
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 15 23 3 20.378]
+
+
+ 8.95912355736727
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 15 23 3 29.55]
+
+
+ 7.23340272935617
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 15 23 3 37.009]
+
+
+ 45.8472459777787
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 15 23 4 23.082]
+
+
+ 48.8625564753177
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2018 6 15 23 5 12.178]
+
+
+ 54.1320308997711
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 15 23 6 6.549]
+
+
+ 46.0814966232346
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2018 6 15 23 6 52.894]
+
+
+ 609.636678049469
+ whole sqw file generation
+ [2018 6 18 9 52 22.137]
+
+
+ 1.10387518516091
+ small memory based 1D cut in non-axis aligned direction 1
+ [2018 6 18 9 52 23.833]
+
+
+ 0.921719564579687
+ small memory based 1D cut in non-axis aligned direction 2
+ [2018 6 18 9 52 25.209]
+
+
+ 0.926074032577725
+ small memory based 1D cut in non-axis aligned direction 3
+ [2018 6 18 9 52 26.567]
+
+
+ 0.771326861227157
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2018 6 18 9 52 27.789]
+
+
+ 8.96616182384402
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 18 9 52 37.741]
+
+
+ 9.61852416908526
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 18 9 52 47.362]
+
+
+ 10.8961042873896
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 18 9 52 58.676]
+
+
+ 8.60358713869206
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 18 9 53 7.676]
+
+
+ 57.1271751646997
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 18 9 54 5.251]
+
+
+ 58.5895168964086
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2018 6 18 9 55 4.365]
+
+
+ 69.1253766952528
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 18 9 56 14.006]
+
+
+ 54.5607195334574
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2018 6 18 9 57 9.082]
+
+
+ 159.573499526213
+ whole sqw file generation
+ [2018 6 18 18 48 16.654]
+
+
+ 0.945719795016862
+ small memory based 1D cut in non-axis aligned direction 1
+ [2018 6 18 18 48 20.142]
+
+
+ 0.828471638679807
+ small memory based 1D cut in non-axis aligned direction 2
+ [2018 6 18 18 48 21.417]
+
+
+ 0.876284041629668
+ small memory based 1D cut in non-axis aligned direction 3
+ [2018 6 18 18 48 22.294]
+
+
+ 0.674374723955467
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2018 6 18 18 48 23.409]
+
+
+ 8.69158798362837
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 18 18 48 33.417]
+
+
+ 9.46888204199121
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 18 18 48 43.348]
+
+
+ 10.847997216213
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 18 18 48 54.642]
+
+
+ 8.48155277574159
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 18 18 49 3.602]
+
+
+ 58.9908762108712
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 18 18 50 3.045]
+
+
+ 59.5022136536675
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2018 6 18 18 51 3.041]
+
+
+ 75.2509305225295
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 18 18 52 18.817]
+
+
+ 52.6457180733598
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2018 6 18 18 53 11.953]
+
+
+
+
+ 507.112771847994
+ whole sqw file generation
+ [2018 6 15 23 15 40.34]
+
+
+ 2.57866085541193
+ small memory based 1D cut in non-axis aligned direction 1
+ [2018 6 15 23 15 43.223]
+
+
+ 6.39414259161037
+ small memory based 1D cut in non-axis aligned direction 2
+ [2018 6 15 23 15 49.88]
+
+
+ 2.83371607094022
+ small memory based 1D cut in non-axis aligned direction 3
+ [2018 6 15 23 15 52.965]
+
+
+ 0.911370750238549
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2018 6 15 23 15 54.136]
+
+
+ 68.2791666914983
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 15 23 17 3.133]
+
+
+ 62.0049841971748
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 15 23 18 5.388]
+
+
+ 55.5259178915263
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 15 23 19 1.181]
+
+
+ 39.1203186654774
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 15 23 19 40.538]
+
+
+ 318.609362635936
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 15 23 24 59.391]
+
+
+ 329.834131586249
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2018 6 15 23 30 29.481]
+
+
+ 320.247994103987
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 15 23 35 50.227]
+
+
+ 268.77405403222
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2018 6 15 23 40 19.316]
+
+
+ 152.038766088389
+ performance of the tmp-files combine procedure
+ [2018 6 18 20 12 7.225]
+
+
+ 534.093795876366
+ whole sqw file generation
+ [2018 6 16 7 14 53.489]
+
+
+ 2.68005519897389
+ small memory based 1D cut in non-axis aligned direction 1
+ [2018 6 16 7 14 56.783]
+
+
+ 1.33960380698105
+ small memory based 1D cut in non-axis aligned direction 2
+ [2018 6 16 7 14 58.433]
+
+
+ 1.07208280110954
+ small memory based 1D cut in non-axis aligned direction 3
+ [2018 6 16 7 14 59.784]
+
+
+ 1.02806632087847
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2018 6 16 7 15 1.102]
+
+
+ 52.0540351999407
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 16 7 15 53.928]
+
+
+ 57.5314738774962
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 16 7 16 51.742]
+
+
+ 52.8302909666641
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 16 7 17 44.852]
+
+
+ 38.6870424779148
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 16 7 18 23.837]
+
+
+ 314.039364695303
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 16 7 23 38.166]
+
+
+ 411.872355683753
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2018 6 16 7 30 30.43]
+
+
+ 392.453197746219
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 16 7 37 3.497]
+
+
+ 355.790856411815
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2018 6 16 7 42 59.682]
+
+
+ 1282.8312034449
+ whole sqw file generation
+ [2018 6 18 19 14 53.839]
+
+
+ 3.09183418058726
+ small memory based 1D cut in non-axis aligned direction 1
+ [2018 6 18 19 14 57.874]
+
+
+ 8.7711437696211
+ small memory based 1D cut in non-axis aligned direction 2
+ [2018 6 18 19 15 7.111]
+
+
+ 5.05865751804595
+ small memory based 1D cut in non-axis aligned direction 3
+ [2018 6 18 19 15 12.169]
+
+
+ 0.978569342717689
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2018 6 18 19 15 13.148]
+
+
+ 96.5880150817158
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 18 19 16 50.214]
+
+
+ 70.6839358801939
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 18 19 18 1.314]
+
+
+ 63.205404943672
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 18 19 19 4.521]
+
+
+ 45.728296691836
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 18 19 19 50.252]
+
+
+ 729.425723741585
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 18 19 32 0.113]
+
+
+ 847.376631352832
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2018 6 18 19 46 7.927]
+
+
+ 730.013663997436
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 18 19 58 18.551]
+
+
+ 674.820062337229
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2018 6 18 20 9 34.084]
+
+
+ 1119.08307690576
+ whole sqw file generation
+ [2018 6 18 10 29 32.342]
+
+
+
+
+ 2635.70510994436
+ whole sqw file generation
+ [2018 6 16 0 29 43.824]
+
+
+ 9.14222244736199
+ small memory based 1D cut in non-axis aligned direction 1
+ [2018 6 16 0 29 53.357]
+
+
+ 15.3562595146384
+ small memory based 1D cut in non-axis aligned direction 2
+ [2018 6 16 0 30 8.967]
+
+
+ 8.76857121667518
+ small memory based 1D cut in non-axis aligned direction 3
+ [2018 6 16 0 30 17.991]
+
+
+ 3.43374004170383
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2018 6 16 0 30 21.694]
+
+
+ 580.537258976289
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 16 0 40 3.939]
+
+
+ 669.796415708664
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 16 0 51 14.128]
+
+
+ 611.987990117688
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 16 1 1 26.481]
+
+
+ 617.811979488443
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 16 1 11 44.667]
+
+
+ 2234.00085685547
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 16 1 48 59.078]
+
+
+ 2361.73847830679
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2018 6 16 2 28 21.343]
+
+
+ 2232.70030751444
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 16 3 5 34.513]
+
+
+ 2216.28515176738
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2018 6 16 3 42 31.857]
+
+
+ 2771.87275994207
+ whole sqw file generation
+ [2018 6 16 8 34 43.195]
+
+
+ 7.49114174336318
+ small memory based 1D cut in non-axis aligned direction 1
+ [2018 6 16 8 34 57.336]
+
+
+ 15.5117413700285
+ small memory based 1D cut in non-axis aligned direction 2
+ [2018 6 16 8 35 13.144]
+
+
+ 8.62234889645094
+ small memory based 1D cut in non-axis aligned direction 3
+ [2018 6 16 8 35 22.089]
+
+
+ 3.11011619198595
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2018 6 16 8 35 25.523]
+
+
+ 580.464226615096
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 16 8 45 7.728]
+
+
+ 665.947230217995
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 16 8 56 14.146]
+
+
+ 609.445600603375
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 16 9 6 24.001]
+
+
+ 587.396327771719
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 16 9 16 11.841]
+
+
+ 2174.62291009043
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 16 9 52 26.927]
+
+
+ 2377.4670163617
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2018 6 16 10 32 4.843]
+
+
+ 2235.61382371424
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 16 11 9 21.248]
+
+
+ 2149.21909575923
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2018 6 16 11 45 10.943]
+
+
+ 6045.00803782083
+ whole sqw file generation
+ [2018 6 18 21 55 53.396]
+
+
+ 7.58296930219253
+ small memory based 1D cut in non-axis aligned direction 1
+ [2018 6 18 21 56 1.526]
+
+
+ 14.7180376023144
+ small memory based 1D cut in non-axis aligned direction 2
+ [2018 6 18 21 56 16.244]
+
+
+ 8.24904696349359
+ small memory based 1D cut in non-axis aligned direction 3
+ [2018 6 18 21 56 24.494]
+
+
+ 3.20822945450621
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2018 6 18 21 56 27.702]
+
+
+ 563.592097726552
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 18 22 5 52.754]
+
+
+ 669.141198392502
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 18 22 17 1.906]
+
+
+ 609.693090460497
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 18 22 27 11.608]
+
+
+ 586.887226496567
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2018 6 18 22 36 58.504]
+
+
+ 4434.32813591555
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 18 23 50 52.932]
+
+
+ 4598.55505395739
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2018 6 19 1 7 32.697]
+
+
+ 4544.96023402617
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 6 19 2 23 18.887]
+
+
+ 4439.77941302089
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2018 6 19 3 37 19.92]
+
+
+
+
+
+ 352.827548
+ whole sqw file generation
+ [2018 6 21 10 27 1.208812]
+
+
+ 283.547536
+ whole sqw file generation
+ [2018 6 21 11 25 55.072464]
+
+
+ 254.934048
+ whole sqw file generation
+ [2018 6 21 12 11 6.301359]
+
+
+ 260.923057
+ whole sqw file generation
+ [2018 6 21 13 5 39.799325]
+
+
+ 266.170116
+ whole sqw file generation
+ [2018 6 21 14 2 6.101395]
+
+
+ 265.239976
+ whole sqw file generation
+ [2018 6 21 15 52 24.178905]
+
+
+ 440.452671
+ whole sqw file generation
+ [2018 6 21 16 30 22.787302]
+
+
+ 245.213099
+ whole sqw file generation
+ [2018 6 21 17 50 21.724114]
+
+
+ 228.247387
+ whole sqw file generation
+ [2018 6 21 18 3 27.390375]
+
+
+
+
+
+ 1939.337711
+ whole sqw file generation
+ [2018 9 20 15 39 13.210396]
+
+
+ 557.848706
+ whole sqw file generation
+ [2018 9 20 15 50 36.905163]
+
+
+ 288.076396
+ whole sqw file generation
+ [2018 9 20 16 6 49.459222]
+
+
+ 268.338491
+ whole sqw file generation
+ [2018 9 20 16 12 2.721499]
+
+
+ 306.781138
+ whole sqw file generation
+ [2018 9 20 16 17 59.608481]
+
+
+
+
+ 176.566433
+ whole sqw file generation
+ [2018 9 26 17 38 24.71337]
+
+
+ 0.839655
+ small memory based 1D cut in non-axis aligned direction 1
+ [2018 9 26 17 38 27.307025]
+
+
+ 0.485078
+ small memory based 1D cut in non-axis aligned direction 2
+ [2018 9 26 17 38 28.005875]
+
+
+ 0.437313
+ small memory based 1D cut in non-axis aligned direction 3
+ [2018 9 26 17 38 28.683096]
+
+
+ 0.365594
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2018 9 26 17 38 29.317309]
+
+
+ 6.699144
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 26 17 38 36.229787]
+
+
+ 6.593909
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 26 17 38 42.824612]
+
+
+ 8.414354
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 26 17 38 51.495107]
+
+
+ 5.555965
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 26 17 38 57.052155]
+
+
+ 653.037222
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 9 26 17 49 50.094926]
+
+
+ 119.540576
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2018 9 26 17 51 51.201965]
+
+
+ 64.561181
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 9 26 17 52 57.424553]
+
+
+ 81.998733
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2018 9 26 17 54 20.339464]
+
+
+
+
+ 503.611363
+ whole sqw file generation
+ [2018 9 26 14 15 42.590341]
+
+
+ 5.067794
+ small memory based 1D cut in non-axis aligned direction 1
+ [2018 9 26 14 15 51.404954]
+
+
+ 1.205744
+ small memory based 1D cut in non-axis aligned direction 2
+ [2018 9 26 14 15 52.779401]
+
+
+ 0.951936
+ small memory based 1D cut in non-axis aligned direction 3
+ [2018 9 26 14 15 53.965473]
+
+
+ 0.843857
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2018 9 26 14 15 55.066236]
+
+
+ 49.420273
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 26 14 16 45.288871]
+
+
+ 45.386182
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 26 14 17 31.932325]
+
+
+ 41.490381
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 26 14 18 13.619415]
+
+
+ 35.142643
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 26 14 18 49.956683]
+
+
+
+
+
+ 86.081466
+ whole sqw file generation
+ [2018 9 27 10 38 29.927325]
+
+
+ 1.876971
+ small memory based 1D cut in non-axis aligned direction 1
+ [2018 9 27 10 38 33.449436]
+
+
+ 0.561829
+ small memory based 1D cut in non-axis aligned direction 2
+ [2018 9 27 10 38 34.227037]
+
+
+ 0.478438
+ small memory based 1D cut in non-axis aligned direction 3
+ [2018 9 27 10 38 34.871738]
+
+
+ 0.396749
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2018 9 27 10 38 35.45258]
+
+
+ 5.954419
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 27 10 38 41.875309]
+
+
+ 5.636303
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 27 10 38 47.692113]
+
+
+ 7.666804
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 27 10 38 55.533447]
+
+
+ 5.553034
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 27 10 39 1.267454]
+
+
+ 24.719926
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 9 27 10 39 26.177616]
+
+
+ 51.097204
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2018 9 27 10 40 17.459619]
+
+
+ 145.534413
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 9 27 10 42 44.217596]
+
+
+ 116.820975
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2018 9 27 10 44 42.921485]
+
+
+
+
+ 815.748016
+ whole sqw file generation
+ [2018 9 27 10 58 22.04073]
+
+
+ 22.717454
+ small memory based 1D cut in non-axis aligned direction 1
+ [2018 9 27 10 58 52.334846]
+
+
+ 5.950516
+ small memory based 1D cut in non-axis aligned direction 2
+ [2018 9 27 10 58 58.679405]
+
+
+ 1.817509
+ small memory based 1D cut in non-axis aligned direction 3
+ [2018 9 27 10 59 0.789252]
+
+
+ 0.864035
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2018 9 27 10 59 1.912469]
+
+
+ 491.452011
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 27 11 7 14.091774]
+
+
+ 300.374264
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 27 11 12 16.644747]
+
+
+ 132.605803
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 27 11 14 31.346145]
+
+
+ 28.307777
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 27 11 15 0.889173]
+
+
+ 2804.92324
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 9 27 12 1 46.091114]
+
+
+ 3482.937658
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2018 9 27 12 59 51.685963]
+
+
+ 3375.317688
+ large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
+ [2018 9 27 13 56 14.591097]
+
+
+ 3450.573954
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2018 9 27 14 53 50.868187]
+
+
+
+
+
+ 101.238683
+ whole sqw file generation
+ [2018 9 28 13 7 19.509309]
+
+
+ 0.797652
+ small memory based 1D cut in non-axis aligned direction 1
+ [2018 9 28 13 7 21.025775]
+
+
+ 0.686096
+ small memory based 1D cut in non-axis aligned direction 2
+ [2018 9 28 13 7 22.363469]
+
+
+ 0.750574
+ small memory based 1D cut in non-axis aligned direction 3
+ [2018 9 28 13 7 23.719673]
+
+
+ 0.831096
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2018 9 28 13 7 25.125957]
+
+
+ 28.871411
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 28 13 7 54.992317]
+
+
+ 27.976064
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 28 13 8 23.619671]
+
+
+ 33.691722
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 28 13 8 57.927743]
+
+
+ 26.348071
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 28 13 9 24.938411]
+
+
+ 75.913509
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 9 28 13 10 41.533608]
+
+
+ 78.053113
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2018 9 28 13 12 0.230212]
+
+
+ 84.294407
+ large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
+ [2018 9 28 13 13 25.319378]
+
+
+ 64.78216
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2018 9 28 13 14 30.74741]
+
+
+
+
+ 312.839443
+ performance of the tmp-files combine procedure
+ [2018 7 6 11 8 12.610498]
+
+
+ 240.826789
+ whole sqw file generation
+ [2018 9 28 13 18 53.842277]
+
+
+ 2.174581
+ small memory based 1D cut in non-axis aligned direction 1
+ [2018 9 28 13 18 56.613789]
+
+
+ 12.116586
+ small memory based 1D cut in non-axis aligned direction 2
+ [2018 9 28 13 19 9.331429]
+
+
+ 4.798738
+ small memory based 1D cut in non-axis aligned direction 3
+ [2018 9 28 13 19 15.015245]
+
+
+ 1.210076
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2018 9 28 13 19 16.848965]
+
+
+ 183.972872
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 28 13 22 22.050255]
+
+
+ 174.699505
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 28 13 25 17.363336]
+
+
+ 130.819881
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 28 13 27 28.810441]
+
+
+ 111.35266
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 28 13 29 20.811339]
+
+
+ 596.356193
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 9 28 13 39 17.811081]
+
+
+ 427.968573
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2018 9 28 13 46 26.537612]
+
+
+ 389.796031
+ large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
+ [2018 9 28 13 52 57.063978]
+
+
+ 360.976703
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2018 9 28 13 58 58.685097]
+
+
+ 73.141038
+ performance of the tmp-files combine procedure
+ [2018 9 28 14 2 41.664294]
+
+
+
+
+ 1033.637482
+ whole sqw file generation
+ [2018 9 28 14 20 9.254375]
+
+
+ 12.927324
+ small memory based 1D cut in non-axis aligned direction 1
+ [2018 9 28 14 20 23.10014]
+
+
+ 38.096308
+ small memory based 1D cut in non-axis aligned direction 2
+ [2018 9 28 14 21 1.860401]
+
+
+ 14.444515
+ small memory based 1D cut in non-axis aligned direction 3
+ [2018 9 28 14 21 16.984153]
+
+
+ 4.521745
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2018 9 28 14 21 22.165832]
+
+
+ 1322.279897
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 28 14 43 26.806801]
+
+
+ 1387.531131
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 28 15 6 35.203207]
+
+
+ 825.753014
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 28 15 20 21.913675]
+
+
+ 700.341196
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2018 9 28 15 32 2.937933]
+
+
+ 2558.317614
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 9 28 16 14 41.980211]
+
+
+ 2867.158164
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2018 9 28 17 2 30.024324]
+
+
+ 2866.464098
+ large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
+ [2018 9 28 17 50 17.762239]
+
+
+ 3371.686919
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2018 9 28 18 47 2.576702]
+
+
+ 2212.095796
+ whole sqw file generation
+ [2020 5 4 21 53 30.322488]
+
+
+
+
+
+ 63.732373
+ whole sqw file generation
+ [2018 10 2 12 22 12.091598]
+
+
+ 1.722002
+ small memory based 1D cut in non-axis aligned direction 1
+ [2018 10 2 12 22 14.856796]
+
+
+ 0.52436
+ small memory based 1D cut in non-axis aligned direction 2
+ [2018 10 2 12 22 15.87825]
+
+
+ 0.49395
+ small memory based 1D cut in non-axis aligned direction 3
+ [2018 10 2 12 22 16.906561]
+
+
+ 0.389828
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2018 10 2 12 22 17.800875]
+
+
+ 5.662735
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 10 2 12 22 24.142412]
+
+
+ 5.679151
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 10 2 12 22 30.319546]
+
+
+ 6.340497
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 10 2 12 22 37.162529]
+
+
+ 5.627124
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2018 10 2 12 22 43.288976]
+
+
+ 27.15797
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 10 2 12 23 10.926636]
+
+
+ 28.62873
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2018 10 2 12 23 40.227915]
+
+
+ 178.608188
+ large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
+ [2018 10 2 12 26 39.746845]
+
+
+ 26.587102
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2018 10 2 12 27 7.288886]
+
+
+
+
+ 134.425342
+ whole sqw file generation
+ [2018 10 2 12 29 36.555813]
+
+
+ 0.902002
+ small memory based 1D cut in non-axis aligned direction 1
+ [2018 10 2 12 29 38.379263]
+
+
+ 1.042517
+ small memory based 1D cut in non-axis aligned direction 2
+ [2018 10 2 12 29 40.062852]
+
+
+ 0.818659
+ small memory based 1D cut in non-axis aligned direction 3
+ [2018 10 2 12 29 41.373637]
+
+
+ 0.782689
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2018 10 2 12 29 42.711885]
+
+
+ 29.020796
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 10 2 12 30 12.635469]
+
+
+ 35.027705
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 10 2 12 30 48.146901]
+
+
+ 33.072049
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 10 2 12 31 22.230682]
+
+
+ 27.339543
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2018 10 2 12 31 50.065216]
+
+
+ 168.273166
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 10 2 12 34 39.22747]
+
+
+ 203.101244
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2018 10 2 12 38 3.271079]
+
+
+ 226.516673
+ large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
+ [2018 10 2 12 41 50.737076]
+
+
+ 148.260979
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2018 10 2 12 44 19.914427]
+
+
+ 88.506984
+ performance of the tmp-files combine procedure
+ [2018 10 2 12 45 56.364224]
+
+
+
+
+ 846.121918
+ whole sqw file generation
+ [2018 10 2 13 1 20.564572]
+
+
+ 10.485779
+ small memory based 1D cut in non-axis aligned direction 1
+ [2018 10 2 13 1 33.020543]
+
+
+ 29.366102
+ small memory based 1D cut in non-axis aligned direction 2
+ [2018 10 2 13 2 2.972816]
+
+
+ 11.429862
+ small memory based 1D cut in non-axis aligned direction 3
+ [2018 10 2 13 2 14.955207]
+
+
+ 2.887145
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2018 10 2 13 2 18.358423]
+
+
+ 731.963577
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 10 2 13 14 32.16017]
+
+
+ 694.147223
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 10 2 13 26 7.178176]
+
+
+ 624.817088
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2018 10 2 13 36 32.902492]
+
+
+ 543.059481
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2018 10 2 13 45 36.842951]
+
+
+ 1918.744175
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2018 10 2 14 17 36.637245]
+
+
+ 1891.14147
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2018 10 2 14 49 8.949297]
+
+
+ 1816.039894
+ large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
+ [2018 10 2 15 19 26.225944]
+
+
+ 5268.178321
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2018 10 2 16 47 16.320757]
+
+
+
+
+
+ 79.886261
+ whole sqw file generation
+ [2019 5 22 12 58 57.07777]
+
+
+ 0.542699
+ small memory based 1D cut in non-axis aligned direction 1
+ [2019 5 22 12 58 58.694148]
+
+
+ 0.57345
+ small memory based 1D cut in non-axis aligned direction 2
+ [2019 5 22 12 59 0.088025]
+
+
+ 0.584385
+ small memory based 1D cut in non-axis aligned direction 3
+ [2019 5 22 12 59 1.633284]
+
+
+ 0.50883
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2019 5 22 12 59 2.876837]
+
+
+ 7.329362
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2019 5 22 12 59 11.262793]
+
+
+ 7.859275
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2019 5 22 12 59 19.859639]
+
+
+ 8.397392
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2019 5 22 12 59 28.968273]
+
+
+ 7.016319
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2019 5 22 12 59 36.698962]
+
+
+ 39.458084
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2019 5 22 13 0 16.859088]
+
+
+ 42.983196
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2019 5 22 13 1 0.578707]
+
+
+ 48.979452
+ large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
+ [2019 5 22 13 1 50.331256]
+
+
+ 36.447188
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2019 5 22 13 2 27.535763]
+
+
+
+
+ 809.215494
+ whole sqw file generation
+ [2019 5 22 13 16 25.067886]
+
+
+ 3.134759
+ small memory based 1D cut in non-axis aligned direction 1
+ [2019 5 22 13 16 31.937996]
+
+
+ 10.545194
+ small memory based 1D cut in non-axis aligned direction 2
+ [2019 5 22 13 16 43.254783]
+
+
+ 5.758744
+ small memory based 1D cut in non-axis aligned direction 3
+ [2019 5 22 13 16 49.774437]
+
+
+ 1.074346
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2019 5 22 13 16 51.624154]
+
+
+ 118.646339
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2019 5 22 13 18 51.527622]
+
+
+ 99.225057
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2019 5 22 13 20 31.478133]
+
+
+ 56.44501
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2019 5 22 13 21 28.683487]
+
+
+ 35.897868
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2019 5 22 13 22 5.335246]
+
+
+ 499.422569
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2019 5 22 13 30 25.500682]
+
+
+ 587.289264
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2019 5 22 13 40 14.719483]
+
+
+ 537.860648
+ large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
+ [2019 5 22 13 49 16.214707]
+
+
+ 432.896846
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2019 5 22 13 56 30.041509]
+
+
+ 425.819959
+ performance of the tmp-files combine procedure
+ [2019 5 22 14 3 44.446144]
+
+
+ 803.73952
+ whole sqw file generation
+ [2019 7 16 14 25 8.794333]
+
+
+ 819.736159
+ whole sqw file generation
+ [2019 7 16 15 10 39.051073]
+
+
+ 693.034723
+ whole sqw file generation
+ [2019 7 16 15 22 16.639388]
+
+
+ 667.242863
+ whole sqw file generation
+ [2019 7 16 15 33 26.9294]
+
+
+ 730.035408
+ whole sqw file generation
+ [2019 7 16 15 45 42.610362]
+
+
+ 713.365642
+ whole sqw file generation
+ [2019 7 16 15 57 39.797344]
+
+
+ 1909.992739
+ whole sqw file generation
+ [2019 7 16 16 29 34.287299]
+
+
+ 2827.568505
+ whole sqw file generation
+ [2019 7 16 17 17 26.238498]
+
+
+ 2305.743257
+ whole sqw file generation
+ [2019 7 16 17 56 11.820611]
+
+
+ 376.792128
+ performance of the tmp-files combine procedure
+ [2019 7 17 17 34 4.388177]
+
+
+ 408.023812
+ performance of the tmp-files combine procedure
+ [2019 7 17 17 40 53.657224]
+
+
+ 653.614958
+ performance of the tmp-files combine procedure
+ [2019 7 17 17 51 49.871471]
+
+
+ 776.690457
+ performance of the tmp-files combine procedure
+ [2019 7 17 18 4 48.555905]
+
+
+ 779.603034
+ performance of the tmp-files combine procedure
+ [2019 7 17 18 17 51.357289]
+
+
+ 720.25436
+ performance of the tmp-files combine procedure
+ [2019 7 17 18 29 52.800274]
+
+
+ 697.516411
+ performance of the tmp-files combine procedure
+ [2019 7 17 18 41 32.286073]
+
+
+ 597.742346
+ performance of the tmp-files combine procedure
+ [2019 7 17 18 51 31.610347]
+
+
+ 521.394432
+ performance of the tmp-files combine procedure
+ [2019 7 17 19 0 17.227559]
+
+
+
+
+ 4509.011461
+ whole sqw file generation
+ [2019 5 22 15 22 35.307652]
+
+
+ 11.929544
+ small memory based 1D cut in non-axis aligned direction 1
+ [2019 5 22 15 22 49.551487]
+
+
+ 28.935567
+ small memory based 1D cut in non-axis aligned direction 2
+ [2019 5 22 15 23 19.241499]
+
+
+ 13.950057
+ small memory based 1D cut in non-axis aligned direction 3
+ [2019 5 22 15 23 33.948068]
+
+
+ 4.244292
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2019 5 22 15 23 38.947659]
+
+
+ 651.214695
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2019 5 22 15 34 32.617095]
+
+
+ 704.3381
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2019 5 22 15 46 17.719443]
+
+
+ 677.782591
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2019 5 22 15 57 36.309235]
+
+
+ 698.143762
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2019 5 22 16 9 15.255445]
+
+
+ 3791.94072
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2019 5 22 17 12 28.056935]
+
+
+ 3827.057332
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2019 5 22 18 16 17.99922]
+
+
+ 3656.176791
+ large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
+ [2019 5 22 19 17 16.428407]
+
+
+ 4541.914016
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2019 5 22 20 32 59.647295]
+
+
+
+
+ 38.51548
+ whole sqw file generation
+ [2019 7 16 12 50 10.476884]
+
+
+ 55.083464
+ whole sqw file generation
+ [2019 7 16 12 52 5.14253]
+
+
+ 55.240706
+ whole sqw file generation
+ [2019 7 16 12 53 0.734015]
+
+
+ 58.034669
+ whole sqw file generation
+ [2019 7 16 12 51 8.861853]
+
+
+ 46.544452
+ whole sqw file generation
+ [2019 7 16 12 53 47.639236]
+
+
+ 51.45903
+ whole sqw file generation
+ [2019 7 16 12 54 40.264167]
+
+
+ 50.9584
+ whole sqw file generation
+ [2019 7 16 12 55 32.414904]
+
+
+ 51.542837
+ whole sqw file generation
+ [2019 7 16 12 56 25.121158]
+
+
+ 46.486941
+ whole sqw file generation
+ [2019 7 16 12 57 12.761242]
+
+
+ 46.820272
+ whole sqw file generation
+ [2019 7 16 12 58 0.739055]
+
+
+ 29.143289
+ performance of the tmp-files combine procedure
+ [2019 7 17 13 41 39.937883]
+
+
+ 7.901716
+ performance of the tmp-files combine procedure
+ [2019 7 17 13 43 29.21725]
+
+
+ 5.287909
+ performance of the tmp-files combine procedure
+ [2019 7 17 13 44 34.657423]
+
+
+ 10.951501
+ performance of the tmp-files combine procedure
+ [2019 7 17 13 45 5.772702]
+
+
+ 5.626505
+ performance of the tmp-files combine procedure
+ [2019 7 17 13 45 16.487014]
+
+
+ 5.584067
+ performance of the tmp-files combine procedure
+ [2019 7 17 13 45 22.938375]
+
+
+ 5.579993
+ performance of the tmp-files combine procedure
+ [2019 7 17 13 45 29.35584]
+
+
+ 5.618698
+ performance of the tmp-files combine procedure
+ [2019 7 17 13 45 35.803233]
+
+
+ 5.631005
+ performance of the tmp-files combine procedure
+ [2019 7 17 13 45 42.264742]
+
+
+ 5.672947
+ performance of the tmp-files combine procedure
+ [2019 7 17 13 45 48.772495]
+
+
+
+
+
+
+ 68.902094
+ whole sqw file generation
+ [2019 7 17 14 8 52.049367]
+
+
+ 115.21413
+ whole sqw file generation
+ [2019 7 17 14 10 51.216806]
+
+
+ 80.806949
+ whole sqw file generation
+ [2019 7 17 14 12 13.658608]
+
+
+ 80.247251
+ whole sqw file generation
+ [2019 7 17 14 13 36.43051]
+
+
+ 77.865051
+ whole sqw file generation
+ [2019 7 17 14 14 55.821486]
+
+
+ 88.245225
+ whole sqw file generation
+ [2019 7 17 14 16 26.126182]
+
+
+ 66.832439
+ whole sqw file generation
+ [2019 7 17 14 17 34.438206]
+
+
+ 66.012501
+ whole sqw file generation
+ [2019 7 17 14 18 41.912985]
+
+
+ 67.605412
+ whole sqw file generation
+ [2019 7 17 14 19 51.563044]
+
+
+ 70.560972
+ whole sqw file generation
+ [2019 7 17 14 21 3.58414]
+
+
+ 43.086904
+ performance of the tmp-files combine procedure
+ [2019 7 17 14 21 51.8585]
+
+
+ 21.027099
+ performance of the tmp-files combine procedure
+ [2019 7 17 14 22 14.004524]
+
+
+ 13.364578
+ performance of the tmp-files combine procedure
+ [2019 7 17 14 22 28.464727]
+
+
+ 10.142027
+ performance of the tmp-files combine procedure
+ [2019 7 17 14 22 39.66727]
+
+
+ 18.574754
+ performance of the tmp-files combine procedure
+ [2019 7 17 14 22 59.299474]
+
+
+ 17.410379
+ performance of the tmp-files combine procedure
+ [2019 7 17 14 23 18.260121]
+
+
+ 16.341324
+ performance of the tmp-files combine procedure
+ [2019 7 17 14 23 36.47872]
+
+
+ 14.998322
+ performance of the tmp-files combine procedure
+ [2019 7 17 14 23 53.402666]
+
+
+ 13.615178
+ performance of the tmp-files combine procedure
+ [2019 7 17 14 24 8.772248]
+
+
+
+
+ 518.144202
+ whole sqw file generation
+ [2019 7 17 14 50 26.382142]
+
+
+ 648.412031
+ whole sqw file generation
+ [2019 7 17 15 1 16.457274]
+
+
+ 417.644765
+ whole sqw file generation
+ [2019 7 17 15 8 16.190422]
+
+
+ 299.641541
+ whole sqw file generation
+ [2019 7 17 15 13 17.972339]
+
+
+ 272.803076
+ whole sqw file generation
+ [2019 7 17 15 17 52.521346]
+
+
+ 292.058748
+ whole sqw file generation
+ [2019 7 17 15 22 46.92283]
+
+
+ 335.190146
+ whole sqw file generation
+ [2019 7 17 15 28 24.461873]
+
+
+ 367.259398
+ whole sqw file generation
+ [2019 7 17 15 34 34.221864]
+
+
+ 315.750386
+ whole sqw file generation
+ [2019 7 17 15 40 3.481758]
+
+
+ 364.770615
+ whole sqw file generation
+ [2019 7 17 15 46 20.644724]
+
+
+ 411.477615
+ performance of the tmp-files combine procedure
+ [2019 7 17 15 53 24.003618]
+
+
+ 87.217659
+ performance of the tmp-files combine procedure
+ [2019 7 17 15 54 52.661857]
+
+
+ 87.744217
+ performance of the tmp-files combine procedure
+ [2019 7 17 15 56 21.629066]
+
+
+ 74.82789
+ performance of the tmp-files combine procedure
+ [2019 7 17 15 57 38.096735]
+
+
+ 83.322238
+ performance of the tmp-files combine procedure
+ [2019 7 17 15 59 2.528416]
+
+
+ 69.461426
+ performance of the tmp-files combine procedure
+ [2019 7 17 16 0 13.14778]
+
+
+ 74.240727
+ performance of the tmp-files combine procedure
+ [2019 7 17 16 1 28.624209]
+
+
+ 86.172403
+ performance of the tmp-files combine procedure
+ [2019 7 17 16 2 56.19077]
+
+
+ 99.21681
+ performance of the tmp-files combine procedure
+ [2019 7 17 16 4 47.558328]
+
+
+
+
+
+
+ 501.751482
+ whole sqw file generation
+ [2019 7 16 13 19 13.081771]
+
+
+ 509.179147
+ whole sqw file generation
+ [2019 7 16 13 27 45.616389]
+
+
+ 469.014134
+ whole sqw file generation
+ [2019 7 16 13 35 37.316824]
+
+
+ 474.485073
+ whole sqw file generation
+ [2019 7 17 10 44 48.483544]
+
+
+ 507.305083
+ whole sqw file generation
+ [2019 7 17 11 56 55.070455]
+
+
+ 416.322954
+ whole sqw file generation
+ [2019 7 17 12 3 56.543698]
+
+
+ 386.817107
+ whole sqw file generation
+ [2019 7 16 15 35 23.180427]
+
+
+ 420.714787
+ whole sqw file generation
+ [2019 7 17 12 10 58.215468]
+
+
+ 249.191538
+ performance of the tmp-files combine procedure
+ [2019 7 17 14 18 18.371943]
+
+
+ 136.470683
+ performance of the tmp-files combine procedure
+ [2019 7 17 14 20 36.631869]
+
+
+ 143.776852
+ performance of the tmp-files combine procedure
+ [2019 7 17 14 23 2.008306]
+
+
+ 153.822676
+ performance of the tmp-files combine procedure
+ [2019 7 17 14 25 37.588726]
+
+
+ 138.836327
+ performance of the tmp-files combine procedure
+ [2019 7 17 14 27 58.084239]
+
+
+ 146.917486
+ performance of the tmp-files combine procedure
+ [2019 7 17 14 30 26.732337]
+
+
+ 161.796551
+ performance of the tmp-files combine procedure
+ [2019 7 17 14 33 9.883987]
+
+
+ 167.777174
+ performance of the tmp-files combine procedure
+ [2019 7 17 14 36 44.307218]
+
+
+ 149.387816
+ performance of the tmp-files combine procedure
+ [2019 7 17 14 39 37.96956]
+
+
+
+
+ 183.042053073319
+ whole sqw file generation
+ [2019 7 17 12 34 4.619]
+
+
+ 99.6553730527919
+ whole sqw file generation
+ [2019 7 17 12 38 17.463]
+
+
+ 134.580932673366
+ whole sqw file generation
+ [2019 7 17 12 40 33.26]
+
+
+ 131.9240174152
+ whole sqw file generation
+ [2019 7 17 12 42 46.355]
+
+
+ 145.823728706938
+ whole sqw file generation
+ [2019 7 17 13 3 33.029]
+
+
+ 124.918789875346
+ whole sqw file generation
+ [2019 7 17 13 5 42.088]
+
+
+
+
+ 143.586897213899
+ whole sqw file generation
+ [2019 7 17 13 20 39.051]
+
+
+ 199.137535384972
+ whole sqw file generation
+ [2019 7 17 13 23 59.962]
+
+
+ 150.749321436257
+ whole sqw file generation
+ [2019 7 17 13 26 32.619]
+
+
+ 124.531845978115
+ whole sqw file generation
+ [2019 7 17 13 28 38.578]
+
+
+ 110.649172446902
+ whole sqw file generation
+ [2019 7 17 13 30 31.029]
+
+
+ 102.469224096545
+ whole sqw file generation
+ [2019 7 17 13 32 14.644]
+
+
+ 119.872675352194
+ whole sqw file generation
+ [2019 7 17 13 34 16.707]
+
+
+ 129.890760673432
+ whole sqw file generation
+ [2019 7 17 13 36 28.255]
+
+
+ 144.928134818812
+ whole sqw file generation
+ [2019 7 17 13 38 58.31]
+
+
+ 171.049210190872
+ whole sqw file generation
+ [2019 7 17 13 41 53.906]
+
+
+
+
+
+
+ 938.857086
+ whole sqw file generation
+ [2019 7 17 18 31 34.404487]
+
+
+ 661.988997
+ whole sqw file generation
+ [2019 7 17 18 42 46.121453]
+
+
+ 545.466816
+ whole sqw file generation
+ [2019 7 17 18 51 53.490046]
+
+
+ 753.080147
+ whole sqw file generation
+ [2019 7 17 15 34 9.188083]
+
+
+ 497.329568
+ whole sqw file generation
+ [2019 7 17 19 0 12.074394]
+
+
+ 694.534157
+ whole sqw file generation
+ [2019 7 17 19 11 59.512082]
+
+
+ 763.167765
+ whole sqw file generation
+ [2019 7 17 19 25 3.525436]
+
+
+ 724.539261
+ whole sqw file generation
+ [2019 7 17 19 37 42.698468]
+
+
+ 529.363347
+ whole sqw file generation
+ [2019 7 17 16 17 34.752542]
+
+
+ 928.19213
+ whole sqw file generation
+ [2019 7 17 16 33 24.45706]
+
+
+ 658.869942
+ whole sqw file generation
+ [2019 7 17 16 44 54.551266]
+
+
+ 294.377405
+ performance of the tmp-files combine procedure
+ [2019 7 17 16 50 12.258303]
+
+
+ 95.707908
+ performance of the tmp-files combine procedure
+ [2019 7 17 16 51 50.666766]
+
+
+ 257.895869
+ performance of the tmp-files combine procedure
+ [2019 7 17 16 56 11.088262]
+
+
+ 199.941027
+ performance of the tmp-files combine procedure
+ [2019 7 17 16 59 33.509749]
+
+
+ 143.617905
+ performance of the tmp-files combine procedure
+ [2019 7 17 17 1 59.710466]
+
+
+ 370.344874
+ performance of the tmp-files combine procedure
+ [2019 7 17 17 8 16.892882]
+
+
+ 296.807564
+ performance of the tmp-files combine procedure
+ [2019 7 17 17 13 17.669436]
+
+
+ 177.122027
+ performance of the tmp-files combine procedure
+ [2019 7 17 17 16 16.442419]
+
+
+ 504.278019
+ performance of the tmp-files combine procedure
+ [2019 7 17 17 24 44.871803]
+
+
+ 491.367185
+ performance of the tmp-files combine procedure
+ [2019 7 17 17 53 51.144917]
+
+
+
+
+
+ 201.18399
+ whole sqw file generation
+ [2020 4 21 10 32 22.362145]
+
+
+ 1.874405
+ small memory based 1D cut in non-axis aligned direction 1
+ [2020 4 21 10 32 25.648808]
+
+
+ 0.545979
+ small memory based 1D cut in non-axis aligned direction 2
+ [2020 4 21 10 32 26.752512]
+
+
+ 0.488856
+ small memory based 1D cut in non-axis aligned direction 3
+ [2020 4 21 10 32 27.760756]
+
+
+ 0.415896
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2020 4 21 10 32 28.747238]
+
+
+ 6.211973
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2020 4 21 10 32 35.772075]
+
+
+
+
+ 689.638454
+ whole sqw file generation
+ [2020 4 21 10 47 14.092582]
+
+
+ 5.475905
+ small memory based 1D cut in non-axis aligned direction 1
+ [2020 4 21 10 47 21.205623]
+
+
+ 1.682
+ small memory based 1D cut in non-axis aligned direction 2
+ [2020 4 21 10 47 26.712057]
+
+
+ 0.995129
+ small memory based 1D cut in non-axis aligned direction 3
+ [2020 4 21 10 47 31.09614]
+
+
+ 0.623344
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2020 4 21 10 47 32.395005]
+
+
+ 76.016984
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2020 4 21 10 48 49.322888]
+
+
+ 49.631907
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2020 4 21 10 49 40.060562]
+
+
+ 1108.389657
+ whole sqw file generation
+ [2020 4 21 11 16 23.635784]
+
+
+ 1522.967328
+ whole sqw file generation
+ [2020 4 21 11 41 47.885794]
+
+
+ 2020.562451
+ whole sqw file generation
+ [2020 4 21 12 16 3.3705]
+
+
+ 1988.939533
+ whole sqw file generation
+ [2020 4 21 12 49 14.401371]
+
+
+ 2236.444416
+ whole sqw file generation
+ [2020 4 21 13 27 7.824067]
+
+
+ 680.650687
+ performance of the tmp-files combine procedure
+ [2020 4 21 13 39 6.542542]
+
+
+ 740.129803
+ performance of the tmp-files combine procedure
+ [2020 4 21 13 51 31.669244]
+
+
+ 707.479143
+ performance of the tmp-files combine procedure
+ [2020 4 21 14 3 21.530788]
+
+
+ 634.196556
+ performance of the tmp-files combine procedure
+ [2020 4 21 14 13 57.37213]
+
+
+ 621.21472
+ performance of the tmp-files combine procedure
+ [2020 4 21 14 24 22.507575]
+
+
+ 772.913334
+ performance of the tmp-files combine procedure
+ [2020 4 21 14 37 27.322522]
+
+
+ 490.844113
+ performance of the tmp-files combine procedure
+ [2020 4 21 14 45 54.542516]
+
+
+ 435.139937
+ performance of the tmp-files combine procedure
+ [2020 4 21 14 53 10.756114]
+
+
+ 522.3928
+ performance of the tmp-files combine procedure
+ [2020 4 21 15 2 3.797033]
+
+
+
+
+ 11823.589859
+ whole sqw file generation
+ [2020 4 23 15 36 17.22208]
+
+
+ 12522.032862
+ whole sqw file generation
+ [2020 4 23 19 5 50.317784]
+
+
+ 10432.505119
+ whole sqw file generation
+ [2020 4 23 22 0 15.686863]
+
+
+ 9016.736609
+ whole sqw file generation
+ [2020 4 24 2 7 45.821591]
+
+
+ 9486.36589
+ whole sqw file generation
+ [2020 4 24 4 46 30.947634]
+
+
+
+
+
+
+ 309.738872
+ whole sqw file generation
+ [2020 4 30 16 23 33.71256]
+
+
+ 428.738987
+ whole sqw file generation
+ [2020 4 30 16 30 44.191219]
+
+
+ 325.148681
+ whole sqw file generation
+ [2020 4 30 16 36 10.414983]
+
+
+ 372.173824
+ whole sqw file generation
+ [2020 4 30 16 42 23.861097]
+
+
+ 194.395254
+ whole sqw file generation
+ [2020 4 30 16 45 39.21093]
+
+
+ 205.465275
+ whole sqw file generation
+ [2020 4 30 16 49 6.142205]
+
+
+ 181.969448
+ performance of the tmp-files combine procedure
+ [2020 4 30 16 52 11.356963]
+
+
+ 63.069975
+ performance of the tmp-files combine procedure
+ [2020 4 30 16 53 15.003539]
+
+
+ 82.070733
+ performance of the tmp-files combine procedure
+ [2020 4 30 16 54 37.943404]
+
+
+ 58.559823
+ performance of the tmp-files combine procedure
+ [2020 4 30 16 55 37.263812]
+
+
+ 58.548919
+ performance of the tmp-files combine procedure
+ [2020 4 30 16 56 36.865096]
+
+
+ 70.449209
+ performance of the tmp-files combine procedure
+ [2020 4 30 16 57 47.933584]
+
+
+ 54.853658
+ performance of the tmp-files combine procedure
+ [2020 4 30 16 58 52.022743]
+
+
+ 70.153242
+ performance of the tmp-files combine procedure
+ [2020 4 30 17 0 3.736113]
+
+
+ 53.885278
+ performance of the tmp-files combine procedure
+ [2020 4 30 17 0 58.700472]
+
+
+
+
+ 2434.798518
+ whole sqw file generation
+ [2020 4 30 17 49 22.310421]
+
+
+ 2707.212954
+ whole sqw file generation
+ [2020 4 30 18 34 31.893914]
+
+
+ 2173.28866
+ whole sqw file generation
+ [2020 5 1 17 50 25.682681]
+
+
+ 2044.788267
+ whole sqw file generation
+ [2020 5 1 18 24 33.073652]
+
+
+ 2030.222352
+ whole sqw file generation
+ [2020 5 1 18 58 25.347656]
+
+
+ 1962.374383
+ whole sqw file generation
+ [2020 5 1 19 31 9.877927]
+
+
+ 1451.627067
+ performance of the tmp-files combine procedure
+ [2020 5 1 19 55 26.133719]
+
+
+ 1015.733692
+ performance of the tmp-files combine procedure
+ [2020 5 1 20 12 22.596077]
+
+
+ 1148.428696
+ performance of the tmp-files combine procedure
+ [2020 5 1 20 31 31.726476]
+
+
+ 1252.570105
+ performance of the tmp-files combine procedure
+ [2020 5 1 20 52 25.2395]
+
+
+ 1075.406059
+ performance of the tmp-files combine procedure
+ [2020 5 1 21 10 21.59124]
+
+
+ 1131.057859
+ performance of the tmp-files combine procedure
+ [2020 5 1 21 29 13.567435]
+
+
+ 1101.610753
+ performance of the tmp-files combine procedure
+ [2020 5 1 21 47 35.900081]
+
+
+ 1084.893654
+ performance of the tmp-files combine procedure
+ [2020 5 1 22 5 41.489906]
+
+
+ 1117.490041
+ performance of the tmp-files combine procedure
+ [2020 5 1 22 24 19.687747]
+
+
+
+
+
+
+ 2579.339004
+ whole sqw file generation
+ [2020 5 5 10 28 39.67682]
+
+
+ 2730.222332
+ whole sqw file generation
+ [2020 5 5 11 14 13.212553]
+
+
+ 1449.289501
+ whole sqw file generation
+ [2020 5 5 12 29 3.874575]
+
+
+ 1223.657781
+ whole sqw file generation
+ [2020 5 5 12 54 41.283676]
+
+
+ 1209.930274
+ whole sqw file generation
+ [2020 5 5 13 14 55.015524]
+
+
+ 1217.043274
+ whole sqw file generation
+ [2020 5 5 13 35 15.222849]
+
+
+ 567.549234
+ whole sqw file generation
+ [2020 5 5 19 21 14.062416]
+
+
+ 1257.356419
+ whole sqw file generation
+ [2020 5 5 21 3 22.944883]
+
+
+ 1362.166291
+ whole sqw file generation
+ [2020 5 5 21 26 8.944933]
+
+
+ 1350.629186
+ whole sqw file generation
+ [2020 5 5 21 48 43.079698]
+
+
+ 1166.679237
+ performance of the tmp-files combine procedure
+ [2020 5 5 22 8 14.712728]
+
+
+ 361.599821
+ performance of the tmp-files combine procedure
+ [2020 5 5 22 14 18.001292]
+
+
+ 303.49041
+ performance of the tmp-files combine procedure
+ [2020 5 5 22 19 23.114394]
+
+
+ 284.500051
+ performance of the tmp-files combine procedure
+ [2020 5 5 22 24 9.663979]
+
+
+
+
+
+ 95.0863674
+ whole sqw file generation
+ [2021 6 9 15 25 23.367]
+
+
+ 0.46045
+ small memory based 1D cut in non-axis aligned direction 1
+ [2021 6 9 15 25 23.828]
+
+
+ 0.4487759
+ small memory based 1D cut in non-axis aligned direction 2
+ [2021 6 9 15 25 24.277]
+
+
+ 0.451143
+ small memory based 1D cut in non-axis aligned direction 3
+ [2021 6 9 15 25 24.729]
+
+
+ 0.3850648
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2021 6 9 15 25 25.114]
+
+
+ 9.3026359
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2021 6 9 15 25 35.231]
+
+
+ 10.2489083
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2021 6 9 15 25 45.48]
+
+
+ 11.0363675
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2021 6 9 15 25 56.51]
+
+
+ 9.1873687
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2021 6 9 15 26 5.705]
+
+
+ 32.4748459
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2021 6 9 15 26 38.181]
+
+
+ 33.5339218
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2021 6 9 15 27 12.266]
+
+
+ 41.9314006
+ large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
+ [2021 6 9 15 27 54.729]
+
+
+ 33.4618468
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2021 6 9 15 28 28.769]
+
+
+
+
+ 516.3904859
+ whole sqw file generation
+ [2021 6 9 15 37 20.077]
+
+
+ 0.9014353
+ small memory based 1D cut in non-axis aligned direction 1
+ [2021 6 9 15 37 21.536]
+
+
+ 1.2160399
+ small memory based 1D cut in non-axis aligned direction 2
+ [2021 6 9 15 37 23.287]
+
+
+ 0.8981015
+ small memory based 1D cut in non-axis aligned direction 3
+ [2021 6 9 15 37 24.171]
+
+
+ 0.5611907
+ small memory based 1D cut along energy direction (q are not axis aligned)
+ [2021 6 9 15 37 24.732]
+
+
+ 55.5005532
+ large 1D cut direction 1 with whole dataset integration along 3 other directions. -nopix mode
+ [2021 6 9 15 38 20.59]
+
+
+ 66.8795665
+ large 1D cut direction 2 with whole dataset integration along 3 other directions. -nopix mode
+ [2021 6 9 15 39 27.458]
+
+
+ 65.0762518
+ large 1D cut direction 3 with whole dataset integration along 3 other directions. -nopix mode
+ [2021 6 9 15 40 32.547]
+
+
+ 57.5258582
+ large 1D cut along energy direction with whole dataset integration along 3 other directions. -nopix mode
+ [2021 6 9 15 41 30.073]
+
+
+ 221.3410977
+ large file-based 1D cut. Direction 1; Whole dataset integration along 3 other directions
+ [2021 6 9 15 45 11.416]
+
+
+ 256.7977594
+ large file-based 1D cut. Direction 2; Whole dataset integration along 3 other directions
+ [2021 6 9 15 49 28.787]
+
+
+ 251.3642226
+ large file-based 1D cut. Direction 3; Whole dataset integration along 3 other directions
+ [2021 6 9 15 53 40.748]
+
+
+ 220.4748572
+ large file-based 1D cut. Energy direction; Whole dataset integration along 3 other directions
+ [2021 6 9 15 57 21.978]
+
+
+ 104.8600304
+ performance of the tmp-files combine procedure
+ [2021 6 9 15 59 9.159]
+
+
+
+
+
+
+ 497.065661
+ whole sqw file generation
+ [2021 7 22 11 2 30.401453]
+
+
+ 527.950558
+ whole sqw file generation
+ [2021 7 22 11 48 43.286991]
+
+
+ 526.940898
+ whole sqw file generation
+ [2021 7 22 11 57 32.234514]
+
+
+ 450.783247
+ whole sqw file generation
+ [2021 7 22 12 5 4.746598]
+
+
+ 421.936312
+ whole sqw file generation
+ [2021 7 22 12 12 8.785468]
+
+
+ 412.57181
+ whole sqw file generation
+ [2021 7 22 12 19 4.317142]
+
+
+ 429.843792
+ whole sqw file generation
+ [2021 7 22 12 26 16.60771]
+
+
+ 445.487759
+ whole sqw file generation
+ [2021 7 22 12 33 44.149162]
+
+
+ 433.671953
+ whole sqw file generation
+ [2021 7 22 12 40 59.670816]
+
+
+ 438.254899
+ whole sqw file generation
+ [2021 7 22 12 48 20.13151]
+
+
+
+
+
+
+ 478.638048
+ whole sqw file generation
+ [2021 7 22 20 3 37.139622]
+
+
+ 470.29913
+ whole sqw file generation
+ [2021 7 22 20 39 58.105952]
+
+
+ 10269.758319
+ whole sqw file generation
+ [2021 7 22 23 31 9.808379]
+
+
+ 5414.187918
+ whole sqw file generation
+ [2021 7 23 1 1 25.317819]
+
+
+ 2120.677592
+ whole sqw file generation
+ [2021 7 23 1 36 51.20206]
+
+
+ 1882.889249
+ whole sqw file generation
+ [2021 7 23 2 8 16.038674]
+
+
+ 1587.433538
+ whole sqw file generation
+ [2021 7 23 2 34 45.39586]
+
+
+ 1494.767623
+ whole sqw file generation
+ [2021 7 23 2 59 41.904497]
+
+
+ 1279.104698
+ whole sqw file generation
+ [2021 7 23 3 21 2.842873]
+
+
+ 1048.57103
+ whole sqw file generation
+ [2021 7 23 3 38 33.269914]
+
+
+ 1024.818452
+ whole sqw file generation
+ [2021 7 23 3 55 39.821095]
+
+
+ 925.294871
+ whole sqw file generation
+ [2021 7 23 4 11 6.866426]
+
+
+ 880.054637
+ whole sqw file generation
+ [2021 7 23 4 25 48.743121]
+
+
+ 1013.743939
+ whole sqw file generation
+ [2021 7 23 22 14 37.901418]
+
+
+ 8461.512017
+ whole sqw file generation
+ [2021 7 24 0 36 35.125535]
+
+
+ 7027.406315
+ whole sqw file generation
+ [2021 7 24 2 35 9.839952]
+
+
+
\ No newline at end of file
diff --git a/_test/test_gen_sqw_for_powders/test_gen_sqw_powder.m b/_test/test_gen_sqw_for_powders/test_gen_sqw_powder.m
index bc6a9a71cd..3cedf9db79 100644
--- a/_test/test_gen_sqw_for_powders/test_gen_sqw_powder.m
+++ b/_test/test_gen_sqw_for_powders/test_gen_sqw_powder.m
@@ -123,7 +123,7 @@ function test_powder_cuts(this)
this.assertEqualToTolWithSave(w1,'ignore_str',true,'reltol',1.e-5)
this.assertEqualToTolWithSave(w2,'ignore_str',true,'reltol',1.e-5)
this.assertEqualToTolWithSave(w2rings,'ignore_str',true,'reltol',1.e-5)
- this.assertEqualToTolWithSave(w1rings,'ignore_str',true,'reltol',1.e-5)
+ this.assertEqualToTolWithSave(w1rings,'ignore_str',true,'abstol',3.e-5)
end
diff --git a/_test/test_gen_sqw_workflow/gen_sqw_accumulate_sqw_tests_common.m b/_test/test_gen_sqw_workflow/gen_sqw_accumulate_sqw_tests_common.m
index 177f8e0d40..5ca523d1eb 100644
--- a/_test/test_gen_sqw_workflow/gen_sqw_accumulate_sqw_tests_common.m
+++ b/_test/test_gen_sqw_workflow/gen_sqw_accumulate_sqw_tests_common.m
@@ -236,7 +236,7 @@
% for the purposes of consistency, test files have to be always
% generated by single thread, as multithreading causes pixels
% permutation within a bin, and then random function adds
- % various amout of noise to various detectors according to the
+ % various amounts of noise to various detectors according to the
% ordering
@@ -261,7 +261,7 @@
function test_gen_sqw(obj,varargin)
%-------------------------------------------------------------
if obj.skip_test
- return
+ skipTest(fprintf('test_gen_sqw_%s is disabled',obj.test_pref));
end
if nargin> 1
% running in single test method mode.
@@ -317,8 +317,11 @@ function test_gen_sqw(obj,varargin)
end
function test_gen_sqw_sym(obj,varargin)
%-------------------------------------------------------------
+ if obj.save_output
+ return;
+ end
if obj.skip_test
- return
+ skipTest(fprintf('test_gen_sqw_sym_%s is disabled',obj.test_pref));
end
if nargin> 1
% running in single test method mode.
@@ -385,7 +388,7 @@ function test_gen_sqw_sym(obj,varargin)
function test_accumulate_sqw14(obj,varargin)
%-------------------------------------------------------------
if obj.skip_test
- return
+ skipTest(fprintf('test_accumulate_sqw14_%s is disabled',obj.test_pref));
end
if nargin> 1
% running in single test method mode.
@@ -478,6 +481,15 @@ function test_accumulate_and_combine1to4(obj,varargin)
new_names = gen_sqw_accumulate_sqw_tests_common.rename_file_list(spe_names(3:4),'.tnxs');
co3 = onCleanup(@()gen_sqw_accumulate_sqw_tests_common.rename_file_list(new_names,'.nxspe'));
+ %
+ hc = hor_config;
+ ohc = hc.get_data_to_store();
+ hc.saveable = false;
+ co5 = onCleanup(@()set(hc,ohc));
+ % Allow nan-s and inf-s to keep masked pixels, to ensure
+ % consistency of estimated and actual pix_ranges
+ hc.ignore_nan = false;
+ hc.ignore_inf = false;
% --------------------------------------- Test accumulate_sqw
% ---------------------------------------
@@ -577,6 +589,14 @@ function test_accumulate_sqw11456(obj,varargin)
obj.setUp();
co1 = onCleanup(@()obj.tearDown());
end
+
+ %-------------------------------------------------------------
+ % Do not delete tmp file for future accumulation
+ hc = hor_config;
+ recovery = hc.get_data_to_store();
+ hc.saveable = false;
+ hc.delete_tmp = false;
+ co2 = onCleanup(@()set(hc,recovery));
%-------------------------------------------------------------
@@ -603,8 +623,9 @@ function test_accumulate_sqw11456(obj,varargin)
emode, alatt, angdeg, u, v, psi([1,3,4,5,6]),...
omega([1,3,4,5,6]), dpsi([1,3,4,5,6]), gl([1,3,4,5,6]), gs([1,3,4,5,6]),...
'replicate');
- assertEqual(exist(sqw_file_11456,'file'),2)
clobT = onCleanup(@()obj.delete_files(tmp_files));
+ assertEqual(exist(sqw_file_11456,'file'),2)
+
% Now use accumulate sqw ----------------------
obj.proj.u=u;
diff --git a/_test/test_gen_sqw_workflow/test_gen_sqw_accumulate_sqw_parpool.m b/_test/test_gen_sqw_workflow/test_gen_sqw_accumulate_sqw_parpool.m
index 254cae695e..f69d07ce3f 100644
--- a/_test/test_gen_sqw_workflow/test_gen_sqw_accumulate_sqw_parpool.m
+++ b/_test/test_gen_sqw_workflow/test_gen_sqw_accumulate_sqw_parpool.m
@@ -61,12 +61,21 @@
%------------------------------------------------------------------
% Block of code to disable some tests for debugging Jenkins jobs
function test_gen_sqw(obj,varargin)
+% if is_jenkins && ispc
+% skipTest('Test disabled due to intermittent failure')
+% end
test_gen_sqw@gen_sqw_accumulate_sqw_tests_common(obj,varargin{:});
end
function test_accumulate_sqw14(obj,varargin)
+% if is_jenkins && ispc
+% skipTest('Test disabled due to intermittent failure')
+% end
test_accumulate_sqw14@gen_sqw_accumulate_sqw_tests_common(obj,varargin{:});
end
function test_accumulate_and_combine1to4(obj,varargin)
+% if is_jenkins && ispc
+% skipTest('Test disabled due to intermittent failure')
+% end
test_accumulate_and_combine1to4@gen_sqw_accumulate_sqw_tests_common(obj,varargin{:});
end
function test_accumulate_sqw1456(obj,varargin) % TEST DISABLED
@@ -74,6 +83,9 @@ function test_accumulate_sqw1456(obj,varargin) % TEST DISABLED
% test_accumulate_sqw1456@gen_sqw_accumulate_sqw_tests_common(obj,varargin{:});
end
function test_accumulate_sqw11456(obj,varargin)
+% if is_jenkins && ispc
+% skipTest('Test disabled due to intermittent failure')
+% end
test_accumulate_sqw11456@gen_sqw_accumulate_sqw_tests_common(obj,varargin{:});
end
end
diff --git a/_test/test_mex_nomex/test_main_mex.m b/_test/test_mex_nomex/test_main_mex.m
index 0b1260f7b8..12261418fe 100644
--- a/_test/test_mex_nomex/test_main_mex.m
+++ b/_test/test_mex_nomex/test_main_mex.m
@@ -82,6 +82,11 @@ function tearDown(this)
urange_step_pix(1,:) = Inf;
urange_step_pix(2,:) = -Inf;
+ hc = hor_config;
+ current_state = hc.use_mex;
+ clob = onCleanup(@()set(hc,'use_mex',current_state));
+ hc.saveable = false;
+
%check matlab-part
set(hor_config,'use_mex',0,'-buffer');
dummy = sqw();
@@ -114,6 +119,8 @@ function tearDown(this)
end %
rd =calc_fake_data(this);
hc = hor_config;
+ current_state = hc.use_mex;
+ clob = onCleanup(@()set(hc,'use_mex',current_state));
hc.saveable = false;
%
hc.use_mex = false;
@@ -136,6 +143,9 @@ function test_calc_proj_options(this)
cleanup_obj=onCleanup(@()set(hcf,'use_mex',1));
rd = calc_fake_data(this);
+ hcf = hor_config;
+ current_state = hcf.use_mex;
+ clob = onCleanup(@()set(hcf,'use_mex',current_state));
hcf.saveable=false;
hcf.use_mex = 0;
[u_to_rlu_matl,urange_matl]=rd.calc_projections();
@@ -184,8 +194,9 @@ function test_recompute_bin_data(this)
assertElementsAlmostEqual((4*4)*e,npix);
- if ~cur_mex
- return
+ [~,n_errors] = check_horace_mex();
+ if n_errors>0
+ skipTest('MEX code is broken and can not be used to check against Matlab for recompute_bin_data');
end
set(hor_config,'use_mex',true,'threads',1);
new_sqw1 = recompute_bin_data_tester(test_sqw);
@@ -202,6 +213,9 @@ function test_recompute_bin_data(this)
function test_sort_pix(this)
% prepare pixels to sort
+ [cur_mex,log_level,n_threads] = get(hor_config,'use_mex','log_level','threads');
+ cleanup_obj=onCleanup(@()set(hor_config,'use_mex',cur_mex,'log_level',log_level,'threads',n_threads));
+
pix=ones(9,40000);
xs = 9.6:-1:0.6;
xp = 0.1:0.5:10;
@@ -228,8 +242,9 @@ function test_sort_pix(this)
pix2 = sort_pix(pix,ix,npix,'-nomex');
assertElementsAlmostEqual(pix1.data,pix2.data);
- if ~get(hor_config,'use_mex')
- return
+ [~,n_errors] = check_horace_mex();
+ if n_errors>0
+ skipTest('MEX code is broken and can not be used to check against Matlab for sorting the pixels');
end
% test mex
pix1 = sort_pix(pix,ix,npix,'-force_mex');
@@ -243,7 +258,7 @@ function test_sort_pix(this)
end
- function profile_sort_pix(this)
+ function profile_sort_pix(~)
xs = 9.99:-0.1:0.01;
xp = 0.01:0.1:9.99;
[ux,uy,uz,et]=ndgrid(xs,xp,xs,xp);
diff --git a/admin/CMakeLists.txt b/admin/CMakeLists.txt
index e8daf25cfc..9380765ba5 100644
--- a/admin/CMakeLists.txt
+++ b/admin/CMakeLists.txt
@@ -9,7 +9,7 @@ configure_file("${Herbert_ON_TEMPLATE}" "${LOCAL_INIT_DIR}/herbert_on.m")
configure_file("horace_on.m.template" "${LOCAL_INIT_DIR}/horace_on.m")
# Copy Horace worker templates
-if(${BUILD_TESTS})
+if(BUILD_TESTING)
configure_file("worker_4tests.m.template" "${LOCAL_INIT_DIR}/worker_4tests.m")
endif()
configure_file("worker_v2.m.template" "${LOCAL_INIT_DIR}/worker_v2.m")
diff --git a/admin/horace_install.m b/admin/horace_install.m
index f3dcd44a5b..cc8f0a7ae3 100644
--- a/admin/horace_install.m
+++ b/admin/horace_install.m
@@ -1,5 +1,6 @@
function horace_install(varargin)
-%HORACE_INSTALL install an instance of Horace
+% Install an instance of Horace at the place, where the Horace package have
+% been unpacked.
%
% >> horace_install()
% >> horace_install('herbert_root', /path/to/Herbert)
@@ -14,52 +15,91 @@ function horace_install(varargin)
HORACE_ON_PLACEHOLDER = '${Horace_CORE}';
HERBERT_ON_PLACEHOLDER = '${Herbert_CORE}';
-install_root = fileparts(mfilename('fullpath'));
-opts = parse_args(install_root, varargin{:});
+try % remove from search path any possible previous version of Horace/Herbert
+ herbert_off();
+catch % ignore errors if the code has not been installed before and script
+end % has not been found
+try
+ horace_off();
+catch % ignore errors if the code has not been installed before and script
+end % has not been found
+%
+code_root = fileparts(mfilename('fullpath'));
+% is there an old installation present?
+old_horace_on = which('horace_on');
+if ~isempty(old_horace_on)
+ delete(old_horace_on);
+ use_existing_path = true;
+ install_root = fileparts(old_horace_on);
+else
+ use_existing_path = false;
+ install_root= fullfile(code_root,'ISIS');
+end
+old_herbert_on = which('herbert_on');
+if ~isempty(old_herbert_on)
+ delete(old_herbert_on);
+end
+
+
+opts = parse_args(code_root, varargin{:});
+
+if ~exist(install_root,'dir')
+ mkdir(install_root);
+end
+if ~use_existing_path % path have already been modified. Do not create mess
+ addpath(install_root);
+ err = savepath();
+ if err
+ userpath = find_userpath();
+ warning('HORACE:installation',...
+ ['Can not save installation-modified pathdef into system-restricted area.',...
+ ' Saving modified pathdef.m into userpath: %s'],...
+ userpath);
+ savepath(fullfile(userpath,'pathdef.m'));
+ end
+end
+
% Find required files/directories
% Do this first before installing any files, so that we know we have everything
% before creating any files/directories
hor_init_dir = find_directory( ...
'horace_init.m', ...
- {fullfile(install_root, 'Horace'), fullfile(opts.horace_root, 'horace_core')} ...
-);
+ {fullfile(code_root, 'Horace'), fullfile(opts.horace_root, 'horace_core')} ...
+ );
her_init_dir = find_directory( ...
'herbert_init.m', ...
- {fullfile(install_root, 'Herbert'), fullfile(opts.herbert_root, 'herbert_core')} ...
-);
+ {fullfile(code_root, 'Herbert'), fullfile(opts.herbert_root, 'herbert_core')} ...
+ );
horace_on_path = find_file( ...
'horace_on.m.template', ...
- {install_root, fullfile(opts.horace_root, 'admin')} ...
-);
+ {code_root, fullfile(opts.horace_root, 'admin')} ...
+ );
herbert_on_path = find_file( ...
'herbert_on.m.template', ...
- {install_root, fullfile(opts.herbert_root, 'admin')} ...
-);
+ {code_root, fullfile(opts.herbert_root, 'admin')} ...
+ );
worker_path = find_file( ...
'worker_v2.m.template', ...
- {install_root, fullfile(opts.horace_root, 'admin')} ...
-);
-
-% Find/create userpath - this is automatically added to Matlab path on launch
-user_path = find_userpath();
+ {code_root, fullfile(opts.horace_root, 'admin')} ...
+ );
% Install horace_on
install_file( ...
horace_on_path, ...
- fullfile(user_path, 'horace_on.m'), ...
+ fullfile(install_root, 'horace_on.m'), ...
{HORACE_ON_PLACEHOLDER, HERBERT_ON_PLACEHOLDER}, ...
{hor_init_dir, her_init_dir} ...
-);
+ );
% Install herbert_on
install_file( ...
herbert_on_path, ...
- fullfile(user_path, 'herbert_on.m'), ...
+ fullfile(install_root, 'herbert_on.m'), ...
{HERBERT_ON_PLACEHOLDER}, ...
{her_init_dir} ...
-);
+ );
% Install worker_v2 script (required by parallel routines) to userpath
-install_file(worker_path, fullfile(user_path, 'worker_v2.m'));
+install_file(worker_path, fullfile(install_root, 'worker_v2.m'));
% Validate the installation
validate_function(@herbert_on, @herbert_off);
@@ -73,172 +113,171 @@ function horace_install(varargin)
% -----------------------------------------------------------------------------
function opts = parse_args(install_root, varargin)
- %PARSE_ARGS parse install script options
- %
- % Use defaults that will work for the common Git checkout set-up, i.e.
- % Herbert and Horace cloned into a common directory
- %
+%PARSE_ARGS parse install script options
+%
+% Use defaults that will work for the common Git checkout set-up, i.e.
+% Herbert and Horace cloned into a common directory
+%
function validate_path(x, arg_name)
validateattributes( ...
x, {'string', 'char'}, {'scalartext'}, 'horace_install', arg_name ...
- );
+ );
end
- hor_root_default = fileparts(install_root);
- her_root_default = fullfile(fileparts(hor_root_default), 'Herbert');
+hor_root_default = fileparts(install_root);
+her_root_default = fullfile(fileparts(hor_root_default), 'Herbert');
- parser = inputParser();
- % Default herbert_root is "/../Herbert"
- parser.addParameter( ...
- 'herbert_root', ...
- her_root_default, ...
- @(x) validate_path(x, 'herbert_root') ...
+parser = inputParser();
+% Default herbert_root is "/../Herbert"
+parser.addParameter( ...
+ 'herbert_root', ...
+ her_root_default, ...
+ @(x) validate_path(x, 'herbert_root') ...
);
- % Default horace_root is one directory above this script
- parser.addParameter( ...
- 'horace_root', ...
- hor_root_default, ...
- @(x) validate_path(x, 'horace_root') ...
+% Default horace_root is one directory above this script
+parser.addParameter( ...
+ 'horace_root', ...
+ hor_root_default, ...
+ @(x) validate_path(x, 'horace_root') ...
);
- parser.parse(varargin{:});
- opts = parser.Results;
+parser.parse(varargin{:});
+opts = parser.Results;
end
function install_file(source, dest, placeholders, replace_strs)
- %INSTALL_FILE copy the given file to the given destination
- % if placeholders and replace_strs are given, then replace the string values
- % in placeholders with the string at the corresponding index in
- % replace_strs.
- %
- if ~exist('placeholders', 'var')
- copy_file(source, dest);
- else
- file_contents = fileread(source);
- for i = 1:numel(placeholders)
- file_contents = replace(file_contents, placeholders{i}, replace_strs{i});
- end
- write_file(dest, file_contents);
+%INSTALL_FILE copy the given file to the given destination
+% if placeholders and replace_strs are given, then replace the string values
+% in placeholders with the string at the corresponding index in
+% replace_strs.
+%
+if ~exist('placeholders', 'var')
+ copy_file(source, dest);
+else
+ file_contents = fileread(source);
+ for i = 1:numel(placeholders)
+ file_contents = replace(file_contents, placeholders{i}, replace_strs{i});
end
+ write_file(dest, file_contents);
+end
end
function file_path = find_file(file_name, candidate_dirs)
- %FIND_FILE search for the given file name in the candidate directories
- % Throw 'HORACE:horace_install:file_not_found' if the file cannot be found.
- %
- file_dir = '';
- for i = 1:numel(candidate_dirs)
- candidate_file_path = fullfile(candidate_dirs{i}, file_name);
- if exist(candidate_file_path, 'file') == 2
- file_path = candidate_file_path;
- return
- end
+%FIND_FILE search for the given file name in the candidate directories
+% Throw 'HORACE:horace_install:file_not_found' if the file cannot be found.
+%
+file_dir = '';
+for i = 1:numel(candidate_dirs)
+ candidate_file_path = fullfile(candidate_dirs{i}, file_name);
+ if exist(candidate_file_path, 'file') == 2
+ file_path = candidate_file_path;
+ return
end
- if isempty(file_dir)
- error( ...
- 'HORACE:horace_install:file_not_found', ...
- ['Could not find file ''%s'' in any of the following ' ...
- 'candidate paths:\n %s'], ...
- file_name, ...
- strjoin(candidate_dirs, '\n ') ...
+end
+if isempty(file_dir)
+ error( ...
+ 'HORACE:horace_install:file_not_found', ...
+ ['Could not find file ''%s'' in any of the following ' ...
+ 'candidate paths:\n %s'], ...
+ file_name, ...
+ strjoin(candidate_dirs, '\n ') ...
);
- end
end
-
-
-function directory = find_directory(file_name, candidate_dirs)
- %FIND_DIRECTORY find the directory that contains the given file name
- % in 'candidate_dirs'
- %
- % Throw 'HORACE:horace_install:file_not_found' if a directory cannot be
- % found.
- %
- directory = fileparts(find_file(file_name, candidate_dirs));
end
-
function user_path = find_userpath()
- %FIND_USERPATH get the Matlab `userpath`
- % If the userpath does not exist, create it in the default place
- %
- % See `help userpath` for more info on Matlab's userpath.
- %
- user_path = userpath();
- if isempty(user_path)
- user_path = create_userpath();
- end
+%FIND_USERPATH get the Matlab `userpath`
+% If the userpath does not exist, create it in the default place
+%
+% See `help userpath` for more info on Matlab's userpath.
+%
+user_path = userpath();
+if isempty(user_path)
+ user_path = create_userpath();
+end
end
function user_path = create_userpath()
- %CREATE_USERPATH create the Matlab userpath directory in the default place
- %
- if ispc
- user_dir = getenv('USERPROFILE');
- else
- user_dir = getenv('HOME');
- end
- user_path = fullfile(user_dir, 'Documents', 'MATLAB');
- if ~exist(user_path, 'dir')
- [ok, err_msg] = mkdir(user_path);
- if ~ok
- error( ...
- 'HORACE:horace_install:io_error', ...
- 'Could not create Matlab userpath directory ''%s'': %s.', ...
- user_path, err_msg ...
+%CREATE_USERPATH create the Matlab userpath directory in the default place
+%
+if ispc
+ user_dir = getenv('USERPROFILE');
+else
+ user_dir = getenv('HOME');
+end
+user_path = fullfile(user_dir, 'Documents', 'MATLAB');
+if ~exist(user_path, 'dir')
+ [ok, err_msg] = mkdir(user_path);
+ if ~ok
+ error( ...
+ 'HORACE:horace_install:io_error', ...
+ 'Could not create Matlab userpath directory ''%s'': %s.', ...
+ user_path, err_msg ...
);
- end
end
- % Now add it to path so we don't need to restart Matlab
- addpath(userpath);
+end
+% Now add it to path so we don't need to restart Matlab
+addpath(userpath);
+end
+
+
+function directory = find_directory(file_name, candidate_dirs)
+%FIND_DIRECTORY find the directory that contains the given file name
+% in 'candidate_dirs'
+%
+% Throw 'HORACE:horace_install:file_not_found' if a directory cannot be
+% found.
+%
+directory = fileparts(find_file(file_name, candidate_dirs));
end
function write_file(file_path, contents)
- %WRITE_FILE create/overwrite file at the given path with the given text
- %
- [fid, err_msg] = fopen(file_path, 'w');
- if fid < 0
- error( ...
- 'HORACE:horace_install:io_error', ...
- 'Could not create file ''%s'': %s.', ...
- file_path, err_msg ...
+%WRITE_FILE create/overwrite file at the given path with the given text
+%
+[fid, err_msg] = fopen(file_path, 'w');
+if fid < 0
+ error( ...
+ 'HORACE:horace_install:io_error', ...
+ 'Could not create file ''%s'': %s.', ...
+ file_path, err_msg ...
);
- end
- cleanup_fid = onCleanup(@() fclose(fid));
- fprintf(fid, '%s', contents);
+end
+cleanup_fid = onCleanup(@() fclose(fid));
+fprintf(fid, '%s', contents);
end
function copy_file(source, dest)
- %COPY_FILE copy the file 'source' to 'dest', throw an error if unsuccessful
- %
- [ok, message] = copyfile(source, dest);
- if ~ok
- error( ...
- 'HORACE:horace_install:io_error', ...
- 'Could not copy file ''%s'' to ''%s'': %s.', ...
- source, dest, message ...
+%COPY_FILE copy the file 'source' to 'dest', throw an error if unsuccessful
+%
+[ok, message] = copyfile(source, dest);
+if ~ok
+ error( ...
+ 'HORACE:horace_install:io_error', ...
+ 'Could not copy file ''%s'' to ''%s'': %s.', ...
+ source, dest, message ...
);
- end
+end
end
function validate_function(func, post_func)
- %VALIDATE_FUNCTIONS validate the given function can ve called
- % The second argument is called after the first, with the intended purpose
- % being clean up.
- %
- try
- func();
- catch ME
- error( ...
- 'HORACE:horace_install:failure', ...
- 'Installation failed, error calling function: %s', ...
- ME.message ...
+%VALIDATE_FUNCTIONS validate the given function can ve called
+% The second argument is called after the first, with the intended purpose
+% being clean up.
+%
+try
+ func();
+catch ME
+ error( ...
+ 'HORACE:horace_install:failure', ...
+ 'Installation failed, error calling function: %s', ...
+ ME.message ...
);
- end
- post_func();
+end
+post_func();
end
diff --git a/admin/horace_on.m.template b/admin/horace_on.m.template
index 46ada7faf9..6f70cd2e34 100644
--- a/admin/horace_on.m.template
+++ b/admin/horace_on.m.template
@@ -4,8 +4,6 @@ function path=horace_on(non_default_path)
% horace_on(non_default_horace_path) -- calls Horace with non-default Horace folder;
%
%
-% $Revision:: 1759 ($Date:: 2020-02-10 16:06:00 +0000 (Mon, 10 Feb 2020) $)
-%
%
default_horace_path = '${Horace_CORE}';
default_herbert_path = '${Herbert_CORE}';
diff --git a/admin/pCode_Horace_kit.m b/admin/pCode_Horace_kit.m
index 9d7ca243e6..8eea7ea8af 100644
--- a/admin/pCode_Horace_kit.m
+++ b/admin/pCode_Horace_kit.m
@@ -144,4 +144,3 @@ function directoryRecurse(directory, function_pointer, varargin)
% execute the callback with any supplied parameters.
% Due to recursion will execute in a bottom up manner
function_pointer(directory, varargin{:});
-
diff --git a/admin/version.h.template b/admin/version.h.template
index c48280bcf6..ac2f71bd4a 100644
--- a/admin/version.h.template
+++ b/admin/version.h.template
@@ -1,4 +1,5 @@
-/* ${Herbert_AUTO_GENERATED_FILE_WARNING} */
+/* ${Horace_AUTO_GENERATED_FILE_WARNING} */
+#pragma once
namespace Horace {
constexpr char VERSION[] = "${Horace_SHORT_VERSION}";
diff --git a/cmake/PACE_Docs.cmake b/cmake/PACE_Docs.cmake
new file mode 100644
index 0000000000..ead1c7dab8
--- /dev/null
+++ b/cmake/PACE_Docs.cmake
@@ -0,0 +1,143 @@
+#[=======================================================================[.rst:
+PACE_Docs
+-----------------
+
+Build Horace user documentation as either HTML pages or a LaTeX manual
+
+Variables required by the module
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+``${Horace_ROOT}``
+This is provided by the main CMakeLists.txt
+
+Variables defined by the module
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+``Horace_DOCS_WORK_DIR``
+Root work directory, docs will be built in ``${Horace_DOCS_WORK_DIR}/(html|latex)``
+
+``Horace_DOCS_PACK_OUTPUT``
+Output filename (including extension) for compressed docs file
+e.g. ``${CMAKE_CURRENT_BINARY_DIR}/docs.zip``
+
+``Horace_MANUAL_OUTPUT_DIR``
+Output directory where compiled LaTeX PDF is placed
+
+Targets defined by the module
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+``docs``
+Build a HTML webpage variant of the user documentation in ``Horace_DOCS_OUTPUT_DIR``
+
+``docs-pack``
+Build HTML docs and compress
+
+``manual``
+Build a LaTeX PDF manual of the user documentation
+
+#]=======================================================================]
+
+set(Horace_DOCS_ROOT_DIR "${Horace_ROOT}/documentation/user_docs")
+set(Horace_DOCS_SOURCE_DIR "${Horace_DOCS_ROOT_DIR}/docs")
+set(Horace_DOCS_WORK_DIR "${Horace_DOCS_ROOT_DIR}/build" CACHE FILEPATH "Directory to build docs")
+set(Horace_DOCS_OUTPUT_DIR "${Horace_DOCS_WORK_DIR}/html")
+set(Horace_MANUAL_WORK_DIR "${Horace_DOCS_WORK_DIR}/latex")
+set(Horace_MANUAL_OUTPUT_DIR "${Horace_DOCS_WORK_DIR}/latex" CACHE FILEPATH "Directory to put compiled LaTeX manual")
+if (WIN32)
+ set(Horace_DOCS_PACK_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/docs.zip" CACHE FILEPATH "File to store packed HTML documentation")
+else()
+ set(Horace_DOCS_PACK_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/docs.tar.gz" CACHE FILEPATH "File to store packed HTML documentation")
+endif()
+
+find_package(Python3)
+find_program(sphinx-build NAMES sphinx-build HINTS ${Horace_DOCS_ROOT_DIR})
+find_program(pdflatex NAMES pdflatex)
+find_program(latexmk NAMES latexmk)
+
+execute_process(COMMAND ${Python3_EXECUTABLE} ${sphinx-build} ERROR_VARIABLE test)
+string(REGEX MATCH "ModuleNotFoundError" sphinx-build-failed ${test})
+
+if (NOT sphinx-build-failed)
+ add_custom_target(docs
+ COMMENT "Building HTML user documentation"
+ BYPRODUCTS "${Horace_DOCS_OUTPUT_DIR}/*"
+ COMMAND ${Python3_EXECUTABLE} ${sphinx-build} -b html "${Horace_DOCS_SOURCE_DIR}" "${Horace_DOCS_OUTPUT_DIR}" ${SPHINX_OPTS}
+ -D "release=${${PROJECT_NAME}_SHORT_VERSION}"
+ -D "version=${${PROJECT_NAME}_SHORT_VERSION}"
+ )
+
+ if (WIN32)
+
+ add_custom_command(TARGET docs POST_BUILD
+ COMMAND powershell -ExecutionPolicy Bypass -command
+ "Foreach($f in Get-ChildItem -Path '${Horace_DOCS_OUTPUT_DIR}' -Filter *.html) { \
+ (Get-Content $f.FullName) | Where-Object {$_ -notmatch '\\[NULL\\]'} | Set-Content $f.FullName \
+ }"
+ DEPENDS build-docs
+ VERBATIM
+ )
+
+
+ add_custom_target(docs-pack
+ COMMENT "Zipping HTML documentation to ${Horace_DOCS_PACK_OUTPUT}"
+ COMMAND powershell -ExecutionPolicy Bypass -command
+ "Compress-Archive -Path \"${Horace_DOCS_OUTPUT_DIR}/*\" -DestinationPath \"${Horace_DOCS_PACK_OUTPUT}\""
+ DEPENDS docs
+ )
+
+ else()
+ add_custom_command(TARGET docs POST_BUILD
+ COMMAND sed -i -r "/\[NULL\]/d" "${Horace_DOCS_OUTPUT_DIR}/*html"
+ DEPENDS build-docs
+ )
+
+ add_custom_target(docs-pack
+ COMMENT "Tarring HTML documentation to ${Horace_DOCS_PACK_OUTPUT}"
+ COMMAND tar -czf "${Horace_DOCS_PACK_OUTPUT}" "*"
+ WORKING_DIRECTORY "${Horace_DOCS_OUTPUT_DIR}"
+ DEPENDS docs
+ )
+
+ endif()
+
+ if (pdflatex AND latexmk)
+ add_custom_command(OUTPUT horace.tex
+ COMMAND ${Python3_EXECUTABLE} ${sphinx-build} -b latex "${Horace_DOCS_SOURCE_DIR}" "${Horace_MANUAL_WORK_DIR}" ${SPHINX_OPTS}
+ -D "release=${${PROJECT_NAME}_SHORT_VERSION}"
+ -D "version=${${PROJECT_NAME}_SHORT_VERSION}"
+ WORKING_DIRECTORY "${Horace_DOCS_ROOT_DIR}"
+ )
+
+ add_custom_command(OUTPUT horace.pdf
+ COMMAND latexmk -pdf -ps- -dvi- -silent -f -r "${Horace_MANUAL_WORK_DIR}/latexmkrc" "${Horace_MANUAL_WORK_DIR}/horace.tex"
+ # Copy finished manual to output dir
+ COMMAND cmake -E rename "${Horace_MANUAL_WORK_DIR}/horace.pdf" "${Horace_MANUAL_OUTPUT_DIR}/horace.pdf"
+ DEPENDS horace.tex
+ BYPRODUCTS "${Horace_MANUAL_OUTPUT_DIR}/horace.pdf"
+ WORKING_DIRECTORY "${Horace_MANUAL_WORK_DIR}"
+ )
+
+ add_custom_target(manual
+ COMMENT "Building user manual - Will produce error 12 until docs fixed"
+ DEPENDS horace.pdf
+ )
+
+ else()
+ add_custom_target(manual
+ COMMENT "LaTeX manual requires latexmk and pdflatex to build"
+ )
+ endif()
+
+else()
+ add_custom_target(docs
+ COMMENT "HTML Docs require sphinx and sphinx-rtd-theme to build"
+ )
+
+ add_custom_target(docs-pack
+ COMMENT "HTML Docs require sphinx and sphinx-rtd-theme to build"
+ )
+
+ add_custom_target(manual
+ COMMENT "LaTeX manual require sphinx and sphinx-rtd-theme to build"
+ )
+endif()
diff --git a/horace_core/GUI/horace.m b/horace_core/GUI/horace.m
index 2f2e71c666..29cc142517 100644
--- a/horace_core/GUI/horace.m
+++ b/horace_core/GUI/horace.m
@@ -43,6 +43,12 @@
end
% End initialization code - DO NOT EDIT
+function is_sqw_obj = is_sqw_dnd(element_class)
+% Returns true if the test element, from evalin, is the name of a concrete SQW class type
+is_sqw_obj = strcmp(element_class,'d1d') || strcmp(element_class,'d2d') ||...
+ strcmp(element_class,'d3d') || strcmp(element_class,'d4d') ||...
+ strcmp(element_class,'sqw');
+
% --- Executes just before horace is made visible.
function horace_OpeningFcn(hObject, eventdata, handles, varargin)
@@ -76,13 +82,13 @@ function horace_OpeningFcn(hObject, eventdata, handles, varargin)
guidata(hObject,handles);
drawnow;
%
-vars = evalin('base','whos');%gives a structure array with all of the workspace variables in it
+% get a structure array with all of the workspace variables in it
+% contains concrete name (.class) and variable name (.name)
+vars = evalin('base','whos');
counter=1;
for i=1:numel(vars)
test_el=vars(i);
- if strcmp(test_el.class,'d1d') || strcmp(test_el.class,'d2d') ||...
- strcmp(test_el.class,'d3d') || strcmp(test_el.class,'d4d') ||...
- strcmp(test_el.class,'sqw')
+ if is_sqw_dnd(test_el.class)
cellofnames{counter}=test_el.name;
cellofvars{counter}=[test_el.name,'.........',test_el.class];
counter=counter+1;
@@ -195,13 +201,13 @@ function obj_list_popupmenu_Callback(hObject, eventdata, handles)
guidata(gcbo,handles);
drawnow;
%
-vars = evalin('base','whos');%gives a structure array with all of the workspace variables in it
+% get a structure array with all of the workspace variables in it
+% contains concrete name (.class) and variable name (.name)
+vars = evalin('base','whos');
counter=1;
for i=1:numel(vars)
test_el=vars(i);
- if strcmp(test_el.class,'d1d') || strcmp(test_el.class,'d2d') ||...
- strcmp(test_el.class,'d3d') || strcmp(test_el.class,'d4d') ||...
- strcmp(test_el.class,'sqw');
+ if is_sqw_dnd(test_el.class)
cellofnames{counter}=test_el.name;
cellofvars{counter}=[test_el.name,'.........',test_el.class];
counter=counter+1;
@@ -248,7 +254,7 @@ function obj_list_popupmenu_Callback(hObject, eventdata, handles)
[title_main, title_pax, title_iax, display_pax, display_iax, energy_axis] = plot_titles (sqw(w_in));
%Get the info about the object:
-if is_sqw_type(sqw(w_in))
+if has_pixels(w_in)
getit=get(w_in);
gg=getit.data;
else
@@ -359,7 +365,7 @@ function plot_pushbutton_Callback(hObject, eventdata, handles)
mess_initialise=['Plotting started at ',timestring,'...'];
drawnow
-if isfield(handles,'w_in');
+if isfield(handles,'w_in')
win=handles.w_in;
if numel(win)~=1
mess='No plot performed - object selected is an array of Horace objects';
@@ -494,13 +500,13 @@ function binary_ops_pushbutton_Callback(hObject, eventdata, handles)
guidata(gcbo,handles);
drawnow;
%
-vars = evalin('base','whos');%gives a structure array with all of the workspace variables in it
+% get a structure array with all of the workspace variables in it
+% contains concrete name (.class) and variable name (.name)
+vars = evalin('base','whos');
counter=1;
for i=1:numel(vars)
test_el=vars(i);
- if strcmp(test_el.class,'d1d') || strcmp(test_el.class,'d2d') ||...
- strcmp(test_el.class,'d3d') || strcmp(test_el.class,'d4d') ||...
- strcmp(test_el.class,'sqw');
+ if is_sqw_dnd(test_el.class)
cellofnames{counter}=test_el.name;
cellofvars{counter}=[test_el.name,'.........',test_el.class];
counter=counter+1;
@@ -552,7 +558,7 @@ function overplot_pushbutton_Callback(hObject, eventdata, handles)
mess_initialise=['Overplotting started at ',timestring,'...'];
drawnow
-if isfield(handles,'w_in');
+if isfield(handles,'w_in')
win=handles.w_in;
if numel(win)~=1
mess='No plot-over performed - object selected is an array of Horace objects';
@@ -931,13 +937,13 @@ function replicate_pushbutton_Callback(hObject, eventdata, handles)
guidata(gcbo,handles);
drawnow;
%
-vars = evalin('base','whos');%gives a structure array with all of the workspace variables in it
+% get a structure array with all of the workspace variables in it
+% contains concrete name (.class) and variable name (.name)
+vars = evalin('base','whos');
counter=1;
for i=1:numel(vars)
test_el=vars(i);
- if strcmp(test_el.class,'d1d') || strcmp(test_el.class,'d2d') ||...
- strcmp(test_el.class,'d3d') || strcmp(test_el.class,'d4d') ||...
- strcmp(test_el.class,'sqw');
+ if is_sqw_dnd(test_el.class);
cellofnames{counter}=test_el.name;
cellofvars{counter}=[test_el.name,'.........',test_el.class];
counter=counter+1;
@@ -999,13 +1005,13 @@ function combine_pushbutton_Callback(hObject, eventdata, handles)
guidata(gcbo,handles);
drawnow;
%
-vars = evalin('base','whos');%gives a structure array with all of the workspace variables in it
+% get a structure array with all of the workspace variables in it
+% contains concrete name (.class) and variable name (.name)
+vars = evalin('base','whos');
counter=1;
for i=1:numel(vars)
test_el=vars(i);
- if strcmp(test_el.class,'d1d') || strcmp(test_el.class,'d2d') ||...
- strcmp(test_el.class,'d3d') || strcmp(test_el.class,'d4d') ||...
- strcmp(test_el.class,'sqw');
+ if is_sqw_dnd(test_el.class)
cellofnames{counter}=test_el.name;
cellofvars{counter}=[test_el.name,'.........',test_el.class];
counter=counter+1;
@@ -1088,13 +1094,13 @@ function rebin_pushbutton_Callback(hObject, eventdata, handles)
guidata(gcbo,handles);
drawnow;
%
-vars = evalin('base','whos');%gives a structure array with all of the workspace variables in it
+% get a structure array with all of the workspace variables in it
+% contains concrete name (.class) and variable name (.name)
+vars = evalin('base','whos');
counter=1;
for i=1:numel(vars)
test_el=vars(i);
- if strcmp(test_el.class,'d1d') || strcmp(test_el.class,'d2d') ||...
- strcmp(test_el.class,'d3d') || strcmp(test_el.class,'d4d') ||...
- strcmp(test_el.class,'sqw');
+ if is_sqw_dnd(test_el.class)
cellofnames{counter}=test_el.name;
cellofvars{counter}=[test_el.name,'.........',test_el.class];
counter=counter+1;
@@ -1432,10 +1438,10 @@ function Cut_do_cut_pushbutton_Callback(hObject, eventdata, handles)
%must strip out square brackets, if user has inserted them:
s1=strfind(a1,'['); s2=strfind(a1,']');
if isempty(s1) && isempty(s2)
- a1new=strread(a1,'%f','delimiter',',');
+ a1new=textscan(a1,'%f','delimiter',',');
elseif ~isempty(s1) && ~isempty(s2)
a1=a1(s1+1:s2-1);
- a1new=strread(a1,'%f','delimiter',',');
+ a1new=textscan(a1,'%f','delimiter',',');
else
mess1=' Ensure binning values are entered if the form of lo,step,hi / step / lo,hi ';
mess2='NB: enter 0 if you wish to use intrinsic binning and entire data range along axis';
@@ -1445,10 +1451,10 @@ function Cut_do_cut_pushbutton_Callback(hObject, eventdata, handles)
end
s1=strfind(a2,'['); s2=strfind(a2,']');
if isempty(s1) && isempty(s2)
- a2new=strread(a2,'%f','delimiter',',');
+ a2new=textscan(a2,'%f','delimiter',',');
elseif ~isempty(s1) && ~isempty(s2)
a2=a2(s1+1:s2-1);
- a2new=strread(a2,'%f','delimiter',',');
+ a2new=textscan(a2,'%f','delimiter',',');
else
mess1=' Ensure binning values are entered if the form of lo,step,hi / step / lo,hi ';
mess2='NB: enter 0 if you wish to use intrinsic binning and entire data range along axis';
@@ -1458,10 +1464,10 @@ function Cut_do_cut_pushbutton_Callback(hObject, eventdata, handles)
end
s1=strfind(a3,'['); s2=strfind(a3,']');
if isempty(s1) && isempty(s2)
- a3new=strread(a3,'%f','delimiter',',');
+ a3new=textscan(a3,'%f','delimiter',',');
elseif ~isempty(s1) && ~isempty(s2)
a3=a3(s1+1:s2-1);
- a3new=strread(a3,'%f','delimiter',',');
+ a3new=textscan(a3,'%f','delimiter',',');
else
mess1=' Ensure binning values are entered if the form of lo,step,hi / step / lo,hi ';
mess2='NB: enter 0 if you wish to use intrinsic binning and entire data range along axis';
@@ -1471,10 +1477,10 @@ function Cut_do_cut_pushbutton_Callback(hObject, eventdata, handles)
end
s1=strfind(a4,'['); s2=strfind(a4,']');
if isempty(s1) && isempty(s2)
- a4new=strread(a4,'%f','delimiter',',');
+ a4new=textscan(a4,'%f','delimiter',',');
elseif ~isempty(s1) && ~isempty(s2)
a4=a4(s1+1:s2-1);
- a4new=strread(a4,'%f','delimiter',',');
+ a4new=textscan(a4,'%f','delimiter',',');
else
mess1=' Ensure binning values are entered if the form of lo,step,hi / step / lo,hi ';
mess2='NB: enter 0 if you wish to use intrinsic binning and entire data range along axis';
@@ -1666,20 +1672,7 @@ function Cut_do_cut_pushbutton_Callback(hObject, eventdata, handles)
return;
end
catch the_err
- err = {sprintf('**** %s',mess_initialise),...
- sprintf('**** Error %s Message: %s',...
- the_err.identifier,the_err.message),...
- '**** cut failed at: '};
- stack_depth = numel(the_err.stack);
- for i=stack_depth-3:-1:1
- err{end+1} = sprintf('*** Row: %d, function: %20s file: %s',...
- the_err.stack(i).line,the_err.stack(i).name,the_err.stack(i).file);
- end
-
- set(handles.message_text_field,'String',char(err));
- guidata(gcbo,handles);
-
- rethrow(the_err);
+ report_error(the_err,'**** cut failed at: ')
end
@@ -1713,7 +1706,7 @@ function Rebin_template_radiobutton_Callback(hObject, eventdata, handles)
% Hint: get(hObject,'Value') returns toggle state of Rebin_template_radiobutton
button_state=get(hObject,'Value');
-if button_state==get(hObject,'Max');%button is pressed
+if button_state==get(hObject,'Max') %button is pressed
set(handles.Rebin_lostephi_radiobutton,'Value',0);
end
guidata(gcbo, handles);
@@ -1732,13 +1725,13 @@ function Rebin_template_popupmenu_Callback(hObject, eventdata, handles)
guidata(gcbo,handles);
drawnow;
%
-vars = evalin('base','whos');%gives a structure array with all of the workspace variables in it
+% get a structure array with all of the workspace variables in it
+% contains concrete name (.class) and variable name (.name)
+vars = evalin('base','whos');
counter=1;
for i=1:numel(vars)
test_el=vars(i);
- if strcmp(test_el.class,'d1d') || strcmp(test_el.class,'d2d') ||...
- strcmp(test_el.class,'d3d') || strcmp(test_el.class,'d4d') ||...
- strcmp(test_el.class,'sqw');
+ if is_sqw_dnd(test_el.class)
cellofnames{counter}=test_el.name;
cellofvars{counter}=[test_el.name,'.........',test_el.class];
counter=counter+1;
@@ -1802,7 +1795,7 @@ function Rebin_lostephi_radiobutton_Callback(hObject, eventdata, handles)
% Hint: get(hObject,'Value') returns toggle state of Rebin_lostephi_radiobutton
button_state=get(hObject,'Value');
-if button_state==get(hObject,'Max');%button is pressed
+if button_state==get(hObject,'Max') %button is pressed
set(handles.Rebin_template_radiobutton,'Value',0);
end
guidata(gcbo, handles);
@@ -1975,7 +1968,7 @@ function Rebin_rebin_pushbutton_Callback(hObject, eventdata, handles)
%must strip out square brackets, if user has inserted them:
s1=strfind(lostephi,'['); s2=strfind(lostephi,']');
if isempty(s1) && isempty(s2)
- lostephinew{1}=strread(lostephi,'%f','delimiter',',');
+ lostephinew{1}=textscan(lostephi,'%f','delimiter',',');
elseif ~isempty(s1) && ~isempty(s2)
if length(s1)~=length(s2)
mess1='Ensure manual rebinning is of form [lo1,step1,hi1], [step], or []';
@@ -1991,7 +1984,7 @@ function Rebin_rebin_pushbutton_Callback(hObject, eventdata, handles)
end
for i=1:numel(s1)
lostephi_tmp=lostephi(s1(i)+1:s2(i)-1);
- lostephinew{i}=strread(lostephi_tmp,'%f','delimiter',',');
+ lostephinew{i}=textscan(lostephi_tmp,'%f','delimiter',',');
end
else
mess1='Ensure manual rebinning is of form [lo1,step1,hi1], [step], or []';
@@ -2116,20 +2109,7 @@ function Rebin_rebin_pushbutton_Callback(hObject, eventdata, handles)
end
catch the_err
- err = {sprintf('**** %s',mess_initialise),...
- sprintf('**** Error %s Message: %s',...
- the_err.identifier,the_err.message),...
- '**** rebin failed at: '};
- stack_depth = numel(the_err.stack);
- for i=stack_depth-3:-1:1
- err{end+1} = sprintf('*** Row: %d, function: %20s file: %s',...
- the_err.stack(i).line,the_err.stack(i).name,the_err.stack(i).file);
- end
-
- set(handles.message_text_field,'String',char(err));
- guidata(gcbo,handles);
-
- rethrow(the_err);
+ report_error(the_err,'**** rebin failed at: ')
end
@@ -2147,7 +2127,7 @@ function Sym_midpoint_radiobutton_Callback(hObject, eventdata, handles)
% Hint: get(hObject,'Value') returns toggle state of Sym_midpoint_radiobutton
button_state=get(hObject,'Value');
-if button_state==get(hObject,'Max');%button is pressed
+if button_state==get(hObject,'Max') %button is pressed
set(handles.Sym_plane_radiobutton,'Value',0);
end
guidata(gcbo, handles);
@@ -2185,7 +2165,7 @@ function Sym_plane_radiobutton_Callback(hObject, eventdata, handles)
% Hint: get(hObject,'Value') returns toggle state of Sym_plane_radiobutton
button_state=get(hObject,'Value');
-if button_state==get(hObject,'Max');%button is pressed
+if button_state==get(hObject,'Max') %button is pressed
set(handles.Sym_midpoint_radiobutton,'Value',0);
end
guidata(gcbo, handles);
@@ -2381,10 +2361,10 @@ function Sym_symmetrise_pushbutton_Callback(hObject, eventdata, handles)
%must strip out square brackets, if user has inserted them:
s1=strfind(midpoint,'['); s2=strfind(midpoint,']');
if isempty(s1) && isempty(s2)
- midpointnew=strread(midpoint,'%f','delimiter',',');
+ midpointnew=textscan(midpoint,'%f','delimiter',',');
elseif ~isempty(s1) && ~isempty(s2)
midpoint=midpoint(s1+1:s2-1);
- midpointnew=strread(midpoint,'%f','delimiter',',');
+ midpointnew=textscan(midpoint,'%f','delimiter',',');
else
mess1='Ensure midpoint is of form [val] for 1d, or [val_x,val_y] for 2d';
set(handles.message_info_text,'String',char({mess_initialise,mess1}));
@@ -2417,10 +2397,10 @@ function Sym_symmetrise_pushbutton_Callback(hObject, eventdata, handles)
%must strip out square brackets, if user has inserted them:
s1=strfind(v1,'['); s2=strfind(v1,']');
if isempty(s1) && isempty(s2)
- v1new=strread(v1,'%f','delimiter',',');
+ v1new=textscan(v1,'%f','delimiter',',');
elseif ~isempty(s1) && ~isempty(s2)
v1=v1(s1+1:s2-1);
- v1new=strread(v1,'%f','delimiter',',');
+ v1new=textscan(v1,'%f','delimiter',',');
else
mess1='Ensure v1 is of form [a,b,c]';
set(handles.message_info_text,'String',char({mess_initialise,mess1}));
@@ -2439,10 +2419,10 @@ function Sym_symmetrise_pushbutton_Callback(hObject, eventdata, handles)
%must strip out square brackets, if user has inserted them:
s1=strfind(v2,'['); s2=strfind(v2,']');
if isempty(s1) && isempty(s2)
- v2new=strread(v2,'%f','delimiter',',');
+ v2new=textscan(v2,'%f','delimiter',',');
elseif ~isempty(s1) && ~isempty(s2)
v2=v2(s1+1:s2-1);
- v2new=strread(v2,'%f','delimiter',',');
+ v2new=textscan(v2,'%f','delimiter',',');
else
mess1='Ensure v2 is of form [a,b,c]';
set(handles.message_info_text,'String',char({mess_initialise,mess1}));
@@ -2463,10 +2443,10 @@ function Sym_symmetrise_pushbutton_Callback(hObject, eventdata, handles)
%must strip out square brackets, if user has inserted them:
s1=strfind(v3,'['); s2=strfind(v3,']');
if isempty(s1) && isempty(s2)
- v1new=strread(v3,'%f','delimiter',',');
+ v1new=textscan(v3,'%f','delimiter',',');
elseif ~isempty(s1) && ~isempty(s2)
v3=v3(s1+1:s2-1);
- v3new=strread(v3,'%f','delimiter',',');
+ v3new=textscan(v3,'%f','delimiter',',');
else
mess1='Ensure v3 is of form [a,b,c]';
set(handles.message_info_text,'String',char({mess_initialise,mess1}));
@@ -2576,20 +2556,7 @@ function Sym_symmetrise_pushbutton_Callback(hObject, eventdata, handles)
end
catch the_err
- err = {sprintf('**** %s',mess_initialise),...
- sprintf('**** Error %s Message: %s',...
- the_err.identifier,the_err.message),...
- '**** symmetrise failed at: '};
- stack_depth = numel(the_err.stack);
- for i=stack_depth-3:-1:1
- err{end+1} = sprintf('*** Row: %d, function: %20s file: %s',...
- the_err.stack(i).line,the_err.stack(i).name,the_err.stack(i).file);
- end
-
- set(handles.message_text_field,'String',char(err));
- guidata(gcbo,handles);
-
- rethrow(the_err);
+ report_error(the_err,'**** symmetrise failed at: ')
end
@@ -2616,13 +2583,13 @@ function Comb_obj2_popupmenu_Callback(hObject, eventdata, handles)
guidata(gcbo,handles);
drawnow;
%
-vars = evalin('base','whos');%gives a structure array with all of the workspace variables in it
+% get a structure array with all of the workspace variables in it
+% contains concrete name (.class) and variable name (.name)
+vars = evalin('base','whos');
counter=1;
for i=1:numel(vars)
test_el=vars(i);
- if strcmp(test_el.class,'d1d') || strcmp(test_el.class,'d2d') ||...
- strcmp(test_el.class,'d3d') || strcmp(test_el.class,'d4d') ||...
- strcmp(test_el.class,'sqw');
+ if is_sqw_dnd(test_el.class)
cellofnames{counter}=test_el.name;
cellofvars{counter}=[test_el.name,'.........',test_el.class];
counter=counter+1;
@@ -2846,10 +2813,10 @@ function Comb_combine_pushbutton_Callback(hObject, eventdata, handles)
%must strip out square brackets, if user has inserted them:
s1=strfind(tol,'['); s2=strfind(tol,']');
if isempty(s1) && isempty(s2)
- tolnew=strread(tol,'%f','delimiter',',');
+ tolnew=textscan(tol,'%f','delimiter',',');
elseif ~isempty(s1) && ~isempty(s2)
tol=tol(s1+1:s2-1);
- tolnew=strread(tol,'%f','delimiter',',');
+ tolnew=textscan(tol,'%f','delimiter',',');
else
mess1='Ensure tolerance is of form [tol1,tol2,...], depending on the dimensionality';
set(handles.message_info_text,'String',mess1);
@@ -2952,20 +2919,7 @@ function Comb_combine_pushbutton_Callback(hObject, eventdata, handles)
end
catch the_err
- err = {sprintf('**** %s',mess_initialise),...
- sprintf('**** Error %s Message: %s',...
- the_err.identifier,the_err.message),...
- '**** combine failed at: '};
- stack_depth = numel(the_err.stack);
- for i=stack_depth-3:-1:1
- err{end+1} = sprintf('*** Row: %d, function: %20s file: %s',...
- the_err.stack(i).line,the_err.stack(i).name,the_err.stack(i).file);
- end
-
- set(handles.message_text_field,'String',char(err));
- guidata(gcbo,handles);
-
- rethrow(the_err);
+ report_error(the_err,'**** combine failed at: ')
end
@@ -3016,13 +2970,13 @@ function Rep_obj2_popupmenu_Callback(hObject, eventdata, handles)
guidata(gcbo,handles);
drawnow;
%
-vars = evalin('base','whos');%gives a structure array with all of the workspace variables in it
+% get a structure array with all of the workspace variables in it
+% contains concrete name (.class) and variable name (.name)
+vars = evalin('base','whos');
counter=1;
for i=1:numel(vars)
test_el=vars(i);
- if strcmp(test_el.class,'d1d') || strcmp(test_el.class,'d2d') ||...
- strcmp(test_el.class,'d3d') || strcmp(test_el.class,'d4d') ||...
- strcmp(test_el.class,'sqw');
+ if is_sqw_dnd(test_el.class)
cellofnames{counter}=test_el.name;
cellofvars{counter}=[test_el.name,'.........',test_el.class];
counter=counter+1;
@@ -3264,20 +3218,7 @@ function Rep_replicate_pushbutton_Callback(hObject, eventdata, handles)
end
end
catch the_err
- err = {sprintf('**** %s',mess_initialise),...
- sprintf('**** Error %s Message: %s',...
- the_err.identifier,the_err.message),...
- '**** replication failed at: '};
- stack_depth = numel(the_err.stack);
- for i=stack_depth-3:-1:1
- err{end+1} = sprintf('*** Row: %d, function: %20s file: %s',...
- the_err.stack(i).line,the_err.stack(i).name,the_err.stack(i).file);
- end
-
- set(handles.message_text_field,'String',char(err));
- guidata(gcbo,handles);
-
- rethrow(the_err);
+ report_error(the_err,'**** replication failed at: ')
end
if ~sqw_flag
@@ -3482,20 +3423,7 @@ function Bose_bose_pushbutton_Callback(hObject, eventdata, handles)
save(out,outfilename);
end
catch the_err
- err = {sprintf('**** %s',mess_initialise),...
- sprintf('**** Error %s Message: %s',...
- the_err.identifier,the_err.message),...
- '**** bose_correction failed at: '};
- stack_depth = numel(the_err.stack);
- for i=stack_depth-3:-1:1
- err{end+1} = sprintf('*** Row: %d, function: %20s file: %s',...
- the_err.stack(i).line,the_err.stack(i).name,the_err.stack(i).file);
- end
-
- set(handles.message_text_field,'String',char(err));
- guidata(gcbo,handles);
-
- rethrow(the_err);
+ report_error(the_err,'**** bose_correction failed at: ')
end
assignin('base',outobjname,out);
@@ -3623,13 +3551,13 @@ function Bin_obj2_popupmenu_Callback(hObject, eventdata, handles)
guidata(gcbo,handles);
drawnow;
%
-vars = evalin('base','whos');%gives a structure array with all of the workspace variables in it
+% get a structure array with all of the workspace variables in it
+% contains concrete name (.class) and variable name (.name)
+vars = evalin('base','whos');
counter=1;
for i=1:numel(vars)
test_el=vars(i);
- if strcmp(test_el.class,'d1d') || strcmp(test_el.class,'d2d') ||...
- strcmp(test_el.class,'d3d') || strcmp(test_el.class,'d4d') ||...
- strcmp(test_el.class,'sqw');
+ if is_sqw_dnd(test_el.class)
cellofnames{counter}=test_el.name;
cellofvars{counter}=[test_el.name,'.........',test_el.class];
counter=counter+1;
@@ -3714,7 +3642,7 @@ function Bin_obj_radiobutton_Callback(hObject, eventdata, handles)
% Hint: get(hObject,'Value') returns toggle state of Bin_obj_radiobutton
button_state=get(hObject,'Value');
-if button_state==get(hObject,'Max');%button is pressed
+if button_state==get(hObject,'Max') %button is pressed
set(handles.Bin_number_radiobutton,'Value',0);
end
guidata(gcbo, handles);
@@ -3729,7 +3657,7 @@ function Bin_number_radiobutton_Callback(hObject, eventdata, handles)
% Hint: get(hObject,'Value') returns toggle state of Bin_number_radiobutton
button_state=get(hObject,'Value');
-if button_state==get(hObject,'Max');%button is pressed
+if button_state==get(hObject,'Max') %button is pressed
set(handles.Bin_obj_radiobutton,'Value',0);
end
guidata(gcbo, handles);
@@ -3914,21 +3842,7 @@ function Bin_operate_pushbutton_Callback(hObject, eventdata, handles)
save(out,outfilename);
end
catch the_err
- err = {sprintf('**** %s',mess_initialise),...
- sprintf('**** Error %s Message: %s',...
- the_err.identifier,the_err.message),...
- '**** Formatting error? Unit operation failed at: '};
- stack_depth = numel(the_err.stack);
- for i=stack_depth-3:-1:1
- err{end+1} = sprintf('*** Row: %d, function: %20s file: %s',...
- the_err.stack(i).line,the_err.stack(i).name,the_err.stack(i).file);
- end
-
- set(handles.message_text_field,'String',char(err));
- guidata(gcbo,handles);
-
- rethrow(the_err);
-
+ report_error(the_err,'**** Formatting error? Unit operation failed at: ')
end
@@ -4131,21 +4045,7 @@ function Unary_operate_pushbutton_Callback(hObject, eventdata, handles)
save(out,outfilename);
end
catch the_err
- err = {sprintf('**** %s',mess_initialise),...
- sprintf('**** Error %s Message: %s',...
- the_err.identifier,the_err.message),...
- '**** unit operation failed at: '};
- stack_depth = numel(the_err.stack);
- for i=stack_depth-3:-1:1
- err{end+1} = sprintf('*** Row: %d, function: %20s file: %s',...
- the_err.stack(i).line,the_err.stack(i).name,the_err.stack(i).file);
- end
-
- set(handles.message_text_field,'String',char(err));
- guidata(gcbo,handles);
-
- rethrow(the_err);
-
+ report_error(the_err,'**** unit operation failed at: ')
end
assignin('base',outobjname,out);
@@ -4163,7 +4063,7 @@ function Cutfile_rlu_1_radiobutton_Callback(hObject, eventdata, handles)
% Hint: get(hObject,'Value') returns toggle state of Cutfile_rlu_1_radiobutton
button_state=get(hObject,'Value');
-if button_state==get(hObject,'Max');%button is pressed
+if button_state==get(hObject,'Max') %button is pressed
set(handles.Cutfile_ang_1_radiobutton,'Value',0);
end
guidata(gcbo, handles);
@@ -4178,7 +4078,7 @@ function Cutfile_ang_1_radiobutton_Callback(hObject, eventdata, handles)
% Hint: get(hObject,'Value') returns toggle state of Cutfile_ang_1_radiobutton
button_state=get(hObject,'Value');
-if button_state==get(hObject,'Max');%button is pressed
+if button_state==get(hObject,'Max') %button is pressed
set(handles.Cutfile_rlu_1_radiobutton,'Value',0);
end
guidata(gcbo, handles);
@@ -4193,7 +4093,7 @@ function Cutfile_rlu_2_radiobutton_Callback(hObject, eventdata, handles)
% Hint: get(hObject,'Value') returns toggle state of Cutfile_rlu_2_radiobutton
button_state=get(hObject,'Value');
-if button_state==get(hObject,'Max');%button is pressed
+if button_state==get(hObject,'Max') %button is pressed
set(handles.Cutfile_ang_2_radiobutton,'Value',0);
end
guidata(gcbo, handles);
@@ -4208,7 +4108,7 @@ function Cutfile_ang_2_radiobutton_Callback(hObject, eventdata, handles)
% Hint: get(hObject,'Value') returns toggle state of Cutfile_ang_2_radiobutton
button_state=get(hObject,'Value');
-if button_state==get(hObject,'Max');%button is pressed
+if button_state==get(hObject,'Max') %button is pressed
set(handles.Cutfile_rlu_2_radiobutton,'Value',0);
end
guidata(gcbo, handles);
@@ -4223,7 +4123,7 @@ function Cutfile_rlu_3_radiobutton_Callback(hObject, eventdata, handles)
% Hint: get(hObject,'Value') returns toggle state of Cutfile_rlu_3_radiobutton
button_state=get(hObject,'Value');
-if button_state==get(hObject,'Max');%button is pressed
+if button_state==get(hObject,'Max') %button is pressed
set(handles.Cutfile_ang_3_radiobutton,'Value',0);
end
guidata(gcbo, handles);
@@ -4237,7 +4137,7 @@ function Cutfile_ang_3_radiobutton_Callback(hObject, eventdata, handles)
% Hint: get(hObject,'Value') returns toggle state of Cutfile_ang_3_radiobutton
button_state=get(hObject,'Value');
-if button_state==get(hObject,'Max');%button is pressed
+if button_state==get(hObject,'Max') %button is pressed
set(handles.Cutfile_rlu_3_radiobutton,'Value',0);
end
guidata(gcbo, handles);
@@ -4541,8 +4441,8 @@ function Cutfile_do_cut_pushbutton_Callback(hObject, eventdata, handles)
return;
else
try
- u=strread(u,'%f','delimiter',',');
- v=strread(v,'%f','delimiter',',');
+ u=textscan(u,'%f','delimiter',',');
+ v=textscan(v,'%f','delimiter',',');
if numel(u)~=3 || numel(v)~=3
mess='u and v must comprise 3 numbers specifying h, k, and l of projection axes';
set(handles.message_info_text,'String',char({mess_initialise,mess}));
@@ -4550,7 +4450,7 @@ function Cutfile_do_cut_pushbutton_Callback(hObject, eventdata, handles)
return;
end
if ~isempty(w)
- w=strread(w,'%f','delimiter',',');
+ w=textscan(w,'%f','delimiter',',');
end
catch
mess='Check the format of the vectors u, v, and/or w. They must be numeric with 3 elements';
@@ -4601,10 +4501,10 @@ function Cutfile_do_cut_pushbutton_Callback(hObject, eventdata, handles)
%must strip out square brackets, if user has inserted them:
s1=strfind(a1,'['); s2=strfind(a1,']');
if isempty(s1) && isempty(s2)
- a1new=strread(a1,'%f','delimiter',',');
+ a1new=textscan(a1,'%f','delimiter',',');
elseif ~isempty(s1) && ~isempty(s2)
a1=a1(s1+1:s2-1);
- a1new=strread(a1,'%f','delimiter',',');
+ a1new=textscan(a1,'%f','delimiter',',');
else
mess1=' Ensure binning values are entered if the form of lo,step,hi / step / lo,hi ';
mess2='NB: enter 0 if you wish to use intrinsic binning and entire data range along axis';
@@ -4614,10 +4514,10 @@ function Cutfile_do_cut_pushbutton_Callback(hObject, eventdata, handles)
end
s1=strfind(a2,'['); s2=strfind(a2,']');
if isempty(s1) && isempty(s2)
- a2new=strread(a2,'%f','delimiter',',');
+ a2new=textscan(a2,'%f','delimiter',',');
elseif ~isempty(s1) && ~isempty(s2)
a2=a2(s1+1:s2-1);
- a2new=strread(a2,'%f','delimiter',',');
+ a2new=textscan(a2,'%f','delimiter',',');
else
mess1=' Ensure binning values are entered if the form of lo,step,hi / step / lo,hi ';
mess2='NB: enter 0 if you wish to use intrinsic binning and entire data range along axis';
@@ -4627,10 +4527,10 @@ function Cutfile_do_cut_pushbutton_Callback(hObject, eventdata, handles)
end
s1=strfind(a3,'['); s2=strfind(a3,']');
if isempty(s1) && isempty(s2)
- a3new=strread(a3,'%f','delimiter',',');
+ a3new=textscan(a3,'%f','delimiter',',');
elseif ~isempty(s1) && ~isempty(s2)
a3=a3(s1+1:s2-1);
- a3new=strread(a3,'%f','delimiter',',');
+ a3new=textscan(a3,'%f','delimiter',',');
else
mess1=' Ensure binning values are entered if the form of lo,step,hi / step / lo,hi ';
mess2='NB: enter 0 if you wish to use intrinsic binning and entire data range along axis';
@@ -4640,10 +4540,10 @@ function Cutfile_do_cut_pushbutton_Callback(hObject, eventdata, handles)
end
s1=strfind(a4,'['); s2=strfind(a4,']');
if isempty(s1) && isempty(s2)
- a4new=strread(a4,'%f','delimiter',',');
+ a4new=textscan(a4,'%f','delimiter',',');
elseif ~isempty(s1) && ~isempty(s2)
a4=a4(s1+1:s2-1);
- a4new=strread(a4,'%f','delimiter',',');
+ a4new=textscan(a4,'%f','delimiter',',');
else
mess1=' Ensure binning values are entered if the form of lo,step,hi / step / lo,hi ';
mess2='NB: enter 0 if you wish to use intrinsic binning and entire data range along axis';
@@ -4720,20 +4620,7 @@ function Cutfile_do_cut_pushbutton_Callback(hObject, eventdata, handles)
a2,'],[',a3,'],[',a4,'],''',outfilename,''');']);
end
catch the_err
- err = {sprintf('**** %s',mess_initialise),...
- sprintf('**** Error %s Message: %s',...
- the_err.identifier,the_err.message),...
- '**** Invalid inputs? Cut from file failed at: '};
- stack_depth = numel(the_err.stack);
- for i=stack_depth-3:-1:1
- err{end+1} = sprintf('*** Row: %d, function: %20s file: %s',...
- the_err.stack(i).line,the_err.stack(i).name,the_err.stack(i).file);
- end
-
- set(handles.message_text_field,'String',char(err));
- guidata(gcbo,handles);
-
- rethrow(the_err);
+ report_error(the_err,'**** Invalid inputs? Cut from file failed at: ')
end
assignin('base',outobjname,out);
@@ -4749,13 +4636,13 @@ function refresh_list_pushbutton_Callback(hObject, eventdata, handles)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
-vars = evalin('base','whos');%gives a structure array with all of the workspace variables in it
+% get a structure array with all of the workspace variables in it
+% contains concrete name (.class) and variable name (.name)
+vars = evalin('base','whos');
counter=1;
for i=1:numel(vars)
test_el=vars(i);
- if strcmp(test_el.class,'d1d') || strcmp(test_el.class,'d2d') ||...
- strcmp(test_el.class,'d3d') || strcmp(test_el.class,'d4d') ||...
- strcmp(test_el.class,'sqw');
+ if is_sqw_dnd(test_el.class)
cellofnames{counter}=test_el.name;
cellofvars{counter}=[test_el.name,'.........',test_el.class];
counter=counter+1;
@@ -4816,7 +4703,7 @@ function smoothplot_pushbutton_Callback(hObject, eventdata, handles)
mess_initialise=['Smooth plotting started at ',timestring,'...'];
drawnow
-if isfield(handles,'w_in');
+if isfield(handles,'w_in')
win=handles.w_in;
if numel(win)~=1
mess='No plot performed - object selected is an array of Horace objects';
@@ -5346,10 +5233,10 @@ function gen_sqw_run_pushbutton_Callback(hObject, eventdata, handles)
%must strip out square brackets, if user has inserted them:
s1=strfind(u,'['); s2=strfind(u,']');
if isempty(s1) && isempty(s2)
- unew=strread(u,'%f','delimiter',',');
+ unew=textscan(u,'%f','delimiter',',');
elseif ~isempty(s1) && ~isempty(s2)
u=u(s1+1:s2-1);
- unew=strread(u,'%f','delimiter',',');
+ unew=textscan(u,'%f','delimiter',',');
else
mess1='Ensure u is a 3-element vector with comma-separated elements';
set(handles.message_info_text,'String',char({mess_initialise,mess1}));
@@ -5358,10 +5245,10 @@ function gen_sqw_run_pushbutton_Callback(hObject, eventdata, handles)
end
s1=strfind(v,'['); s2=strfind(v,']');
if isempty(s1) && isempty(s2)
- vnew=strread(v,'%f','delimiter',',');
+ vnew=textscan(v,'%f','delimiter',',');
elseif ~isempty(s1) && ~isempty(s2)
v=v(s1+1:s2-1);
- vnew=strread(v,'%f','delimiter',',');
+ vnew=textscan(v,'%f','delimiter',',');
else
mess1='Ensure v is a 3-element vector with comma-separated elements';
set(handles.message_info_text,'String',char({mess_initialise,mess1}));
@@ -5370,10 +5257,10 @@ function gen_sqw_run_pushbutton_Callback(hObject, eventdata, handles)
end
s1=strfind(efix,'['); s2=strfind(efix,']');
if isempty(s1) && isempty(s2)
- efixnew=strread(efix,'%f','delimiter',',');
+ efixnew=textscan(efix,'%f','delimiter',',');
elseif ~isempty(s1) && ~isempty(s2)
efix=efix(s1+1:s2-1);
- efixnew=strread(efix,'%f','delimiter',',');
+ efixnew=textscan(efix,'%f','delimiter',',');
else
mess1='Ensure incident energy is a single number';
set(handles.message_info_text,'String',char({mess_initialise,mess1}));
@@ -5382,10 +5269,10 @@ function gen_sqw_run_pushbutton_Callback(hObject, eventdata, handles)
end
s1=strfind(alatt,'['); s2=strfind(alatt,']');
if isempty(s1) && isempty(s2)
- alattnew=strread(alatt,'%f','delimiter',',');
+ alattnew=textscan(alatt,'%f','delimiter',',');
elseif ~isempty(s1) && ~isempty(s2)
alatt=alatt(s1+1:s2-1);
- alattnew=strread(alatt,'%f','delimiter',',');
+ alattnew=textscan(alatt,'%f','delimiter',',');
else
mess1='Ensure lattice parameters are a 3-element vector with comma-separated elements';
set(handles.message_info_text,'String',char({mess_initialise,mess1}));
@@ -5394,10 +5281,10 @@ function gen_sqw_run_pushbutton_Callback(hObject, eventdata, handles)
end
s1=strfind(angdeg,'['); s2=strfind(angdeg,']');
if isempty(s1) && isempty(s2)
- angdegnew=strread(angdeg,'%f','delimiter',',');
+ angdegnew=textscan(angdeg,'%f','delimiter',',');
elseif ~isempty(s1) && ~isempty(s2)
angdeg=angdeg(s1+1:s2-1);
- angdegnew=strread(angdeg,'%f','delimiter',',');
+ angdegnew=textscan(angdeg,'%f','delimiter',',');
else
mess1='Ensure lattice angles are a 3-element vector with comma-separated elements';
set(handles.message_info_text,'String',char({mess_initialise,mess1}));
@@ -5406,10 +5293,10 @@ function gen_sqw_run_pushbutton_Callback(hObject, eventdata, handles)
end
s1=strfind(offsets,'['); s2=strfind(offsets,']');
if isempty(s1) && isempty(s2)
- offsetsnew=strread(offsets,'%f','delimiter',',');
+ offsetsnew=textscan(offsets,'%f','delimiter',',');
elseif ~isempty(s1) && ~isempty(s2)
offsets=offsets(s1+1:s2-1);
- offsetsnew=strread(offsets,'%f','delimiter',',');
+ offsetsnew=textscan(offsets,'%f','delimiter',',');
else
mess1='Ensure offset angles are a 4-element vector with comma-separated elements';
set(handles.message_info_text,'String',char({mess_initialise,mess1}));
@@ -5445,7 +5332,7 @@ function gen_sqw_run_pushbutton_Callback(hObject, eventdata, handles)
emode=1;
elseif strcmp(handles.gen_emode,'Indirect')
emode=2;
- elseif strcmp(handles.gen_emode,'Diffraction');
+ elseif strcmp(handles.gen_emode,'Diffraction')
emode=0;
else
mess1='Select a spectrometer geometry';
@@ -5465,6 +5352,7 @@ function gen_sqw_run_pushbutton_Callback(hObject, eventdata, handles)
%also ensure that every spe file has an associated value of psi.
spe_psi_list=get(handles.gen_sqw_listbox,'String');
%convert to cell array:
+spe_psi_cell = cell(size(spe_psi_list,1), 1);
for i=1:size(spe_psi_list,1)
spe_psi_cell{i}=strtrim(spe_psi_list(i,:));%get rid of leading and trailing white space
end
@@ -5503,20 +5391,7 @@ function gen_sqw_run_pushbutton_Callback(hObject, eventdata, handles)
set(handles.message_info_text,'String',char({mess_initialise,mess1,mess2}));
guidata(gcbo,handles);
catch the_err
- err = {sprintf('**** %s',mess_initialise),...
- sprintf('**** Error %s Message: %s',...
- the_err.identifier,the_err.message),...
- '**** gen_sqw failed at: '};
- stack_depth = numel(the_err.stack);
- for i=stack_depth-3:-1:1
- err{end+1} = sprintf('*** Row: %d, function: %20s file: %s',...
- the_err.stack(i).line,the_err.stack(i).name,the_err.stack(i).file);
- end
-
- set(handles.message_info_text,'String',char(err));
- guidata(gcbo,handles);
-
- rethrow(the_err);
+ report_erro(the_err,'**** gen_sqw failed at: ')
end
@@ -5554,10 +5429,10 @@ function gen_sqw_refresh_pushbutton_Callback(hObject, eventdata, handles)
%must strip out square brackets, if user has inserted them:
s1=strfind(psi_string,'['); s2=strfind(psi_string,']');
if isempty(s1) && isempty(s2)
- psinew=strread(psi_string,'%s');
+ psinew=textscan(psi_string,'%s');
elseif ~isempty(s1) && ~isempty(s2)
psi_string=psi_string(s1+1:s2-1);
- psinew=strread(psi_string,'%s');
+ psinew=textscan(psi_string,'%s');
else
mess1='check formatting of psi input - must be in form of a Matlab vector';
set(handles.message_info_text,'String',char({mess_initialise,mess1}));
@@ -5890,7 +5765,7 @@ function Cutfile_orthaxes_radiobutton_Callback(hObject, eventdata, handles)
% Hint: get(hObject,'Value') returns toggle state of Cutfile_orthaxes_radiobutton
button_state=get(hObject,'Value');
-if button_state==get(hObject,'Max');%button is pressed
+if button_state==get(hObject,'Max') %button is pressed
set(handles.Cutfile_nonorth_axes_radiobutton,'Value',0);
end
guidata(gcbo, handles);
@@ -5921,3 +5796,19 @@ function Cutfile_nonorth_axes_radiobutton_Callback(hObject, eventdata, handles)
% --------------------------------------------------------------------
+function report_error(the_err,err_info)
+err = {sprintf('**** %s',mess_initialise),...
+ sprintf('**** Error %s Message: %s',...
+ the_err.identifier,the_err.message),...
+ err_info};
+stack_depth = numel(the_err.stack);
+for i=stack_depth-3:-1:1
+ err{end+1} = sprintf('*** Row: %d, function: %20s file: %s',...
+ the_err.stack(i).line,the_err.stack(i).name,the_err.stack(i).file);
+end
+
+set(handles.message_text_field,'String',char(err));
+guidata(gcbo,handles);
+
+rethrow(the_err);
+
diff --git a/horace_core/GUI/horace_fitting.m b/horace_core/GUI/horace_fitting.m
index b269d573e3..e6c1e1914a 100644
--- a/horace_core/GUI/horace_fitting.m
+++ b/horace_core/GUI/horace_fitting.m
@@ -66,7 +66,9 @@ function horace_fitting_OpeningFcn(hObject, eventdata, handles, varargin)
guidata(hObject,handles);
drawnow;
%
-vars = evalin('base','whos');%gives a structure array with all of the workspace variables in it
+% get a structure array with all of the workspace variables in it
+% contains concrete name (.class) and variable name (.name)
+vars = evalin('base','whos');
counter=1;
for i=1:numel(vars)
test_el=vars(i);
@@ -135,7 +137,9 @@ function obj_list_popupmenu_Callback(hObject, eventdata, handles)
guidata(gcbo,handles);
drawnow;
%
-vars = evalin('base','whos');%gives a structure array with all of the workspace variables in it
+% get a structure array with all of the workspace variables in it
+% contains concrete name (.class) and variable name (.name)
+vars = evalin('base','whos');
counter=1;
for i=1:numel(vars)
test_el=vars(i);
@@ -206,7 +210,10 @@ function refresh_list_pushbutton_Callback(hObject, eventdata, handles)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
-vars = evalin('base','whos');%gives a structure array with all of the workspace variables in it
+
+% get a structure array with all of the workspace variables in it
+% contains concrete name (.class) and variable name (.name)
+vars = evalin('base','whos');
counter=1;
for i=1:numel(vars)
test_el=vars(i);
@@ -392,7 +399,7 @@ function plot_pushbutton_Callback(hObject, eventdata, handles)
flag=0;
end
-if isfield(handles,'w_in');
+if isfield(handles,'w_in')
if flag==0
win=handles.w_in;
if numel(win)~=1
@@ -678,20 +685,20 @@ function fit_pushbutton_Callback(hObject, eventdata, handles)
x2array=str2num(x2list);
bgon=strcmp(get(handles.background_edit,'Enable'),'on');
-slopeon=strcmp(get(handles.bgslope_edit,'Enable'),'on');;
+slopeon=strcmp(get(handles.bgslope_edit,'Enable'),'on');
x2on=strcmp(get(handles.bgx2_edit,'Enable'),'on');
-if (isempty(constarray) & bgon) || (any(isnan(constarray)) & bgon)
+if (isempty(constarray) && bgon) || (any(isnan(constarray)) && bgon)
mess='Background must be a single number -- no fitting performed';
set(handles.message_text_field,'String',char({mess_initialise,mess}));
guidata(gcbo,handles);
return;
-elseif (isempty(slopearray) & slopeon) || (any(isnan(slopearray)) & slopeon)
+elseif (isempty(slopearray) && slopeon) || (any(isnan(slopearray)) && slopeon)
mess='Slope must be a single number -- no fitting performed';
set(handles.message_text_field,'String',char({mess_initialise,mess}));
guidata(gcbo,handles);
return;
-elseif (isempty(x2array) & x2on) || (any(isnan(x2array)) & x2on)
+elseif (isempty(x2array) && x2on) || (any(isnan(x2array)) && x2on)
mess='x^2 coefficient must be a single number -- no fitting performed';
set(handles.message_text_field,'String',char({mess_initialise,mess}));
guidata(gcbo,handles);
@@ -1136,20 +1143,20 @@ function simulate_pushbutton_Callback(hObject, eventdata, handles)
x2array=str2num(x2list);
bgon=strcmp(get(handles.background_edit,'Enable'),'on');
-slopeon=strcmp(get(handles.bgslope_edit,'Enable'),'on');;
+slopeon=strcmp(get(handles.bgslope_edit,'Enable'),'on');
x2on=strcmp(get(handles.bgx2_edit,'Enable'),'on');
-if (isempty(constarray) & bgon) || (any(isnan(constarray)) & bgon)
+if (isempty(constarray) && bgon) || (any(isnan(constarray)) && bgon)
mess='Background must be a single number -- no simulation performed';
set(handles.message_text_field,'String',char({mess_initialise,mess}));
guidata(gcbo,handles);
return;
-elseif (isempty(slopearray) & slopeon) || (any(isnan(slopearray)) & slopeon)
+elseif (isempty(slopearray) && slopeon) || (any(isnan(slopearray)) && slopeon)
mess='Slope must be a single number -- no simulation performed';
set(handles.message_text_field,'String',char({mess_initialise,mess}));
guidata(gcbo,handles);
return;
-elseif (isempty(x2array) & x2on) || (any(isnan(x2array)) & x2on)
+elseif (isempty(x2array) && x2on) || (any(isnan(x2array)) && x2on)
mess='x^2 coefficient must be a single number -- no simulation performed';
set(handles.message_text_field,'String',char({mess_initialise,mess}));
guidata(gcbo,handles);
diff --git a/horace_core/Tobyfit/Tobyfit/@mfclass_tobyfit/fit.m b/horace_core/Tobyfit/Tobyfit/@mfclass_tobyfit/fit.m
index cf78d40bce..88946d9086 100644
--- a/horace_core/Tobyfit/Tobyfit/@mfclass_tobyfit/fit.m
+++ b/horace_core/Tobyfit/Tobyfit/@mfclass_tobyfit/fit.m
@@ -150,7 +150,7 @@
obj_tmp.wrapfun.p_wrap = append_args (obj_tmp.wrapfun.p_wrap, obj.mc_contributions, obj.mc_points, xtal, modshape);
% Perform fit
-[data_out, fitdata, ok, mess] = fit@mfclass (obj_tmp, varargin{:});
+[data_out, fitdata] = fit@mfclass (obj_tmp, varargin{:});
% Extract crystal or moderator refinement parameters (if any) in a useful form
if is_refine_crystal
diff --git a/horace_core/Tobyfit/Tobyfit/@mfclass_tobyfit/simulate.m b/horace_core/Tobyfit/Tobyfit/@mfclass_tobyfit/simulate.m
index 0da64f03b7..6713c184eb 100644
--- a/horace_core/Tobyfit/Tobyfit/@mfclass_tobyfit/simulate.m
+++ b/horace_core/Tobyfit/Tobyfit/@mfclass_tobyfit/simulate.m
@@ -1,4 +1,4 @@
-function [data_out, calcdata, ok, mess] = simulate (obj, varargin)
+function [data_out, calcdata] = simulate (obj, varargin)
% Perform a simulation of the data using the current functions and parameter values
%
% Return calculated sum of foreground and background:
@@ -100,4 +100,4 @@
obj_tmp.wrapfun.p_wrap = append_args (obj_tmp.wrapfun.p_wrap, obj.mc_contributions, obj.mc_points, [], []);
% Perform simulation
-[data_out, calcdata, ok, mess] = simulate@mfclass (obj_tmp, varargin{:});
+[data_out, calcdata] = simulate@mfclass (obj_tmp, varargin{:});
diff --git a/horace_core/admin/cache.m b/horace_core/admin/cache.m
index 3af140972d..0823f7ba94 100644
--- a/horace_core/admin/cache.m
+++ b/horace_core/admin/cache.m
@@ -13,7 +13,6 @@ function cache(filename)
% to have full information and control over the caching process.
%
%
-% $Revision:: 1759 ($Date:: 2020-02-10 16:06:00 +0000 (Mon, 10 Feb 2020) $)
%
if ~isunix
warning('CACHE:invalid_os',...
@@ -34,4 +33,6 @@ function cache(filename)
disp('*** to observe the progress of the caching. ***');
disp('******************************************************************************************');
-system(sprintf('python %s %s &',fullfile(script_location,'cache.py'),filename),'-echo');;
\ No newline at end of file
+system(sprintf('python %s %s &',fullfile(script_location,'cache.py'),filename),'-echo');
+
+end
diff --git a/horace_core/algorithms/accumulate_sqw.m b/horace_core/algorithms/accumulate_sqw.m
index 92ac691e18..e347250fa6 100644
--- a/horace_core/algorithms/accumulate_sqw.m
+++ b/horace_core/algorithms/accumulate_sqw.m
@@ -6,10 +6,10 @@
% The standard way to use accumulate_sqw is to pass the file names and parameters for
% all the runs that are *anticipated* to be combined, but might not yet exist. Initially
% call with the keyword 'clean' to force a fresh sqw file to be created:
-%
+%
% >> accumulate_sqw (spe_file, par_file, sqw_file, efix, emode, alatt, angdeg,...
% u, v, psi, omega, dpsi, gl, gs, 'clean')
-%
+%
% As the experiment continues, subsequent calls to accumulate_sqw can be made with the
% same argument list, apart from removing the keyword 'clean'. A check is made in the
% function to determine which of the spe files have already been accumulated to the sqw file
@@ -37,7 +37,7 @@
% -----------------------------------------------------
% Include instrument and sample information:
%
-% >> accumulate_sqw (..., instrument, sample,...)
+% >> accumulate_sqw (..., instrument, sample,...)
%
% If the sqw file does not yet exist, or you specify 'clean', you can give fix
% the grid and data range:
@@ -49,7 +49,7 @@
% ---------------------------
% >> [tmp_file,grid_size,urange] = accumulate_sqw (...)
%
-%
+%
% Notes
% -----
% The goal of accumulate_spe is to allow you to create an sqw file which has a data
@@ -60,7 +60,7 @@
% been created are accumulated to the sqw file, and any that already exist in the sqw
% file are skipped. That is, the original call to accumulate_sqw simply adds newly
% create spe files. You can change any of the input arguments on the later call; any
-% runs that were not in the original call will not be accumulated to the sqw file -
+% runs that were not in the original call will not be accumulated to the sqw file -
% but any data tha is outside the data range of the sqw file will be lost.
%
%
@@ -95,7 +95,7 @@
% sample Structure or object containing sample geometry information [scalar or array length nfile]
%
% Optional keyword arguments: (can be used singly or together)
-% 'clean' Create the sqw file from fresh. It is possible to get confused about what
+% 'clean' Create the sqw file from fresh. It is possible to get confused about what
% data has been included in an sqw file if it is built up slowly over
% an experiment. Use this option to start afresh.
%
@@ -140,4 +140,3 @@
if nargout==0
clear tmp_file grid_size urange
end
-
diff --git a/horace_core/algorithms/gen_sqw.m b/horace_core/algorithms/gen_sqw.m
index 481739bfd0..56780d1c2b 100644
--- a/horace_core/algorithms/gen_sqw.m
+++ b/horace_core/algorithms/gen_sqw.m
@@ -1,4 +1,4 @@
-function [tmp_file,grid_size,urange] = gen_sqw (spe_file, par_file, sqw_file, efix, emode, alatt, angdeg,...
+function [tmp_file,grid_size,urange,varargout] = gen_sqw (spe_file, par_file, sqw_file, efix, emode, alatt, angdeg,...
u, v, psi, omega, dpsi, gl, gs, varargin)
% Read one or more spe files and a detector parameter file, and create an output sqw file.
%
@@ -78,9 +78,6 @@
% would symmetrize pixels of the generated sqw file by
% reflecting them in the plane specified by vectors
% [0,1,0], and [0,0,1] (see symmeterise_sqw for details)
-
-%
-%
% Output:
% --------
% tmp_file Cell array with list of temporary files created by this call to gen_sqw.
@@ -89,7 +86,10 @@
% grid_size Actual size of grid used (size is unity along dimensions
% where there is zero range of the data points)
% urange Actual range of grid
-
+%
+% parallel_cluster if job is executed in parallel and nargout >3, this
+% variable would return the initialized instance of the
+% job dispatcher, running a parallel job to continue
% T.G.Perring 14 August 2007
% T.G.Perring 19 March 2013 Massively updated, also includes functionality of accumulate_sqw
@@ -134,7 +134,9 @@
end
end
end
-
+if nargout>3
+ varargout{1} = [];
+end
%If we are to run in 'time' mode, where execution waits for some period,
%then must do so here, because any later we check whether or not spe files
@@ -420,10 +422,15 @@
end
end
+ keep_par_cl_running = ~opt.tmp_only || nargout>3;
+
% Generate unique temporary sqw files, one for each of the spe files
[grid_size,urange,tmp_file,parallel_job_dispatcher]=convert_to_tmp_files(run_files,sqw_file,...
- instrument,sample,urange_in,grid_size_in,opt.tmp_only);
+ instrument,sample,urange_in,grid_size_in,keep_par_cl_running);
+ if keep_par_cl_running
+ varargout{1} = parallel_job_dispatcher;
+ end
if use_partial_tmp
delete_tmp = false;
@@ -701,7 +708,7 @@ function report_nothing_to_do(spe_only,spe_exist)
end
disp('--------------------------------------------------------------------------------')
%---------------------------------------------------------------------------------------
-function [grid_size,urange,tmp_file,jd]=convert_to_tmp_files(run_files,sqw_file,...
+function [grid_size,urange,tmp_generated,jd]=convert_to_tmp_files(run_files,sqw_file,...
instrument,sample,urange_in,grid_size_in,gen_tmp_files_only)
%
log_level = ...
@@ -714,17 +721,35 @@ function report_nothing_to_do(spe_only,spe_exist)
spe_file = cellfun(@(x)(x.loader.file_name),run_files,...
'UniformOutput',false);
tmp_file=gen_tmp_filenames(spe_file,sqw_file);
+tmp_generated = tmp_file;
if gen_tmp_files_only
- f_exist = cellfun(@(fn)(exist(fn,'file')==2),tmp_file,'UniformOutput',true);
- if any(f_exist)
+ [f_valid_exist,pix_ranges] = cellfun(@(fn)(check_tmp_files_range(fn,urange_in,grid_size_in)),...
+ tmp_file,'UniformOutput',false);
+ f_valid_exist = [f_valid_exist{:}];
+ if any(f_valid_exist)
if log_level >0
warning([' some tmp files exist while generating tmp files only.'...
' Generating only new tmp files.'...
' Delete all existing tmp files to avoid this'])
end
- run_files = run_files(~f_exist);
- tmp_file = tmp_file(~f_exist);
+ run_files = run_files(~f_valid_exist);
+ tmp_file = tmp_file(~f_valid_exist);
+ pix_ranges = pix_ranges(f_valid_exist);
+ urange = pix_ranges{1};
+ for i=2:numel(pix_ranges)
+ urange = [min([urange(1,:);pix_ranges{i}(1,:)]);...
+ max([urange(2,:);pix_ranges{i}(2,:)])];
+ end
+ if isempty(run_files)
+ grid_size = grid_size_in;
+ jd = [];
+ return;
+ end
+ else
+ urange = [];
end
+else
+ urange = [];
end
nt=bigtic();
@@ -743,12 +768,9 @@ function report_nothing_to_do(spe_only,spe_exist)
job_name = ['gen_sqw_',fn];
%
jd = JobDispatcher(job_name);
- if gen_tmp_files_only
- keep_parallel_pool_running = false;
- else % if further operations are necessary to perform with generated tmp files,
- % keep parallel pool running to save time on restarting it
- keep_parallel_pool_running = true;
- end
+ % if further operations are necessary to perform with generated tmp files,
+ % keep parallel pool running to save time on restarting it.
+ keep_parallel_pool_running = ~gen_tmp_files_only;
% aggregate the conversion parameters into array of structures,
% suitable for splitting jobs between workers
@@ -761,7 +783,7 @@ function report_nothing_to_do(spe_only,spe_exist)
if n_failed == 0
outputs = outputs{1};
grid_size = outputs.grid_size;
- urange = outputs.urange;
+ urange1 = outputs.urange;
else
jd.display_fail_job_results(outputs,n_failed,num_matlab_sessions,'GEN_SQW:runtime_error');
end
@@ -780,10 +802,17 @@ function report_nothing_to_do(spe_only,spe_exist)
% effective but much easier to identify problem with
% failing parallel job
- [grid_size,urange]=gen_sqw_files_job.runfiles_to_sqw(run_files,tmp_file,...
+ [grid_size,urange1]=gen_sqw_files_job.runfiles_to_sqw(run_files,tmp_file,...
grid_size_in,urange_in,true);
%---------------------------------------------------------------------
end
+%
+if isempty(urange)
+ urange = urange1;
+else
+ urange= [min([urange(1,:);urange1(1,:)]);...
+ max([urange(2,:);urange1(2,:)])];
+end
if log_level>-1
disp('--------------------------------------------------------------------------------')
bigtoc(nt,'Time to create all temporary sqw files:',log_level);
@@ -791,3 +820,23 @@ function report_nothing_to_do(spe_only,spe_exist)
disp('--------------------------------------------------------------------------------')
end
+%
+function [present_and_valid,pix_range] = check_tmp_files_range(tmp_file,pix_db_range,grid_size_in)
+% TODO:
+% write check for grid_size_in which has to be equal to grid_size of head.
+% but head (without s,e,npix) does not have method to idnentify grid_size
+% (it should be written and tested)
+if ~is_file(tmp_file)
+ present_and_valid = false;
+ pix_range = [];
+ return;
+end
+toll = 1.e-7;
+ldr = sqw_formats_factory.instance().get_loader(tmp_file);
+head = ldr.get_data('-head');
+pix_range = head.urange; % this is incorrect. Fixed in rel 4.
+if any(abs(pix_range-pix_db_range)>toll)
+ present_and_valid = false;
+else
+ present_and_valid = true;
+end
diff --git a/horace_core/algorithms/private/gen_sqw_check_distinct_input.m b/horace_core/algorithms/private/gen_sqw_check_distinct_input.m
index 1ca6bd9c1b..4596bb49d8 100644
--- a/horace_core/algorithms/private/gen_sqw_check_distinct_input.m
+++ b/horace_core/algorithms/private/gen_sqw_check_distinct_input.m
@@ -232,5 +232,3 @@
end
end
-
-
diff --git a/horace_core/lattice_functions/calc_proj_matrix.m b/horace_core/lattice_functions/calc_proj_matrix.m
deleted file mode 100644
index ed4b40faeb..0000000000
--- a/horace_core/lattice_functions/calc_proj_matrix.m
+++ /dev/null
@@ -1,69 +0,0 @@
-function [spec_to_u, u_to_rlu, spec_to_rlu] = calc_proj_matrix (alatt, angdeg, u, v, psi, omega, dpsi, gl, gs)
-% Calculate matrix that convert momentum from coordinates in spectrometer frame to
-% projection axes defined by u1 || a*, u2 in plane of a* and b* i.e. crystal Cartesian axes
-% Allows for correction scattering plane (omega, dpsi, gl, gs) - see Tobyfit for conventions
-%
-% >> [spec_to_u, u_to_rlu, spec_to_rlu] = ...
-% calc_proj_matrix (alatt, angdeg, u, v, psi, omega, dpsi, gl, gs)
-%
-% Input:
-% ------
-% alatt Lattice parameters (Ang^-1)
-% angdeg Lattice angles (deg)
-% u First vector (1x3) defining scattering plane (r.l.u.)
-% v Second vector (1x3) defining scattering plane (r.l.u.)
-% psi Angle of u w.r.t. ki (rad)
-% omega Angle of axis of small goniometer arc w.r.t. notional u
-% dpsi Correction to psi (rad)
-% gl Large goniometer arc angle (rad)
-% gs Small goniometer arc angle (rad)
-%
-% Output:
-% -------
-% spec_to_u Matrix (3x3)to convert momentum from coordinates in spectrometer
-% frame to crystal Cartesian axes:
-% v_crystal_Cart = spec_to_u * v_spec
-%
-% u_to_rlu Matrix (3x3) of crystal Cartesian axes in reciprocal lattice units
-% i.e. u_to_rlu(:,1) first vector - u(1:3,1) r.l.u. etc.
-% This matrix can be used to convert components of a vector in
-% crystal Cartesian axes to r.l.u.:
-% v_rlu = u_to_rlu * v_crystal_Cart
-% (Same as inv(B) in Busing and Levy convention)
-%
-% spec_to_rlu Matrix (3x3) to convert from spectrometer coordinates to
-% r.l.u.:
-% v_rlu = spec_to_rlu * v_spec
-% (This matrix is entirely equivalent to u_to_rlu*spec_to_u)
-
-% T.G.Perring 15/6/07
-%
-% $Revision:: 1759 ($Date:: 2020-02-10 16:06:00 +0000 (Mon, 10 Feb 2020) $)
-
-
-% Get matrix to convert from rlu to orthonormal frame defined by u,v; and
-b_matrix = bmatrix(alatt, angdeg); % bmat takes Vrlu to Vxtal_cart
-ub_matrix = ubmatrix(u, v, b_matrix); % ubmat takes Vrlu to V in orthonormal frame defined by u, v
-u_matrix = ub_matrix / b_matrix; % u matrix takes V in crystal Cartesian coords to orthonormal frame defined by u, v
-
-
-% Matrix to convert coords in orthormal frame defined by notional directions of u, v, to
-% coords in orthonormal frame defined by true directions of u, v:
-rot_dpsi= [cos(dpsi),-sin(dpsi),0; sin(dpsi),cos(dpsi),0; 0,0,1];
-rot_gl = [cos(gl),0,sin(gl); 0,1,0; -sin(gl),0,cos(gl)];
-rot_gs = [1,0,0; 0,cos(gs),-sin(gs); 0,sin(gs),cos(gs)];
-rot_om = [cos(omega),-sin(omega),0; sin(omega),cos(omega),0; 0,0,1];
-corr = (rot_om * (rot_dpsi*rot_gl*rot_gs) * rot_om')';
-
-% Matrix to convert from spectrometer coords to orthormal frame defined by notional directions of u, v
-cryst = [cos(psi),sin(psi),0; -sin(psi),cos(psi),0; 0,0,1];
-
-% Combine to get matrix to convert from spectrometer coordinates to crystal Cartesian coordinates
-spec_to_u = u_matrix\corr*cryst;
-
-% Matrix to convert from crystal Cartesian coords to r.l.u.
-u_to_rlu = inv(b_matrix);
-
-% Matrix to convert from spectrometer coordinates to r.l.u.
-spec_to_rlu = b_matrix\spec_to_u;
-
diff --git a/horace_core/spaghetti_plot.m b/horace_core/spaghetti_plot.m
index b95a60e553..ae874d2faa 100644
--- a/horace_core/spaghetti_plot.m
+++ b/horace_core/spaghetti_plot.m
@@ -526,5 +526,3 @@ function plot_labels(labels,xvals)
set(gca,'XTick',xvals);
set(gca,'XTickLabel',labels);
-
-
diff --git a/horace_core/sqw/@gen_sqw_files_job/private/rundata_write_to_sqw_.m b/horace_core/sqw/@gen_sqw_files_job/private/rundata_write_to_sqw_.m
index 8e4a77a753..021f11943c 100644
--- a/horace_core/sqw/@gen_sqw_files_job/private/rundata_write_to_sqw_.m
+++ b/horace_core/sqw/@gen_sqw_files_job/private/rundata_write_to_sqw_.m
@@ -26,6 +26,11 @@
% Original author: T.G.Perring
nfiles = numel(run_files);
+if nfiles == 0
+ grid_size = grid_size_in;
+ urange = urange_in;
+ return
+end
[hor_log_level,use_mex]=get(hor_config,'log_level','use_mex');
%
diff --git a/horace_core/sqw/@sqw/private/binary_op_manager_single.m b/horace_core/sqw/@sqw/private/binary_op_manager_single.m
index ec5f04eaac..74fffde6d4 100644
--- a/horace_core/sqw/@sqw/private/binary_op_manager_single.m
+++ b/horace_core/sqw/@sqw/private/binary_op_manager_single.m
@@ -137,7 +137,7 @@
w2_rhs = fake_pixels(w2);
end
wout.data.pix = wout.data.pix.do_binary_op(w2_rhs.data.pix, binary_op, 'flip', flip);
- wout = recompute_bin_data(wout);
+ wout = recompute_bin_data(wout);
wout.data.npix = npix;
wout.data.pix = PixelData();
end
diff --git a/horace_core/sqw/multifit_subclasses/mfclass_Horace_sqw.m b/horace_core/sqw/multifit_subclasses/mfclass_Horace_sqw.m
index 430dbcb261..951036b9d4 100644
--- a/horace_core/sqw/multifit_subclasses/mfclass_Horace_sqw.m
+++ b/horace_core/sqw/multifit_subclasses/mfclass_Horace_sqw.m
@@ -626,7 +626,7 @@
end
end
- function [data_out, calcdata, ok, mess] = simulate (obj, varargin)
+ function [data_out, calcdata] = simulate (obj, varargin)
% Perform a simulation of the data using the current functions and parameter values
%
% Return calculated sum of foreground and background:
@@ -724,10 +724,10 @@
wrapfun.p_wrap = append_args (wrapfun.p_wrap, 'ave');
obj_tmp.wrapfun = wrapfun;
end
- [data_out, calcdata, ok, mess] = simulate@mfclass (obj_tmp, varargin{:});
+ [data_out, calcdata] = simulate@mfclass (obj_tmp, varargin{:});
end
- function [data_out, calcdata, ok, mess] = fit (obj, varargin)
+ function [data_out, calcdata] = fit (obj, varargin)
% Perform a fit of the data using the current functions and parameter values
%
% Return calculated fitted datasets and parameters:
@@ -819,7 +819,7 @@
wrapfun.p_wrap = append_args (wrapfun.p_wrap, 'ave');
obj_tmp.wrapfun = wrapfun;
end
- [data_out, calcdata, ok, mess] = fit@mfclass (obj_tmp, varargin{:});
+ [data_out, calcdata] = fit@mfclass (obj_tmp, varargin{:});
end
end
end
diff --git a/horace_core/sqw/multifit_subclasses/mfclass_Horace_sqw_sqw.m b/horace_core/sqw/multifit_subclasses/mfclass_Horace_sqw_sqw.m
index 5827989081..df64355f02 100644
--- a/horace_core/sqw/multifit_subclasses/mfclass_Horace_sqw_sqw.m
+++ b/horace_core/sqw/multifit_subclasses/mfclass_Horace_sqw_sqw.m
@@ -725,7 +725,7 @@
obj_tmp.wrapfun = wrapfun;
end
- [data_out, calcdata, ok, mess] = simulate@mfclass (obj_tmp, varargin{:});
+ [data_out, calcdata] = simulate@mfclass (obj_tmp, varargin{:});
end
function [data_out, calcdata, ok, mess] = fit (obj, varargin)
@@ -821,7 +821,7 @@
wrapfun.bp_wrap = append_args (wrapfun.bp_wrap, 'ave');
obj_tmp.wrapfun = wrapfun;
end
- [data_out, calcdata, ok, mess] = fit@mfclass (obj_tmp, varargin{:});
+ [data_out, calcdata] = fit@mfclass (obj_tmp, varargin{:});
end
end
end
diff --git a/tools/bash/clone_herbert_branch.sh b/tools/bash/clone_herbert_branch.sh
index 91cedcbe98..4a6c4faeaa 100755
--- a/tools/bash/clone_herbert_branch.sh
+++ b/tools/bash/clone_herbert_branch.sh
@@ -37,6 +37,6 @@ fi
run_in_dir "echo -e \"\nBuilding Herbert revision \$(git rev-parse HEAD)...\"" \
"${HERBERT_DIR}"
-build_cmd="${HERBERT_DIR}/tools/build_config/build.sh --build"
+build_cmd="${HERBERT_DIR}/tools/build_config/build.sh --configure --build"
build_cmd+=" --build_tests OFF ${build_args}"
echo_and_run "${build_cmd}"
diff --git a/tools/build_config/Jenkinsfile b/tools/build_config/Jenkinsfile
index d0a54d4c6e..815aec38dc 100644
--- a/tools/build_config/Jenkinsfile
+++ b/tools/build_config/Jenkinsfile
@@ -1,223 +1,77 @@
#!groovy
-def get_matlab_release(String job_name) {
- return 'R' + job_name[-5..-1]
-}
-
-def get_build_type(String job_name) {
- if (job_name.startsWith('Release-')) {
- return 'Release'
- } else if (job_name.startsWith('Branch-')) {
- return 'Branch'
- } else if(job_name.startsWith('PR-')) {
- return 'Pull-request'
- } else {
- return 'Nightly'
- }
-}
-
-def get_agent(String job_name) {
- if (job_name.contains('Scientific-Linux-7')) {
- withCredentials([string(credentialsId: 'sl7_agent', variable: 'agent')]) {
- return "${agent}"
- }
- } else if (job_name.contains('Windows-10')) {
- withCredentials([string(credentialsId: 'win10_agent', variable: 'agent')]) {
- return "${agent}"
- }
- } else {
- return ''
- }
-}
-
-def get_release_type(String job_name) {
- String build_type = get_build_type(job_name);
-
- switch(build_type) {
- case 'Release':
- return 'release'
-
- case 'Pull-request':
- return 'pull_request'
-
- case 'Nightly':
- return 'nightly'
-
- default:
- return ''
- }
-}
-
-def get_branch_name(String job_name) {
- String build_type = get_build_type(job_name);
-
- switch(build_type) {
- case 'Nightly':
- return 'master'
-
- default:
- return ''
- }
-}
-
-def get_default_herbert_branch(String job_name) {
- String build_type = get_build_type(job_name)
-
- switch(build_type) {
- case 'Release':
- return ''
-
- case 'Nightly':
- return 'None'
-
- default:
- return 'master'
- }
-}
+@Library('PACE-shared-lib') import pace.common.PipeLineInfo
- /* Parse the string of Git issue labels for a label that matches Herbert_*.
- * If a match is found, build using the Herbert branch of that name.
- *
- * This function will return a message beginning 'Error: ' if more than one
- * matching Herbert branch label is found. Throwing an error directly inside
- * this function will not fail the pipeline build.
- */
-def get_herbert_ref_from_labels(String labels, String herbert_branch) {
- def match = (labels =~ "Herbert_([a-zA-Z0-9_-]+)")
- try {
- match[1]
- // Return an error here as there must be, at most, one Herbert branch label
- // on the pull request. If the above line does not error, then there must
- // be at least two.
- return("Error: Found more than one Herbert branch label on the pull request.")
- } catch (IndexOutOfBoundsException e1) {
- try {
- // There is exactly one matching label on the pull request
- return match[0][1]
- } catch (IndexOutOfBoundsException e2) {
- // We get here if there are no matching labels on the pull request
- return herbert_branch
- }
- }
-}
+pli = new PipeLineInfo(env.JOB_BASE_NAME)
properties([
parameters([
string(
- defaultValue: get_branch_name(env.JOB_BASE_NAME),
- description: 'The name of the branch to build.',
+ defaultValue: pli.branch_name,
+ description: 'The name of the branch to build. *',
name: 'BRANCH_NAME',
trim: true
),
string(
- defaultValue: get_default_herbert_branch(env.JOB_BASE_NAME),
- description: 'The name of the branch or tag of Herbert to use.',
+ defaultValue: pli.herbert_branch,
+ description: 'The name of the branch or tag of Herbert to use. *',
name: 'HERBERT_BRANCH_NAME',
trim: true
),
string(
- defaultValue: get_matlab_release(env.JOB_BASE_NAME),
+ defaultValue: '',
description: 'The release number of the Matlab to load e.g. R2019b.',
name: 'MATLAB_VERSION',
trim: true
),
string(
- defaultValue: get_release_type(env.JOB_BASE_NAME),
- description: 'The type of the build e.g. "nightly", "release", "pull_request".',
+ defaultValue: pli.release_type,
+ description: 'The type of the build e.g. "nightly", "release", "pull_request". *',
name: 'RELEASE_TYPE',
trim: true
),
string(
- defaultValue: get_agent(env.JOB_BASE_NAME),
- description: 'The agent to execute the pipeline on.',
+ defaultValue: utilities.get_agent(pli.os),
+ description: 'The agent to execute the pipeline on. *',
name: 'AGENT',
trim: true
),
string(
- defaultValue: '3.7.2',
- description: 'The version of CMake to run the build with.',
+ defaultValue: '3.19',
+ description: 'The version of CMake to run the build with. Affects Linux builds only.',
name: 'CMAKE_VERSION',
trim: true
),
string(
defaultValue: '6.3.0',
- description: 'The version of GCC to build with.',
+ description: 'The version of GCC to build with. Affects Linux builds only.',
name: 'GCC_VERSION',
trim: true
),
string(
defaultValue: '2017',
- description: 'The year of the version of Visual Studio to build with.',
+ description: 'The year of the version of Visual Studio to build with. Affects Windows builds only.',
name: 'VS_VERSION',
trim: true
),
string(
- defaultValue: '1.77',
- description: 'The version of CppCheck tooling to load to provide the code-style checks.',
+ defaultValue: '',
+ description: 'The version of CppCheck tooling to load to provide the code-style checks. Affects Linux builds only.',
name: 'CPPCHECK_VERSION',
trim: true
+ ),
+ booleanParam(
+ defaultValue: true,
+ description: 'If this pipeline is to build docs.',
+ name: 'BUILD_DOCS'
+ ),
+ booleanParam(
+ description: 'If this pipeline is to push docs.',
+ name: 'PUSH_DOCS'
)
])
])
-def post_github_status(String state, String message) {
- // Non-PR builds will not set PR_STATUSES_URL - in which case we do not
- // want to post any statuses to Git
- if (env.PR_STATUSES_URL) {
- script {
- withCredentials([string(credentialsId: 'GitHub_API_Token',
- variable: 'api_token')]) {
- if (isUnix()) {
- sh """
- curl -H "Authorization: token ${api_token}" \
- --request POST \
- --data '{"state": "${state}", \
- "description": "${message}", \
- "target_url": "$BUILD_URL", \
- "context": "$JOB_BASE_NAME"}' \
- $PR_STATUSES_URL > /dev/null
- """
- }
- else {
- powershell """
- [Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls"
- \$payload = @{
- "state" = "${state}";
- "description" = "${message}";
- "target_url" = "$BUILD_URL";
- "context" = "$JOB_BASE_NAME"}
-
- Invoke-RestMethod -URI "$PR_STATUSES_URL" \
- -Headers @{Authorization = "token ${api_token}"} \
- -Method 'POST' \
- -Body (\$payload|ConvertTo-JSON) \
- -ContentType "application/json"
- """
- }
- }
- }
- }
-}
-
-def write_git_revision_to_file(String file_name) {
- script {
- def git_rev_cmd = "git rev-parse HEAD"
- echo "Writing Git revision to ${file_name}..."
- if (isUnix()) {
- sh """
- echo "\$(${git_rev_cmd})" > ${file_name}
- """
- } else {
- powershell """
- Write-Output "\$(${git_rev_cmd})" > ${file_name}
- """
- }
- }
-}
-
-
-def base_job_name = "${env.JOB_BASE_NAME}".replace("PR-", "").replace("Branch-", "")
-
if (env.BRANCH_NAME) {
currentBuild.description = "Branch: ${env.BRANCH_NAME}"
} else if (env.PR_NUMBER) {
@@ -225,39 +79,39 @@ if (env.BRANCH_NAME) {
currentBuild.description = "Git-SHA: ${env.PR_COMMIT_SHA.take(7)}"
}
+def base_job_name = "${env.JOB_BASE_NAME}".replace("PR-", "").replace("Branch-", "")
+Boolean run_build_stage = !(env?.PR_LABELS =~ "do-not-build")
+Boolean run_test_stage = !(env?.PR_LABELS =~ "(do-not-build|do-not-test)")
+Boolean run_push_docs_stage = (pli.matlab_release == 'R2019b' &&
+ pli.build_type == 'Nightly' &&
+ utilities.get_agent(pli.os) == 'sl7')
pipeline {
+
agent {
label env.AGENT
}
+ environment {
+ MATLAB_VERSION = utilities.get_param('MATLAB_VERSION', pli.matlab_release)
+ CMAKE_VERSION = utilities.get_param('CMAKE_VERSION', '3.19')
+ GCC_VERSION = utilities.get_param('GCC_VERSION', '6.3.0')
+ VS_VERSION = utilities.get_param('VS_VERSION', '2017')
+ CPPCHECK_VERSION = utilities.get_param('CPPCHECK_VERSION', '1.77')
+ BUILD_DOCS = utilities.get_param('BUILD_DOCS', 'true')
+ PUSH_DOCS = utilities.get_param('PUSH_DOCS', 'false')
+ }
+
stages {
stage('Notify') {
- steps {
- post_github_status("pending", "The build is running")
- }
- }
-
- stage('Analyze') {
steps {
script {
- if (isUnix()) {
- sh '''
- module load cmake/\$CMAKE_VERSION &&
- module load matlab/\$MATLAB_VERSION &&
- module load gcc/\$GCC_VERSION &&
- module load cppcheck/\$CPPCHECK_VERSION &&
- ./tools/build_config/build.sh --print_versions --analyze
- '''
- }
- else {
- powershell '''
- ./tools/build_config/build.ps1 -print_versions
- Write-Output \"Static Analysis in not performed on Windows\"
- '''
+ if (env.PR_LABELS) {
+ echo "Found PR labels: ${env.PR_LABELS}"
}
}
+ post_github_status("pending", "The build is running")
}
}
@@ -297,18 +151,14 @@ pipeline {
}
} else {
- if (env.PR_LABELS) {
- echo "Found PR labels: ${env.PR_LABELS}"
- }
- def herbert_ref = get_herbert_ref_from_labels(
+ def herbert_ref = utilities.get_herbert_ref_from_labels(
env.PR_LABELS,
env.HERBERT_BRANCH_NAME
)
if (herbert_ref.startsWith('Error: ')) {
error(herbert_ref)
}
-
// Get Herbert from GitHub and call the build script
if (isUnix()) {
sh """
@@ -335,24 +185,108 @@ pipeline {
}
}
- stage('Build') {
+ stage('Configure') {
steps {
script {
+ if (env.BUILD_DOCS?.toBoolean()) {
+ if (isUnix()) {
+ sh '''
+ module load python/3.6 &&
+ pip install --user sphinx &&
+ pip install --user sphinx_rtd_theme
+ '''
+ } else {
+ powershell '''
+ pip install --user sphinx
+ pip install --user sphinx_rtd_theme
+ '''
+ }
+ }
if (isUnix()) {
sh '''
+ module load python/3.6 &&
+ export PATH=${PATH}:~/.local/bin &&
module load cmake/\$CMAKE_VERSION &&
module load matlab/\$MATLAB_VERSION &&
module load gcc/\$GCC_VERSION &&
- ./tools/build_config/build.sh --build \
+ module load cppcheck/\$CPPCHECK_VERSION &&
+ ./tools/build_config/build.sh \
--cmake_flags \"-DHorace_RELEASE_TYPE=\$RELEASE_TYPE\" \
- --matlab_release \$MATLAB_VERSION
+ --matlab_release \$MATLAB_VERSION \
+ --print_versions --configure
+ '''
+ } else {
+ powershell '''
+ ./tools/build_config/build.ps1 -print_versions -configure \
+ -cmake_flags \"-DHorace_RELEASE_TYPE=\$env:RELEASE_TYPE\" \
+ -matlab_release \$env:MATLAB_VERSION \
+ -vs_version \$env:VS_VERSION
+ '''
+ }
+ }
+ }
+ }
+
+ stage('Analyze') {
+ steps {
+ script {
+ if (isUnix()) {
+ sh '''
+ module load cmake/\$CMAKE_VERSION &&
+ module load matlab/\$MATLAB_VERSION &&
+ module load gcc/\$GCC_VERSION &&
+ module load cppcheck/\$CPPCHECK_VERSION &&
+ ./tools/build_config/build.sh --analyze
+ '''
+ }
+ else {
+ powershell '''
+ Write-Output \"Static Analysis in not performed on Windows\"
'''
}
+ }
+ }
+ }
+
+ stage('Build') {
+ when {
+ expression {
+ run_build_stage == true
+ }
+ }
+ steps {
+ script {
+ if (isUnix()) {
+ sh '''
+ module load cmake/\$CMAKE_VERSION &&
+ module load matlab/\$MATLAB_VERSION &&
+ module load gcc/\$GCC_VERSION &&
+ ./tools/build_config/build.sh --build
+ '''
+ }
else {
powershell '''
- ./tools/build_config/build.ps1 -build \
- -cmake_flags \"-DHorace_RELEASE_TYPE=\$env:RELEASE_TYPE\" \
- -matlab_release \$env:MATLAB_VERSION
+ ./tools/build_config/build.ps1 -build
+ '''
+ }
+ }
+ }
+ }
+
+ stage('Build-Docs') {
+ when {
+ expression {env.BUILD_DOCS?.toBoolean()}
+ }
+ steps {
+ script {
+ if (isUnix()) {
+ sh '''
+ echo "building docs are not implemented for release 3.5"
+ '''
+ }
+ else {
+ powershell '''
+ echo "building docs are not implemented for release 3.5"
'''
}
}
@@ -360,6 +294,11 @@ pipeline {
}
stage('Test') {
+ when {
+ expression {
+ run_test_stage == true
+ }
+ }
steps {
script {
if (isUnix()) {
@@ -378,10 +317,18 @@ pipeline {
}
stage('Package') {
+ when {
+ expression {
+ run_build_stage == true
+ }
+ }
steps {
script {
if (isUnix()) {
- sh './tools/build_config/build.sh --package'
+ sh '''
+ module load cmake/\$CMAKE_VERSION &&
+ ./tools/build_config/build.sh --package
+ '''
}
else {
powershell './tools/build_config/build.ps1 -package'
@@ -389,9 +336,9 @@ pipeline {
// Archive a file containing the git revision being built. This
// enables the Deploy pipelines to validate against this SHA, and
// ensure the correct revision is tagged in Git.
- if (get_build_type(env.JOB_BASE_NAME) == 'Release') {
+ if (pli.build_type == 'Release') {
def git_rev_file_name = "${env.JOB_BASE_NAME}-git-revision.sha"
- write_git_revision_to_file(git_rev_file_name)
+ utilities.write_git_revision_to_file(git_rev_file_name)
archiveArtifacts(artifacts: git_rev_file_name, fingerprint: true)
}
}
@@ -403,22 +350,50 @@ pipeline {
)
}
}
+
+
+ stage('Push-Docs') {
+ when {
+ expression {env.BUILD_DOCS?.toBoolean() && (env.PUSH_DOCS?.toBoolean() || run_push_docs_stage)}
+ }
+ steps {
+ withCredentials([string(credentialsId: 'GitHub_API_Token',
+ variable: 'api_token')]) {
+ script {
+ if (isUnix()) {
+ sh './tools/build_config/build.sh --push-docs'
+ }
+ else {
+ powershell './tools/build_config/build.ps1 -push_docs'
+
+ }
+ }
+ }
+ }
+ }
}
post {
always {
- // archive CTest results file and static analysis report
+ // archive static analysis report
archiveArtifacts(
- artifacts: 'build/Testing/**/*.xml,**/cppcheck.xml',
+ artifacts: '**/cppcheck.xml,**/mlint.json',
+ allowEmptyArchive: true,
fingerprint: true
)
- publishCppcheck (
- displayAllErrors: true,
- allowNoReport: true,
- pattern: '**/cppcheck.xml'
+ recordIssues(
+ tools: [
+ cppCheck(pattern: '**/cppcheck.xml', reportEncoding: 'UTF-8'),
+ issues(id: 'mlint', name: 'MLint', pattern: '**/mlint.json')
+ ]
)
+ archiveArtifacts(
+ artifacts: 'build/Testing/**/*.xml',
+ allowEmptyArchive: true,
+ fingerprint: true
+ )
xunit (
testTimeMargin: '3000',
thresholdMode: 1,
@@ -436,6 +411,7 @@ pipeline {
)
]
)
+
}
success {
diff --git a/tools/build_config/build.ps1 b/tools/build_config/build.ps1
index 025dae016e..2cd5229cd1 100644
--- a/tools/build_config/build.ps1
+++ b/tools/build_config/build.ps1
@@ -28,6 +28,8 @@
https://github.com/pace-neutrons/Horace
#>
param (
+ # Run the Horace configure commands.
+ [switch][Alias("g")]$configure,
# Run the Horace build commands.
[switch][Alias("b")]$build,
# Run all Horace tests.
@@ -36,6 +38,10 @@ param (
[switch][Alias("p")]$package,
# Print the versions of libraries being used e.g. Matlab.
[switch][Alias("v")]$print_versions,
+ # Build docs
+ [switch][Alias("d")]$docs,
+ # Push docs to github
+ [switch]$push_docs,
# Call Get-Help on this script and exit.
[switch][Alias("h")]$help,
@@ -160,7 +166,7 @@ function Invoke-Configure {
function Invoke-Build {
param([string]$build_dir, [string]$build_config)
Write-Output "`nRunning CMake build step..."
- Write-And-Invoke "cmake --build ""$build_dir"""
+ Write-And-Invoke "cmake --build ""$build_dir"" --config ""$build_config"""
if ($LASTEXITCODE -ne 0) {
exit $LASTEXITCODE
}
@@ -173,7 +179,7 @@ function Invoke-Test {
$test_cmd += " -T Test --no-compress-output"
$test_cmd += " --output-on-failure"
$test_cmd += " --test-output-size-passed $MAX_CTEST_SUCCESS_OUTPUT_LENGTH"
- Invoke-In-Dir -directory $build_dir -command $test_cmd
+ Invoke-In-Dir -directory "$build_dir" -command "$test_cmd"
if ($LASTEXITCODE -ne 0) {
exit $LASTEXITCODE
}
@@ -186,7 +192,37 @@ function Invoke-Package {
if ($LASTEXITCODE -ne 0) {
exit $LASTEXITCODE
}
+}
+
+function Invoke-Docs {
+ param([string]$build_dir)
+ Write-And-Invoke "cmake --build ""$build_dir"" --target docs-pack"
+
+ if ($LASTEXITCODE -ne 0) {
+ exit $LASTEXITCODE
+ }
+}
+
+function Invoke-Push {
+ git config --local user.name "PACE CI Build Agent"
+ git config --local user.email "pace.builder.stfc@gmail.com"
+ git remote set-url --push origin "https://pace-builder:$(${env:api_token}.trim())@github.com/pace-neutrons/Horace"
+ git checkout gh-pages
+ # Keep up to date
+ git pull
+
+ Set-Content -Value "Bypassing Jekyll on GitHub Pages" -Path .nojekyll
+ git add .nojekyll
+ git rm -rf --ignore-unmatch ./unstable
+ Copy-Item -Path "./documentation/user_docs/build/html" -Destination "./unstable" -Recurse
+ git add unstable
+
+ (Get-Content "./build/CPackConfig.cmake" |
+ Where-Object {$_ -match 'CPACK_PACKAGE_FILE_NAME'}) -match '.*"Horace-([^"]+)".*'
+ $build_id = $Matches[1]
+ git commit -m "Document build from CI (${build_id})"
+ git push origin gh-pages
if ($LASTEXITCODE -ne 0) {
exit $LASTEXITCODE
}
@@ -224,3 +260,10 @@ if ($package) {
Invoke-Package -build_dir "$build_dir"
}
+if ($docs) {
+ Invoke-Docs -build_dir "$build_dir"
+}
+
+if ($push_docs) {
+ Invoke-Push
+}
diff --git a/tools/build_config/build.sh b/tools/build_config/build.sh
index e683e87160..967a312d13 100755
--- a/tools/build_config/build.sh
+++ b/tools/build_config/build.sh
@@ -40,7 +40,7 @@ function run_configure() {
cmake_cmd+=" -G \"${CMAKE_GENERATOR}\""
cmake_cmd+=" -DMatlab_ROOT_DIR=${MATLAB_ROOT}"
cmake_cmd+=" -DCMAKE_BUILD_TYPE=${build_config}"
- cmake_cmd+=" -DBUILD_TESTS=${build_tests}"
+ cmake_cmd+=" -DBUILD_TESTING=${build_tests}"
cmake_cmd+=" -DMatlab_RELEASE=${matlab_release}"
cmake_cmd+=" ${cmake_flags}"
@@ -67,18 +67,8 @@ function run_tests() {
}
function run_analysis() {
- local output_dir=$1
-
- if [ -f "$(which cppcheck)" ]; then
- echo -e "\nRunning analysis step..."
-
- analysis_cmd="cppcheck --enable=all --inconclusive"
- analysis_cmd+=" --xml --xml-version=2"
- analysis_cmd+=" -I ${HORACE_ROOT}/_LowLevelCode/cpp"
- analysis_cmd+=" ${HORACE_ROOT}/_LowLevelCode/"
- analysis_cmd+=" 2> ${output_dir}/cppcheck.xml"
- echo_and_run "${analysis_cmd}"
- fi
+ local build_dir=$1
+ echo_and_run "cmake --build ${build_dir} -- analyse"
}
function run_package() {
@@ -87,6 +77,27 @@ function run_package() {
echo_and_run "cpack -G TGZ"
}
+function build_docs() {
+ # Update release numbers
+ echo_and_run "cmake --build ${build_dir} --target docs-pack"
+}
+
+function push_built_docs() {
+ build_id=$(sed -nr '/CPACK_PACKAGE_FILE_NAME/{s/.*"Horace-([^"]+)".*/\1/p};' ./build/CPackConfig.cmake)
+ git config --local user.name "PACE CI Build Agent"
+ git config --local user.email "pace.builder.stfc@gmail.com"
+ git remote set-url --push origin "https://pace-builder:"${api_token## }"@github.com/pace-neutrons/Horace"
+ git checkout gh-pages
+ git pull
+ echo "Bypassing Jekyll on GitHub Pages" > .nojekyll
+ git add .nojekyll
+ git rm -rf --ignore-unmatch ./unstable
+ cp -r ./documentation/user_docs/build/html ./unstable
+ git add unstable
+ git commit -m "Document build from CI ("$build_id")"
+ git push origin gh-pages
+}
+
function print_help() {
readonly local help_msg="Script to build, run static analysis, test and package Horace.
@@ -105,12 +116,18 @@ flags:
Run the Horace build commands.
-t, --test
Run all Horace tests.
+ -c, --configure
+ Run cmake configuration stage
-a, --analyze
- Run static analysis on Horace C++ code.
+ Run static analysis on Horace code.
-p, --package
Pacakge Horace into a .tar.gz file.
-v, --print_versions
Print the versions of libraries being used e.g. Matlab.
+ -d, --docs
+ Build user docs
+ --push_docs
+ Push docs up to Horace GitHub repo
-h, --help
Print help message and exit.
options:
@@ -137,8 +154,11 @@ function main() {
# set default parameter values
local build=$FALSE
local test=$FALSE
+ local configure=$FALSE
local analyze=$FALSE
local package=$FALSE
+ local docs=$FALSE
+ local push_docs=$FALSE
local print_versions=$FALSE
local build_tests="ON"
local build_config='Release'
@@ -153,8 +173,11 @@ function main() {
# flags
-b|--build) build=$TRUE; shift ;;
-t|--test) test=$TRUE; shift ;;
+ -g|--configure) configure=$TRUE; shift;;
-a|--analyze) analyze=$TRUE; shift ;;
-p|--package) package=$TRUE; shift ;;
+ -d|--docs) docs=$TRUE; shift;;
+ --push-docs) push_docs=$TRUE; shift;;
-v|--print_versions) print_versions=$TRUE; shift ;;
-h|--help) print_help; exit 0 ;;
# options
@@ -171,15 +194,15 @@ function main() {
print_package_versions
fi
+ if ((configure)) || [ ! -e ${build_dir}/CMakeCache.txt ]; then
+ run_configure "${build_dir}" "${build_config}" "${build_tests}" "${matlab_release}" "${cmake_flags}"
+ fi
+
if ((analyze)); then
- run_analysis "${HORACE_ROOT}"
+ run_analysis "${build_dir}"
fi
if ((build)); then
- warning_msg="Warning: Build directory ${build_dir} already exists.\n\
- This may not be a clean build."
- echo_and_run "mkdir ${build_dir}" || warning "${warning_msg}"
- run_configure "${build_dir}" "${build_config}" "${build_tests}" "${matlab_release}" "${cmake_flags}"
run_build "${build_dir}"
fi
@@ -190,6 +213,14 @@ function main() {
if ((package)); then
run_package
fi
+
+ if ((docs)); then
+ build_docs
+ fi
+
+ if ((push_docs)); then
+ push_built_docs
+ fi
}
main "$@"
diff --git a/tools/pwsh/clone_herbert_branch.ps1 b/tools/pwsh/clone_herbert_branch.ps1
index 5a7f1e1a92..1c5a715142 100644
--- a/tools/pwsh/clone_herbert_branch.ps1
+++ b/tools/pwsh/clone_herbert_branch.ps1
@@ -27,7 +27,7 @@ Invoke-In-Dir `
-directory $HERBERT_DIR `
-command "Write-Output ""``nBuilding Herbert revision `$(git rev-parse HEAD)...""" `
-$build_cmd = "$HERBERT_DIR/tools/build_config/build.ps1 -build"
+$build_cmd = "$HERBERT_DIR/tools/build_config/build.ps1 -configure -build"
$build_cmd += " -build_tests OFF"
$build_cmd += " $build_args"
Write-And-Invoke "$build_cmd"