Framework Changes#

Algorithms#

New features#

  • (#40714) SCDCalibratePanels v2 now writes the full name for bank components.

  • (#40824) The IMAGINE instrument is now supported by MaskBTP v1.

  • (#40952) MPI Algorithms BroadcastWorkspace and GatherWorkspaces have been added to mantid to allow for MPI processing that is workspace friendly. These are available on linux in the mantidmpi package.

  • (#41137) HFIRPowderReduction v1 now has logic for loading MIDAS data.

  • (#41206) HFIRPowderReduction v1 now logs warnings for unset optional fields.

  • (#41294) CreateDetectorTable v1 now has option the OneRowPerDetectorID which ensures a new row in the Detector Table is created for each detector ID. The rows become ordered by the component index of the detector IDs, instead of being ordered by workspace index. In workspaces that have grouped detectors, there will be several rows with the same workspace index.

  • (#41320) Rebin v1 will now throw an error if the number of bins requested is expected to exceed available memory.

  • (#41321) A new C++ algorithm type TaskBasedAlgorithm has been added. Such an algorithm consists of tasks, linked via an input-output dependency structure. A user can control the workflow by specifying a custom task execution order.

  • (#41334) PolarizationCorrectionWildes v1 now accepts an input Workspace Group as an alternative to a string list of workspace names.

  • (#41445) HFIRPowderReduction v1 now performs absorption correction for the sample and vanadium using CylinderAbsorptionCW.

Bugfixes#

  • (#41202) A bug in WeightedMeanOfWorkspace where output errors were computed as \(\sqrt{\mathrm{weightSum}}\) instead of \(1/\sqrt{\mathrm{weightSum}}\) has been corrected. This affects DgsReduction (including the Absolute Units tab in the GUI), DPDFReduction, and MDNorm workflows. Warning: Results from previous releases may contain inflated uncertainties and should be reprocessed.

  • (#40975) SaveSESANS and SaveCanSAS1D have been updated to include the decimal point (i.e 1.0) when outputting data, even if the data is an integer.

  • (#40712) ConjoinWorkspaces no longer has a fencepost (off-by-one) error when determining spectrum numbers.

  • (#40755) LoadEmptyInstrument will now load instruments from a wider class of NeXus files.

  • (#40817) FileFinder has been updated to more reliably determine the instrument from the hint, particularly when the instrument name contains digits.

  • (#41053) SaveDiffCal had a crash produced by calibration tables with repeated entries which is now fixed.

  • (#40855) A performance issue in MaskDetectors, when using a MatrixWorkspace as the source of the mask, has been fixed.

  • (#40963) LoadEventAsWorkspace2D now updates the run duration log when using parameters FilterByTimeStart and/or FilterByTimeStop. The behaviour is now consistent with LoadEventNexus when using the same parameters.

  • (#40963) Loading with LoadEventAsWorkspace2D and LoadEventNexus with time filtering, when there are banks with no events in that time range, no longer causes the loading to hang.

  • (#40856) GenerateFlatCellWorkspaceLOQ has been updated so that the output is prepended with the monitor spectra. An option to save the output using SaveRKH has also been added (OutputFlatCellFilePath).

  • (#41039) SumSpectra has been updated to correctly propagate errors for weighted sum calculations.

  • (#41131) EnggEstimateFocussedBackground v1 will no longer throw an error related to writing to a read-only destination.

  • (#41150) MaskBTP now supports name and short-name for instrument IMAGINE.

  • (#41215) LoadEventNexus v1 will no longer appear to hang when loading a single bank on the TOPAZ or MANDI instruments, and will no longer throw an error on completion. The loaded instrument will contain only the specified bank, with no other components.

  • (#41256) LoadMask v1 will now throw an error if given an invalid file.

  • (#41259) BASISReduction v1 has been updated to throw an error if a mask workspace cannot be found.

  • (#41330) Rebinning operations (such as in Rebin v1 or RebinRagged v2) that specify a range with a start and end value that are not in the correct order (start < end) will now throw an exception instead of silently producing incorrect results.

  • (#41343) BinMD v1, SliceMD v1, and MDNorm v1 will throw an error if the total number of bins requested is larger than the available memory.

  • (#41517) A bug in MDNorm involving a missing matrix inversion during the symmetry operation has been fixed.

Deprecated#

Removed#

Fit Functions#

New features#

  • (#41167) The IkedaCarpenterPV peak function now supports analytical derivative calculation, for more information see IkedaCarpenterPV.

  • (#41416) The PDF parameter of the FABADA Minimizer has been changed from a bool to a string. This allows the user to specify the name of the output workspace for the PDF.

Bugfixes#

Deprecated#

Removed#

Data Objects#

New features#

  • (#40761) Sample Shapes generated from .STL mesh files can now be saved and loaded from nexus files.

  • (#41403) Added getMemorySize() to Instrument, DetectorInfo, and ComponentInfo to report the memory footprint of instrument geometry objects in bytes.

Bugfixes#

  • (#41072) Add persistence and round-trip support for the MonitorCount field when saving/loading Mantid “processed” NeXus peak workspaces.

Python#

New features#

  • (#40719) SplittersWorkspaces can now be created directly from Python.

  • (#40748) For ORNL instruments which use the ADARA system, it is now possible to record and playback an ADARA-packet stream.

Bugfixes#

  • (#41288) Loading Python extensions no longer allows imports from hidden folders or Python files with protected names to avoid crashing Mantid on startup.

Dependencies#

New features#

  • (#40737) Add support for Markdown in developer docs using myst-parser.

  • (#40766) Add mantidprofiler as a developer dependency on linux.

  • (#40771) The memory allocator set by LD_PRELOAD has been change from jemalloc to tbbmalloc.

  • (#41058) Upgraded Python to 3.12. See the changes made to python here.

  • (#41017) Remove dependency pytz to prefer using Python’s built-in zoneinfo for time zone information.

  • (#41034) Remove python-dateutil in favor of Python’s datetime module.

  • (#41071) New configuration files have been added for GitHub Copilot.

  • (#41110) Move to euphonic v1.6.0.

  • (#41153) Updated Matplotlib from version 3.9 to version 3.10. The release notes for version 3.10 can be found here.

Bugfixes#

Nexus#

Bugfixes#

  • (#41354) LoadNexusLogs v1 can once again load string logs from Nexus files as in some old (ca. 2016) CORELLI data files, where the string was stored with DataType length of 1, and the DataSpace having rank 1 with the correct size in the first dimension.

MantidWorkbench#

See Mantid Workbench Changes.

Release 6.16.0