Framework Changes


  • mantid.kernel.IntArrayProperty now supports specifying step sizes

  • Support has been added for negative indexing of WorkspaceGroups. Try ws_group[-1] to get the last workspace in the WorkspaceGroup ws_group.

  • Updated the clone method of IFunction to copy parameter errors across as well as parameter values.



  • RemoveSpectra is a new general purpose algorithm that enables you to optionally remove spectra from a workspace given one of 3 criteria, if it’s masked, if it doesn’t have a detector, and if presented in a user defined list.


  • All the ILL nexus file loaders were speeded up due to parallelization of the loading.

  • LoadEventNexus has an additional option LoadNexusInstrumentXML = {Default, True}, which controls whether or not the embedded instrument definition is read from the NeXus file.

  • The numerical integration absorption algorithms (AbsorptionCorrection, CuboidGaugeVolumeAbsorption, CylinderAbsorption, FlatPlateAbsorption) have been modified to use a more numerically stable method for performing the integration, pairwise summation.

  • Improved support for thin-walled hollow cylinder shapes in MonteCarloAbsorption v1

  • LoadSampleEnvironment and LoadSampleShape now support setting the scale of the stl to millimetres, centimetres, or metres. It also takes rotation as angles applied in order X then Y then Z, as opposed to a matrix.

  • LoadSampleShape now rotates the sample based off of the setting of the goniometer.

  • GenerateEventsFilter is able to accept any MatrixWorkspace, as long as it has run objects loaded from LoadNexusLogs, other than EventWorkspace.

  • AbsorptionCorrection has a new property ScatterFrom which allows for calculating the correction for the other components (i.e. container and environment)

  • SetSample can calculate the density from the sample mass

  • We have prevented an error due to locale settings which may appear when reading, for instance, the incident energy Ei value from the logs in ConvertUnits and many other algorithms.

  • Pseudo-Voigt has been modified to be more in line with FULLPROF and GSAS. One of its basic parameter, Height, is changed to Intensity.

  • CalculatePolynomialBackground has an option to select the minimizer used during fitting.

  • CalculatePolynomialBackground has been modified to pass parameters with double precision to make it more correct.

  • 10x performance improvement in calls to Mantid::PhysicalConstants::getAtom.

  • SetSample will now look for facility wide sample environments. instrument specific ones will be loaded first.

  • SolidAngle is extended to accommodate new options for fast analytical calculation for SANS-type detectors.

  • FilterEvents has a property InformativeOutputNames which changes the name of output workspace to include the start and end time of the slice.

  • SumOverlappingTubes v1 was speeded up due to parallelization of the actual histogramming step.

  • CylinderAbsorption now has a CylinderAxis property to set the direction of the cylinder axis.

  • SaveNexusProcessed now throws a clearer error on saving of nested groups of groups.

Instrument Definition Files

  • A new attribute, name-count-increment, has been introduced to the <locations> tag which allows the auto-generated location names to be incremented by a user-defined amount.

  • ARCS, CNCS, HYSPEC, NOMAD, POWGEN, SEQUOIA, SNAP, and VULCAN have had the axis that signed two-theta is calculated against changed from +y to +x

Bug fixes

  • SetSample now correctly handles the Sample number density being passed as a string, before the algorithm would execute, but silently ignored the provided number density, the number density is now properly used.

  • Mantid no longer crashed when invalid period logs encountered in LoadEventNexus <algm-LoadEventNexus>. A clear error message is displayed which explains the problem.

  • ISIS sample logs are now correctly filtered by status and period on loading.

  • A bug has been fixed in status log filtering where if a log contained times before the first running log entry then they would be included rather than excluded.


  • The deprecated version 1 of the FindEPP algorithm has been removed. Use FindEPP-v2 instead.

Data Objects

  • Added method isCommonLogBins to check if the MatrixWorkspace contains common X bins with logarithmic spacing.




  • The TypeError raised when calibrating tubes has been fixed.

Release 4.1.0