Releases: pace-neutrons/Horace
v4.0.1
Release Notes v4.0.1
Minor release, fixing some bugs and dealing with
some optimization issues identified after release.
Bugs fixed:
The details of the fixed issues are available on GitHub
- #1731 invalid error reporting in
load_spe
. - #1735 Issues with
SymopGeneral
incut_sym
. - #1745 Missing
dnd
constructor used byspinW
andspinW
integration tests. - #1748 Fixed
SymopIdentify
taking substantial time while doing cut without symmetries. - #1753
horace_mex
and issues withcpp_communicator
. - #1758
horace_install
installsspinW
integration on request. - #1762
horace_demo_script
is not working due to reference to removedfit_sqw
v4.0.0
This is version 4 of Horace, which contains major changes to the Horace code produced within 3-years of PACE project development. It is major upgrade from the Horace version 3.6.
Draft version of these changes were used in ISIS in cycles: 2024/1&2.
The code is tested against Matlab versions 2019b-2023b.
As part of major new features we would emphasise:
- Fully changed internal structure of sqw objects. In particular:
-
allows usage of different projections (images in different coordinate system)
-
provides the same way of operating with sqw objects regardless of the way they are stored internally (the whole sqw object can stay in memory or , if the pixel data can not fit memory, the object can be stored on files).
-
New types of cuts using spherical and cylindrical projections
-
New symmetry operations and ways of symmetrizing sqw objects.
-
Extended parallel operations, new parallel algorithms for sqw_eval and Tobyfit.
-
It writes sqw objects in a new more efficient and flexible binary format though still can read of previous versions of
sqw
files.sqw
files produced by Horace-4 can not be read by previous versions of Horace. -
Number of less substantial additions and improvement in algorithms and design (more than 1000 competed tickets) refactoring and improving existing algorithms, providing various new features and making code much more modular to allow better maintenance and future Horace development.
v3.6.4
Release Notes v3.6.4
This is bugfix release related to specific issue identified during running Horace.
You may be affected by this issue if you used Horace in ISIS in 2022-February:2023
and want to use Tobyfit or resolution convolution estimates.
To verify if you are affected, take 2D cut around elastic line and see it using run inspector,
e.g:
test_cut = cut(my_sqw_file,0.1,0.1,[-0.1,0.1],[-10,10]);
run_inspector(test_cut)
If run_inspector shows only single run contributed to image, your sqw file was generated incorrectly. If
you can see that inspector shows multiple images changing with changed run_id, your sqw file was generated
correctly.
If you want to use Tobyfit or estimate resolution convolution and have incorrectly generated sqw file,
download this release and regenerate your sqw files.
Alternatively use ISIS IDAAaS service to process your data.
Bugfixes
- #1565 Fixed run_id retrieved from contributing filenames to the pixels
un_id field
v3.6.3
Release Notes v3.6.3
Minor bugfix release, produced alongside with main development of version 4, to distribute changes requested by users.
Bugfixes
v3.6.2
Release fixing number of substantial bugs.
Main bugs fixed:
- #768 Restored erroneously deleted sqw/dnd methods
eplicate and sqw method
un_inspector. Added unit tests for these methods. - #771 Fixed the issue, causing inability to set up instrument and sample on large old version filebased sqw files, as the algorithm
was trying to load all pixel data in memory - #780 Fixed Tobyfit not working on recently generated sqw files. The Tobyfit was assuming that all pixel indexes run numbers are
enumerated from 1 to the number of data headers, while in fact recent sqw files contain actual run number. - #781 Fixed bug in spaghetti plot. The routine was failing.
- #782 Complex synchronization bug has been fixed in combine_sqw.mex code. For some types of pixel data it was causing
loss of combined pixels and incorrect sqw file as the result. - #785 Cuts on large old versioned sqw files were extremely slow, as pixel_range was recalculated each time
v3.6.1
Release Notes v3.6.1
New features
- Horace planner stores its states in configurations now (planner_confi), so users do not need to enter them each time Horace planner is started. Small changes to Planner GUI and its internal logic.
Critical changes
- legacy Tobyfit code has been removed from codebase
Bugfixes
v3.6.0
Contains major changes to internal structure of sqw object.
if one wants to modify pixels of an sqw object, and leave original pixels unchanged, he needs to use copy operation
ew_sqw = copy(old_sqw)
Critical changes
-
cut_sqw, if integration applied in inf limits
e.g. arget = cut_sqw(source,[],[],[-inf,inf],[-inf,inf]),
the integration limits of the arget object (iint(:,3) & iint(:,4)) are
set to actual data limits present within source object instead of previous
[-inf,inf] used before.
This behaviour may be modified in a future release. -
SPE data file format is now obsolete and superseded by more advanced binary NXSPE data file format.
The data obtained from .spe files are now truncated to 4 digits after decimal point.
The truncation accuracy is currently controlled by constant
�sciipar_loader.ASCII_PARAM_ACCURACY for detector positions and
loader_ascii.ASCII_DATA_ACCURACY for spe data properties.
The reason behind this decision comes from the fact that these data are often
written with such precision,
but are converted into double precision when read, and the difference between 4
digit precision and 16 digit precision is implemented differently on different
operating systems or using different code (mex or Matlab).
This causes binary differences between sqw files generated using different modes,
as binning may become very sensitive to the data accuracy,
possibly converting ~10-15 error into a bin size difference.
As the actual data accuracy does not exceed 3 significant digits,
this change would not affect any physical results produced by the code.
The truncation parameters may be better implemented as a configurable property,
specified in herbert_config configuration class. -
You can no longer pass an array of sqw objects or cell array of sqw
objects to cut_sqw.
This removes ambiguity over the return type of the function,
which could be an array of sqw objects, or, if multiple integration ranges
are specified, a cell array of arrays of sqw objects
(see relevant git commit).
It also removes the problem of only being able to specify one path as the
outfile argument.
If an array of sqw objects or sqw file names was passed to cut_sqw and
the outfile argument was given, each cut would overwrite the file at outfile.
A loop must now be used to perform multiple cuts. -
Data serialisation has been rewritten and now includes a MEX variant for improving performance and capabilities of MPI comms and object saving.
-
Herbert parallel extensions may run on a cluster, which run Slurm parallel jobs manager.
v3.5.3
release containing Slurm MPI code and range of minor bugfixes
v3.5.2
bugfix release fixing number of identified issues:
Extremely slow cut in some situations
incorrect spagetty plot in some selected directions
bug in file to file cut. The algorithm was broken
Binary operations on sqw objects created from DND objects were failing
A bug in Horace GUI. The GUI was not starting and failing on some operations.
Added possibility to load nxspe files from GUI.