Diffraction Changes

Powder Diffraction

New features

  • Increase the speed of the fourier filter in the POLARIS total scattering reduction by reducing the Rmax parameter used in the pair of (forward and backward) PDFFourierTransform calls and optimising the integration code inside PDFFourierTransform v2

  • Added support for ILL D4C instrument, a liquid diffractometer. This adds a new algorithm responsible for the reduction stage: D4ILLReduction, which handles calling the loader, correcting for dead time, bank position offsets, relative efficiency, and normalisation to monitor or time.

  • For ILL/D2B instrument, only calibrated data are loaded from the nexus file.

  • Introduce an input parameter in WANDPowderReduction to specify that the input workspaces are from event filtering. In such a situation, the overall reduction time could be reduced significantly.


  • Change to use time average mean value of logs in PDDetermineCharacterizations

  • Fix problem when calling focus twice in a reduction using the ISIS Powder diffraction scripts. The second run of focus was using a partially processed input file from the first focus resulting in some of the reduction steps (normalisation, absorption correction) were being run twice

  • Fixed an issue with HB2AReduce when ‘colltrans’ column is not available in the data file. This corresponds to the situation when the ‘colltrans’ motor is not connected.

Engineering Diffraction

New features

  • On the GSASII tab, when a successful refinement is run, the output table workspace for the lattice parameters now includes the Microstrain value and the column title is marked when this parameter has been refined. A similar instrument parameter table workspace is now also generated which includes Sigma-1 and Gamma(Y), with a refined flag, and the fitting range. The Pawley reflections are output to a separate table workspace if they are available.

  • An indeterminate progress bar has been added below the FitPropertyBrowser on the Engineering Diffraction Fitting tab. This will display when the fit is in progress and whether the recent fit status was success or fail.


  • Correct the tabbing order between widgets on the Engineering Diffraction interface.

  • Add a scrollbar to the GSASII tab to allow a smaller interface height, like the fitting tab.

  • SaveVulcanGSS algorithm marked as deprecated as of 2022-11-30

  • Check that there is enough data points before attempting to fit a diffraction peak in FitPeaks

Single Crystal Diffraction

New features

  • New algorithm SaveINS to write a .ins input file for SHELX

  • Added new option to IntegratePeaksSkew: to get initial TOF window from back-to-back exponential coefficients if specified in the instrument parameters.xml

  • Added back-to-back exponential coefficients to SXD parameters.xml file

  • Simplified input arguments to IntegratePeaksSkew: the parameter FractionalTOFWindow has been removed, if a user wants to integrate with an initial window dTOF/TOF = constant for all peaks then this can be achieved by setting ThetaWidth = 0 - note this is technically a breaking change.

  • Parallelize loop over peaks in IntegratePEaksMD which provides significant speed-up for ellipsoid integration.

  • Exposed indexing tolerance for SCDCalibratePanels when using RecalculateUB option.

  • Added two options to IntegratePeaksSkew: to scale angular resolution parameter (ThetaWidth) by wavelength, and to specify minimum number of TOF bins in a valid peak (NTOFBinsMin).

  • Improve estimation of resolution parameters in IntegratePeaksSkew (more robust to outliers).

  • Made Lorentz correction in IntegratePeaksSkew optional.

  • Added back bank 14 to TOPAZ for a total of 20 banks


  • Replaced deprecated NumPy np.int type in ConvertWANDSCDtoQ.

  • IntegratePeaksProfileFitting library ICCFitTools module updated to support more recent versions of SciPy where the factorial function moved from scipy.misc.factorial to scipy.special.factorial. On newer versions of SciPy, the algorithm previously failed.

  • SaveReflections now warns if an empty peak table is saved and doesn’t fail with an error

  • Replaced deprecated Matplotlib bivariate_normal function in BVGFitTools.py

  • Ensuring colorscale max > min (found for weak peaks with pixels having 0 intensity) in IntegratePeaksSkew.

  • IntegratePeaksSkew will now close a generated figure if an error occured while trying to write to file (e.g. file of same name was already open)

  • Fix bug that didn’t set HKL of peak if UpdatePeakPosition = True in IntegratePeaksSkew

  • Fix bugs in SelectCellWithForm and ref:SelectCellOfType <algm-SelectCellOfType> that incorrectly transform modulation vectors.

  • Fix bug where modulation vectors are not transformed in TransformHKL.

  • Fix issue where LoadIsawPeaks fails when loading peaks with modulation vectors that cannot recover modulated UB matrix.

Release 6.6.0