Skip to content

@butlerpd butlerpd released this Oct 7, 2018 · 542 commits to master since this release

(Mac Users: please ensure you have the Xcode command line tools installed before installing SasView; get it from the App Store)

(Windows users: Windows installer is now signed so should not give warnings about installing from an unknown source)

New in Version 4.2.0

This release heralds many improvements and a host of bug fixes, along with some significant changes from previous versions. Further, as promised, it marks the end of support for 32 bit operating systems and is only available for 64 bit operating systems.

With this version the change to the new model API and plugins infrastructure begun with 4.0 is essentially complete (though extensions are in the works, and more are likely, they should remain backwardly compatible with previous versions of SasView).

Old-style plugin models, including old sum|multiply models, continue to be supported (i.e. SasView will run them) in 4.x, although our automatic on-the-fly translation may not cope in all use cases (see Known Issues below). However, this backward compatibility will be removed in 5.0 and users are therefore strongly encouraged to convert their custom models to the new API.

Finally, the changes to orientation angles and orientational distribution definitions are now also complete.


  • The infrastucture for calculating 2D patterns from 3D orientated objects has been totally re-factored. It is now more accurate and consistent across models.
  • The way that SasView defines the orientation of anisometric and aligned objects has been completely overhauled. It now differs from previous versions.
  • Plugin models, including sum|multiply models, have completely migrated to the new infrastructure. NOTE that 3.x type models as well as early, intermediate 4.x type models, including those generated by sum|multiply will continue to be supported in 4.x but will likely no longer be supported after the move to 5.0. Users are strongly encouraged to migrate any custom models.
  • The NeXus loader has been removed as it is superseded by the NXcanSAS standard loader and SasView does not support the treatment of raw data.


  • The accuracy/speed of some numerical integrations have been improved.
  • An orientation viewer tool has been introduced to assist in understanding the new orientation framework.
  • Problems with the computation of magnetic scattering from some objects have been rectified. Some questions remain however.
  • The known issue with the core_shell_parallelepiped model is now fixed.
  • An error in the be_polyelectrolyte model was identified and rectified, but the fix is yet to be validated.
  • A number of issues and inconsistencies with the creation of sum|multiply models have been rectified.
  • A Boltzmann distribution has been added for polydispersity/orientational distributions.
  • Some batch slicing options have been introduced.
  • Correlation function analysis now computes both the 1D and 3D functions.
  • There are several data loading improvements.
  • There are several improvements to Save/Load Project.
  • The SasView version number now appears in Reports.
  • The Release Notes are now available from the program Help menu.
  • There have been numerous other bug fixes.


Several sections of the help documentation have undergone significant checking and updating, particularly those relating to orientation, magnetic scattering, and polydispersity distributions.

Detailed advanced instructions for plugin writing and some scripting instructions have also been added.

Concerns about the intended versus implemented meaning of some parameters in the bcc_paracrystal, fcc_paracrystal, and sc_paracrystal models have been brought to our attention. These have yet to be resolved and so a Warning has been placed on each of these models. Anyone who feels they may have the requisite expertise to investigate these concerns is strongly encouraged to contact the Developers!

Other Work

  • A Third-Party initiative has recently succeeded in getting SasView to run on Debian. More details at
  • With this release we have started to prepare for the inevitable move to Python 3, which will occur with the release of 5.0
  • SasView 5.0 is currently in development. The two most significant features of this version will be (i) a move away from the present WxPython GUIs to new, completely rewritten, Qt5 GUIs, and (ii)implementation of the Beta-approximation for S(Q). Subject to resources, some limited access to the latter functionality may be available in a future SasView 4.x release.

Bug Fixes

  • Fixes # 14: Loading a saved project is really really slow
  • Fixes # 260: Box integration does not update when entering values in dialog
  • Fixes # 446: Saving plot as PGF (not PDF!) format throws error
  • Fixes # 467: Extend batch functionality to slicer
  • Fixes # 489: ABS reader (NIST 1D) does not handle negative dx properly (USANS slit smearing)
  • Fixes # 499: create sin(x)/x, 2J1(x)/x and 3j1(x)/x functions
  • Fixes # 510: Build PDF documentation along with HTML
  • Fixes # 525: Add GUI category defaults to models in sasmodels
  • Fixes # 579: clean up sasview directory
  • Fixes # 597: Need to document Combine Batch Fit
  • Fixes # 645: GUI logic problem in Batch vs single fit mode
  • Fixes # 648: Need to allow user input background value in Pr perspective
  • Fixes # 685: Fix data upload to marketplace
  • Fixes # 695: linear slope in onion model
  • Fixes # 735: Review new Corfunc documentation
  • Fixes # 741: Recalculate P(Q) and S(Q) components on model update.
  • Fixes # 767: Sum/Product Models don't do what they should
  • Fixes # 776: angular dispersity
  • Fixes # 784: Add 3D integral to Correlation Function analysis
  • Fixes # 786: core_shell_parallelepiped 1-D model is incorrect
  • Fixes # 818: report button followed by save makes an empty pdf file???
  • Fixes # 830: Check compliance of loader against NXcanSAS-1.0 release
  • Fixes # 838: Fix model download from marketplace
  • Fixes # 848: can't save analysis when only one fit page
  • Fixes # 849: Load Folder should ignore files starting with .
  • Fixes # 852: More unit tests, especially for oriented or 2d models
  • Fixes # 854: remove unnecessary sleep() in fitting perspective
  • Fixes # 856: Reading SAS_OPENCL from custom_config sometimes raises an ERROR
  • Fixes # 861: cannot defined a structure factor plugin
  • Fixes # 864: New Model Editor (simple plugin editor) error parsing parameter line
  • Fixes # 865: Plugin live discovery issues
  • Fixes # 866: inform user when NaN is returned from compute
  • Fixes # 869: fit page computation thread cleanup
  • Fixes # 875: Possible weirdness with 1D NXcanSAS data
  • Fixes # 876: Add check for HDF5 format in dataloader
  • Fixes # 887: reorganize tree, separating the installed source from the build source
  • Fixes # 889: Refactor dataloader error handling infrastructure
  • Fixes # 890: use new orientation definition for asymmetric shapes
  • Fixes # 891: update docs for oriented shapes with new orientation definition
  • Fixes # 896: equations in core shell parallelepiped docs do not match code
  • Fixes # 898: Image Viewer Tool file selector issue
  • Fixes # 899: Igor Reader q calculation
  • Fixes # 902: IgorReader Q calculation needs fixing/improving
  • Fixes # 903: sasview - all non-gui tests should be converted to run in Python 3
  • Fixes # 906: polydispersity not showing up in tabulated results
  • Fixes # 912: About box points to misleading contributors page on Github
  • Fixes # 913: Need to add Diamond developer and logo in relevant places
  • Fixes # 915: load project issues
  • Fixes # 916: Proper Logging
  • Fixes # 920: Logarithmic binning option in the slice viewer
  • Fixes # 921: Improve developer communication methods
  • Fixes # 922: Remove support for all data formats that are not in q space
  • Fixes # 923: Add CI and trac integrations to Slack
  • Fixes # 930: fitting help says chisq is normalized to number of points
  • Fixes # 931: Allow admins to edit all models and upload data etc on marketplace
  • Fixes # 932: Need to fix upload of data files to marketplace
  • Fixes # 934: Slurp tutorial repo for tutorials
  • Fixes # 935: Build new tutorials as PDF
  • Fixes # 943: Deep copy error on setting model after data is selected
  • Fixes # 950: Most of the readers don't close files properly.
  • Fixes # 954: cross check dll/opencl/python polydispersity and orientation results
  • Fixes # 956: Possible problem with new doc build process
  • Fixes # 961: sasmodels tests should fail if the parameter name does not exist
  • Fixes # 962: star polymer typo in docs
  • Fixes # 966: Inconsistent chi2 reporting
  • Fixes # 967: no uncertainties errors on fitting parameters
  • Fixes # 969: About Box not picking up dls_logo.png
  • Fixes # 970: ASCII loader doesn't handle ISIS 2D ASCII
  • Fixes # 974: blacklist Intel HD 620/630 for double precision
  • Fixes # 978: load project fails for pages which have not been defined
  • Fixes # 983: Remove Nexus Loader
  • Fixes # 984: PDF reports are not being properly generated on Windows
  • Fixes # 985: Saving Project Fails
  • Fixes # 986: Send to fitting overwrites theory page even if blank FitPage has focus
  • Fixes # 990: giving different results than
  • Fixes # 993: Windows x64 versions not installing to correct folder
  • Fixes # 994: Error changing fit engine
  • Fixes # 995: OpenCL required on Linux even if turned off in GUI
  • Fixes #1006: multiplicity models don't work with SQ
  • Fixes #1007: spherical_sld model freezes SasView
  • Fixes #1008: plugin model scaling not working?
  • Fixes #1010: Win64 build script not creating working executable
  • Fixes #1011: sld_test failing on ubuntu
  • Fixes #1013: FileReaderBaseClass output[] not reset - same file loaded multiple times
  • Fixes #1018: add Boltzmann distribution
  • Fixes #1021: add PDF documentation to website and document in wiki release process
  • Fixes #1024: Update version numbers in master
  • Fixes #1025: Sum/multiply editor hangs
  • Fixes #1030: volume normalization for hollow shapes is different from solvent-filled shapes
  • Fixes #1032: convert C++ modules to C
  • Fixes #1035: Order of combining P(Q) and S(Q) in Plugins seems to matter
  • Fixes #1037: data loader crop not working? & all fits crashing
  • Fixes #1043: problem compiling marketplace models
  • Fixes #1044: Unable to upload c file to marketplace
  • Fixes #1046: convert non builtin models in the marketplace to new API
  • Fixes #1050: fix appveyor test for sasmodels win 64 python 3
  • Fixes #1052: Can't use a user-created plugin model in a plugin model
  • Fixes #1054: Check plugin & orientation descriptions in full docs once SasModels PR #57 is merged
  • Fixes #1057: phi rotation issue for elliptical cylinder
  • Fixes #1060: incorrect default for rectangle dispersion
  • Fixes #1062: win32 build not installing correctly
  • Fixes #1064: "Fitting did not converge!!!" error with a Sum|Multi plugin model
  • Fixes #1068: 2d data (from NG7) not loadiing - strange format?
  • Fixes #1069: GUI problem when using polydispersity/orientation distributions
  • Fixes #1070: Parameter error boxes should not be editable
  • Fixes #1072: Orientation distributions seem to depend on initial angle
  • Fixes #1079: Remove save button in report dialog on Mac
  • Fixes #1081: GUI problem with new orientation distribution
  • Fixes #1083: Magnetic models not being computed
  • Fixes #1099: Erratic behaviour of Sum|Multi model in 4.1.2
  • Fixes #1101: Batch results page not displaying polydispersity values
  • Fixes #1128: AutoPlot generation for model documentation does not include background
  • Fixes #1131: OpencCl dialog does not open
  • Fixes #1132: Slit Size Calculator Tool not working
  • Fixes #1139: Missing Docs and Help for new Batch Slicing
  • Fixes #1141: Intro to scripting.rst needs improvement
  • Fixes #1142: Plugin framework is broken
  • Fixes #1145: Update models in model marketplace to 4.2 when 4.2 is released.
  • Fixes #1155: BE Polyelectrolyte errors
  • Fixes #1160: fix VR for core_shell_cylinder, fractal_core_shell and hollow_cylinder
  • Fixes #1163: Fix help note in sum of sum|multiply interface
  • Fixes #1164: Sphinx doc build does not support superscript or substitution
  • Fixes #1166: No longer able to report from multiple fit pages
  • Fixes #1167: Clarify the documentation for the Spinodal Model
  • Fixes #1173: more problems with math in plugins
  • Fixes #1176: Make Release Notes/Known Issues available from Help in Menu Bar
  • Fixes #1179: PDF Report should contain SasView Version Number
  • Fixes #1183: Test from creating new model reset all parameters to default in all open FitPages
  • Fixes #1188: fitpage hangs if change model while magnetism is on

It is recommended that all users upgrade to this version, but your attention is drawn to the Changes section above.

Known Issues

A full list of known bugs and feature requests by release version that users may wish to be aware of can be viewed at

4.2.0 - All systems

The refactoring of the plugin model architecture means that some issues may be encountered if Save Project/Analysis files using plugin models created in earlier versions of SasView are loaded in version 4.2.0.

  • On loading an old project file an error window appears with the error
    This model state has missing or outdated information or dictionary changed size during iteration.

    • if this occurs, try restarting SasView and reloading the project.
  • On loading an old project file all the FitPages and Graphs appear, but only the SasView default model parameters appear in the FitPages.

    • This has happened because plugin model parameter names have changed. There are two possible workarounds:

    • Install the version of SasView that the project was created in, recreate the plugin in that version, then run 4.2.0 and re-load the project. All being well, 4.2.0 will still compile the old plugin.

    • If 4.2.0 cannot compile the old plugin, the more tedious solution is to use a text editor to do global search & replace operations to change all the parameter names in the project file by hand. The quickest way to see the existing parameter names is simply to scroll to the bottom of the project file. To see what the new parameter names should be, simply create the equivalent plugin in SasView 4.2.0. In most instances, what was p1_parameter will become A_parameter, p2_parameter will become B_parameter, and so on.

Acknowledgement and citation

If you publish work making use of SasView 4.2, please include the following text:
This work benefited from the use of the SasView application, originally developed under NSF Award DMR-0520547. SasView also contains code developed with funding from the EU Horizon 2020 programme under the SINE2020 project Grant No 654000.

SasView 4.2 can be cited as :
M. Doucet, et al. SasView Version 4.2,

Bug Reporting

Please support the project by reporting bugs that you find to

All the known bugs/feature requests can be found at:

Regular developer builds are also available from if you wish to test the very latest (most likely unstable) versions of SasView.

Assets 4
You can’t perform that action at this time.