SasView 4.0

@ajj ajj released this Oct 2, 2016 · 1459 commits to master since this release

The main purpose of this major version release is a significant restructuring of the way models work to address one of the biggest issues identified by the community: the difficulty of adding complex custom models. With this release all models are essentially treated the same within the computational framework. The "built-in" models have been separated out into an independent sasmodels package. Custom models continue to be discovered by placing them in the user plugin directory. All models consist of 1 or optionally 2 files: a file containing much of the details (name, parameters, etc) and either the methods for computing intensity or links to an optional model.c which contains the computational code. All models, whether from sasmodels package or in the plugins directory are treated the same by the SasView application.

Other things of note in this release:

  • Support for openCL means that running on macs will automatically use GPUs or multiple CPU if they exist. This is true for most windows machines as well, but in some cases the user will need to download and install the openCL drivers for their computer.
  • All model documentation has been reviewed and updated
  • A number of other minor bugs and improvement

IMPORTANT NOTICE 1 We will attempt to keep a living list of significant reported/verified issues in the known issues section at the bottom of this page. There is currently 1 critical issue and a few others reported.
IMPORTANT NOTICE 2 Release 4.1 will probably be the last to support 32 bit operating systems. Older versions will always be available for 32 bit use if necessary.

Acknowledgement and citation

If you publish work making use of SasView 4.0, please include the following text:

"This work was originally developed as part of the DANSE project funded by the US NSF under Award DMR-0520547, but is currently maintained by a collaboration between UTK, UMD, NIST, ORNL, ISIS, ESS, ILL and ANSTO. SasView also contains code developed with funding from the EU Horizon 2020 research and innovation programme under the SINE2020 project (Grant No 654000)."

SasView can be cited as :

M. Doucet, et al. SasView Version 4.0, Zenodo,

New Features

Model package changes and improvements

  • All 3.1.2 models now available in new interface
    • NB: RPA model is currently not available, but will be made available again later in the next point release.
  • Most old custom models should now still work
    • NOTE These will be deprecated in a future version. Old
      custom models should be converted to the new model format which
      is now the same as the built in models and offers much better
  • Custom model editor now creates new style models
  • Custom model editor supports better error checking

Documentation improvements

  • Continued general cleanup
  • Documentation of how to write new style models
  • All model docs checked for correctness and consistency with code

Other improvements/additions

  • Support for new canSAS 2D data files added
  • Plot axes range can now be set manually as well as by zooming
  • Plot annotations can now be moved around after being placed on plot.
  • The active optimizer is now listed on the top of the fit panel.
  • Linear fits now update qmin and max when the x scale limits are
    changed. Also the plot range no longer resets after a fit.
  • Magnetic models now supported in builtin models and custom models using C
  • Multilevel models (with the exception of RPA) now supported

Bug Fixes

  • Fixes bug #604 Pringle model questions
  • Fixes bug #472 Reparameterize Teubner-Strey
  • Fixes bug #530 Numerical instabilities in Teubner Strey model
  • Fixes bug #658 ASCII reader very broken
  • Fixes bug #511 Errors in linearized fits and clean up of interface
    including Kratky representation
  • Fixes bug #186 Data operation Tool now executes when something is
    entered in the text box and does not wait for the user to hit enter
  • Fixes bug #459 plot context menu bug
  • Fixes bug #559 copy to clipboard in graph menu broken
  • Fixes bug #466 cannot remove a linear fit from graph
  • Numerous bugs introduced in the alpha
  • Fixes bug #636 qmin error erroneuously thrown to console before successfully fitting for select models
  • Fixes #633 P(r) crashing on Sasview when entering 0.0 for Dmax
  • Fixes #642 canSAS 1D xml file take forever to load
  • Fixes #644 Loading saved fit or project opens multiple plot and fit windows and can throw error messages to the console
  • Fixes #635 n_layers = 0 causes errors to be thrown at least on windows
  • Fixes #658 Generic ASCII reader broken (should now be fixed to properly read most ASCII columnar data)
  • Fixes #651 Documentation on how to write new style models added
  • Fixes #654 Problem saving projects (should now work again as it used to).

Current Known Issues

Critical - will be fixed in a bug release due imminently:

  • As part of the model structure refactoring a new bug was introduced that makes P * S unusable in this version unless the background is fixed to zero: The background is multiplied by P(q) including all the scaling factors. Release 4.0.1 should be available soon that fixes this.

Other Significant - will be fixed in 4.1:

  • The compute button does not always compute. For those who enter return after changing a parameter value this will never come into play as enter after a change will recompute. NOTE hitting compute then enter without a change will not work. The user will need to enter something in a parameter box after hitting the compute button and then hit enter.
  • Projects/fits saved in previous version of SasView will not load correctly in 4.0 due to the changes in the models infrastructure. Release 4.1 will mostly restore backwards compatibility along with improvements in the save and load projects infrastructure.

Model issues - Corrections will be posted to Marketplace as available (and fixed in following release):

  • Core shell parrallelipiped fails to calculate the long (C side) shell. If set non-zero this leads to an incorrect volume normalization and thus to an incorrect absolute scaling. This has apparently always been true. If thick_C is set to zero the model behaves correctly.
  • The 2D FCC paracrystal model is incorrect (it calculates a BCC). The 1D is however correct.
  • The Stacked Disk model only calculates 1 stack (i.e. n_stacking is ignored). This is apparently a long standing issue. Also 2D version is not currently available.
  • Non integer number of pearls is not handled properly in pearl necklace model. This is a long standing issue

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.

[This release makes use of sasmodels v0.94]