Skip to content

v3.6.0

Compare
Choose a tag to compare
@pace-builder pace-builder released this 07 Oct 18:39
· 14 commits to 4182362d430b7544221f37b665bd6ec796d888a6 since this release

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.