__group__ ticket summary component version type owner status created _changetime _description _reporter Milestone Admin Tasks 1237 Need to get mail archives up and available SasView defect new 2019-02-26T08:37:27-05:00 2019-02-26T08:37:27-05:00 in transitioning from sourceforge to github we also transitioned from using sourceforge's mailman service to our own on the UTK servers. However, in the process we lost the archives which are not (and have not been for a few years now) published anywhere accessible. This may just be a permissions issue but needs to be sorted asap. butler Milestone Admin Tasks 1235 Fix twitter feed SasView defect new 2019-02-26T07:40:48-05:00 2019-02-26T07:40:48-05:00 Currently twitter is mostly posting commits which is probably counterproductive. For those that want to follow that level of detail slack is probably the thing to use (or subscribe to github notifications?). Here basically makes people unfollow so they don't get a ton of junk. Would be more useful to post regular updates of code camps, releases, betas, pre releases, activities going on (e.g. working on using Jeffrey orbitals for orientational distribution. HARD!) etc. butler Milestone Admin Tasks 565 Update check_packages to flag required package versions SasView enhancement tim accepted 2016-04-26T09:24:42-04:00 2019-03-23T08:18:31-04:00 check_packages could be made to flag when the installed packages (eg, bumps) do not meet the minimum version number necessary for a successful build. smk78 Milestone Admin Tasks 1236 Transition all UTK services to interim server SasView enhancement new 2019-02-26T08:35:07-05:00 2019-02-26T08:35:07-05:00 " As part of a long overdue upgrade we have put new hard disks into the old danse backup server and upgraded it to the latest ubuntu LTS. The next step is to migrate all service over from the current server to that server in preparation for upgrading the current server hardware and ubuntu version." butler Milestone Admin Tasks 246 Fix problem with with dire install warnings from OS SasView task piotr accepted 2014-04-19T12:55:05-04:00 2019-03-23T08:07:17-04:00 "Currently on newer Windows machines and some macs the operating system gives several dire warnings against installing the executable SasView appliation. In fact in some cases the default is to not allow install and only by right clicking can one get options to ""install anyway"". Somehow this needs to be fixed. Should look at what mac and windows will require - do we need to get a certification? how? " butler Milestone Admin Tasks 299 write SasView Paper SasView task butler accepted 2015-02-01T16:54:55-05:00 2017-10-23T08:04:17-04:00 "There are several papers that could be written about specifc implentations but need a general paper that can be used as a reference. As long as the online documentation is in good shape can point to that as ""suppl material""?" butler Milestone Admin Tasks 483 Create web page / section with list of publications using SasView. SasView task krzywon assigned 2015-11-24T06:48:02-05:00 2019-03-23T08:13:50-04:00 This will require some trolling of the literature... ajj Milestone Admin Tasks 681 Move All Package Dependencies to a Single Place SasView task piotr assigned 2016-10-04T05:36:12-04:00 2019-03-24T09:31:39-04:00 "check what the right dependencies are for each package (sasmodels, sasview) and make sure setup.py calls the required ones. Can we make it have optional requirements? e.g. is matplotlib actually required for sasview to function (might not want lots of dependencies for deployment on cluster/aws etc)" ajj Milestone Admin Tasks 768 ensure everything useful is backed up SasView task ajj assigned 2016-10-10T15:55:17-04:00 2016-10-11T09:22:41-04:00 " reminder for Andrew to ensure everything useful is backed up between Git, Tn and Cph" richardh Milestone Admin Tasks 239 Need to verify UTK vs. Caltech License ownership SasView defect butler new 2014-04-05T01:23:38-04:00 2015-01-13T09:50:33-05:00 Paul needs to follow up on the DANSE licensing issue: danse.us suggest a Caltech ownership of the license for the entirety of the DANSE produced code -- but SasView only uses code produced by UTK. code has vague assertions of copyright but UTK but nothing clear. Need to sort out with grants and project office. butler Milestone Admin Tasks 328 Create SasView organanization and resolve ownership issues SasView defect new 2015-02-15T08:39:22-05:00 2015-02-15T08:39:22-05:00 "We are currently running on a variety of individually owned resources (git account, domain name, svn account) and ad hoc support from UT, SNS, and now DMSC (though this latter is probably most formal) for things like web servers, build machines, Jenkins servers. Morever the code is being worked on making it difficult to answer the question of ""who owns it"" that companies that want to install want to know (e.g. ExxonMobil emailing questions of who owns and what is the license, etc). " butler Milestone Admin Tasks 1239 Set up Mirror Sites of services SasView defect new 2019-02-27T10:43:06-05:00 2019-02-27T10:43:06-05:00 "AS part of our effort to increase robustness, it would be nice to have mirror sites with automatic rollover for our ""privately managed"" cloud resources so that we are not blocked by the currently rather rare instances of service failures (power outages at UTK or DMSC, disk crashes, etc). In a first instance mirroring all the services at UTK at 2 other sites should be an achievable goal. If purchased right and if the build servers and Jenkins system at DMSC can be put into VMs/containers it might be possible to get the DMSC services mirrored using the same hardware? Steps needed: * Design system (how will it work) * Identify hardware needed * Identify location to house hardware * Identify funding for hardware * purchase and install hardware * set up mirroring" butler Milestone Admin Tasks 1246 Auto generate example data set/plot in model marketplace sasmodels Markeplace defect new 2019-03-12T22:09:49-04:00 2019-03-12T22:09:49-04:00 "Currently the sasmodels docs build auto-generates the 1D (and if appropriate 2D) plot from the default parameter values however when uploading to the marketplace the user has to supply a separate ""data"" file to provide an example plot. The upload should allow the auto generation of such a plot " butler Milestone Admin Tasks 773 "Need to add a ""license"" field for each model in the marketplace" sasmodels Markeplace enhancement piotr assigned 2016-10-11T08:06:25-04:00 2017-09-06T07:07:14-04:00 "Some models may be GPL licensed and other MIT, BSD, or public domain. Default should probably be BSD (like !SasView) with option to choose several standard ones OR ""other"" -- How much space do we add leave for user to define their ""other""?" butler Milestone Admin Tasks 1034 Add remote power switch to UTK server SasView enhancement new 2017-11-11T18:15:10-05:00 2019-02-26T07:33:33-05:00 "While rare, it can happen that the sever gets itself into a state where we cannot access it, particularly when mucking about with installations and upgrading the operating system etc. For these cases we currently have to hope that things go south when somebody is in the office at UT who can manually go to the console and reboot the system if necessary. We should add a remote switch that allows us to reboot remotely." butler Milestone Admin Tasks 1238 can we get citations added to zenodo? SasView enhancement new 2019-02-26T11:14:52-05:00 2019-02-26T11:14:52-05:00 I notice that zenodo has a beta that scrapes citations but only from a small subset of publications. It also has a nice feature that will show citations to each version or to ALL versions for a complete picture. This could be interesting if we know how to hook up more data to it? butler Milestone Admin Tasks 1245 Seamless documentation slurping by model marketplace sasmodels Markeplace enhancement new 2019-03-12T21:59:56-04:00 2019-03-12T21:59:56-04:00 Currently when uploading a model to the marketplace, one needs to cut the docstring and paste it into the description window. Further not all Latex translates and editing is often required. Given the documentation is in the file, it should be possible to automatically scrape it out and make it available ...properly formatted butler Milestone Admin Tasks 1251 Need a Help Desk ticket system separate from bug tracking system SasView enhancement new 2019-03-21T07:46:02-04:00 2019-03-21T07:46:02-04:00 "As we grow, it would be good to have a separate ""help desk"" ticket system fro user questions. Many of these will not necessarily be bugs in the software though even some of those could eventually lead to suggestions for improved documentation. What is needed is a way to immediately record help request to track them and make sure we have responded. As it becomes clear there is a bug we can then enter an **appropriate** ticket for that into this trac system." butler Milestone Admin Tasks 1252 Need to make easy to track different version of a model in the marketplace sasmodels enhancement new 2019-03-21T07:55:38-04:00 2019-03-21T07:55:38-04:00 Replacing or deleting models from the marketplace is not appropriate since someone may have downloaded it, used it, and pointed to it in their paper. It should thus remain available. However as API's change and more so as users upload modifications (cleaner algorithms, faster integration, more precise results near zero, easier to understand names, etc etc) we need a way to both store this properly in the database and not have an overwhelming array of models many of which are really the same. butler Milestone Admin Tasks 1255 Migration from Trac to GitHub issues SasView enhancement ricardo assigned 2019-03-24T11:38:34-04:00 2019-03-26T04:18:40-04:00 Make and execute plan to move from using trac to using GitHub issues to better integrate tickets with commits and reviews. ajj Milestone Admin Tasks 841 mac build instructions are incomplete and need updating SasView task french new 2017-01-24T18:10:52-05:00 2017-01-24T18:10:52-05:00 "Jurrian noted that the instructions on the wiki for building !SasView on the mac are clearly incomplete and he cannot actually get things to build on the mac nor can Steve Parnell. Wojcieck who does use a mac and builds on it agreed the instructions are incomplete. We should update this so that they are actually useful to people with macs trying to build !SasView " butler Milestone Admin Tasks 914 Update install instructions / release notes for users who have Xcode installed but haven't authorised command line tools SasView task new 2017-04-04T06:49:50-04:00 2017-09-17T09:52:29-04:00 ajj Milestone Admin Tasks 1028 Code Camp VI report needs to be writen SasView task new 2017-10-29T16:40:19-04:00 2017-10-29T16:40:19-04:00 The final write-up for Code Camp VI in Grenoble needs to be finished. butler Milestone Admin Tasks 1029 Need to write the Code Camp VII report SasView task new 2017-10-29T16:41:32-04:00 2017-10-29T16:41:32-04:00 Now that Code Camp VII in Copenhagen is over the report needs to be written. butler Milestone Admin Tasks 1071 Remove SasView from SourceForge entirely SasView task ajj new 2018-02-12T04:05:10-05:00 2018-02-12T19:35:39-05:00 "Have !SourceForge remove the !SasView project entirely. People are ''still'' downloading 2.2.1 because the nice green button there says 'Download the Latest Version'!!! Also see #1023" smk78 Milestone Admin Tasks 1256 Migration from trac wiki to GitHub wiki SasView task ricardo assigned 2019-03-24T11:41:20-04:00 2019-03-26T04:19:26-04:00 Create and execute plan to move wiki pages to GitHub. ajj Milestone Admin Tasks 774 Move away from postgress for the markeplace sasmodels Markeplace defect new 2016-10-11T08:09:55-04:00 2017-09-06T07:16:33-04:00 Eventually would like to move to SQ light for as many databases as we can for easier backups -- currently using mySQL for most and postgress for the marketplace. This is a long term planning ticket at this point. butler Milestone Admin Tasks 211 Reorganize users on danse.chem.utk.edu SasView enhancement butler assigned 2014-03-30T08:54:34-04:00 2015-02-01T16:42:26-05:00 "We need a bunch of updating and cleaning house. First identify *all current users (and are any obsolete) *all current groups, who belongs to which groups and what each group can access Then we need to * ensure all developers have a user account (also CCP-SAS people) * restructure groups to make sense (adding and removing groups as appropriate) * Add both a public and private sasview ftp site (i.e. ftp.sasview.org) * Add both a public and privite CCP-SAS ftp site * Add all users to appropriate groups with appropriate permissions * Ensure several people have full admin access" butler Milestone Admin Tasks 303 Integrate user and developer websites SasView enhancement ajj accepted 2015-02-12T02:28:09-05:00 2017-04-04T15:55:54-04:00 "To minimise the proliferation of resources we are using we should try to merge the website and trac etc to be integrated and hosted together. " ajj Milestone Admin Tasks 362 Need to write trac wiki page of all services and locations etc SasView task new 2015-02-22T03:52:27-05:00 2015-02-22T03:52:27-05:00 we need to keep a list of all current services, where they are hosted and who has admin access. butler Milestone Admin Tasks 494 Assure that the Qt licensing model is valid for SasView SasView task new 2016-01-12T08:26:09-05:00 2018-04-03T07:00:16-04:00 "!PyQt/Qt requires the code to be licensed with a GPL or GPL-compatible license. BSD licensing which !GitHub projects have by default might be too lax in this case so we need to investigate this issue a bit." piotr Milestone SasView 4.2.2 1242 Resolution smearing is only applied to positive Qx and Qy in 2D SasView defect new 2019-03-08T09:43:25-05:00 2019-03-18T20:51:39-04:00 User Bei Tian notes that in 2D fitting/calculation, instrument smearing is only applied to positive values of Qx and Qy. smk78 Milestone SasView 4.2.2 1243 Problem reopening saved project .svs file SasView defect krzywon assigned 2019-03-08T09:56:00-05:00 2019-03-18T20:49:00-04:00 "User Kilian Frank reports: {{{ I have a technical issue with the ""Open Project"" function. I saved an .svs file containing a single dataset, custom model and fit with SasView 4.2.1. Now I try to open it on the same machine a day later with the same SasView and get the error message 2019-03-08 10:40:21 : DataLoader Error: Encounted Non-ASCII character ('Reader' object has no attribute 'sort_one_d_data') Is there any way I can get get back my project (e.g. by manually fixing the Non- ASCII character in the file) and what should I avoid when saving my projects in the future to prevent this from happening? }}} " smk78 Milestone SasView 4.3.0 1084 Reproducible thread error in bumps on Mac OS SasView defect wojciech assigned 2018-04-03T03:48:17-04:00 2019-03-29T17:45:19-04:00 "Reported by user Judith Witte (using Mac OS 10.13.3). Was fitting happily in an (unspecified) earlier version of !SasView which then just ''""stopped working""'' (wouldn't open anymore). So upgraded to 4.1.2. Data loads in 4.1.2 but on attempting a fit this is returned: {{{ Error(s) Occurred: > Traceback (most recent call last): > File ""sas/sasgui/perspectives/fitting/fit_thread.pyc"", line 82, in compute > File ""sas/sasgui/perspectives/fitting/fit_thread.pyc"", line 14, in map_apply > File ""sas/sasgui/perspectives/fitting/fit_thread.pyc"", line 11, in map_getattr > File ""sas/sascalc/fit/BumpsFitting.pyc"", line 275, in fit > File ""sas/sascalc/fit/BumpsFitting.pyc"", line 375, in run_bumps > AttributeError: 'FitDriver' object has no attribute 'fitter' }}} This looks remarkably similar to #1061 which is only classified as minor, however Judith says this is stopping her from doing any fitting. She also comments that ''""The first error occurs after I choose the model (not clicked on Fit yet)""''. If you look carefully at the screenshots you will note two slightly different errors. So am initially marking this as a blocker pending further investigation as it appears a more serious and widespread problem than in 1061. @pkienzle has commented: ''""There is an error in bumps, but it isn't being properly reported because of an error in the bumps wrapper. I can arrange it so that the next bumps release fixes the wrapper error but I can't address the bumps error without being able to reproduce it.""'' Data and screenshots from Judith to assist diagnosis are attached." smk78 Milestone SasView 4.3.0 1263 Change source links in model docs to local paths SasView enhancement new 2019-03-27T10:36:20-04:00 2019-04-02T04:12:29-04:00 "In addressing #883, #1187, and #1240 hyperlinks to the MASTER model source code files on !GitHub were added to the model documentation files. Subsequent discussions at Code Camp IX suggested it might be more useful to replace these hyperlinks with the paths to the local copies of the model source code files on a Users machine (so that they see the code for the version of !SasView they have installed). This might, for example, be possible to do at the point the docs are built, but would require some furtling of the build script to ensure the paths were correct for different operating systems." smk78 Milestone SasView 4.3.0 639 Math not rendered without network connection (Windows) SasView defect ajj assigned 2016-08-30T09:07:39-04:00 2017-10-26T06:37:01-04:00 "Testing on Windows 7, a lack of network connection means that the math in the documentation does not get rendered. On the Mac, it is still being rendered even without a network connection. I thought that mathjax was being bundled, so this should be working." ajj Milestone SasView 4.3.0 885 New Model Editor needs to properly deal with form_volume function SasView defect gonzalezm assigned 2017-03-16T13:50:17-04:00 2019-03-01T16:46:19-05:00 "The 'New Model Editor' allows you to specify parameters which are polydisperse and which are then marked as 'volume' parameters in the resulting code. However, because form_volume still returns 1.0 by default, the weighting of the polydispersity is probably wrong. This GUI should require the user to define form_volume if polydisperse parameters are requested." ajj Milestone SasView 4.3.0 1053 warn the user not to set a large theta dispersity SasView defect new 2017-12-20T12:02:03-05:00 2018-02-13T08:01:32-05:00 "Unless and until we implement the Guyou projection for orientation dispersity, we should warn the user that large values of theta dispersity will not work as desired if they set them in the GUI or if they are returned from a fit. Perhaps do size parameters with large values since these lead to misbehaving integrals." pkienzle Milestone SasView 4.3.0 1156 dnn should be lattice spacing for paracrystalline models SasView defect butler assigned 2018-08-14T09:05:56-04:00 2018-11-27T18:44:26-05:00 "[Copied from ticket comment:4:ticket:805] The parameter to the model is labelled as nearest neighbour distance, but I believe it is lattice spacing. In units of lattice spacing, a, the q positions of the peaks are well determined by: q = 2*pi/a * sqrt(h^2 + k^2 + l^2) where SC allows all integer hkl, BCC requires h+k+l even and FCC require hkl all even or hkl all odd. Also need peak multiplicity to predict the peak height, since {{{[100] = [-100] = [010] = [0-10] = [001] = [00-1]}}}, etc. I checked peak position and height for dnn=20 and d_factor=0.06 for sc, bcc and fcc to verify the calculation. We should rename dnn to length_a as in the parallelepiped model, and rename d_factor to lattice_distortion. Lattice distortion is actually proportional, Delta a / a, but distortion_proportion is too much of a mouthful." pkienzle Milestone SasView 4.3.0 1186 be_polyelectrolyte model needs proper validation check SasView defect new 2018-09-28T11:32:06-04:00 2018-09-28T11:32:06-04:00 An error in the be_polyelectrolyte model was identified prior to release 4.2.0 and corrected. The error has been carried since 1998 and there was no quick and easy external validation of that change, partly because the implementation doesn't exactly follow the paper. It would be good if somebody could go through the paper and ensure that the code follows so that the disclaimer note in the docs can be removed. butler Milestone SasView 4.3.0 1199 Parameter error boxes are too small for error SasView defect new 2018-10-18T09:18:23-04:00 2018-10-18T09:18:23-04:00 "In 4.2.0 on Mac and Win. Reported by a User and verified by @smk78. When fitting, the parameter error (uncertainty) can sometimes have too many digits to be displayed in full in the box on the !FitPage. This is most noticeable, and most irritating, when the error value is in scientific notation, because the exponent gets truncated! Example attached. Either we need larger boxes, boxes that dynamically adjust their size, or to apply some mantissa formatting to the values displayed. As an aside, in fixing #1070 we removed the ability to select and copy the value displayed... " smk78 Milestone SasView 4.3.0 1200 Copy Params claims it is failing SasView defect new 2018-10-18T09:28:27-04:00 2019-01-07T15:53:45-05:00 "In 4.2.0 on Win. Having done a fit, if you then select Edit > Copy Params an error popup appears which says: {{{ Failed to put data on the clipboard (error -2147221040: openClipboard Failed) }}} However, it ''does'' seem to have done the copy because you can still paste the parameters into another !FitPage or text editor, etc. I specifically remember testing this functionality in pre-release versions of 4.2.0 and this error didn't appear. This suggests it was introduced late in the release cycle." smk78 Milestone SasView 4.3.0 1214 Generic Sacttering Calculator crashes on file loading (OSX) SasView defect new 2018-11-12T05:45:26-05:00 2018-11-12T05:46:42-05:00 "Generic Scattering Calculator crashes badly on file loading on OSX. *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'not running on AppKit (main) thread' It is most likely related to some threading issues. We observed simillar behavior for 5.0 on Linux. More careful thread handling fixed the problem. The same issue occurs on 4.1.2 and it seems to work on Windows" wojciech Milestone SasView 4.3.0 1254 Windows does not pull in build number SasView defect new 2019-03-24T10:28:01-04:00 2019-03-24T10:28:01-04:00 "we added a GIT_COMMIT so that the about box will have the commit hash that the build was build off of. For mac apparently the about box shows `Build xxxxx (hash)` on Windows you get `Build GIT_COMMIT` This is probably to do with the build machine setup? but would be nice to address" butler Milestone SasView 4.3.0 1080 Provide a multi-shell cylinder model sasmodels enhancement new 2018-03-19T08:27:21-04:00 2019-03-02T18:10:06-05:00 "In the last 6 months Dave Adams (Glasgow), Jian Lu (Manchester) and Irena Levin (Technion) have all wanted a core-shell or core-shell-shell cylinder model. The only fitting program with anything remotely like this model is Olivier Tache's pySAXS, but it is a less user-friendly, less robust, program than !SasView and does not handle resolution or polydispersity smearing, nor orientation. We should provide a better alternative." smk78 Milestone SasView 4.3.0 928 Provide new tutorial materials SasView task new 2017-04-06T09:09:56-04:00 2019-03-28T03:28:35-04:00 "We need to replace the dated and monolithic (!SasView 2.x) Tutorial that presently ships with !SasView 4.x with new materials that are fresh, engaging, and modern. This is an umbrella ticket for this 'next generation' material, the development of which will be discussed and directed at http://trac.sasview.org/wiki/TutorialsTNG Several existing tickets relating to the provision of 'tutorials' are now captured on this wiki page and the corresponding tickets closed: Closes #387 - Need new tutorial documentation Closes #516 - Add Pr Tutorial module Closes #517 - Add Invariant Tutorial Module Closes #518 - Add 1D model fitting tutorial Closes #519 - Add 2D model fitting Tutorial Closes #520 - Add constrained fit Tutorial Closes #521 - Add simultaneous fitting tutorial Closes #522 - Add Batch Fitting Tutorial Some of the 'next generation' material will require our !SasView documentation build processes to produce PDF files. Tickets relevant to this are: Refs #510 - Build PDF documentation along with HTML Refs #927 - Add !PanDoc to Build Servers " smk78 Milestone SasView 4.3.0 441 Problem with constrained simultaneous fit SasView defect new 2015-06-30T11:50:43-04:00 2017-10-27T04:17:22-04:00 "Identified by Ridchard Heenand during testing for 3.1 release It is a bit worrisome that with a lot of testing there seemed to be some ""erratic results"" not always reproducilbe. Also the error reported in the first reporting of this issue (see below) does not seem to show up with this example (which Richard found to fail reproducibly). The question still is whether there is some faulty logic somewhere in the fitting or if the fit engine is not converging and sending back ""garbage"" that is causing fit to fail. '''From Richard''' Load attached project. Set up constraints on all parameters, M2=M3, M1=M3, as per odd1a.jpg Then go into each of the three fit pages and turn all parameters off, then select these four to be on: radius, thickness, volfraction and “distribution of radius” In “const & simul fit” tab hit “fit”, then nothing at all happens! Individual fits on the Fitpage1, 2, 3 still work. This can be “unlocked” by removing the constraints on all but the 4 actually adjusting parameters. (In other circumstance the constraints on non-adjusting parameters are working fine, as might be expected.) I suspect that the underlying logic is slightly adrift somewhere, but I’ve not got time today to start looking at the actual code. It can also be unlocked by turning on all parameters and hitting fit, though the results are then of course unphysical. Repeating the above set up of constraints on all 10 parameters, and then asking only 4 to adjust, also gets back to a “nothing happens” state. Having constraints that work all the time is very useful, e.g. for a block copolymer I may want to say thickness=0.2*radius, regardless of whether radius is adjusting or not. I have some other constraints as used in FiSH to code up one day that are far more complicated. -------- Original message: If I set up 3 data sets with constraints, say have M2.radius=M1.radius, M3.radius=M1.radius but then fix M1.radius at say 30 ang, I would expect the constraints to still work, but I get error message on hitting Fit in constraints page. {{{ #!python Traceback (most recent call last): File ""sas\perspectives\fitting\fit_thread.pyc"", line 82, in compute File ""sas\perspectives\fitting\fit_thread.pyc"", line 14, in map_apply File ""sas\perspectives\fitting\fit_thread.pyc"", line 11, in map_getattr File ""sas\fit\BumpsFitting.pyc"", line 262, in fit File ""sas\fit\BumpsFitting.pyc"", line 345, in run_bumps File ""bumps\fitters.pyc"", line 859, in stderr File ""bumps\lsqerror.pyc"", line 79, in hessian File ""bumps\numdifftools.pyc"", line 1159, in __call__ File ""bumps\numdifftools.pyc"", line 1170, in hessian File ""bumps\numdifftools.pyc"", line 1084, in hessdiag File ""bumps\numdifftools.pyc"", line 720, in _partial_der File ""bumps\numdifftools.pyc"", line 424, in _derivative File ""bumps\numdifftools.pyc"", line 686, in _romb_extrap ValueError: operands could not be broadcast together with shapes (24,) (0,) None }}} OK the work around for this is to also fix M2.radius etc manually. However if I do that and then hit Fit on constraints page, nothing happens not even an error message. So if I “Remove” the constraints on M2.radius and M3.radius, “Fit” now attempts to work but comes back with same error message as above in red, presumably because it now has an issue with radius.width which is still constrained and fitting. Indeed if I remove the constraints on radius.width the fit now works, but with independent values for the polydispersity. I would expect the constraints to work regardless of whether the base parameters in them are fixed or adjusting. Meanwhile perhaps there can be a quick fix in this release to put up a message that “constrained parameters must all be adjusting” ? If anyone wants a simple 3 contrast core/shell microemulsion project, with real SANS data, to test the above just ask. I am grateful that “Save project” does now actually save all 3 data sets and models. (It would be nice if it also remembered which parameters are on/off, and in the +1 release, saved the constraints also, so that a fully working project could be emailed to someone else, as setting up the constraints etc is still non-trivial.) " butler Milestone SasView 4.3.0 649 Fix model parameter nomenclature to be standardized SasView defect butler reopened 2016-09-05T08:30:50-04:00 2019-03-02T17:48:43-05:00 Despite discussion at codecamp IV that all parameters should be standardized along a set of rules, as is expected in such a big effort a number of inconsistncies have crept in. As per ticket #643 these need to be fixed before the final release. butler Milestone SasView 4.3.0 702 Limiting cases of cylinder model sasmodels defect dirk new 2016-10-05T13:03:01-04:00 2019-03-02T17:49:59-05:00 The cylinder model should give the formfactor of a long, infinitely thin rod or thin disk if diameter or lengh is set to zero, respectively. dirk Milestone SasView 4.3.0 764 redefine rectangular distribution parameters SasView defect new 2016-10-10T14:37:54-04:00 2018-02-14T03:19:02-05:00 "The current definition of the rectangular distribution uses the 1-sigma equivalent width of the distribution rather than the more natural half-width. That means, for example, that if you want a rectangular distribution covering theta +/- 10 degrees uniformly, you instead need to 10/sqrt(3) or 5.77. Furthermore, then number of points in the distribution will be reduced as a function of Nsigs. It will be far easier to use the distribution if PD is half the width of the desired distribution, Npts is the number of points used and Nsigs is ignored." pkienzle Milestone SasView 4.3.0 805 improve accuracy of fcc/bcc/sc SasView defect new 2016-11-14T11:46:14-05:00 2018-09-28T05:25:29-04:00 "fcc/bcc/sc paracrystal models use the following expression: {{{ exp_qd = mp.exp(-qd**2*a/2) return (1 - exp_qd**2) / (1 - 2*exp_qd*mp.cos(qd*b) + exp_qd**2) }}} this can behave poorly for low q, even though the limit exists: {{{ lim x->0 [(1 - exp(-a x^2)) / (1 - 2*exp(-a x^2/2) cos(b x) + exp(-a x^2)] => a/b^2 }}} Maybe replace this with a Taylor expansion at low q so that the model can run in single precision. Note that there are alternate forms of this expression: {{{ sinh(ax^2) / (cosh(ax^2) - cos(bx)) tanh(ax^2) / (1 - cos(bx)/cosh(ax^2) }}}" pkienzle Milestone SasView 4.3.0 813 Can stacked_disk model support polydisperse parameters SasView defect butler new 2016-11-27T14:40:03-05:00 2018-02-12T20:01:50-05:00 "As discussed in #789, it is unclear how exactly the sigma_d works. Is it in fact a way of introducing polydispersity in core and layers (though exactly what layer then is the most polydisperse? or is it a proportional stretching of the cylinder? and if so how does that change the volume of the effective radius one should use when multiplying by an S(Q) between stacks?) or does in just introduce varying layers of water between the disks (though then it probably shouldn't be a Gaussian? having a cut-off when zero water exists? and again what is the implication for effective volume of disks?) I would recommend that we remove polydispersity options from any of the parameters of the stacked disk model. Currently these are: * radius * the core thickness * the layer thickness * the n_stacking (number of disks in a stack) I doubt that our infrastructure is handling these remotely correctly when sigma_d is none zero and unless we understand how sigma_d works I don't know how to figure out what and how to allow polydispersity. This will break with older versions which did allow polydispersity of course but still recommend we remove and when asked see if anybody out there can suggest how to do it... or show that it is correct to do as is." butler Milestone SasView 4.3.0 828 Fix tests for oriented 2D models for new orientation defintion SasView defect richardh assigned 2016-12-20T07:56:08-05:00 2018-02-12T19:58:46-05:00 With the new orientation angle definitions, a number of the 2D unit tests failed to pass and were commented out. Now that we are preparing to release with the new definition we need to make sure that the unit tests are correct (i.e. that the models still work correctly). pkienzle Milestone SasView 4.3.0 839 Unit tests for Saving/Loading Projects SasView defect krzywon new 2017-01-18T09:06:14-05:00 2017-10-27T09:13:22-04:00 The unit testing of saving and loading projects and analysis files is pretty thin. A full suite of tests to prove the saving and loading is working is needed. krzywon Milestone SasView 4.3.0 845 Fix volume normalisation on Raspberry model sasmodels defect ajj accepted 2017-02-07T08:15:35-05:00 2018-02-12T19:57:55-05:00 As noted in #815 the raspberry model needs to be doing volume calculation outside Iq function to get polydispersity working properly. ajj Milestone SasView 4.3.0 853 Move Perspective Calculation Files into sascalc SasView defect tim assigned 2017-02-14T10:28:49-05:00 2017-10-27T09:12:28-04:00 "Going through the sas/sasgui/perspectives folder I've identified a few python files that should probably be in sascalc rather than sasgui. calculator: load_thread.py, resolcal_thread.py fitting: calcthread.py, fit_thread.py, model_thread.py, models.py, pagestate.py (also move !SimFitPageState class from simfitpage.py to pagestate.py) invariant: invariant_state.py, invariant_details.py (this should be called invariant_thread.py) pr: inversion_state.py, pr_thread.py There may be other individual methods that need to move. I will update this ticket as they are found. This is related to #295." krzywon Milestone SasView 4.3.0 871 autogenerated plot in doc for rpa is not helpful sasmodels defect new 2017-03-06T23:25:38-05:00 2019-03-27T06:42:26-04:00 The autogeneration of an example plot in sasmodel documentation based on default parameters is quite useful normally, it can be problematic for multiplicity models where all the parameters of the multiplicity have the same value. In particular the rpa has scattering length of each component as a multiplicity parameter so all are set equal to the one default. Unfortunately that means that I(Q)=0 at all Q. It would be nice if we could get a sensible plot in such, admittedly rare, cases. butler Milestone SasView 4.3.0 872 document polydispersity and fitting for integer parameters SasView defect new 2017-03-07T14:13:48-05:00 2018-11-15T08:40:19-05:00 "Models with integer parameters can use array polydispersity to get an instant mixture model across different n. This should be documented in fitting/media/pd_help.rst. For larger n, continuous distributions can also be used. This should be documented in the same place, along with the caveats on using them. Elsewhere in the fitting documentation, we need suggest ways of fitting integer parameters. DREAM should work well enough. DE and Nelder-Mead may also work. Newton methods will fail. " pkienzle Milestone SasView 4.3.0 878 broad q resolution for USANS and negative q for USANS SasView defect new 2017-03-09T06:58:04-05:00 2017-10-27T09:52:04-04:00 The slit resolution function in sasmodels/resolution.py assumes that `q_x>0` and that `delta q_x << q_x`. However, with wide open slits at low q it is possible that the resolution calculation should include theory values from `q_x < 0`. pkienzle Milestone SasView 4.3.0 888 Support numpy v1.12.0+ - Array indices must be integers SasView defect new 2017-03-21T06:23:21-04:00 2019-03-05T11:52:27-05:00 "As of numpy v1.12.0, all array indices are required to be integers, not floating point. This is causing issues in unit tests in the Igor reader. As of now, Jenkins uses an older version of numpy, but going forward, we should try to use the latest versions of every package to minimize the number of specific packages needed. Pull request where this was found: https://github.com/SasView/sasview/pull/47 Travis CI build log where the errors are happening: https://travis-ci.org/SasView/sasview/builds/212831209 Numpy changelog outlining this new feature: https://github.com/numpy/numpy/blob/master/doc/release/1.12.0-notes.rst" krzywon Milestone SasView 4.3.0 894 triaxial ellipsoid with circular equator does not match ellipsoid SasView defect new 2017-03-21T12:23:59-04:00 2019-03-02T17:55:07-05:00 Comparing ellipsoid with triaxial ellipsoid where the equatorial major and minor axes of the triaxial ellipsoid match the equatorial radius of the ellipsoid yields different results. This is true in !SasView 3.1.x as well, for both 1D and 2D models. pkienzle Milestone SasView 4.3.0 910 use new orientation for magnetic models SasView defect new 2017-04-03T15:01:41-04:00 2018-04-06T12:37:16-04:00 theta and phi for magnetism direction do not operate like theta and phi. Consider changing to a latitude/longitude coordinate system. Make sure it is clear from the docs. pkienzle Milestone SasView 4.3.0 953 cross check dll/opencl/python polydispersity and orientation results SasView defect new 2017-04-11T03:42:36-04:00 2017-10-27T09:59:16-04:00 "Implement 1D/2D versions symmetric and asymmetric particles in pure python so that we can cross check the polydispersity calculations in the three different implementations of the polydispersity loop. Ellipsoid and triaxial ellipsoid for example." pkienzle Milestone SasView 4.3.0 958 Proper Handling of Background Term in Invariant Analysis SasView defect new 2017-04-30T10:26:55-04:00 2018-02-12T19:55:21-05:00 "We have recently seen a couple of issues with the invariant failing. These have been traced back to using too large a background term which is a user input field. The traceback error is not terribly helpful to the user and in fact this should not cause a failure unless perhaps if massively overestimated. Lionel Porcar is now asking how the Invariant calculation handles negatives at high Q when subtracting background. This needs to be checked but could be the source of the above problem. If the data set is noisy and reaches background the subtraction will always produce some negative values. Decreasing the background till all points remain positive after subtraction is in fact '''incorrect'''!!! It will provide an overestimate of the invariant which could be substantial since q is large at this point. Aside from ensuring a proper calculation, providing an automated background estimate as for Pr could be helpful. Also it may be useful for both invariant and Pr to allow for an array to represent the background for instruments (such as at pulsed sources) where the background may not be flat?" butler Milestone SasView 4.3.0 963 fix stacked disk (qx,qy) test SasView defect new 2017-05-18T15:37:49-04:00 2017-10-27T10:02:26-04:00 "The tests in stacked disk fail for single precision because J1(qr) is not accurate for large qr. In this test, radius=3000. Use the following to see the error as a function of q for large radius: {{{ explore/precision.py cylinder }}} We are using cephes for our implementation of J1. The implementation in fnlib did not perform any better. Note that precision.py shows single precision J1 in numpy/scipy to be more accurate, but that is probably because it is using double precision internally. The following paper provides an alternative algorithm: http://ieeexplore.ieee.org/iel5/5223291/5223292/05223347.pdf Harrison, J., 2009. Fast and accurate Bessel function computation, in: Computer Arithmetic, 2009. ARITH 2009. 19th IEEE Symposium On. IEEE, pp. 104–113. " pkienzle Milestone SasView 4.3.0 979 Resolve inconsistent naming of peak models sasmodels defect new 2017-07-26T05:27:06-04:00 2017-10-27T10:07:06-04:00 "SasView 4.1.1 appears to have a model with an inconsistent name. We have broad_peak and gaussian_peak, but then peak_lorentz! " smk78 Milestone SasView 4.3.0 988 gcc has long compile times for sasmodels SasView defect new 2017-08-09T13:26:28-04:00 2017-10-27T10:11:14-04:00 Compile time per sasmodels model on gcc is now 10-15 seconds (gcc 4.8.4) compared to 0.2 seconds on clang and 0.33 seconds on tinycc. This slows the travis tests considerably. pkienzle Milestone SasView 4.3.0 989 use sasview installation to run batch scripts SasView defect new 2017-08-09T14:41:18-04:00 2017-10-27T10:12:50-04:00 "Should be able to use the installed sasview GUI package to run fitting scripts such as sasmodels/example/batch_fit.py. Make sure this works and provide documentation for doing so." pkienzle Milestone SasView 4.3.0 998 improve corfunc tests SasView defect new 2017-09-19T12:42:07-04:00 2017-10-27T10:15:39-04:00 Corfun tests are suppressed for now since the results are different on different machines. pkienzle Milestone SasView 4.3.0 1000 Unticking No OpenCL on Mac fixes problem with no model fit SasView defect wojciech assigned 2017-09-21T10:32:18-04:00 2018-10-16T08:17:14-04:00 "Reported by user Simon Martin using Mac Pro with Mac OS 10.12.6: Using !SasView 4.1 and later (including 4.1.2) no model (theory) calculation was being generated. smk78 suspected an OpenCL issue and asked user to TICK the No OpenCL box in Fitting > OpenCL Options. However, user reported that No OpenCL was ALREADY TICKED and that UNTICKING it actually solved the problem! This is clearly unexpected behaviour. This issue may be related to #995 ? " smk78 Milestone SasView 4.3.0 1015 opencl memory errors during fits SasView defect new 2017-10-24T14:05:10-04:00 2019-03-28T18:07:14-04:00 "The following OpenCL memory error was reported from !SasView. This may be because sasview_model.py (calculate_Iq) is allocating a new q vector each time the model is evaluated rather than reusing the same q vector across all fits. Restructuring the calculator so that the q values are held for the life of the model may fix the error. {{{ 2017-10-23 17:39:12 : Traceback (most recent call last): File ""sas/sasgui/perspectives/fitting/fit_thread.pyc"", line 82, in compute File ""sas/sasgui/perspectives/fitting/fit_thread.pyc"", line 14, in map_apply File ""sas/sasgui/perspectives/fitting/fit_thread.pyc"", line 11, in map_getattr File ""sas/sascalc/fit/BumpsFitting.pyc"", line 289, in fit File ""sas/sascalc/fit/BumpsFitting.pyc"", line 202, in theory File ""sas/sascalc/fit/BumpsFitting.pyc"", line 192, in _recalculate File ""sas/sascalc/fit/AbstractFitEngine.pyc"", line 242, in residuals File ""/Users/lionel/.sasview/plugin_models/Cyl_CS_sphere.py"", line 272, in evalDistribution File ""/Applications/SasView 4.1.app/Contents/Resources/lib/python2.7/sasmodels/sasview_model.py"", line 582, in evalDistribution File ""/Applications/SasView 4.1.app/Contents/Resources/lib/python2.7/sasmodels/sasview_model.py"", line 617, in calculate_Iq File ""/Applications/SasView 4.1.app/Contents/Resources/lib/python2.7/sasmodels/sasview_model.py"", line 638, in _calculate_Iq File ""/Applications/SasView 4.1.app/Contents/Resources/lib/python2.7/sasmodels/kernelcl.py"", line 567, in __call__ File ""/Applications/SasView 4.1.app/Contents/Resources/lib/python2.7/pyopencl/__init__.py"", line 1088, in kernel_call File """", line 169, in enqueue_knl_cylinder_Iq LogicError: when processing argument #4 (1-based): clsetkernelarg failed: INVALID_MEM_OBJECT === Steps: 161 of 159 chisq: 70.4 ETA: -86s M2.p2_radius: 71.5 | M2.p2_sld_shell: -0.108 | M2.p2_thickness: 75.8 M1.p1_scale: 0.000499 | M1.p1_sld_solvent: 1.38 | M1.p2_radius: 136 M1.p2_radius.width: 0.851 | M1.p2_scale: 0.0181 | M1.p2_sld_core: 2.08 M1.p2_thickness: 14.1 | M4.p2_radius: 64.8 | M4.p2_sld_shell: -0.0451 M4.p2_thickness: 79.6 | M3.p2_radius: 69 | M3.p2_sld_shell: -0.199 M3.p2_thickness: 83.7 | M3.p2_thickness.width: 0.794 | 2017-10-23 17:42:59 : Traceback (most recent call last): File ""sas/sascalc/data_util/calcthread.pyc"", line 268, in _run LogicError: when processing argument #4 (1-based): clsetkernelarg failed: INVALID_MEM_OBJECT 2017-10-23 17:43:49 : (' 0.357', ' 0.697') 2017-10-23 17:43:50 : (' 0.357', ' 0.697') 2017-10-23 17:43:51 : (' 0.505', ' 15') 2017-10-23 17:43:51 : (' 0.505', ' 15') 2017-10-23 17:43:55 : (' 0.0847', ' 0.268') 2017-10-23 17:43:55 : (' 0.0847', ' 0.268') 2017-10-23 17:45:05 : Computation completed! 2017-10-23 17:45:07 : Computation completed! 2017-10-23 17:45:20 : Computation completed! 2017-10-23 17:45:21 : Computation completed! 2017-10-23 17:45:22 : Computation completed! 2017-10-23 17:45:25 : Computation completed! 2017-10-23 17:45:26 : Computation completed! 2017-10-23 17:45:27 : Computation completed! 2017-10-23 17:45:29 : Computation completed! 2017-10-23 17:45:40 : Computation completed! 2017-10-23 17:45:45 : Computation completed! 2017-10-23 17:46:15 : Computation completed! 2017-10-23 17:48:42 : Fitting is in progress... 2017-10-23 17:48:42 : Fitting is in progress... 2017-10-23 17:48:42 : Traceback (most recent call last): File ""sas/sasgui/perspectives/fitting/fit_thread.pyc"", line 82, in compute File ""sas/sasgui/perspectives/fitting/fit_thread.pyc"", line 14, in map_apply File ""sas/sasgui/perspectives/fitting/fit_thread.pyc"", line 11, in map_getattr File ""sas/sascalc/fit/BumpsFitting.pyc"", line 275, in fit File ""sas/sascalc/fit/BumpsFitting.pyc"", line 375, in run_bumps AttributeError: 'FitDriver' object has no attribute 'fitter' None }}}" pkienzle Milestone SasView 4.3.0 1022 sum and product models won't work with multiplicity SasView defect new 2017-10-27T10:33:57-04:00 2019-03-01T17:15:16-05:00 "See discussion in ticket #1006 and pull request [https://github.com/SasView/sasmodels/pull/53 #53]. This will also be a problem in mixture.py, if you are combining two models, one of which is a multiplicity model (combining two multiplicity models should raise an error). In that case, the control parameter will need to be tagged with the appropriate 'A_', 'B_', ... prefix before assigning, and the hidden() function, if present, will need to be wrapped so that the parameter names in the returned set are also prefixed. Other parameters in model_info.ModelInfo should not be a problem. profile, profile_axes (for spherical shell models) are probably going to be drawn from the form_factor, and so don't need to be included. single and opencl are used internally to select a calculator, and can be undefined for this model (this model should present as a python model). " pkienzle Milestone SasView 4.3.0 1045 Add SasView version flag to model marketplace sasmodels Markeplace defect awashington assigned 2017-12-12T11:46:59-05:00 2018-03-27T03:56:51-04:00 "The point of the marketplace is to provide a forum for all !SasView models to be publicly available and easily accessible without digging through the installation directories and/or the github tree. Also can serve as a repo for emerging efforts to have all code used in papers available as well as efforts to make commonly used routines and methods cataloged and easily available. The issue arises when there is an API change to sasmodels. There have already been a couple and given the wishlists it may require another. Thus it is important that the code for each model be identified as to which version of the sasmodels (and thereby !SasView) API it works with. Some design thought would probably be appropriate in terms of how to record the range of versions covered as well as how to present the potential plethora of each model (one for each API version)." butler Milestone SasView 4.3.0 1055 make sure 1D data masks apply to fits SasView defect new 2018-01-03T10:42:06-05:00 2018-02-12T19:48:24-05:00 "Following up from ticket #1037, [https://github.com/SasView/sasview/pull/135 PR #135], make sure that masking applies to resolution and fits in 1D datasets. " pkienzle Milestone SasView 4.3.0 1066 Add Maier-Saupe type orientational distribution SasView defect new 2018-01-25T02:42:49-05:00 2018-09-12T15:20:56-04:00 "On testing 4.2 beta User Matt Helgeson expressed dismay that the functional forms for orientational distributions were still the same as those for polydispersity. The issue being that the current distributions (Gaussian, log-normal, etc) are all unphysical for orientaional purposes because they are not periodic. And the array function is ''mostly useless...since fitting routines cannot change entries in the input array''. @butler asked what distributions would be appropriate. Matt replied ''In our experience, the anisotropy/orientation distribution from almost every elongated object we've measured (WLMs, polymers, rodlike particles) follows a Maier-Saupe type distribution. The general functional form involves exponentials of Legendre polynomials. I've attached a couple papers that go into various levels of sophistication in this regard. Eqn. 1 of Picken et al. (Macromolecules 1990) shows the basic functional form that tends to work for elongated systems which show two-fold symmetry. This can be generalized to n-fold symmetry, as in Bhattacharjee et al. (Molecular Physics 1981) eqn. 2.'' ''There are also much more rheologically consistent models that one can achieve by solving the Smoluchowski equation in various situations. For example, for shear flow, some of this was actually worked out by Norm Wagner and Lynn Walker during Lynn's Ph.D. (Macromolecules 1994). However, for a simple functional form for fitting, the Maier-Saupe type equations seem to work pretty well.'' " smk78 Milestone SasView 4.3.0 1085 standardize orientation docs across models SasView defect new 2018-04-03T07:21:33-04:00 2018-04-03T07:21:33-04:00 "All oriented shape models should point to the orientation docs rather than repeating the information in each model. You should be able to link to it using {{{:ref:`orientation`}}}. It would be helpful to talk about orientations with regard to the 1-2, 1-3 and 2-3 planes, and with regard to radial and transverse measurements in the shear cell. That is, indicate what values of theta, phi and psi should be used assuming the long axis of the particle is oriented with the flow." pkienzle Milestone SasView 4.3.0 1086 verify and document up_frac_i and up_frac_f calculations for magnetic models SasView defect reopened 2018-04-06T16:18:01-04:00 2019-03-29T04:14:54-04:00 "The weights for each cross section computed from up_frac_i and up_frac_f need to be checked. The code uses: {{{ wuu = sqrt(up_i * up_f) wud = sqrt(up_i * (1-up_f)) wdu = sqrt((1-up_i) * up_f) wdd = sqrt((1-up_i) * (1-up_f)) I = wuu*Iuu + wud*Iud + wdu*Idu + wdd*Idd }}} If either up_i or up_f is not 0 or 1, then the sum of the weights does not equal one which does not sound correct. That is, if up_i/up_f represents leakage between channels, the total number of neutrons should be preserved. Consider up_i = 0.9, which lets through 90% up and 10% down from the guides (so {{{up/(up+down)=0.9}}}, and similarly up_f=0.9, which lets through 90% up and 10% down after the sample. Tracing the individual channels: {{{ initial => sample => final selection up=0.9 => 0.9*Iuu => 0.9*0.9*Iuu = 0.81*Iuu [true pos] 0.1*0.9*Iuu [false neg] 0.9*Iud => 0.1*0.9*Iud = 0.09*Iud [false pos] 0.9*0.9*Iud [true neg] dn=0.1 => 0.1*Idu => 0.9*0.1*Idu = 0.09*Idu [true pos] 0.1*0.1*Idu [false neg] 0.1*Idd => 0.1*0.1*Idd = 0.01*Idd [false pos] 0.9*0.1*Idd [true neg] }}} **So weights should not use sqrt**. Note that the false positive and false negative rates may be independent, and further, with He3 polarizers, may be time dependent, but we keep things simple by having only one number per polarizer rather than two. Doing the same analysis with a partially polarized or unpolarized beam requires an additional factor of two intensity correction. In this case, with 90% efficiency on the front end and 50% on the back end: {{{ initial => sample => final selection up=0.9 => 0.9*Iuu => 0.5*0.9*Iuu = 0.45*Iuu 0.5*0.9*Iuu 0.9*Iud => 0.5*0.9*Iud = 0.45*Iud 0.5*0.9*Iud dn=0.1 => 0.1*Idu => 0.5*0.1*Idu = 0.05*Idu 0.5*0.1*Idu 0.1*Idd => 0.5*0.1*Idd = 0.05*Idd 0.5*0.1*Idd }}} For non-magnetic systems {{{Iuu=Idd}}} and {{{Iud=Idu=0}}}. In the first example, a correction of {{{1/(up_i*up*f + (1-up_i)*(1-up_f))}}} is needed so that {{{I=Iuu=Iud}}}. In the second example the correction is {{{2}}}. Update the user guide to contain complete details of the final implementation and how it is to be interpreted." pkienzle Milestone SasView 4.3.0 1087 Check package versions in yaml files and setup.py SasView defect new 2018-04-08T10:57:43-04:00 2018-04-08T10:57:43-04:00 "In a recent sasview PR (https://github.com/SasView/sasview/pull/150) the version of pyparsing in setup.py is different than the yaml files. We should check the versions match up between the two so local builds and master builds have the same behavior." krzywon Milestone SasView 4.3.0 1102 incorrect resolution smearing SasView defect GitHub reopened 2018-05-14T19:30:15-04:00 2018-08-09T05:09:32-04:00 "Recently, Kathryn Krycka has shown that a) there is a significant difference between NIST's IGOR macros resolution smearing and !SasView. b) the !SasView result seem very odd. This seems particularly emphasized for some reason when using the power law model. I will update later with some examples." butler Milestone SasView 4.3.0 1109 Only one plot is allowed for all open fit tabs SasView defect new 2018-06-17T08:15:39-04:00 2018-07-24T08:07:22-04:00 "In the process of testing for ticket #1099 I discovered that if more that one fit tab is active all tabs updated the plot for the last tab opened, leaving the original plots effectively orphaned. Notes: 1. The residual plots appear to behave as expected (the original residual plots continue to update) 2. Theory tabs (i.e. before a data set is sent to a particular tab) do not appear to count as fit tabs. If several ""theory"" tabs have been opened after the last fit, all fits still update the plot from the last **fit** tab." butler Milestone SasView 4.3.0 1110 Basis for polydispersity normalization may be wrong SasView defect new 2018-06-17T10:35:49-04:00 2018-06-25T21:00:43-04:00 "Originally reported by Peter Schmidt of UMN in September of 2017 as follows: -------------------------- Hi SASView Coders, I have been using SASView to fit SAXS patterns for methylcellulose hydrogels. My group has used IgorPro previously to fit SANS results of these materials previously to the ""semiflexible cylinder model with polydisperse radius."" I noticed I was consistently getting a fit with a higher fibril diameter. I played around with SASView and the Igor SANS macro by inputting various values into the flexible cylinder model. I have found that when I incorporate polydispersity, I get slightly different shaped scattering patterns. To my knowledge Igor uses a Schulz distribution, but even using the Schulz distribution in SASView, I get a slightly different answer. Without the polydispersity in the radius term the two plots superpose as they likely should. I was wondering if there is a reason why this might be occurring (based on how the distribution is implemented), if there might be an issue with the code, or if there is another reason why these two aren't generating the same plot when adding in a dispersity term. Best regards, Peter ------------------------------- Attached is the graph he sent -- note that the length must be 1e4 not 1. Yun Liu has recently looked at the polydispersity code he says because of the beta approximation and believes it is correct ""For number average"" representation. However, IGOR also claims to report number averages I believe. Further Peter Schmidt recently told me (at IPRIME meeting end of May 2018) that he did some digging and discovered that IGOR is averaging using the second moment of the distribution (as the documentation suggests and which should be correct for proper scattering normalization, in particular for such things as the Invariant etc) while !SasView uses the first moment. I have created the IGOR version with the parameters given as a data file and attached as well. If SASFIT has the same model it would be good to check against it as well? It is not clear that this is simply a nomenclature issue (which is fixed with better documentation) but could be giving somewhat ""incorrect"" results for very polydisperse systems which would propagate as noted in the IGOR documentation to the invariant calculator as well and perhaps elsewhere?" butler Milestone SasView 4.3.0 1144 Redundant MultiplicationModel class SasView defect pkienzle new 2018-07-23T09:33:30-04:00 2018-08-17T10:11:13-04:00 "In (at least) 4.2b onwards, the file `sas/sascalc/fit/MultiplicationModel.py` is unused in !SasView, having been replaced with sasmodels' `ProductModel` and so forth, so it should be removed. (assigning @pkienzle ''just in case'' anything could break)" tcbennun Milestone SasView 4.3.0 1154 Refactor tests so that gui doesn't reload module each time sasmodels defect pkienzle new 2018-08-13T14:27:45-04:00 2018-08-13T14:30:24-04:00 "The fundamental problem of not being able to use the model editors in !SasView without throwing errors was fixed by !SasView PR 161 for release 4.2. The problem was that when the sasmodels unit tests were loading the models twice. When they loaded the model the second time, the math globals were being overwritten so that rather than functions they become ""None"" objects for the first instance of that model. The error that was being thrown is {{{ File ""sas\sascalc\data_util\calcthread.pyc"", line 274, in _run TypeError: unsupported operand type(s) for *: 'NoneType' and 'float' }}} However, in that PR, Paul Kienzle suggests that this can be done more cleanly and points to his notes in the code itself documenting his ideas (reproduced below). Due to the increased complexity (and the fact that it touches both sasmodels and !SasView) it was agreed to wait for 4.3 to implement. Note however that the sasmodels part has already been done and is sitting in the queue as a sasmodels PR 75 and includes notes on what to do in !SasView to make the changes accessible to the !SasView GUI. {{{ # TODO: fix model caching # model_test.run_one() is directly forcing a reload of the module, but # sasview_model is caching models that have already been loaded. # If the sasview load happens before the test, then the module is # reloaded out from under it, which causes the global variables in # the model function definitions to be cleared (at least in python 2.7). # To fix the proximal problem of models failing on test, perform the # run_one() tests first. To fix the deeper problem we should either # remove caching from sasmodels.sasview_model.load_custom_model() or # add caching to sasmodels.custom.load_custom_kernel_module(). Another # option is to add a runTests method to SasviewModel which runs the # test suite directly from the model info structure. Probably some # combination of options: # (1) have this function (check_model) operate on a loaded model # so that caching isn't needed in sasview_models.load_custom_model # (2) add the runTests method to SasviewModel so that tests can # be run on a loaded module. # # Also, note that the model test suite runs the equivalent of the # ""try running the model"" block below, and doesn't need to be run # twice. The reason for duplicating the block here is to generate # an exception that show_model_output can catch. Need to write the # runTests method so that it returns success flag as well as output # string so that the extra test is not necessary. }}}" butler Milestone SasView 4.3.0 1169 Limit of core_shell_cylinder should be exactly the same as hollow_cylinder SasView defect new 2018-09-06T05:51:36-04:00 2018-09-06T05:51:36-04:00 "Checking with 4.2, the core_shell_cylinder using an SLD of 6.34 for both the core and solvent and otherwise the same structural parameters SHOULD give the exact same result as the hollow_cylinder using a solvent SLD of 6.34. It is ""close"" but not the same. In particular the Intensity at q=1E-3 is about 15% different and the oscillations a just a tad off. the parameters used were: {{{ R_in = 30 R_out = 10 L = 400 background = 0.001 Vol Frac of TOTAL cylinder = 0.05 }}} Not sure if this is just a numerical thing but seems a bit much for that? This needs investigating and possibly fixing" butler Milestone SasView 4.3.0 1192 recode the BSL loader in python SasView defect new 2018-10-11T10:20:57-04:00 2018-10-11T10:20:57-04:00 "The bsl loader in sascalc.file_converter is currently written in C but it could be easily recoded into python. This will aid in long term maintenance. The following method would do most of the work: {{{ def load_data(self): little_endian = not self.swap_bytes with open(self.filename, 'rb') as fp: frame_pos = self.n_pixels * self.n_rasters * self.frame fp.seek(frame_pos*4) dtype = 'f4' data = numpy.fromfile(fp, dtype, self.n_rasters*self.n_pixels) return data }}} The rest of the C code is just getters/setters for n_pixels, n_rasters and frame." pkienzle Milestone SasView 4.3.0 1208 redo mac startup notification SasView defect new 2018-11-02T11:42:59-04:00 2018-11-02T11:42:59-04:00 "Sasview 4.2, Mac. When running on mac without X-code command line tools, guide user to check whether the GPU works before having them install X-code. After noting that the compiler isn't available and OpenCL isn't selected, open up the OpenCL options dialog so the user can immediately address the problem. Disable the ""No OpenCL"" option, but add a help button that instructs users to install the tools. Or optionally, leave the button available but pop up a dialog telling them to install command line tools when the option is selected. Alternatively, automatically run the OpenCL tests when no command line tool is available. Need a dialog indicating test progress. " pkienzle Milestone SasView 4.3.0 1209 OpenCL Options dialog is always testing dll SasView defect new 2018-11-02T11:43:27-04:00 2018-11-02T11:43:27-04:00 "sasview 4.2 When running the gpu tests, all the dll tests are included even if when the gpu is selected. Tested on mac. 58 dll models failed (because X-code command line tools weren't installed). Probably not a single/double issue since there are only 21 models with `single=False`. " pkienzle Milestone SasView 4.3.0 1210 ImageViewer on OSX loads only png files SasView defect new 2018-11-06T03:40:21-05:00 2018-11-06T03:41:02-05:00 Image viewer fails on loading all files extentsion but png. This is mac issue and most likely related to Pillow installation. It may require updating Pillow at build server. wojciech Milestone SasView 4.3.0 1211 run.py fails if tinycc isn't built (windows) SasView defect new 2018-11-06T15:38:22-05:00 2018-11-06T15:38:22-05:00 "sasview 4.3 developer windows run.py fails on windows if tinycc is not built. If tinycc does not import and the repo does not exist, then tell the user to pip install it or download the repo. If repo exists but the build directory does not, then issue the build command in the tinycc repo. If it still doesn't import, then remove ""--compiler=tinycc"" from the command line and hope the user has MSVC installed or mingw32 install and distutils configured. " pkienzle Milestone SasView 4.3.0 1213 Display title rather than filename in data browser SasView defect krzywon new 2018-11-08T05:56:45-05:00 2018-11-08T05:56:45-05:00 "When multiple data sets are loaded from a single file, the data browser displays them as filename, filename[1], filename[2], etc. A user brought up a good point recently that the title of each data set is more important than the filename in these cases. I'm not sure where exactly the displayed value is set, but I assume it is in the GUI. I am setting this to 4.3.0 for now, but if I can find a solution quickly, might integrate it into the NXcanSAS reader work in [https://github.com/SasView/sasview/pull/180 PR 180]." krzywon Milestone SasView 4.3.0 1218 numpy/scipy cause syntax errors in python model builder SasView defect piotr assigned 2018-11-16T16:39:31-05:00 2018-12-11T20:01:22-05:00 "If the code in your simple python model contains numpy, np or scipy then it will cause a syntax error when you try to run the model. This is because the model builder does not include `\n` when it inserts the numpy import line. Better would be to place the imports at the top of the template for all models instead of including it dynamically in the function definition. The model reload problems should be fixed, so this should now work. This will make the code simpler, and we are relying on this fix already for the trig and exponential functions. Instead of `from math import *`, we should use `from sasmodels.special import *` at the top of the template. This will define the same set of functions that are available to C models, including functions such as sas_erf, etc, constants such as M_PI and the gaussian quadrature weights for 20, 76 and 150 point quadrature. It also defines the `np` symbol in case any thing else is needed." pkienzle Milestone SasView 4.3.0 1219 custom_config.py and categories.json are overwriten when running from run.py SasView defect new 2018-11-29T08:31:39-05:00 2018-11-29T08:31:39-05:00 "When running sasview from run.py categories.json and custom_config.py files in .sasview dierctory are removed and coppied from sasview src. This happens because setup,py (lines: 59-69) removes these files. It is only the problem when you run sasview locally. It is not the problem from builder. " wojciech Milestone SasView 4.3.0 1224 Add warning to smearing sizer in fitpage when dq is too large SasView defect new 2019-01-22T19:23:59-05:00 2019-01-22T19:23:59-05:00 "In addressing #1206 it was noted that having the background of the box with the dq/q value (or q for slit smeared), whether read from data or input by the user, turn a pink/red color when the value is ""too large"" would be helpful. What is needed: 1. Agree what values to use for the cutoff in the various cases (pinhole and slit) 2. add at least a tooltip or provide some obvious text feedback to user of why the box is red and what to do about it 3. Make sure that all the different routes for setting those boxes are covered." butler Milestone SasView 4.3.0 1230 parallelize polydispersity loops SasView defect new 2019-02-19T07:23:34-05:00 2019-02-22T09:28:36-05:00 "There is unexploited parallelism in the polydiserpsity calculation. This limits the speedup available on high end graphics cards which are operating on 1-D dataset, since the current implementation is limited to only using one processor per q value. A card with 5000 separate processors will be mostly idle. This is particularly important for mcSAS, which needs to evaluate {{{ I(q_j) = sum_{i=1}^m w_i P(q_j, r_i) }}} where P(q,r) is the sphere form, q is length n and the distribution w,r is length m, for a total of m x n total evaluations. The current sasmodels code does this in parallel over q_j, with the sum over w_i, r_i running in serial. Instead, we could break up the loop into non-intersecting stripes, first computing {{{ I_k(q_j) = sum_{i=1}^{m/p} w_{k+p*i} P(q_j, r_{k+p*i}) }}} with the number of stripes p, then we can keep n x p processors busy at the same time, and the cost of n x p intermediate results. With 256 q points, the 5120 processors on an nvidia V100 can compute 20 batches in parallel simultaneously, using minimal extra memory (256 x 20 x 8 bytes). May be faster to use p=16 so that memory accesses align better. Next turn the problem on its side, compute the following: {{{ I(q_j) = sum_k I_k(q_j) }}} with one processor for each q value. Can perhaps do better by computing pairs in parallel, then pairs of pairs, requiring four cycles for p=16 rather than 16, though the overhead of managing this may outweigh any benefit. Looking at the graphs on page 5 of the following: https://www.cl.cam.ac.uk/teaching/1617/AdvGraph/07_OpenCL.pdf I'm guessing the 4k reductions is too small to warrant a fast algorithm. The existing kernel_iq.c would benefit from this, at least for the inner polydispersity loop, if you are willing to tackle it. Generating a specialized kernel for the particular problem of a distribution of spheres in mcSAS will probably be easier. " pkienzle Milestone SasView 4.3.0 1233 py3 support for 4.x series SasView defect new 2019-02-22T12:01:30-05:00 2019-02-22T12:01:30-05:00 "!SasView 4.3 will run on python 3.x with wx 4.x, but it hasn't been extensively tested. Need to test that the various dialogs function correctly, and make sure that file I/O works. Here's a list of file open calls in the code: {{{ $ grep -r ""\\bopen[(]"" src | grep -v [.]open | grep py: src/examples/data_generator/testdata_generator.py: fd = open(filename, 'w') src/sas/_config.py: if not ""SAS_OPENCL"" in open(path).read(): src/sas/_config.py: open(config_file, ""a+"").write(""SAS_OPENCL = \""None\""\n"") src/sas/sasgui/perspectives/invariant/report_dialog.py: f = open(fName, 'w') src/sas/sasgui/perspectives/invariant/report_dialog.py: f = open(fName, 'w') src/sas/sasgui/perspectives/invariant/invariant_state.py: html_template = open(path_report_html, ""r"") src/sas/sasgui/perspectives/invariant/invariant_state.py: fd = open('test000', 'w') src/sas/sasgui/perspectives/invariant/invariant_state.py: fd = open(filename, 'w') src/sas/sasgui/perspectives/fitting/basepage.py: input_f = open(path, 'r') src/sas/sasgui/perspectives/fitting/basepage.py: with open(categorization_file, 'rb') as f: src/sas/sasgui/perspectives/fitting/report_dialog.py: with open(filename, 'w') as f: src/sas/sasgui/perspectives/fitting/report_dialog.py: with open(filename, 'w') as f: src/sas/sasgui/perspectives/calculator/resolution_calculator_panel.py: input_f = open(path, 'r') src/sas/sasgui/perspectives/calculator/model_editor.py: with open(self.fname, 'w') as out_f: src/sas/sasgui/perspectives/calculator/model_editor.py: out_f = open(fname, 'w') src/sas/sasgui/perspectives/pr/inversion_state.py: fd = open(file, 'w') src/sas/sasgui/perspectives/pr/inversion_state.py: fd = open(filename, 'w') src/sas/sasgui/perspectives/pr/pr.py: input_f = open(path, 'r') src/sas/sasgui/perspectives/pr/pr.py: input_f = open(path, 'r') src/sas/sasgui/perspectives/corfunc/corfunc_state.py: fd = open(filename, 'w') src/sas/sasgui/perspectives/corfunc/corfunc_state.py: fd = open(filename, 'w') src/sas/sasgui/perspectives/file_converter/converter_panel.py: f = open(filename, 'r') src/sas/sasgui/guiframe/config.py: out = open(__EVT_DEBUG_FILENAME__, 'a') src/sas/sasgui/guiframe/report_dialog.py: resultFile = open(filename, ""w+b"") src/sas/sasgui/guiframe/startup_configuration.py: with open(path, 'w') as out_f: src/sas/sasgui/guiframe/CategoryInstaller.py: with open(serialized_file, 'rb') as f: src/sas/sasgui/guiframe/CategoryInstaller.py: json.dump(master_category_dict, open(serialized_file, 'wb')) src/sas/sasgui/guiframe/CategoryManager.py: cat_file = open(CategoryInstaller.get_user_file(), 'wb') src/sas/sasgui/guiframe/CategoryManager.py: with open(cat_file, 'rb') as f: src/sas/sasgui/guiframe/gui_manager.py: fd = open(file_name, 'r') src/sas/sasgui/guiframe/gui_manager.py: fd = open(file_name, 'w') src/sas/sasgui/guiframe/gui_manager.py: fd = open(temp_file_name, 'w') src/sas/sasgui/guiframe/gui_manager.py: fd = open(fName, 'w') src/sas/sasgui/guiframe/gui_manager.py: config_file = open(custom_config.__file__) src/sas/sasgui/guiframe/gui_manager.py: new_config_file = open(custom_config.__file__,""w"") src/sas/sasgui/guiframe/gui_manager.py: out = open(path, 'w') src/sas/sasview/local_config.py: out = open(__EVT_DEBUG_FILENAME__, 'a') src/sas/sascalc/calculator/sas_gen.py: input_f = open(path, 'rb') src/sas/sascalc/calculator/sas_gen.py: input_f = open(path, 'rb') src/sas/sascalc/calculator/sas_gen.py: input_f = open(path, 'rb') src/sas/sascalc/calculator/sas_gen.py: out = open(path, 'w') src/sas/sascalc/fit/models.py: out = open(PLUGIN_LOG, 'a') src/sas/sascalc/fit/Loader.py: input_f = open(self.filename, 'r') src/sas/sascalc/fit/pagestate.py: fd = open(file, 'w') src/sas/sascalc/fit/pagestate.py: fd = open(filename, 'w') src/sas/sascalc/pr/fit/Loader.py: input_f = open(self.filename, 'r') src/sas/sascalc/pr/num_term.py: input_f = open(path, 'r') src/sas/sascalc/pr/invertor.py: file = open(path, 'w') src/sas/sascalc/pr/invertor.py: fd = open(path, 'r') src/sas/sascalc/file_converter/bsl_loader.py: header_file = open(filename, 'r') src/sas/sascalc/file_converter/otoko_loader.py: with open(header_path, ""r"") as header_file: src/sas/sascalc/file_converter/otoko_loader.py: with open(info.file_path, ""rb"") as binary_file: src/sas/sascalc/file_converter/cansas_writer.py: file_ref = open(filename, 'w') src/sas/sascalc/file_converter/ascii2d_loader.py: with open(self.data_path, 'r') as file_handle: src/sas/sascalc/file_converter/red2d_writer.py: fd = open(filename, 'w') src/sas/sascalc/dataloader/file_reader_base_class.py: self.f_open = open(filepath, 'rb') src/sas/sascalc/dataloader/readers/cansas_reader.py: file_ref = open(filename, 'wb') src/sas/sascalc/dataloader/readers/red2d_reader.py: fd = open(filename, 'w') }}}" pkienzle Milestone SasView 4.3.0 1244 Resolution calculator gives incorrect results for sigma x, sigma y SasView defect new 2019-03-12T16:47:10-04:00 2019-03-12T16:47:10-04:00 "SasView 4.2.1 Select menu >Tools >Q resolution estimator Set `Qx=0.005`, `Qy=0.03` and click ""Compute"" Resolution is clearly elliptical but `Sigma_x` and `Sigma_y` are identical. Hammouda's online [https://www.ncnr.nist.gov/staff/hammouda/distance_learning/chapter_15.pdf SANS course] (ch 15, pg 9) has formulas for sigma x and sigma y. " pkienzle Milestone SasView 4.3.0 1247 Orientation Viewer doesn't always work SasView defect awashington assigned 2019-03-13T06:57:45-04:00 2019-03-19T09:26:53-04:00 "When clicking the > Tools > Orientation Viewer, a window should appear to let you play around with a shape and understand how angles are defined. That window doesn't always pop up (for example, on OSX 10.13 using the current master build). When it does show up, the bottom part of the window shows what appears to be a set of controls. The problem is that we can't interact with those controls and it's not clear what it's trying to tell us. In addition, I'm not convinced that this feature is useful unless we can pick the oriented model to display." mathieu Milestone SasView 4.3.0 1257 vesicle @ structure_factor incorrect SasView defect new 2019-03-25T15:00:59-04:00 2019-03-25T15:00:59-04:00 "Comparing vesicle@S with no core to sphere@S I get different answers. Repeat using: {{{ $ sascomp vesicle@hardsphere,sphere@hardsphere radius=0,thickness thickness=40 -pars -midq -double }}} This is not true for hollow_cylinder with no core vs cylinder: {{{ $ sascomp hollow_cylinder@hardsphere,cylinder@hardsphere radius=0,thickness thickness=40 -pars -double }}} I think the issue is that the vesicle model defines volfraction, and this is colliding with the definition of volfraction in the structure factor, which then gets turned into volfraction_S. Vescicle and sphere match if volfraction_S is set to the same value as volfraction. {{{ $ sascomp vesicle@hardsphere,sphere@hardsphere volfraction_S=0.05 scale=20,1 radius=0,thickness thickness=40 -pars -midq -double }}} Should update product model to use volfraction if it exists in the model. This will require changes to `sasmodels/product.py`, both when constructing the model and when splitting the parameter set into P and S parameters. " pkienzle Milestone SasView 4.3.0 1266 matplotlib has remove hold() method SasView defect new 2019-03-29T07:38:31-04:00 2019-03-29T10:04:07-04:00 "sasview 4.x, recent versions of matplotlib. Don't know if ESS gui uses hold(). With a recent matplotlib package from anaconda I get the following error: {{{ Traceback (most recent call last): File ""/Users/pkienzle/Source/sasview/src/sas/sasgui/guiframe/local_perspectives/plotting/plotting.py"", line 326, in _on_plot_event new_panel = self.create_1d_panel(data, group_id) File ""/Users/pkienzle/Source/sasview/src/sas/sasgui/guiframe/local_perspectives/plotting/plotting.py"", line 197, in create_1d_panel ytransform=ytransform, style=wx.RAISED_BORDER) File ""/Users/pkienzle/Source/sasview/src/sas/sasgui/guiframe/local_perspectives/plotting/Plotter1D.py"", line 92, in __init__ self.graph.render(self) File ""/Users/pkienzle/Source/sasview/src/sas/sasgui/plottools/plottables.py"", line 314, in render plot.clear() File ""/Users/pkienzle/Source/sasview/src/sas/sasgui/plottools/PlotPanel.py"", line 1237, in clear self.subplot.hold(True) AttributeError: 'AxesSubplot' object has no attribute 'hold' }}} They did warn us it was going away eventually: https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.hold.html" pkienzle Milestone SasView 4.3.0 552 star_polymer model SasView enhancement richardh new 2016-03-22T13:36:06-04:00 2017-10-27T04:46:58-04:00 " numerically unstable at extreme small Q, likely also the same in mono_gauss_coil and poly_gauss_coil suspect needs Taylor expansion" richardh Milestone SasView 4.3.0 613 fixed parameters in sasmodels SasView enhancement new 2016-08-08T10:51:30-04:00 2018-08-15T14:33:46-04:00 Sasmodels does not allow parameters to be designated as fixed, non-fittable, but the sasview GUI will support them when it does. pkienzle Milestone SasView 4.3.0 686 Add some magnetic datasets to the test data folder SasView enhancement dirk assigned 2016-10-04T09:58:11-04:00 2017-10-27T10:37:13-04:00 We should provide some example magnetic datasets in the test folder smk78 Milestone SasView 4.3.0 719 Generalize 1D and 2D data SasView enhancement new 2016-10-06T19:16:43-04:00 2017-10-27T11:33:33-04:00 "Currently, 1D data is specifically x->q and y->Iq, but it need not be. the data types should be made as general as possible, so that new 1D data formats can be added in more easily. This is most directly applicable to SESANS integration, but also for future flexibility of Sasview." jhbakker Milestone SasView 4.3.0 785 Add volume fraction profile to Correlation Function analysis SasView enhancement smk78 new 2016-10-14T09:46:05-04:00 2017-10-26T05:05:19-04:00 "The new correlation function analysis implemented post-4.0 has a radio button for the option to perform a Hilbert transform to generate a volume fraction profile for adsorbed layers. The code to perform this currently exists but in Fortran. It needs porting to Python and then integrating with the corfunc perspective." smk78 Milestone SasView 4.3.0 791 make fractal a structure factor model sasmodels enhancement new 2016-10-20T08:17:30-04:00 2019-03-02T17:51:52-05:00 "Currently `fractal` and `core_shell_fractal` are implemented as `P(q) * S(q)`, where `P(q)` is the sphere structure factor for fractal or the core shell sphere for core_shell_fractal and `S(q)` is the fractal structure factor. Propose splitting the S(q) into its own structure factor model so that all variants of fractal clustering are supported at once." pkienzle Milestone SasView 4.3.0 806 clean separation between sasmodels and sasview SasView enhancement tim accepted 2016-11-14T16:03:52-05:00 2017-10-26T06:50:06-04:00 "sasmodels should act like an indpendent third party package without knowledge of sasview internals. This is not the case in a few places: * `sasview_model.py` belongs in sasview. It was developed within sasmodels for convenience, but now that sasmodels is mature it can be moved to sasview. * sasmodels should not have knowledge of the sasview data representation. Currently this infects `resolution.py`, `resolution2d.py` and `sesans.py`. `data.py` was set up as a clone of the sasview data structures for testing, and this has infected `direct_model.py`, `bumps_model.py` and `compare.py`. Perhaps we could create a sasdata package which both sasview and sasmodels depend upon, or perhaps the data representation could move (along with the loaders?) to sasmodels. * `compare.py` imports models from sasview 3.x for test purposes; this code will eventually disappear once we are certain we no longer need to compare against 3.x * `convert.py` includes knowledge of the 3.x model parameters and how they relate to the new sasmodels parameters. This information should stay in sasmodels, along with any future model migration code. * sasmodels documentation currently living in `sasview/src/sasgui/perspectives/fitting/media/plugin.rst` mostly belongs in sasmodels docs. " pkienzle Milestone SasView 4.3.0 822 Create proper Unit Testing directory structure for SasModels sasmodels enhancement richardh assigned 2016-12-06T08:04:46-05:00 2019-03-26T03:28:42-04:00 piotr Milestone SasView 4.3.0 893 oriented 2D versions of rectangular prism models SasView enhancement new 2017-03-21T09:54:29-04:00 2019-03-02T17:53:58-05:00 parallelepiped and core shell parallelepiped define Iqxy but rectangular prism, hollow rectangular prism and thin-walled rectangular prism do not. pkienzle Milestone SasView 4.3.0 992 Improve bound Levenberg-Marquardt solver SasView enhancement pkienzle assigned 2017-09-04T19:46:39-04:00 2018-02-20T09:40:00-05:00 "Marcelo, a user from Argentina recently pointed out that in !SasView 4.1.2 the optimizer did not respect the min/max bounds at all. Paul Kienzle subsequently pointed out that the bumps implementation of LM doe NOT in fact respect those limits while the other optimizers do. This seems very wrong since LM is the primary optimizer used at least to start and one would expect that given the option to enter bounds they have some meaning. Paul says this should be an ""easy"" fix? It would be nice to have that fixed in 4.2. Presumably this requires changes to bumps not !SasView? " butler Milestone SasView 4.3.0 996 Put latest version available in status bar SasView enhancement new 2017-09-18T19:28:43-04:00 2018-02-12T19:37:37-05:00 on startup, !SasView checks for what the latest published version is and puts the information in the log file. While the user can actively go to the menu item Help > Check for updates, the user should be informed as soon as the information is available. If the running version is behind the latest that information should be displayed in the status bar/console at startup along with being logged. If no internet connection is available however the status bar should remain empty (i.e. no error should be thrown in the status bar/console). butler Milestone SasView 4.3.0 1058 Improve progress notification for slow calculations SasView enhancement new 2018-01-08T05:50:00-05:00 2018-02-12T19:03:09-05:00 "When doing long slow calculations, it is irritating to keep having to open the console to try to work out whether sasview has finished or not, or indeed whether I have really have clicked on ""fit"" or ""compute"". There may be several things that could be done such as: Grey out, change colour, or disable the ""fit"" and ""compute"" buttons after they are clicked. Change the previous message at bottom left of screen to ""calculating"" Preface the ""Computation completed!"" message at bottom left with time in ""hh:mm:ss"" " richardh Milestone SasView 4.3.0 1091 improve parallelism for 1D integration models SasView enhancement new 2018-04-13T10:29:02-04:00 2018-07-01T13:50:33-04:00 "On a GPU with number of cores greater than the number of q points the limiting speed for 1D models is the cost of the integration loop. For example, on the Radeon R9 Nano, the paracrystalline models each require about 400 ms to evaluate for nq up to 12000. Given that a typical curve has on the order of 120 points (e.g., the P123 example data sets) this suggests only 1% of the GPU is active for any given function evaluation using 120 points. [4096 cores / 128 points suggests 3% usage] To improve parallelism we could unroll the integration loop by evaluating the different (theta, phi) points in gauss_z X gauss_z in parallel, then summing the resulting grid in parallel. The 76x76x120 point 2D calculation for sc_paracrystal takes 7.5 ms vs 423 ms for the 1D calculation (56x speedup). For core-shell parallelepiped the speedup is only 5x. Even symmetric shapes such as barbell can benefit, with a 7x speeup for a 2D 76x120 pattern compared to a 1D loop over gauss_z. More speedup would be possible with specialized code since some parts of the equation can be precomputed and shared for all points at a given q (the sphere form in the paracrystal example) or a given theta (the C direction in the parallelepiped models). If we define the q points for the 2D calculator in polar coordinates, then larger rings at higher |q| could use more points, giving a simple form of adaptive integration (ticket #392). As an alternative, we could use the same GPU in parallel from different fit processes. Testing with mpi and DREAM (4 fit pars, 32 evals per step), this can give a 4x speedup for population fitters (DREAM and DE): {{{ processes time 1 13.6 2 13.2 4 6.8 8 3.8 16 4.3 }}} Note that turning on resolution slows down the program by 3x because the points below q min and the points above q max are computed in separate batches, each of which takes the same time as the measured q set even though they may have only one or two points. This will be fixed with ticket #717. " pkienzle Milestone SasView 4.3.0 1095 Ship tinycc with MAC SasView enhancement new 2018-04-17T08:55:55-04:00 2018-10-18T13:28:40-04:00 "The following was reported by a user and documented in ticket #1084. The cause was determined to be that they had refused to install the required inline xcode package (that used to be loaded by default on mac?) so that there was no compiler to compile the models with. The solution is to Ship tinycc with the mac version as we already do with the PC version. --------------------------- Reported by user Judith Witte (using Mac OS 10.13.3). Was fitting happily in an (unspecified) earlier version of !SasView which then just ''""stopped working""'' (wouldn't open anymore). So upgraded to 4.1.2. Data loads in 4.1.2 but on attempting a fit this is returned: {{{ Error(s) Occurred: > Traceback (most recent call last): > File ""sas/sasgui/perspectives/fitting/fit_thread.pyc"", line 82, in compute > File ""sas/sasgui/perspectives/fitting/fit_thread.pyc"", line 14, in map_apply > File ""sas/sasgui/perspectives/fitting/fit_thread.pyc"", line 11, in map_getattr > File ""sas/sascalc/fit/BumpsFitting.pyc"", line 275, in fit > File ""sas/sascalc/fit/BumpsFitting.pyc"", line 375, in run_bumps > AttributeError: 'FitDriver' object has no attribute 'fitter' }}} This looks remarkably similar to #1061 which is only classified as minor, however Judith says this is stopping her from doing any fitting. She also comments that ''""The first error occurs after I choose the model (not clicked on Fit yet)""''. If you look carefully at the screenshots you will note two slightly different errors. So am initially marking this as a blocker pending further investigation as it appears a more serious and widespread problem than in 1061. " butler Milestone SasView 4.3.0 1180 Use mypy for static type checking SasView enhancement new 2018-09-20T08:27:13-04:00 2018-09-20T08:27:13-04:00 "Sasmodels has type annotation for many functions. Mypy static type checking should be run as part of the test suite on every check-in. Mypy should also be run on sasview, bumps and periodictable, with type signatures gradually added to all the functions. Note: the NCNR nice instrument control project (NCNR internal) has type annotations defined for h5py, numpy, matplotlib, bz2 and cProfile that can used as a starting point if these projects do not yet provide their own. " pkienzle Milestone SasView 4.3.0 1264 Form factor for two correlated spherical particles sasmodels enhancement Tianfu new 2019-03-28T07:30:04-04:00 2019-03-28T07:30:04-04:00 If your system is made up by two particles with spherical shape(sphere, coreshell and so on), try this model. Tianfu Milestone SasView 4.3.0 594 Check default value of cansas_version property in CansasReader class SasView task tim accepted 2016-07-22T09:22:18-04:00 2017-10-27T07:50:15-04:00 (Ticket raised on behalf of Lewis) !CansasReader has a property cansas_version which determines the xml header written in the files. This currently seems to default to 1.0 and not 1.1 as you get the old header if you call this class directly. However if you save xml files from the GUI they are saved with the new header! This suggests the default is over-ridden somewhere. Needs investigating. smk78 Milestone SasView 4.3.0 788 cross check different implementations of the same shape sasmodels task new 2016-10-17T12:15:13-04:00 2017-10-27T10:41:31-04:00 "There are many instances where the same shape can be described with two different models. For example, * core-shell models vs. core-only models with the sld of the shell matching the sld of the core and the radius of the core+shell matching the radius of the core, * sphere:ellipsoid with r_major and r_minor equal to r, * barbell:pearl_necklace with 2 pearls * barbell:sphere with hemispherical bell and length 0 bar * rectangular_prism:parallelepiped, one using ratios the other using lengths * etc. Collect a list of these in sasmodels and check that the values correspond. Furthermore, for oriented models, the 1-D model should match the orientation average of the 2-D model." pkienzle Milestone SasView 4.3.0 937 Build new tutorials as eBook SasView task new 2017-04-08T09:14:21-04:00 2017-10-27T10:39:31-04:00 "The new tutorials need to be converted from .fodt to eBook. However, at the time of writing ePub is not a valid !LibreOffice output filter. There is a !LibreOffice extension available at http://extensions.services.openoffice.org/en/project/Writer2ePub Otherwise the forums suggest converting the .fodt into something !PanDoc can then turn into ePub. Also see #510, #927, and #934" smk78 Milestone SasView 4.3.0 1143 Validate new orientation distribution SasView task butler assigned 2018-07-21T13:21:42-04:00 2018-09-09T11:21:27-04:00 "The new orientational distribution of oriented particles is complete but needs some validation/testing. The problem is that the current typical way orientational distributions are currently evaluated seems to be through an order parameter defined in the plane of the detector whereas !SasView is trying to go a step (or two) further and bring real physical insights by using the real 3D object and defining an orientational distribution in the frame of the object and then projecting that onto the plane of the detector. While the output of the code has been looked at by several of the developer group over the past 2 years of development it would be good if there was at least one external expert group that could verify the results are at least consistent with what they do/would expect given the new way of looking at it." butler Milestone SasView 4.3.0 322 Need to streamline requiring new version of packages SasView defect new 2015-02-14T07:01:13-05:00 2019-02-02T21:20:59-05:00 Currently requiring a new version of, for example bumps, requires changes be made in five separate places: build_tools/* (mac builder, RPM builder and windows builder), setup.py and check_packages.py butler Milestone SasView 4.3.0 482 better support for integer parameters in fit SasView defect new 2015-11-23T16:17:35-05:00 2017-10-27T04:33:41-04:00 "For models such as pearl necklace which have an integer number of pearls, some bumps fitters will fail. LM and newton in particular will fail; nelder-mead and DE won't fail, but may not select the best integer; dream should work fine, though not as efficiently as it could if it knew it were working with integer parameters. Other models such as the n-shell model need to introduce extra parameters with each additional shell. These are not supported by any fitter." pkienzle Milestone SasView 4.3.0 495 singular covariance matrices give traceback error for dream/amoeba/newton SasView defect new 2016-01-19T10:44:39-05:00 2017-10-27T04:38:26-04:00 "Error message: Error(s) Occurred: Traceback (most recent call last): File ""/home/tec/sci/sasview-3.1.2/src/sas/perspectives/fitting/fit_thread.py"", line 82, in compute result = map(map_apply, inputs) File ""/home/tec/sci/sasview-3.1.2/src/sas/perspectives/fitting/fit_thread.py"", line 14, in map_apply return apply(arguments[0], arguments[1:]) File ""/home/tec/sci/sasview-3.1.2/src/sas/perspectives/fitting/fit_thread.py"", line 11, in map_getattr return getattr(classInstance, classFunc)(*args) File ""/home/tec/sci/sasview-3.1.2/src/sas/fit/BumpsFitting.py"", line 274, in fit result = run_bumps(problem, handler, curr_thread) File ""/home/tec/sci/sasview-3.1.2/src/sas/fit/BumpsFitting.py"", line 360, in run_bumps 'stderr': fitdriver.stderr() if success else None, File ""/usr/local/lib/python2.7/dist-packages/bumps/fitters.py"", line 884, in stderr H = lsqerror.hessian(self.problem, self.result[0]) File ""/usr/local/lib/python2.7/dist-packages/bumps/lsqerror.py"", line 79, in hessian H = nd.Hessian(problem.nllf)(p) File ""/usr/local/lib/python2.7/dist-packages/bumps/numdifftools.py"", line 1159, in __call__ return self.hessian(x00) File ""/usr/local/lib/python2.7/dist-packages/bumps/numdifftools.py"", line 1170, in hessian hess = self.hessdiag(x0) File ""/usr/local/lib/python2.7/dist-packages/bumps/numdifftools.py"", line 1084, in hessdiag return self._partial_der(x00) File ""/usr/local/lib/python2.7/dist-packages/bumps/numdifftools.py"", line 720, in _partial_der PD[ind] = self._derivative(fun, x0[ind], stepNom[ind]) File ""/usr/local/lib/python2.7/dist-packages/bumps/numdifftools.py"", line 424, in _derivative der_romb, errors, h2 = self._romb_extrap(der_init, h1) File ""/usr/local/lib/python2.7/dist-packages/bumps/numdifftools.py"", line 686, in _romb_extrap errest = np.ones(der_init.shape) * hout !ValueError: operands could not be broadcast together with shapes (24,) (0,) Steps: 266 of 1000 chisq: 43.6 ETA: 2s M1.num_pearls: 1.29 | M1.radius: 15.3 | M1.scale: 0.00847 M1.sld_pearl: 1.5e-06 | " pkienzle Milestone SasView 4.3.0 715 resolution calculation does not check for basis of support between q points SasView defect new 2016-10-06T10:15:37-04:00 2017-10-27T10:44:10-04:00 "To compute the resolution approximation more accurately all measured q points should have enough calculated q points within the resolution window regardless of how sparsely the data is measured. sasmodels/resolution.py only extends q beyond the measured end points, it does not check that there is sufficient number of points within dq of each measured q point. This is generally not a problem for SANS since the 1D pattern is computed from the circular average with dense enough spacing, but it could potentially be a problem when datasets from non-overlapping q regions are joined, or when data is excluded from the middle of the q range. It could also be a problem in USANS where q spacing is completely under user control." pkienzle Milestone SasView 4.3.0 787 models with the same name in different directories will not be distinguished SasView defect butler assigned 2016-10-16T14:57:38-04:00 2018-02-12T19:29:31-05:00 "The function `generate.tag_source` returns a unique string associated with the source code for the model. Use this rather than time stamps to determine if the model needs to be recompiled. Remove all the time stamp comparison code since it is complicated and error prone. Precompiled models that are supplied with the windows installer will need to include the tag, which may complicate the installer. Are precompiled models needed given that !SasView ships with tinycc? OpenCL kernels already use the tag for testing if a recompile is needed. It also check timestamps, so kernelcl.py should also be updated. In practice, this issue will only be a problem for users that don't have OpenCL but are making their own versions of models with the same name as the builtin model, and still want to run the builtin model. Currently, the most recently changed source will win. " pkienzle Milestone SasView 4.3.0 842 allow specification of single and double precision opencl device SasView defect new 2017-02-01T10:37:31-05:00 2017-10-27T11:03:13-04:00 The OpenCL setup dialog doesn't allow for the selection of single and double precision devices. If the device is single precision only and the model does not support single precision then the DLL is used even if there is a double precision device available. pkienzle Milestone SasView 4.3.0 867 Use integer number of branches for star polymer SasView defect new 2017-02-27T10:38:49-05:00 2017-10-27T11:03:47-04:00 "from ticket #815 comment 6 by SMK: Looking at Higgins & Benoit (as I don't have access to the reference given for the star model) I suspect that arm is a relatively modern term and that branch was the original terminology. That being so, I find it difficult to comprehend how you can have a non-integer number of branches. The branches may be of different length (cf molecular weight, degree of polymerisation), but that is a different issue. So I would vote that we make arms into n_arms." pkienzle Milestone SasView 4.3.0 901 "numpy should be imported as ""import numpy as np""" SasView defect mathieu new 2017-03-26T16:55:12-04:00 2017-10-27T11:04:31-04:00 "The standard way (used by many packages) of importing numpy is: import numpy as np There are several locations in the sasview codebase that use: import numpy These should all be changed to the former." andyfaff Milestone SasView 4.3.0 973 sticky hard sphere fails for q 0 Here is the calculation: {{{ S(q) = 1 / (A^2 + B^2) => A^-2 }}} for {{{ A = 1 + 12 eta [A1 + A2 - A3] => 1 + 12 eta [alpha/3 + beta/2 - lambda/12] B = 12 eta [B1 + B2 - B3] => 0 A1 = alpha [(sin(qr) - qr*cos)/(qr)^3] = alpha/3 3j1(qr)/qr => alpha/3 A2 = beta [(1 - cos(qr))/(qr)^2] => beta/2 A3 = lambda/12 [sin(qr)/qr] => lambda/12 B1 = alpha [ 1/(2qr) - sin(qr)/(qr)^2 + (1-cos(qr))/(qr)^3] => 0 B2 = beta [ 1 / qr - sin(qr)/(qr)^2 ] => 0 B3 = lambda/12 [ (1 - cos(qr))/qr ] => 0 }}} where {{{ alpha = (1 + 2 eta - mu)/(1 - eta)^2 beta = (mu - 3 eta)/(2 (1-eta)) mu = lambda eta (1-eta) lambda = (-b - sqrt(b^2 - 4 a c))/2a a = eta/6 b = tau + eta/(1-eta) c = (1 + eta/2)/(1 - eta)^2 eta = Vf/(1-epsilon)^3 }}} and {{{ r = 2 Re / (1 - epsilon) }}} using the input parameters: {{{ Re is radius_effective, Vf is volume fraction, epsilon is perturbation and tau is stickiness. }}} We already have an accurate calculator for 3 j1(x)/x and sin(x)/x Need to check accuracy of the following for low q, possibly replacing them with the Taylor expansion {{{ [1-cos(x)]/x^2 = 1/2 - x^2/24 + x^4/720 - x^6/40320 + ... 1/(2x) - sin(x)/x^2 + (1 - cos(x))/x^3 = x/8 - x^3/144 + x^5/5760 - x^7/403200 + ... 1/x - sin(x)/x^2 = x/6 - x^3/120 + x^5/5040 - x^7/362880 + ... }}} " pkienzle Milestone SasView 4.3.0 975 bcc_paracrystal and fcc_paracrystal scaling, docs for all paracrystal sasmodels defect richardh new 2017-06-07T10:17:20-04:00 2017-10-27T11:08:17-04:00 "Following some discussions with Prof. Gustavo González Gaitano, University of Navarra, Spain and some test calculations. Given that the docs are already modified for the new ""jitter"" integrals (in progress??) which branch(es) should I use to fix the below please? It now seems clear that: 1) The docs for all three paracrystal models talk about ""nearest neighbour distances"", but these should be lattice spacings, as previously noted in #805 2) the Vlattice corrections mentioned in the docs seem wrong for BCC and FCC, and need to be changed there and in the code in order for fits to have the correct scale parameters. I think that latticescale should be as for SC, but with the multiplicities in for FCC and BCC thus - Instead of: FCC const double s1 = dnn*sqrt(2.0); const double latticescale = 4.0*sphere_volume(radius/s1); BCC const double s1 = dnn/sqrt(0.75); const double latticescale = 2.0*sphere_volume(radius/s1); SC // NB: 4/3 pi r^3 / dnn^3 = 4/3 pi(r/dnn)^3 const double latticeScale = sphere_volume(radius/dnn); answer *= sphere_form(q, radius, sphere_sld, solvent_sld)*latticeScale; we need for FCC and BCC: FCC const double latticescale = 4.0*sphere_volume(radius/dnn); BCC const double latticescale = 2.0*sphere_volume(radius/dnn); and in some other places for IQxy " richardh Milestone SasView 4.3.0 977 Don't use \text in equations SasView defect new 2017-06-16T07:54:06-04:00 2017-10-27T11:09:41-04:00 "The \text environment renders with a different font in mathjax and in latex, and should be avoided. Furthermore, latex fails if the text contains an underscore and mathjax fails if the the text contains \_. Use \mathrm instead. Mathjax treats this as expected behaviour and will not fix: https://github.com/mathjax/MathJax/issues/1770. See also #510: build PDF documentation along with HTML." pkienzle Milestone SasView 4.3.0 981 binary_hard_sphere fails for small qr SasView defect new 2017-08-01T21:56:59-04:00 2018-02-12T19:28:55-05:00 "The binary hard sphere fails for small values of qr, even in double precision: {{{ sascomp -double binary_hard_sphere 1 0 radius_sm=10 }}} The code uses expressions such as {{{(sin(yy) - x cos(x))/x^3}}} and {{{2(cos(ay) - 1)/ay}}}, though not directly. Rearranging the code so that these expressions are replaced by their stable equivalents may be enough." pkienzle Milestone SasView 4.3.0 1036 update tests for bcc/fcc paracrystal and core shell parallelepiped SasView defect new 2017-11-22T10:50:31-05:00 2018-02-12T19:25:56-05:00 "bcc and fcc paracrystal 2D were modified during the orientation rewrite but the tests were not updated. core shell parallelepiped calculation was corrected but the test target values were not. " pkienzle Milestone SasView 4.3.0 1056 Check max_pd maximum number polydisperse parameters sasmodels defect pkienzle new 2018-01-04T09:38:06-05:00 2018-02-12T19:19:08-05:00 "Whilst trying to break 2d fitting with oriented elliptical cylinder, which has 6 possible levels of polydispersity integration, three in geometry and three orientation angles, I noted that: Asking for all 6 gives a ""too many polydisperse parameters"" message from details.py line 202, (which is fair enough, though perhaps we could increase the allowance). This uses MAX_PD=5 from modelinfo.py However, asking for 5 levels of integration does not give an error message, but alas plainly does not work, seems to return zero or close to zero from the integrations. Is there a bug somewhere in details.py regarding the buffer spaces or similar. 4 levels of integration seems to work fine. I have set Paul K as owner as he will likely spot an issue quickly. Richard" richardh Milestone SasView 4.3.0 1059 Remove camel case from unified_power_Rg SasView defect butler reopened 2018-01-09T07:33:29-05:00 2019-03-29T08:02:58-04:00 "@llimeht points out in !SasView PR 137 that unified_power_Rg contains capitalisation (in contravention of the agreed coding rules) meaning links to the corresponding help documentation are not working. Though the PR removes case dependency, the expedient approach is also to enforce the coding standard. Thus the model should be renamed and links to the doc pages checked." smk78 Milestone SasView 4.3.0 1061 minor isue with simultaneous / constrained fits SasView defect krzywon new 2018-01-15T06:10:24-05:00 2018-02-12T19:15:37-05:00 "Trying to break constrained simultaneous fit between 3 data sets (see attached project) with different models in current master for 4.2 Save project and load project worked fine, twice around, though each time the fit pages appeared in a different order the data and models still matched (hooray). However, having hit ""fit"" from the constraints page, if I then hit ""fit"" on an individual fit page gets error message: 2018-01-15 13:04:33 : Traceback (most recent call last):   File ""C:\sasview42\sasview\src\sas\sasgui\perspectives\fitting\fit_thread.py"", line 78, in compute     result = map(map_apply, inputs)   File ""C:\sasview42\sasview\src\sas\sasgui\perspectives\fitting\fit_thread.py"", line 14, in map_apply     return apply(arguments![0], arguments[1:])   File ""C:\sasview42\sasview\src\sas\sasgui\perspectives\fitting\fit_thread.py"", line 11, in map_getattr     return  getattr(classInstance, classFunc)(*args)   File ""C:\sasview42\sasview\src\sas\sascalc\fit\!BumpsFitting.py"", line 279, in fit     result = run_bumps(problem, handler, curr_thread)   File ""C:\sasview42\sasview\src\sas\sascalc\fit\!BumpsFitting.py"", line 379, in run_bumps     'uncertainty': getattr(fitdriver.fitter, 'state', None), !AttributeError: '!FitDriver' object has no attribute 'fitter'    None Turning off and back on any parameters with red NaN in their error bar fields (ie the parameters that were constrained), then hit ""stop"", gets the ""fit"" button back to normal and you can then do a fit on a single data set." richardh Milestone SasView 4.3.0 1088 duplicate parameters in save project files when toggling fit SasView defect new 2018-04-11T07:59:30-04:00 2018-04-11T07:59:30-04:00 "Here is a portion of the saved project file (with polydispersity enabled) showing that the parameter list is duplicated in each section that it appears. Notice that radius.width is tagged as both fitted and not fitted, though the file was saved with fitted checked. An arbitrary number of these can be generated by toggling the ""fit"" button before saving. {{{ }}}" pkienzle Milestone SasView 4.3.0 1089 2D resolution accuracy setting not preserved on save/load project SasView defect new 2018-04-11T16:01:46-04:00 2018-06-15T07:45:52-04:00 pkienzle Milestone SasView 4.3.0 1090 fit page is missing from SASentry for simultaneous fits to the same file SasView defect new 2018-04-12T13:35:27-04:00 2018-06-15T07:44:55-04:00 The current .svs file format does not have enough information to determine which model (M1, M2, etc) is associated with which SASentry when interpreting constraints in a simultaneous fit. Currently the filename is used, but that fails when using different models on different parts of the same file. Saving the fit page id with the SASentry will be enough to resolve the ambiguity. pkienzle Milestone SasView 4.3.0 1098 rename tinycc repo to pytcc SasView defect new 2018-04-19T08:16:04-04:00 2018-04-19T08:16:04-04:00 "The tinycc repo should be renamed (e.g., pytcc) so that it doesn't conflict with the source repo name for the tinycc project. The sasview build system and run.py both reference the repo name. The base tinycc repo at http://repo.or.cz/tinycc.git can then be forked into sasview so we can add OS X support." pkienzle Milestone SasView 4.3.0 1104 Documentation page anchors stripped from URLs SasView defect new 2018-05-29T08:52:42-04:00 2018-05-29T12:27:08-04:00 "When opening documentation links in a browser, page anchors are being removed. This is happening somewhere after the link is sent to webbrowser.open_new_tab() in documentation_window.py. My system in case this is platform dependent: Win7 SP1, Chrome v66" krzywon Milestone SasView 4.3.0 1106 Sesans cannot handle large numbers of data points SasView defect awashington new 2018-06-06T07:22:43-04:00 2018-09-17T21:17:05-04:00 A user has complained that SasView cannot handle Sesans fitting on a large number of data points. In their particular instance, much more than forty points would fail. awashington Milestone SasView 4.3.0 1107 Doubts about Onion Doc sasmodels defect new 2018-06-07T03:07:58-04:00 2019-03-28T17:55:42-04:00 "quite generally: to facilitate citation and discussion, I'd suggest to number equations in doc pages that contain lots of them. concerning http://marketplace.sasview.org/models/73: The introduction announces that the SLD of each shell may be »described by an exponential, linear, or constant function«. In the following, however, only only the exponential and the constant case are explicitly covered. For a linear SLD, the reader is left with the hint that the exponential function with small A is a good approximation. rho_shell(r) is defined in terms of six parameters. One of them is redundant since rho_in=B+C. The parameters B and C have no obvious physical meaning, and they do not appear in the parameter list of Iq. Two equation blocks later, the paremeter B is defined a second time, now in terms of rho_in, rho_out, and A. This makes the logic very obscure. I would suggest that rho_shell(r) be defined in terms of the parameters A, rho_in, rho_out, r_in, r_out. Then one would introduce Delta t_shell, B, and C as abbreviations, which makes them categorically distinct from the API parameters. - Joachim" Joachim Wuttke Milestone SasView 4.3.0 1159 C compiler ignores environment variables set in python SasView defect new 2018-08-21T10:53:54-04:00 2018-08-21T10:53:54-04:00 "The choice of C compiler and DLL path in `sasmodels/kerneldll.py` is set when the module is loaded, not when the compiler is first used. This means that setting the SAS_COMPILER environment variable with `os.environ[""SAS_COMPILER""]` will have no effect if `sasmodels.kerneldll` has already been imported. The upshot is that you can't use `-DSAS_COMPILER=msvc` on the sascomp command line to force the use of the MSVC compiler in windows. Could delay the selection of compiler until it is first needed or check the environment variables each time. " pkienzle Milestone SasView 4.3.0 1207 don't create .pyc files in ~/.sasview SasView defect new 2018-11-02T10:21:23-04:00 2018-11-02T10:21:23-04:00 "All versions. Need to load custom config file without create a corresponding pyc file. The pyc files are dependent on python version, and so may cause problems that custom config is forgotten between releases. Also, the __pycache__ directories in the ~/.sasview are messy. Same applies to plugin_models directory, and the weights directory if user defined distributions PR is ever merged." pkienzle Milestone SasView 4.3.0 1217 simplify models produced by Sum/Multiply SasView defect new 2018-11-15T20:52:51-05:00 2018-11-15T20:52:51-05:00 "The models produced by !Sum/Multiply are a little more complicated than necessary. Only need to define: {{{ from sasmodels.core import load_model_info model_info = load_model_info('sphere+cylinder') model_info.name = ""MySumFunction"" }}} instead of {{{ from sasmodels.core import load_model_info from sasmodels.sasview_model import make_model_from_info model_info = load_model_info('sphere+cylinder') model_info.name = 'MySumFunction' Model = make_model_from_info(model_info) }}}" pkienzle Milestone SasView 4.3.0 1249 use backslash correctly in strings SasView defect new 2019-03-19T10:41:53-04:00 2019-03-20T08:06:31-04:00 "Python 3 warning from sasview: {{{ src/sas/sasgui/plottools/PlotPanel.py:1158 .../src/sas/sasgui/plottools/PlotPanel.py:1158: DeprecationWarning: invalid escape sequence \% if label_temp.count(""\%s"" % ""\\"") > 0: src/sas/sasgui/plottools/PlotPanel.py:1793 .../src/sas/sasgui/plottools/PlotPanel.py:1793: DeprecationWarning: invalid escape sequence \l self.graph._xaxis_transformed(""\ln{(%s)}"" % xname, ""%s"" % xunits) src/sas/sasgui/plottools/PlotPanel.py:1805 .../src/sas/sasgui/plottools/PlotPanel.py:1805: DeprecationWarning: invalid escape sequence \l self.graph._yaxis_transformed(""\ln{(%s)}"" % yname, ""%s"" % yunits) src/sas/sasgui/plottools/PlotPanel.py:1824 .../src/sas/sasgui/plottools/PlotPanel.py:1824: DeprecationWarning: invalid escape sequence \ self.graph._yaxis_transformed(""%s \ \ %s^{2}"" % (yname, xname), src/sas/sasgui/plottools/PlotPanel.py:1829 .../src/sas/sasgui/plottools/PlotPanel.py:1829: DeprecationWarning: invalid escape sequence \ self.graph._yaxis_transformed(""%s \ \ %s^{4}"" % (yname, xname), src/sas/sasgui/plottools/PlotPanel.py:1835 .../src/sas/sasgui/plottools/PlotPanel.py:1835: DeprecationWarning: invalid escape sequence \s self.graph._yaxis_transformed(""1/\sqrt{%s}"" % yname, src/sas/sasgui/plottools/PlotPanel.py:1839 .../src/sas/sasgui/plottools/PlotPanel.py:1839: DeprecationWarning: invalid escape sequence \l self.graph._yaxis_transformed(""\ln{(%s \ \ %s)}"" % (yname, xname), src/sas/sasgui/plottools/PlotPanel.py:1844 .../src/sas/sasgui/plottools/PlotPanel.py:1844: DeprecationWarning: invalid escape sequence \l self.graph._yaxis_transformed(""\ln (%s \ \ %s^{2})"" % (yname, xname), src/sas/sasgui/plottools/PlotPanel.py:1849 .../src/sas/sasgui/plottools/PlotPanel.py:1849: DeprecationWarning: invalid escape sequence \l self.graph._yaxis_transformed(""\ln (%s \ \ %s^{4})"" % (yname, xname), src/sas/sasgui/plottools/PlotPanel.py:1855 .../sas/sasgui/plottools/PlotPanel.py:1855: DeprecationWarning: invalid escape sequence \ self.graph._yaxis_transformed(""%s \ \ %s^{4}"" % (yname, xname), }}}" pkienzle Milestone SasView 4.3.0 1258 In 4.2 polydisperse hollow_cylinder @S(Q) fails SasView defect pkienzle new 2019-03-26T04:01:47-04:00 2019-03-27T02:50:43-04:00 " In 4.2 hollow_cylinder fails if have both an S(Q) and polydispersity. ''File ""sas\sascalc\data_util\calcthread.pyc"", line 274, in _run ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()'' This is one of the two special models, along with vesicle - see also #1257 - where shell not total volume provides the scaling. In 5.0 there is NOT an extra volume parameter, so this fail does not occur, but we still need to look at the scaling of the model." richardh Milestone SasView 4.3.0 490 smearer does not handle negative q values SasView enhancement new 2015-12-03T21:38:00-05:00 2017-10-27T04:34:27-04:00 the new module resolution.py assumes all q will be positive. This may not always be true (cuts of a 2D set for example or USANS rocking cure. Question is how to properly handle. Readers could be required to absolute the q values or discard them (what will a model do with negative q?) otherwise need to verify that all models are robust to fitting negative q. butler Milestone SasView 4.3.0 542 capped_cylinder & barbell docs and/or computations could be improved sasmodels enhancement pkienzle new 2016-03-19T16:14:15-04:00 2018-10-06T10:28:31-04:00 "capped_cylinder computations could be improved - see notes included in the .py file, current model requires user to keep cap radius > cylinder radius ticket submitted by Richard, but assigned to PAK, who may know what to do." richardh Milestone SasView 4.3.0 812 Provide model for the Pringle-Schmidt helical form factor sasmodels enhancement tim accepted 2016-11-24T11:49:58-05:00 2017-10-26T06:38:48-04:00 "Request from Ian Hamley (i.w.hamley@reading.ac.uk): Would be possible to incorporate the Pringle-Schmidt helical form factor into !SasView? It is used in quite a few studies now. There are other helical form factors (see attached) but the Pringle-Schmidt form factor is more generally and more widely used. I don’t have code although I know some people who might – Heinz Amenitsch or Pierre Terech. These two groups also have data and fits in their papers. I have datasets waiting to be fitted, as does Daniel Hermida-Merino at the ESRF. " smk78 Milestone SasView 4.3.0 868 validate the polymer_micelle model sasmodels enhancement richardh new 2017-02-28T08:19:16-05:00 2018-02-12T19:13:04-05:00 This model needs validating, the meanings of some parameters are vague and the model can perhaps be improved. See comments in the .py file and the help. richardh Milestone SasView 4.3.0 987 elliptical cylinder for axis ratio < 1 SasView enhancement new 2017-08-07T15:02:08-04:00 2017-10-27T11:16:20-04:00 "Elliptical cylinder has axis ratio in [1, inf] but the computation would support [0, inf], with radius minor not necessarily being the smaller radius. This would allow fits where one radius is fixed but the other could be larger or smaller than the first, but it also allows two solutions in the case where both radius_minor and axis_ratio are fit. If this is done, also change the random model generation to allow ratios from 1/max ratio to max ratio instead of 1 to max ratio. Cylinder length is limited to 1 or greater. Look for equations that allow length to go to zero. " pkienzle Milestone SasView 4.3.0 1005 move model-specific conversion code into the model files SasView enhancement new 2017-10-03T09:33:08-04:00 2019-03-01T18:12:04-05:00 "The current scheme for updating models between releases relies on central conversion table in sasmodels/conversion_table.py as well as model specific code in sasmodels/convert.py. Going forward, it would be better to encode the conversion in the model file, which would allow models shared on the marketplace to be updated while preserving backward compatibility with previously saved fits. Changing the model name will require a different mechanism. When loading the saved project, need a way to identify the new model name given the model name in the file. It is even more complicated if models are combined such as rectangular prism and parallelepiped which are the same model just with different parameterization. " pkienzle Milestone SasView 4.3.0 1009 Add information in fit report about the polydispersity distribution used SasView enhancement gonzalezm new 2017-10-10T02:15:50-04:00 2018-10-02T17:40:38-04:00 When using polydispersity in the fit, the information about the type of distribution selected, and the number of points and sigmas should be given in the fit report. gonzalezm Milestone SasView 4.3.0 1020 orientation - write a chapter for the general users docs sasmodels enhancement richardh accepted 2017-10-27T02:52:47-04:00 2019-03-01T18:16:13-05:00 "orientation - write a chapter for the general users docs, that can be referenced from individual models. See also ticket #776 " richardh Milestone SasView 4.3.0 1051 use same markup language for trac and github SasView enhancement new 2017-12-15T13:59:48-05:00 2018-02-12T19:06:08-05:00 "Switching conventions between braces and back ticks for code in trac vs. github is tedious. Similarly for external links, super/subscripts, etc. Can we use the same markup language for tickets in Trac and PRs in github? Maybe this: https://trac-hacks.org/wiki/MarkdownMacro Latex or asciimath would be nice as well, but it doesn't seem to be supported." pkienzle Milestone SasView 4.3.0 1075 speed improvement for 2d fits SasView enhancement new 2018-02-16T16:12:09-05:00 2018-02-16T16:12:09-05:00 "The code for evaluating functions with dispersity on the parameter values has been set up so that it only schedules a portion of the iterations on each call, accumulating the result until all points in all dispersity distributions have been evaluated. This is required when using sasview on a desktop machine, which can crash if an application holds onto the GPU device too long. When you have a fast graphics card not attached to a display device (e.g., a server dedicated to GPGPU computations) you do not need to do this, and it can be significantly faster to compute the entire distribution in one go. For example, a 2d cylinder with dispersity in length, radius, theta and phi takes 3.6 s per point when breaking the loop vs 2.5 s per point when computing in one set, or a 30% improvement. The simple solution is to use an environment variable on those dedicated machines which tells the engine to skip the chunking. Alternatively, dynamic chunking could be introduced, adjusting the chunk size based on how long each chunk is taking. Be warned, that when a probability cutoff is used, the first set of points within the distribution are going to have the lowest probability and are most likely to be cut, giving an extremely optimistic estimate of the kernel running time. Since the consequences of choosing too large a chunk size can be catastrophic on some machines, the simple solution is preferred. " pkienzle Milestone SasView 4.3.0 1124 Add confirmation for closing fit pages SasView enhancement new 2018-07-02T09:50:24-04:00 2018-08-07T08:23:31-04:00 "If you accidentally close a fit page, there seems to be no way of getting it back. There should be a confirmation dialog shown to prevent users from losing work, e.g. ""Are you sure you want to close this Fit Page? Unsaved work will be lost."" (with Yes and No buttons) Either that or Undo could bring the fit page back, but that seems like a lot of work..." tcbennun Milestone SasView 4.3.0 1138 refactor environment variables SasView enhancement new 2018-07-19T11:46:35-04:00 2018-09-17T20:29:59-04:00 "The environment variables are now displayed by the sascomp command (ticket 608 branch) as: {{{ -DSAS_MODELPATH=~/.sasmodels/custom_models sets path to custom models -DSAS_WEIGHTS_PATH=~/.sasview/weights sets path to custom distributions -DSAS_OPENCL=vendor:device|none sets the target OpenCL device -DXDG_CACHE_HOME=~/.cache sets the pyopencl cache root (linux only) -DSAS_COMPILER=tinycc|msvc|mingw|unix sets the DLL compiler -DSAS_OPENMP=0 set to 1 to turn on OpenMP for the DLLs -DSAS_DLL_PATH=~/.sasmodels/compiled_models sets the DLL cache }}} These should appear somewehere in the sasview manual. Perhaps we should make SAS_WEIGHTS_PATH default to ~/.sasmodels/weights to be consistent with SAS_MODELPATH and SAS_DLL_PATH, and redirect it in sasview like we do for SAS_MODELPATH. We should redirect SAS_DLL_PATH to the ~/.sasview directory as well, otherwise we end up with .sasview and .sasmodels in our home directory. Renaming SAS_MODELPATH to SAS_MODEL_PATH would add further consistency. Document any other environment variables used in sasview or sasmodels. The XDG_CACHE_HOME variable is used by pyopencl, and is defined in the appdirs package. Consider using this package for sasview/sasmodels as well since we already depend on it through pyopencl." pkienzle Milestone SasView 4.3.0 1216 attribute checking in model definition file sasmodels enhancement new 2018-11-15T08:32:50-05:00 2019-03-01T17:28:09-05:00 "sasmodels enhancement. Don't allow attributes to be added to the !ModelInfo class. In the model definition file, don't allow attributes that are not in !ModelInfo. The first part can be done with the following method in the !ModelInfo class: {{{ def __setattr__(self, key, value): # Check for class attr when setting; this is because hasattr on # a property will return False if getattr on that property raises # an exception. This means if you really want to sneak an # attribute into the group from your data loader, you will have # to populate it from the if not key.startswith('_') and not hasattr(self.__class__, key): raise AttributeError(""Cannot add attribute %s to class %s"" % (key, self.__class__.__name__)) object.__setattr__(self, key, value) }}} The second part will require an additional step at the bottom of `modelinfo.make_model_info` which scans the attributes of the definition module and makes sure they are in the !ModelInfo class. Ignore names with leading underscore so that helper functions and variables can be defined. By doing this, users will not be able to introduce typos into the model attribute definitions, or otherwise wish for capabilities that are not already there. For example, the model *multilayer_vescicle* defines the following, which looks like it should make *radius* and *n_pairs* polydisperse, but which in fact is completely ignored by sasmodels: {{{ polydispersity = [""radius"", ""n_pairs""] }}} Split from ticket #829." pkienzle Milestone SasView 4.3.0 859 hayter_msa S(Q) - possible limitations or numerical instabilities sasmodels task new 2017-02-22T03:56:00-05:00 2019-03-28T03:21:09-04:00 "This requires investigation. User Paul Fitzgerald (Univ Sydney) has supplied comprehensive examples, see below, and .xls on original email, attached here. NOTE that Steve Kline in March 2015 reported to Paul Butler, that sasview does have the rescaled MSA from Hayter. Hello SASView help, I've occasionally run into an instability in the Hayter_MSA routine (both in SASView and the original Igor routine), which I usually get around by fudging the ionic strength and charge. However, this is not possible with my current set of data where we intentionally and precisely controlled the ionic strength while looking at the particle charge. Here is an example of the problem (more examples in the attached spreadsheet): In hayter_msa if I set: radius = 20Å Temp = 298K diel = 78 volfrac = 0.001 [salt] = 0.001 M then vary the charge from 0 to infinity I get: 0-2 => all OK 3-32 => returns -1 for all values (error code -3) 33-115 => all OK 116-195 => returns -1 for all values (error code -3) 196-inf => all OK The error comes from the sqcoeff(ir) function that handles rescaling. Note that this is for the Igor code - but not the compiled C version! I haven't been unable to find the HayterMSA code in the most recent version of the SASview source code so I don't know if it is the same function. Can you tell me if (a) the theory is just not applicable to my systems and I need to try something else, or (b) if there is an implementation problem? I did find the following in Hayter & Hensen's 1982 paper for rescaling (which I'm still trying to work through) but didn't know if it was applying to me or not: In the weak screening limit, the MSA solution of Hayter & Penfold [3] requires increasing computational precision because of the wide dynamic range of the coefficients. Under these conditions it is more efficient to use the simpler MSA solution for unscreened charged hard spheres [10] as a reference system, and to treat the weak screening as a perturbation [16]. The presence of the effective hard core allows an application of the 'optimized random phase approximation' (ORPA) [17] to express the structure factor S(K) of the screened system in terms of the structure factor So(K) of the unscreened reference system. In practice, S(K) and So(K) turn out to be almost indistinguishable for Ka < 0.5. That being said, even if it turns out that the theory is not applicable, I think that there is a problem in the way that SASview deals with this problem. When the hayter_msa returns values of -1 this is an error, but SASView returns (down in the bottom left corner) ""Computation completed!"" instead of ""error"". From a fitting point of view, SASView just sees a massive increase in chi square and moves in the opposite direction. This can be a problem especially when the solution is on the other side of the instability, which can be narrow. For example, if you try the above settings with vol frac = 0.01 then the instability is only from 4 to 6. I also think that once the underlying problem should be documented in the SASView help file. We've had students run into this problem and being completely lost as to what to do. Sorry if this creates problems. Regards, Paul " richardh Milestone SasView 4.3.0 936 Build new tutorials as HTML SasView task new 2017-04-08T09:13:22-04:00 2018-02-12T19:04:32-05:00 "The new tutorials need to be converted from .fodt to HTML with !LibreOffice. !LibreOffice can be run from the command line. Invoke as {pathto}soffice. See also: https://help.libreoffice.org/Common/Starting_the_Software_With_Parameters soffice --convert-to html tutorial-file.fodt NB: The text-graphics formatting/juxtaposition is not great. NB: There do appear to be ''browser-specific'' output filter switches. Also see #510, #927, and #934" smk78 Milestone SasView 4.3.0 757 improve multilayer_vesicle model and vesicle SasView enhancement new 2016-10-10T11:23:04-04:00 2019-03-02T17:50:55-05:00 "multilayer_vesicle model would benefit from having polydispersity on the core radius, as this is likely to be significant in any real world situation, and also perhaps by having a separate sld for the gaps between the layers. Compare vesicle.py and vesicle.c to see the new routines that will be required in order to sort the volume normalization." richardh Milestone SasView 5.0.0 1135 QT GUI - complex constraints (master ticket) SasView defect tcbennun new 2018-07-18T10:14:13-04:00 2018-07-23T03:42:05-04:00 "In the QT GUI, there are some issues with the complex constraints functionality. 1. Activating the complex constraints dialog is only possible by selecting multiple fit pages in a special table before right-clicking to bring up a context menu. 1. The dialog has a text box for editing constraints, but it breaks when using multiple parameters on the right-hand side. 1. The dialog does not allow you to select which models to take fitting parameters from; it is fixed to whichever two fit pages were selected prior to activating the dialog. Possible solutions to the above problems are, respectively: 1. Add a simple button labelled ""Add Constraint"" or similar. 1. Fix the text box! 1. Add combo boxes (drop-downs) for the left- and right-hand sides of the constraint, to allow a model to be chosen before choosing a parameter from that model. I have some agreement with Richard and Piotr on this, so far, and will add updates to this ticket in the next few days. (I'm putting this in the beta approx. work package but feel free to move it, I'm not sure where it should go...!)" tcbennun Milestone SasView 5.0.0 1196 5.0 issue - Allow changing parameter values on theory FitPages after first compute SasView defect new 2018-10-14T20:07:44-04:00 2018-11-21T06:32:51-05:00 "While testing 5.0-beta.1 for a user question I found that I can create a new !FitPage without data, choose a model and change the parameters then hit ""calculate."" This does not generate a plot but instead changes the compute button to a ""show plot"" button. My problem is that if I know want to change the value of a parameter and see how that changes things, the line goes dark blue with the new value being added but no compute button comes back and clicking on ""show plot"" does absolutely nothing. This actually brings up another point. While I like the idea of having the option sometimes of not seeing the plot, I think the default in most cases is to see it. Certainly in the theory case, the very point of playing with parameters is to see what they do to the plot -- having to hit two buttons to get that is painful. We may want to discuss when to hold back on the auto plotting and when not to. However at the least one must be able to alter theory parameters and see an updated plot" butler Milestone SasView 5.0.0 1204 5.0 not giving same fit results as 4.2 SasView defect piotr assigned 2018-10-29T06:11:01-04:00 2019-03-20T08:43:08-04:00 "Load e.g. AOT_microemulsion-shell_contrast.xml Fit e.g. just scale & length with cylinder model, taking care that all params are at their default values (this may involve switching model category and re-selecting cylinder to get them back if you have done other things first). 4.2 and 5.0 do not give the same fit results for a ""poor fit"" such as this. They should do if using the same fit engine, and same fit options. I suspect an initialisation or default for weighting, resolution, fit engine or something else is not working properly but I have not yet managed to find the culprit. For ""good"" fits the parameter values and their errors are very close but still not identical as they perhaps ought to be." richardh Milestone SasView 5.0.0 1248 Problem with non latin characters in username SasView defect piotr assigned 2019-03-19T06:41:27-04:00 2019-03-27T02:32:32-04:00 "This problem was first reported in ticket #641 in August 2016 and closed as fixed in 5.0. However very recently a new report came from a student at the Moscow State University that she had purchased a new computer and while !SasView seemed to install with no problem it would not start. A look at the logfile showed exactly the same 3 line output described in the #641 ticket before ending without the stopping message. I asked her to try 5.0beta2 which still would not start after installation. Changing her username to an ""English name"" fixed the problem. Clearly this is not fixed and will be very annoying to anybody using !SasView on computers with non latin characters. Piotr believes this may be a build system problem so tagging as support infrastructure workpackage for now." butler Milestone SasView 5.0.0 13 Plots should be linked to fits. SasView enhancement new 2012-03-29T04:33:08-04:00 2019-03-28T12:04:50-04:00 There should be a link between the fit panel and the related plots so that it is easy to locate which plots belong to the fit you are looking at. ajjackson Milestone SasView 5.0.0 1149 qt5 - Separate composition of mixture models in GUI SasView enhancement tcbennun new 2018-07-26T04:41:55-04:00 2018-09-09T02:02:13-04:00 "''ported from JIRA, '''SASVIEW-973''':'' ---- '''Torin Cooper-Bennun, 26 July 2018 11:10''' Mixture models (a.k.a. sum/multiply models, for current intents and purposes) separate parameters of their component models using prefixes (A_sld, B_sld, and so on). We are on the way to using sub-headings in the parameters table instead (see [https://jira.esss.lu.se/browse/SASVIEW-966 SASVIEW-966] [and comments in trac, #475]). To implement this for mixture models, an intermediate layer (upon model loading) is needed to extract the parameters by component and display them without prefixes; then, when they are manipulated, translate from the non-prefixed version to the prefixed version, in order to interact with the model itself correctly. The first step seems okay, since modelinfo, I think, contains the necessary information to get the name of the model component from the parameter's prefix. The second step is a bit more involved. One possibility is to have each non-prefixed parameter in the Qt model be associated with a data item which contains the real parameter name. Whatever happens, various routines will need updating to deal with this case, because currently only the item's text is used to identify the parameter." tcbennun Milestone SasView 5.0.0 238 Data objects should be independent of gui SasView defect new 2014-04-04T11:08:33-04:00 2017-10-26T05:06:06-04:00 "Data objects (Data1D and Data2D) currently have some parameters that are only set when the data is loaded via the gui. This makes using the data loader from scripts (and anything that relies on those parameters) break in various ways. Notably: park requires data.name to be set. This is only set when data is loaded in the gui and thus unit tests of park fail. " pkienzle Milestone SasView 5.0.0 407 constrained/simultaneous fit menu option GUI problem (both on Mac and PC) SasView defect new 2015-04-07T10:36:59-04:00 2017-10-26T05:33:15-04:00 "Loading a fit into !SasView should activate the constrained fit menu item (which is greyed out when no fit is available). It does in 3.1 alpha (prior to code camp). in current trunk, it stays greyed out and inaccessible. It however can be activated by switching to another perspective (Pr or invariant) and back. Also it will activate after loading another fit panel and then pressing fit. Also, sending two data sets to fitting simultaneously seems to activate the menu item. Once activated it will stay active and work as expected even if all other fit panels are killed. There is a bigger question about whether constrained fit should be allowed currently as polydispersity does not work in that instance but the GUI problem needs fixing either to forbid a constrained fit (though that should be easily changed once we fix the polydispersity issue) or always active when only one fit panel is up (not randomly active as it is now)" butler Milestone SasView 5.0.0 461 "Visual fit range indicators are not aware of axis ""scale""" SasView defect new 2015-10-10T11:27:00-04:00 2017-10-26T05:35:29-04:00 "if the user changes the ""scale"" (using Change Scale) the vertical lines that visually show/set the x range being fit seem to be unaware of the x axis sclaing and locate at the x value = to qmin and qmax. Aside from being confusing it means the user cannot set the limits from the graph in this mode. This is not usually an issue but could be in some cases (e.g. for the Guinier model (Guinier plot) or for a flexible cylinder (Holtzer plot))." butler Milestone SasView 5.0.0 558 set reasonable min/max on polydispersity values for fit SasView defect new 2016-04-12T09:20:28-04:00 2017-10-27T04:49:46-04:00 "polydispersity cannot be negative, so set the min to 0. relative polydispersity doesn't make a lot of sense above 1 (thickness of 30 +/- 200%?) " pkienzle Milestone SasView 5.0.0 846 set theory and data to same vmin/vmax when plotting 2D data SasView defect new 2017-02-07T10:06:56-05:00 2017-10-23T09:29:50-04:00 It will be much easier to see the difference between 2D data to 2D theory if they use the same range for the colour bar. pkienzle Milestone SasView 5.0.0 880 show progress during opencl test SasView defect wojciech assigned 2017-03-09T14:37:06-05:00 2017-10-27T09:36:45-04:00 "The tests run by the OpenCL config dialog can take a long time to run the first time, before any of the DLLs are compiled. The user needs to see that the tests are in progress, and ideally know how much longer the tests will take. When running unit tests in verbose mode from the command line, each test is displayed as it is completed. The result is: {{{ $ python -m sasmodels.model_test -v all test_adsorbed_layer_python (__main__.ModelTestCase) ... ok test_barbell_dll (__main__.ModelTestCase) ... ok test_barbell_opencl (__main__.ModelTestCase) ... /usr/lib/python2.7/dist-packages/pyopencl/__init__.py:61: CompilerWarning: Non-empty compiler output encountered. Set the environment variable PYOPENCL_COMPILER_OUTPUT=1 to see more. ""to see more."", CompilerWarning) ok test_bcc_paracrystal_dll (__main__.ModelTestCase) ... ok test_bcc_paracrystal_opencl (__main__.ModelTestCase) ... ok test_be_polyelectrolyte_python (__main__.ModelTestCase) ... ok ... }}} A dialog showing the test currently running and a progress bar showing k tests out of a total of n would give the user the feedback that they need. A cancel button would also be nice." pkienzle Milestone SasView 5.0.0 900 Frozen theories sent to perspectives not saved in projects SasView defect new 2017-03-26T11:48:58-04:00 2018-11-29T07:23:37-05:00 "Frozen theories are treated similarly to data in regards to how they are displayed in the GUI, but cannot be saved in projects and analysis files like other data. This causes issues when loading a simultaneous fit with a constrained frozen theory. Errors are thrown and the save state is unusable." krzywon Milestone SasView 5.0.0 924 Need better feedback to user when fitting fails to converge SasView defect new 2017-04-05T10:30:00-04:00 2017-10-26T07:29:58-04:00 "As of version 4.1, when the fitting fails to converge or hits a singularity etc, there are two responses. For sum/multiply (including P*S) models which are still in the old !SasView infrastructure a pop up with the traceback ... which is extremely confusing to the user and not helpful. For regular models that use the sasmodels infrastructure, a message is sent to the console stating that no values were returned from the fitter and a warning that fitting did not converge. Also the corner of the console line goes red. However the console line stays blank. The first issue will get resolved when the sum/multiply get moved to the product model in the sasmodels infrastructure. Two other things are being requested in order to make this useful: * Send the message also to a popup * To the ""fitting did not converge"" add some suggestions for what might help such as ""you might want to check your starting parameters""" butler Milestone SasView 5.0.0 933 Allow user to define order of models/fit pages for batch fitting SasView defect wojciech assigned 2017-04-08T03:17:56-04:00 2018-11-29T05:58:17-05:00 "There is no control over the fit pages that go into batch/chain fitting. The current batch fitiing decides the order based on data file names (suposedly). " wojciech Milestone SasView 5.0.0 941 Move menu items from regular menus to perspective menus SasView defect new 2017-04-09T03:44:11-04:00 2018-12-13T05:42:38-05:00 The options 'Show Grid Window' and 'Category Manager' are currently listed under the 'View'. These should probably be in the 'Fitting' menu. krzywon Milestone SasView 5.0.0 957 Namespace clash for sasgui if shipped as separate package SasView defect piotr new 2017-04-26T09:01:24-04:00 2017-10-23T09:32:48-04:00 "sasgui is an already taken name on !PyPi as part of the code reorg, sasgui will have to become sasview so we have: sasview - gui parts sascalc - calculation parts sasmodels - model calculations We have all those names reserved on PyPi" ajj Milestone SasView 5.0.0 1016 custom models not included in saved projects SasView defect new 2017-10-24T14:26:11-04:00 2019-03-03T07:58:00-05:00 Need to include code for custom models in saved projects in order to share them with others. In particular, when receiving a saved project in a bug report, it would be very useful if said project contained the custom model. pkienzle Milestone SasView 5.0.0 1017 Separate thread for OpenCL tests SasView defect new 2017-10-26T01:41:35-04:00 2018-11-15T09:08:11-05:00 Running the OpenCL tests locks up SasView. A separate thread to run the tests would be helpful. krzywon Milestone SasView 5.0.0 1019 Add an auto background estimate to the Invariant Perspective SasView defect new 2017-10-27T02:21:01-04:00 2017-10-27T02:21:01-04:00 "As per ticket #958, this is the second part of that ticket which is now moved to the new ESS GUI project or release 5.0. Basically the Invariant, like the Pr, requires that the data go to zero at infinite Q (i.e. is properly background subtracted). For neutrons this is actually impossible due to solvent incoherent which is either ignored and made part of the fit (as a flat background value) or is attempted to be subtracted but is then either overestimated or underestimated somewhat (either of which can cause problems). Thus in practice one always needs to allow a non zero flat background as part of the fitting procedure. The invariant currently allows this as a user input. Pr allows for the program to ""fit"" this rather than have to guess. A similar functionality is desired for the Invariant perspective." butler Milestone SasView 5.0.0 1125 qt5 - MathJax not used in generated Sphinx docs SasView defect new 2018-07-03T06:36:52-04:00 2018-07-03T06:36:52-04:00 "Generating the docs in the {{{ESS_GUI}}} branch results in pages that look similar to {{{master}}}, but the MathJax script is never included in the HTML file despite the Sphinx configuration being seemingly identical between {{{master}}} and {{{ESS_GUI}}}. In the HTML source, equations are still within {{{}}} tags as usual. They just aren't rendered, e.g. [[Image(https://i.imgur.com/tKo1WFB.png)]] It's worth noting that the conda environment YAML file in {{{ESS_GUI}}} doesn't specify Sphinx, so I'm using {{{sphinx=1.5.1=py36_0}}} since that's the earliest Sphinx version supporting Python 3.6. In {{{master}}}, we still use {{{sphinx=1.4.8=py27_0}}}. Sphinx's own documentation on MathJax did not change between 1.4.8 and 1.5.1. " tcbennun Milestone SasView 5.0.0 1150 Make Slicer Parameters box non-modal and add it to the Tools menu SasView defect new 2018-08-03T08:58:42-04:00 2019-03-03T08:16:25-05:00 "The Slicer Parameters box is modal. This means that you can't interact with the help window while the Slicer Parameters box is displayed. Making the box non-modal has some good UI benefits. E.g., you could interact with the slicer parameters from the graph as well as typing in the numbers in the box. You could put the slicer in the Tools menu where it is easy to find rather than having to select a slicer on a graph before the user even knows the slicer box exists. You could also make slicing available to data sets that are not currently plotted, which may be useful for batch slicing. " pkienzle Milestone SasView 5.0.0 1161 new R_eff branch of sasmodels does not support VR SasView defect new 2018-08-21T15:59:41-04:00 2018-11-15T09:33:44-05:00 "The new effective radius infrastructure does not support VR functions. There are 4 models that need VR: vesicle, hollow cylinder, hollow rectangular prism and hollow rectangular prism thin walls. This should use the same math as SasView 3.x, scaling the structure factor volume fraction by the average particle volume / average shell volume. See also Ticket #1030. To implement this, we need to touch the same files that we touched for effective radius on the new R_eff branch: modelinfo.py, generate.py, product.py kernel*.py, kernel_iq.c We are already computing the shell volume in the form_volume function. We could rename this to shell_volume for those functions that need it, and define form_volume as the total volume. This will make it easier for future maintainers to figure out what is going on. We can define some macros in generate.py/kernel_iq.c which return shell_volume if it is available, or form_volume as shell_volume. For P(q) return F2 / shell_volume. For the call to S(q) set the volume fraction to volfraction * form_volume/shell_volume. " pkienzle Milestone SasView 5.0.0 11 Save project should save plot state SasView enhancement new 2012-03-29T04:28:49-04:00 2017-10-26T03:48:31-04:00 When saving a project, the state of the plots (name, datasets plotted, colors chosen etc) should be saved so that on loading the state is restored. ajjackson Milestone SasView 5.0.0 40 Provide option to not plot residuals by default SasView enhancement new 2012-03-29T18:11:17-04:00 2017-10-23T07:04:46-04:00 "When working with a number of data sets the number of plots can get large. It would be good for the user to have the option of switching to a default that residuals do not get plotted. There are two implications:[[BR]] 1) How to give access to the residual plot later (could be always generated as a hidden graph for example or be dealt with in a similar way to batch where the residuals are only shown on demand)[[BR]] 2) This should be part of a larger effort for setting persistent preferences -- see ticket #30" butlerpd Milestone SasView 5.0.0 42 Need to add the report capability to simultaneous fitting SasView enhancement new 2012-03-29T18:28:14-04:00 2017-10-26T05:42:23-04:00 One can go through manually and generate individual reports but this feature should be integrated with simultaneous fitting. butlerpd Milestone SasView 5.0.0 206 Allow for custom integration range in Invariant perspective SasView enhancement new 2014-02-14T02:52:14-05:00 2017-10-26T03:37:06-04:00 "At present the Invariant perspective integrates over the full range of the loaded dataset and the only way to change the integration limits is to edit the data outside of !SasView and reload it. The Total Q Range dialog in the Invariant perspective should be augmented with a Integration Q Range dialog." smk78 Milestone SasView 5.0.0 295 Need to completely separate GUI from computational code SasView enhancement richardh assigned 2015-01-31T10:02:54-05:00 2018-09-05T07:18:10-04:00 "This is a mojor Refactoring need and critical to the future of the project. Suggestion during discussion of this issue at fortnihgtly meeting of Oct 21, 2014 is to bundle all of calculation (data loading, SANS models, P(r) etc.) into one package and UI into another." butler Milestone SasView 5.0.0 374 Masking buttons are not obvious SasView enhancement new 2015-03-05T14:13:13-05:00 2017-10-23T09:33:25-04:00 "The buttons on the mask panel are not obvious. It's not immediately obvious what the difference between Erase, Clear, and Reset is. We should add tooltips, and better info. " mathieu Milestone SasView 5.0.0 414 "Remove ""standalone"" option in gui_manager" SasView enhancement mathieu assigned 2015-05-05T08:27:13-04:00 2017-10-23T09:06:09-04:00 "Back in the day when we could build a standalone application with every perspective, there was a ""standalone"" data member in each plugin perspective. This was used by the gui_manager to pick how to handle a perspective. Since then, another mechanism has been put in place to select the default perspective (which was originally also done through the ""standalone"" data member). Since ""standalone"" is not longer used, we should get rid of the code that deals with it in gui_manager." mathieu Milestone SasView 5.0.0 460 Upgrade Linearized Fits SasView enhancement new 2015-10-10T11:17:49-04:00 2017-10-23T07:08:37-04:00 "Currently linearized fits are quite un-intuitive and awkward. One needs to perform two steps in the following order 1. click on plot menu and choose ""Change Scale"" and change the axis scaling (log, linear, y*x etc.) then exit. 2. Click again on plot menu and choose ""Linear Fit"" set the range and fit. Further the range is set in units of the scale. So if ln(q*I) then lower limit is not qmin but ln(qmin*I(qmin)). Finally there are no lines on the graph to enable a visual review of the range chosen. The scale functionality can be useful in its own right to visualize in different ways, but it should be decoupled from the linearized fits. The linearized fit panel should allow for choosing the type of fit (or scale) desired and whether to set the range in the original q space or in the scale of the linearized x axis. Finally the range should be graphically shown just as it is in fitting. A quick and dirty start that goes a long way might be to add a button on the lineraized plots panel to call the scale panel." butler Milestone SasView 5.0.0 526 Refactor SasView Category code SasView enhancement new 2016-03-16T16:53:35-04:00 2019-03-01T18:14:49-05:00 "Once we move to adding default categories to the python model we will need to change the !SasView category code to take advantage of it. Mainly: 1 Remove default.json from the repo 2 Change the code to create a serialized.json from model information instead of looking for default.json 3 If model is not in serialized.json, first look in model information for default categories. If none then, and only then, add to uncategorized." butler Milestone SasView 5.0.0 529 Fix help when using S*P in SasView GUI SasView enhancement new 2016-03-17T08:33:27-04:00 2018-09-10T07:32:26-04:00 At Code Camp IV it was pointed out that Both the help and the description (quick pop up help) only point to one of the two models if P*S is up. The quick help goes to P and the full help goes to S. Paul K. points out we could replace HELP with question marks on each of P and S that takes the help to the respective place but that probably best if we chose to ditch the pop up help (see ticket #528). butler Milestone SasView 5.0.0 592 linearized models need to account for resolution smearing SasView enhancement new 2016-07-10T21:50:24-04:00 2017-10-23T06:50:34-04:00 "Currently resolution smearing is not accounted for and thus heavily smeared data, such as USANS slit smeared data give totally wrong answers, particularly for I0 which is several orders of magnitude wrong. however even pinhole resolution at medium q can slightly alter the value of Rg. Also suggest taking the opportunity to ditch lineModel.py and fitting.py in favor of using linear regression, perhaps from bumps, directly in fitDialog. Also could clean up what looks like dead code? " butler Milestone SasView 5.0.0 661 Should provide indication to user of valid bounds for q as well as other parameters SasView enhancement new 2016-09-13T08:44:26-04:00 2017-10-23T10:32:11-04:00 Currently several models are only valid within a certain q range or more often a qr range. Likewise polydispersity widths can often be broad enough that their tails go into invalid territory (currently sasmodels will automatically truncate the distribution at known limits). Maybe other types of constraints will show up as well. It would be good to have a way to flag the user during operation that they are outside those bound (besides indications in the documentation of course). butler Milestone SasView 5.0.0 747 Make it easier to use the same fit set-up with different data sets SasView enhancement new 2016-10-09T09:57:02-04:00 2017-10-23T08:22:32-04:00 "It is very tedious at present to use the same model on a different data set. Either - get the ""data source"" drop down at top of fit page to work to change the data - Or, change ""send to"" then ""fitting"" to instead have ""current fit page"" or ""new fit page""?" richardh Milestone SasView 5.0.0 799 Warn users if they are asking DREAM for too many samples SasView enhancement ajj assigned 2016-11-02T11:32:14-04:00 2017-10-26T06:48:15-04:00 "Users are confused about the difference between ""Samples"", ""Steps"" and ""Burn-in Steps"" in DREAM. They are increasing #samples to unreasonable levels instead of using burn-in. This can cause the user inteface to fail **after** DREAM has spent days collecting samples when it tries to create plots with ridiculous numbers of samples. **Explanation** Samples is the number of samples to save. From this we can derive #steps = #samples/(#pars*#pop) + 1. If steps is greater than zero then samples is ignored. Total number of steps is #burn + #steps. On completion, all but the final steps are saved, so even if you hit stop before burn is complete you still get #steps*#pop*#pars samples (or less if fewer than #steps iterations have passed before you hit stop). **To do** (1) Make sure the explanation is clear in the documentation, tool tips and help (2) Warn users if they are asking for more than 1M samples, or maybe limit users to 1M samples unless they are running from the command line. **Alternative** (1) Revise inputs: Samples: #samples used for stats; does not change iterations Steps: #iterations to run; if running a fit without changing the model, use resume so that it collects more data points without having to go through a burn-in period (2) Show minimum steps required to collect the desired number of samples" pkienzle Milestone SasView 5.0.0 939 fit values and parameters should be captured in cansas1D xml SasView enhancement new 2017-04-08T13:41:06-04:00 2017-04-08T13:41:06-04:00 "There was an old ticket to make the parameters from a fit available as an xml output. We currently can copy the values to clipboard in a way that pastes nicely into xml and satisfies the base requirement. For the GUI refactor we should be more ""disciplined and professional."" Also we should think about the idea of wrapping information into one file given the push to provide complete provenance information into files. A suggestion would be to have the ""save as"" of an entry in the data explorer save everything under that element in the tree into one xml? Of course parameters and all the fit information besides just points in the fit should be in that file (e.g M2[xxxx.dat])" butler Milestone SasView 5.0.0 1067 multiple scattering SasView enhancement new 2018-01-31T14:51:45-05:00 2019-03-28T17:21:34-04:00 "{{{sasmodels/explore/multiscat.py}}} demonstrates how to do a multiple scattering calculation with an FFT. This code is not ready to go into sasview. (1) There needs to be some code clean up in sasview/sasmodels before this can apply. I set up the calculation as a resolution function, but background needs careful handling. True background needs to be moved out of the I(q) calculation. ""Background"" due to incoherent scattering in the sample _is_ subject to multiple scattering, and will need to be applied beforehand. The instrumental resolution will apply after the multiple scattering calculation, so resolutions need to stack. This will require a reorganization of resolution and q-samples is sasmodels (#717 and others). Oriented USANS (#610) will be easy to implement after reorg. (2) The calculation is slow (1.5 s for multiple scattering vs. 0.001 s for single scattering in cylinder model). There should be lots of room for speedup using GPUs. I put some code into multiscat.py which shows how this might be implemented, but didn't try to make it run. (3) Rather than moving data back and forth between the GPU for calculating the model then calculating the resolution, we can rearrange the code so that it stays there the whole time. The reorganization in (1) should be done with this in mind. The existing resolution functions will need to be updated to make use of the GPU, including SESANS. " pkienzle Milestone SasView 5.0.0 1093 remote fitting service SasView enhancement new 2018-04-16T08:50:05-04:00 2018-04-16T08:50:05-04:00 2D fitting runs significantly faster on modern graphics processors. Allow sharing of these resources among users by setting up a batch queuing system which can distribute jobs to available processors. pkienzle Milestone SasView 5.0.0 1094 headless sasview fitting SasView enhancement new 2018-04-16T08:51:51-04:00 2018-04-16T08:51:51-04:00 Run bumps from saved svs/fitv files without the SasView GUI. pkienzle Milestone SasView 5.0.0 1116 qt5 user level, changes to model tab SasView enhancement tcbennun assigned 2018-07-01T15:10:57-04:00 2018-09-09T02:00:06-04:00 "Consider adding ""+"" symbol drop downs with details for S(Q) radius & volume parameters, analogous to those for polydisperse radii." richardh Milestone SasView 5.0.0 1140 Batch Slicer requires plotting of all 2D data sets to use in batch SasView enhancement krzywon assigned 2018-07-20T07:05:29-04:00 2018-08-18T19:36:55-04:00 "The current implementation of batch slicing requires all 2D data that is going to be included in the batch run of a slicer process be plotted (e.g. sent to ""new plot"" They they show up as OPTIONS to be included in the batch. This can work for small sets, but recently we tried this on a time resolved series that was binned into 90 (and could be a few hundred) 2D time bins. Having to plot all 90 is less than optimal to be kind. Ideally this should work like batch fitting where all 2D data sets that are selected in the data manager can be selected. This may or may not be something to worry about for 4.2 release as it is mostly a GUI item at this point? but if it can be done straightforwardly it would be good to fix for the release." butler Milestone SasView 5.0.0 1147 Organise parameter table by model component SasView enhancement tcbennun new 2018-07-25T08:33:21-04:00 2018-11-29T07:40:54-05:00 "As discussed in comments here: http://trac.sasview.org/ticket/475#comment:5 From JIRA: ---- '''SASVIEW-966: Organise parameter table by model component''' '''Torin Cooper-Bennun, 24 July 2018 09:46''' In order to reduce confusion of where parameters are coming from in P(Q)S(Q), sum/multi, or more complicated mixture models, the model parameter table could include sub-headings to separate the parameters by model component. I've mocked it up on the ESS_GUI_beta_approx branch in the simple case of P(Q)S(Q); https://github.com/SasView/sasview/commit/a699172f8d2bb2fddba1f168550bbf2d5893a6ca This currently uses non-checkable, non-selectable, bold-face rows as headings. I'm a bit concerned that using top-level rows as headings may break some other manipulation of the item model, though. ---- '''Piotr Rozyczko, 24 July 2018 10:17''' This looks good! As for potential fallout - (hopefully) all operations on the naked model are done through special methods in GuiUtilities, so location of potential fixes is well defined. Also, as a general rule I tend to iterate over model items testing if the item is checkable - only then I look for its children etc. The ""Polydispersity"" row acts almost exactly like your multi-column description rows. " tcbennun Milestone SasView 5.0.0 1171 Expose volume calculation in SasModels sasmodels enhancement pkienzle new 2018-09-08T07:21:25-04:00 2018-11-15T07:55:15-05:00 "McSAS relies on the ability to weigh the contributions based on their volume in its optimisation routine. This means that we need to be able to get a volume for a given contribution from SasModels. At the moment, the kernel can be queried for the volume of the last-calculated iteration: {{{ kernel.result[kernel.q_input.nq] }}} Paul Kienzle commented on this a while back: "" For your case (without dispersion) the form_volume is already computed by the kernel and returned as the final element in the result. You should be able to grab it using kernel.result[kernel.q_input.nq] after calculating the kernel. This is a side-effect of the current implementation and not part of the formal interface; it will not work for pure python models, but should work for C models run as dll or as OpenCL. [...] If we were to make this a formal interface, we would need to generalize it to the case of dispersion-weighted volume average by additionally accumulating the sum of the weights in result[nq+1], then defining self.average_volume = result[nq]/result[nq+1]. Something similar could be done in the python kernel loop. "" " toqduj Milestone SasView 5.0.0 1195 Default FitPage to 200 points on log scale SasView enhancement new 2018-10-14T19:51:39-04:00 2018-10-14T19:51:39-04:00 "The current default on any new !FitPage is to plot the output with linearly spaced points despite defaulting to a log-log plot and to only 50 points when even almost all 1D data sets these days have over 100, Can we change that to log spacing and say 200 points? Since we are now working on two GUIs am going to make this a 5.0 ticket but it should also be changed in 4.3 assuming the change is trivial" butler Milestone SasView 5.0.0 573 error traceback unreadable SasView defect new 2016-05-11T11:52:58-04:00 2017-10-27T04:53:24-04:00 "The Error box on mac with a python traceback is unreadable for long tracebacks. Should use a wider box with horizontal and vertical scroll bars for the text region and no line wrapping. The error is available in sasview.log even if it can't be read on the screen or copied in full from the gui to an email." pkienzle Milestone SasView 5.0.0 620 scroll wheel should scroll the fit page SasView defect new 2016-08-16T09:24:59-04:00 2017-10-27T05:18:29-04:00 "Always scroll the page on the scroll wheel. With the current behaviour, the scroll wheel scrolls the page unless the focus happens to be on a combo box, in which case it scrolls the combo box, changing the selected model. " pkienzle Milestone SasView 5.0.0 640 model not recalculated when enter pressed in min/max SasView defect new 2016-08-30T13:11:06-04:00 2017-10-27T05:54:29-04:00 "Pressing Enter in the min or max columns for the parameter range does not force a model recalculation even if the parameter values have changed. To reproduce: Select cylinder. Change radius to 200. Type tab to jump to the Min column Press Enter " pkienzle Milestone SasView 5.0.0 660 Add GUI triggers for compare, docview and user tests from the plugin editor. SasView defect new 2016-09-12T11:07:39-04:00 2019-03-26T07:21:03-04:00 "As outlined in perspectives/fitting/media/plugins.rst, users can run compare, docview and user tests from within the sasview shell. Add buttons to the model editor frame or entries to Run menu the so that these features can be triggered directly from the GUI rather than running them from the shell command line. Note: requires [https://github.com/SasView/sasmodels/pull/8] to support the shell commands/GUI options." pkienzle Milestone SasView 5.0.0 860 latex labels in graph menus SasView defect new 2017-02-22T07:22:49-05:00 2018-09-06T06:01:05-04:00 "Data labelled with latex markup on the graph (e.g., `$\Gamma1(x)$`, `$I_{obs}(q)-Bg$` and `$I_{extrap}(q)$` in the correlation function perspective) appear nicely formatted in the legend, but show up as latex markup in the graph context menu. Maybe want to avoid the use of latex on plot labels, or perhaps maintain both the legend label and the menu label for each plot line. Could also write a simple de-TeX routine to strip egregious characters such as backslash and dollar signs, and convert braces to parentheses. Suggest targeting the ASCIImath format so that the tool has more general utility. Or go the other way, writing an ASCIImath to TeX translator and use that to produce the labels used by matplotlib." pkienzle Milestone SasView 5.0.0 879 default value and limits are ignored for muliplicity/variant models SasView defect new 2017-03-09T08:54:51-05:00 2017-10-26T06:53:39-04:00 The model default value for multiplicity is ignored when selecting the model. To see this, select the RPA model, change the case num to 3, switch to the unified power Rg and it will have 3 levels. Set case num to 0 and switch to spherical_sld and you will have n_shells=0 even though n_shells has limits of [1, 10]. The upper limit is respected. pkienzle Milestone SasView 5.0.0 905 nD data sets opens new fit window if existing window is a different dimension SasView defect new 2017-03-27T06:41:10-04:00 2017-03-27T06:50:15-04:00 When a 2D data set is sent to fitting, a new fit window is always opened, even if the first fit window has no data associated with it. krzywon Milestone SasView 5.0.0 919 Projects should save transmission spectrum SasView defect new 2017-04-04T16:05:42-04:00 2017-10-26T07:28:15-04:00 TO fix issues prior to v4.1.0 release, transmission spectra are no longer saved in project and analysis files. Errors occur when the lengths of lambda and T are different. Along the same lines as outlined in #14 (done for 2D data in master and 1D data in branch load_speed_increase but not merged), we could linearize the arrays into a single element. krzywon Milestone SasView 5.0.0 949 Wildcard import SasView defect new 2017-04-10T21:57:41-04:00 2017-10-26T14:11:14-04:00 "While trying to fix wildcard imports I come across a few problems. You can reproduce it by changing src/sas/sasgui/guiframe/local_perspectives/plotting/__init__.py to: from .plotting import Plugin However when you do this you see the following. I think it's due to a circular import. For whatever reason it doesn't appear with wildcard imports. (sasview) p0006m:sasview anz$ pythonw run.py 13:55:21 - INFO : sas.sasview.sasview: 26: --- !SasView session started --- 13:55:21 - INFO : sas.sasview.sasview: 28: Python: 2.7.13 |Continuum Analytics, Inc.| (default, Dec 20 2016, 23:05:08) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] 13:55:21 - INFO : sas.sasview.sasview: 46: You have not set the SASVIEW_WX_VERSION environment variable, so using default version of wxPython. 13:55:22 - INFO : sas.sasview.sasview: 51: Wx version: 3.0.0.0 Traceback (most recent call last): File ""run.py"", line 158, in from sas.sasview.sasview import run File ""/Users/anz/Documents/Andy/programming/sasview/sasview/sasview.py"", line 71, in from sas.sasgui.guiframe import gui_manager File ""/Users/anz/Documents/Andy/programming/sasview/src/sas/sasgui/guiframe/gui_manager.py"", line 40, in from sas.sasgui.guiframe.data_panel import !DataPanel File ""/Users/anz/Documents/Andy/programming/sasview/src/sas/sasgui/guiframe/data_panel.py"", line 31, in from sas.sasgui.guiframe.local_perspectives.plotting.!SimplePlot \ File ""/Users/anz/Documents/Andy/programming/sasview/src/sas/sasgui/guiframe/local_perspectives/plotting/__init__.py"", line 2, in from .plotting import Plugin File ""/Users/anz/Documents/Andy/programming/sasview/src/sas/sasgui/guiframe/local_perspectives/plotting/plotting.py"", line 23, in from sas.sasgui.guiframe.gui_manager import MDIFrame ImportError: cannot import name MDIFrame" andyfaff Milestone SasView 5.0.0 997 save points as file from graph loses precision SasView defect new 2017-09-19T08:50:53-04:00 2017-10-27T02:31:56-04:00 "When using the graph menu option to save points from graph to a file, it is only saving about 6 digits of precision rather than full 15 digits available. Should use %.15g or maybe %.15e rather than %g for the number format. " pkienzle Milestone SasView 5.0.0 1033 add tests for generic scattering calculator SasView defect new 2017-11-07T11:24:02-05:00 2017-11-07T11:24:02-05:00 "The existing tests in sas_calculator/tests/utest_sas_gen.py only that the scattering calculator runs, not that it returns the correct value. In particular, 1D, 1D averaging and 2D tests need to be performed." pkienzle Milestone SasView 5.0.0 1041 multiplicity not included in copy/paste parameters SasView defect new 2017-12-01T06:02:18-05:00 2017-12-01T06:02:18-05:00 When copying parameters for a multiplicity model such as spherical_sld, the multiplicity parameter is not include. On paste, the multiplicity of the model in the fit page is not set. pkienzle Milestone SasView 5.0.0 1042 add test for bsl file converter SasView defect new 2017-12-06T09:01:09-05:00 2017-12-06T09:01:09-05:00 " Use 1D BSL files Z83000.l1D and Z98000.l1D from sasview/tests/convertible_filees folder for automated tests of the BSL file converter." pkienzle Milestone SasView 5.0.0 1097 re-enable enumerated choice parameters for models SasView defect new 2018-04-18T10:13:14-04:00 2018-04-18T10:13:14-04:00 "Sasview 3.x supported option lists on some parameters for the spherical sld function form. Sasview 4.x does not support this, and instead uses an integer. Re-enable support for enumerated options as part of the model in the GUI. " pkienzle Milestone SasView 5.0.0 1158 Inconsistent fuzzy or rough interfaces in fuzzy_sphere and core_shell_bicelle_elliptical_belt_rough sasmodels defect new 2018-08-21T08:57:51-04:00 2018-08-21T08:57:51-04:00 "Whilst dealing with #1160 beta(Q) model changes, Paul K  noted that Fuzzy sphere is defined as     P =  (f * exp(-1/2 q!^2 fuzziness!^2))!^2 but core shell bicelle elliptical belt rough uses:     P = f!^2 * exp(-1/2 q!^2 sigma!^2) Are both of these correct?  Or should the bicelle roughness term be squared? Do these models work correctly with structure factors? Does the fuzziness apply as usual for the calculation for beta?     beta = < f exp(-q!^2 s!^2/2) >!^2 / < f!^2 exp(-q!^2 s!^2/2))!^2 > THIS REQUIRES FURTHER INPUT - HAS ANYONE ELSE SEEN PAPERS DERIVING DIFFUSE INTERFACES? Email discussion summarised  below ... Richard wrote:  In both cases sasview follows the references given, so we either need to think harder or find some other references! The derivation for fuzziness goes something like this - at high Q the I(Q) is essentially a 1d Fourier transform of the sld profile normal to an interface. If the features in the sld profile were to be convoluted with a Gaussian, then the convolution theorem tells us that we multiply the I(Q) by an exponential. Thus strictly sigma in the Gaussian has to be very small compared to the radius of the particle (which is perhaps not always so in the Stieger paper, though they don't seem to give any values for sigma, just say that Rsans = R + 2*sigma). Should we be multiplying F(Q) or P(Q) ?    Squaring the exponential of course only rescales sigma by sqrt(2), so all depends on the precise definition of sigma. Strey points (incorrectly) to a paper by Ruland (papers available from Richard) which does say Iobs = I. H!^2 where H is the Fourier of the smoothing distribution. See also the discussion after eqn (3) in the Ciccariello paper (not that I in any way understand the details in the rest of that paper). I could suggest that  ""fuzziness"" ought only to be applied after everything else, including any S(Q) and beta(Q) as it ought only to work at very high Q, but in that case it should not affect results at smaller Q anyway, so I suppose that it could go into F or F!^2. What we should really be doing, at least for spherical particles, is to use a constrained multiple linear step sld profile, which would then work properly for all particle radii. Of course for elliptical bicelles this is not possible, so we have to resort to approximations like this. Have any of you got any further references for diffuse or fuzzy interfaces? Yun wrote: Thanks Richard to dig out all the reference and provide detailed comments on this. As for the calculation of the fuzzy ball, I agree with Richard's comments. Overall, both equations are ok. But the definition of the fuzziness is slightly different.Personally, I prefer ""  P =  (f * exp(-1/2 q!^2 fuzziness!^2))!^2"". But since we need to have a reference for any model, I guess we can keep them as they are now since these are the ""correct"" equations from the references SASView provides. For ""P =  (f * exp(-1/2 q!^2 fuzziness!^2))!^2"" (or other equation), it is used to describe a density convolution in 3D in the real space. However, due to the isotropic properties, it reduces to the 1D problem as pointed out by Richard. It is indeed much better defined if sigma (or fuzziness) is relatively small. I feel that when the sigma is very large, its mathematical meaning can still hold. I did not read the paper by Stieger carefully yet so not sure if they discussed this.   As for the beta approximation, if there is  a change (polydispersity) of size or sigma, I feel that the beta factor can be still calculated in the same way. What Paul K. proposed, ""beta = < f exp(-q!^2 s!^2/2) >!^2 / < f!^2 exp(-q!^2 s!^2/2))!^2 >"", seems reasonable to me. As long as the shape fluctuation is independent of the relative locations of the center of mass of all particles, the beta approximation would be still fine. (for the full Q range? not necessarily for high Q only? ) Of course, I am not sure when the beta approximation should fail for this case. This still needs more future work.   " richardh Milestone SasView 5.0.0 1182 python old buffer interface deprecated in python 3 SasView defect new 2018-09-24T15:40:45-04:00 2018-09-24T15:40:45-04:00 "The manual claims that the old buffer interface is deprecated in python 3 and some compilers are issuing warnings to that effect. May want to update to the new buffer interface. It's going to be a bit of a pain switching. Instead of just grabbing a pointer inside the object, need to create a Py_buffer object at the start of each wrapper and release it at the end. That means if there are any errors, we can't simply return from the function, but instead have to free all the buffers. If we haven't yet allocated all the buffers when we encounter the error, then we need to only free those for which we already allocated. Here are some really ugly macros that might work: {{{ #define DECLARE_VECTORS(n) \ Py_buffer VEC_views[n]; \ int VEC_current = 0; #define FREE_VECTORS() \ do { \ int VEC_k = 0; \ while (VEC_k < VEC_current) pyBuffer_Release(VEC_views[VEC_k++]); \ } while (0) // Could save VEC_max in DECLARE_VECTORS and check that we aren't overflowing VEC_views[] #define _VECTOR(obj, buf, len, flags) \ do { \ Py_buffer *view = VEC_views[VEC_current]; int err = PyObject_GetBuffer(obj, view, flags); \ if (err < 0) { FREE_VECTORS(); return NULL; } \ VEC_current++; \ if (sizeof(*buf) != view->itemsize) { \ PyErr_SetString(PyExc_TypeError, ""wrong numeric type for vector""); \ FREE_VECTORS(); \ return NULL; \ } \ buf = view->buf; \ len = view->len; \ } while (0) #define INVECTOR(obj, buf, len) _VECTOR(obj, buf, len, PyBUF_SIMPLE|PyBUF_FORMAT) #define OUTVECTOR(obj, buf, len) _VECTOR(obj, buf, len, PyBUF_WRITABLE|PyBUF_FORMAT) }}} Rather than: {{{ PyObject *in_obj, *out_obj; Py_ssize_t nin, nout; double *in, *out; ... INVECTOR(in_obj,in,nin); OUTVECTOR(in_obj,in,nin); ... if (err) { PyErr_SetString(...); return NULL; } ... return Py_BuildValue(...) }}} need to do something like: {{{ PyObject *in_obj, *out_obj; Py_ssize_t nin, nout; double *in, *out; DECLARE_VECTORS(2); ... INVECTOR(in_obj,in,nin); OUTVECTOR(in_obj,in,nin); ... if (err) { PyErr_SetString(...); FREE_VECTORS(); return NULL; } ... FREE_VECTORS(); return Py_BuildValue(...) }}} " pkienzle Milestone SasView 5.0.0 292 Fix batch fit page so that dropdown links to results of batch fitting SasView enhancement new 2015-01-29T19:07:54-05:00 2017-10-23T07:05:14-04:00 "The dropdown list in the fit page brings up the selected data file plot useful in setting up the batch but after the batch has run the fit page cannot access the results of the batch -- hence all manipulation of results must be done on batch fit page. However the unsuspecting user, seeing the new plot window pop up with a fit (which is just the theory curve based on the model parameters on the page) can wrongly assume the ""model"" line is the fit result. A ticket was generated to put a warning on the fit page. However, it would be nice to also restructure ""view fits"" on the batch page to be more obviously seperate from plotting of data columns AND provide better instructions. For example - could move to the top and/or put box around it. Even Longer term one would like to get the results back to the batchpage so could pop up stuff properly." butler Milestone SasView 5.0.0 385 Might be useful to be able to alter number of points in PrView calculation SasView enhancement new 2015-03-22T10:08:25-04:00 2017-10-23T09:34:03-04:00 In looking through the GUI code I noticed a routine for changing the number of points to use in P(r) calculation - not sure it gets called from anywhere but I looking at the 2 micron sphere data wonder whether we may need to adjust that number? should it be a parameter available to user? butler Milestone SasView 5.0.0 435 Add a compute button to simultaneous/constrained fitting page SasView enhancement new 2015-06-28T21:28:33-04:00 2017-10-26T03:25:24-04:00 "from Richard Heenan during !SasView 3.1 release testing: A “compute” button on the “const & simul fit” tab for a forward calculation only but with all the constraints applied would be useful." butler Milestone SasView 5.0.0 584 use embedded svg for saved html reports SasView enhancement new 2016-06-16T11:24:03-04:00 2017-10-27T05:09:21-04:00 "Using embedded svg, the saved HTML file can contain all the graphs without needing links to external png files as we are currently doing. Embedded svg is supported by most browsers: http://caniuse.com/svg-html5 " pkienzle Milestone SasView 5.0.0 671 use cleaner representation of resolution in save files SasView enhancement new 2016-09-28T07:48:17-04:00 2017-10-26T04:21:14-04:00 "Capturing the resolution in a single resolution tag would be a cleaner internal representation than simply dumping the fields on the fit page form. Currently resolution is spread across: {{{ }}} The following attributes appear to be unused: {{{ }}} As well as being very bad style (the object when it is reloaded will no longer be at 0x1183c7310 so no reason to store that information), they remain the same regardless of which resolution options are chosen. The model still loads with the same resolution options as it was saved with. " pkienzle Milestone SasView 5.0.0 946 Single configuration file SasView enhancement new 2017-04-10T08:55:18-04:00 2017-10-23T08:34:39-04:00 "We need to have a single configuration file for the whole !SasView. See ticket #195 as well INI or YAML look good options. If INI format is chosen there's a lot of INI editors that can be embedded in !SasView Something like this would be useful: {{{ [General] [Models] path=/home/.../sasmodels [Logging] ... }}} " ricardo Milestone SasView 5.0.0 1031 copy dollar math sphinx extension from sasmodels when building docs SasView enhancement new 2017-11-07T05:33:36-05:00 2017-11-07T05:33:36-05:00 Currently the sphinx extension which translates ```$expr$``` into a sphinx math expression appears in both sasmodels and sasview. It should instead be copied from sasmodels to sasview as part of the doc build so that it only needs to be updated in one place. pkienzle Milestone SasView 5.0.0 1250 5.0 Can check boxes be removed next to structure_factor_mode etc ? SasView enhancement piotr new 2019-03-20T11:57:22-04:00 2019-03-20T11:57:22-04:00 "Can check boxes on Model tab that are at start of lines next to structure_factor_mode and radius_effective_mode drop down menus when S(Q) is used be removed (or at least disabled)? Ticking the boxes should not do anything much (?), though 1e08 appears in the Error column if you run a fit, which will likely confuse users." richardh Milestone SasView 5.0.0 1259 Prefactor calculation when there are both P(Q) and S(Q) sasmodels enhancement yunliu new 2019-03-26T04:13:25-04:00 2019-03-29T14:11:17-04:00 "The models for vesicle and sphere systems ( P(Q) ) with the hard sphere interaction ( S(Q) ) have two volume fraction: phi_PQ and phi_SQ. phi_PQ is the volume fraction from the form factor. phi_SQ is the volume fraction from the structure factor. Based on the testing of the two models, the prefactor of the scattering intensity is currently set up to be proportional to scale*phi_PQ*phi_SQ. If the scale is set up to one, the prefactor with the absolute intensity should be proportional to phi_PQ only. It should not be phi_PQ*phi_SQ. It is suggested to remove phi_SQ from the calculation of the prefactor. " yunliu Milestone SasView 5.0.0 942 Need to Refactor SimultaneousFitPage Class SasView defect new 2017-04-09T08:28:50-04:00 2017-10-23T08:28:03-04:00 "It turns out that the !SimultaneousFitPage class in simfitpage.py is used both for constrained/simultaneous fitting and for combined batch fitting. Most of th page is the same but there are a dozen instances requiring one or two lined of code change that are all done using ""if batch_on...."" This is bad form. Ideally the class should be rewritten to be generic and then two subclasses written which inherit from that class. All could reside in the one file. However, since this is in sasgui which goes away soon and does not affect the user experience it has a trivial priority and will presumably be closed as obsolete after 5.0 if not fixed first." butler Milestone SasView 5.0.0 911 Can correlation matrix be made visible for Levenberg Marquardt? SasView enhancement pkienzle new 2017-04-04T02:19:42-04:00 2017-10-23T08:25:01-04:00 "Can the parameter correlation matrix be made visible at all for Levenberg Marquardt? (The L-M method modifies the least squares matrix, so may require some care o get the desired result.) " richardh Milestone SasView 5.1.0 391 Optimizer engine options tied to Fitting panel SasView defect new 2015-03-22T17:07:22-04:00 2017-10-26T05:41:39-04:00 The menu item for choosing optimizers is under the Fitting menu bar which belongs specifically to the Fitting perspective. Presumably it is needed by P(r) as well as possibly the Invariant? Need to think about how to handle this. butler Milestone SasView 5.1.0 473 Multiplicity models do not appear in drop-down in Custom Model > Sum|Multi SasView defect new 2015-11-10T05:00:02-05:00 2019-03-01T17:16:28-05:00 "Reported by Saeed Mohan (saeed.mohan@ipleiria.pt): I was attempting to add in my own custom model to Sasview, which is based on the !UnifiedPowerRg model. I thought the easiest thing to do would be to use the Sum Multi|(p1, p2) function under Fitting > Edit Custom Model, however I am not able to find this model in the options list. Checked by SMK. He is correct. What is more, the same bug exists in v3.0.0 and v2.2.1!!! PDB checked and it appears that no multiplicity models appear in the dropdown (eg. RPA10, onion, etc). This is probably working as designed since I suspect the interface was not obvious for a multiplicity model? Interestingly there is also a very strange behavior that the shape independent -> Absolute_Power_Law seems to have been renamed in this dropdown to !PowerLawAbsModel ... perhaps due to the space in the name? " smk78 Milestone SasView 5.1.0 895 user defined fit parameters for constrained fitting SasView defect new 2017-03-22T17:48:12-04:00 2017-10-26T06:27:38-04:00 "Sometimes users need to be able to create additional fitted parameters used to define other parameters in the system. For example, to fit the volume fraction of an sld mixture where the volume fraction is the same across the entire series, but the slds of the mixture components are different across the series, you want to define a parameter Vf and set: {{{ M1.sld = Vf*A1 + (1-Vf)*B1 M2.sld = Vf*A2 + (1-Vf)*B2 ... }}} where A1, B1, A2, B2, ... are known values. You then want to set limits on Vf to (0,1) and set it as a fitting parameter." pkienzle Milestone SasView 5.1.0 41 Reports for Batch should provide more options SasView enhancement new 2012-03-29T18:25:50-04:00 2017-10-26T06:04:40-04:00 When generating reports from a batch process, the user should at least have the option to include the table of results as well as any results plots or fit/residual plots. This may in fact lead to the redesigning things to allow for user options in generating reports. butlerpd Milestone SasView 5.1.0 190 Add errors to G_r and I(0) when computing P(r) SasView enhancement new 2013-07-02T13:28:26-04:00 2017-10-23T07:03:48-04:00 "G_r and I(0) are two of the outputs of the P(r) inversion process. Users asked to see the error on those values." mathieu Milestone SasView 5.1.0 451 Add DREAM results to Reports SasView enhancement new 2015-07-07T11:03:32-04:00 2017-10-23T09:43:41-04:00 If DREAM has been used, it would be nice if the output displayed locally in the Fit Results Panel could be appended to a Report. smk78 Milestone SasView 5.1.0 454 Improve file output of the model datapoints following a Batch Fit SasView enhancement new 2015-07-09T08:08:25-04:00 2017-10-23T10:30:42-04:00 "At present he only way to output the actual datapoints in a fit (for example, for input into a 'publication quality' graphing program) is to right-click on the graph and save the model. If you've just done a Batch Fit to n datasets this means you have to select a dataset n times, click the View Plot button n times, right-click on the resulting plot n times, select M1-Save Points as a file n times, select the xml format n times (if you don't want txt format) and click Save n times! We must find a better way!" smk78 Milestone SasView 5.1.0 462 Generic Scattering Calculator Enhancements: make a theory curve SasView enhancement new 2015-10-10T11:37:29-04:00 2017-10-23T07:21:06-04:00 "Lilo Pozo of the University of Washington suggests that she very much likes the concept of the Generic Scattering Calculator and thing it could be an extremel powerful too for SAS analyis if a few features were added. These are being broken into 3 tickets. Currently the calculator is simply a tool and does just that: calculate. It would be MUCH more powerful if this could be treated as a theory curve and plotted with the data for comparison... and even plot the residuals. This should be doalbe relatively straightforwardly using the current fitting/plotting infrastructure." butler Milestone SasView 5.1.0 571 better support for custom model editing SasView enhancement new 2016-05-03T15:27:21-04:00 2017-10-27T04:52:42-04:00 "As part of the debug process the model file will frequently be saved and edited. Having to reselect the model and reenter the parameters each time is tedious. Users may be editing models with their own editor outside of sasview. There is no way to signal that the model needs to be updated. Both issues could be avoided if the Compute button checks for updates to the model file before running compute, possibly replacing the model with a newer version and displaying any errors with the reload process. Copy the existing values for the parameters to the newly loaded model for all parameters which match." pkienzle Milestone SasView 5.1.0 608 user defined distribution functions SasView enhancement new 2016-08-08T09:48:25-04:00 2018-07-19T11:57:00-04:00 "Allow distribution functions to be defined much like form factors and structure factors by placing a distribution definition into the plugins directory. The model loader would recognize it as a distribution and add it to the list of distributions. The UI will need to be extended to allow more distribution shape parameters. Currently it is limited to a single shape parameter (width), which is tied to the parameter type (orientation parameters use absolute width, volume parameters use relative width). Existing distributions should be moved into the sasmodels/models directory." pkienzle Milestone SasView 5.1.0 745 Consider saving the results of every fit in a session SasView enhancement new 2016-10-09T09:49:36-04:00 2017-10-26T04:22:30-04:00 "FISH used to save the results of every fit so that it was possible to ""wind back"" to a previous set of parameters. It would be good to implement this in !SasView. It could get very messy for simultaneous/constrained fits etc. But the implications should be assessed." richardh Milestone SasView 5.1.0 1172 "Allow ""polydispersity"" to be defined by series/sets of uncorrelated, discrete points" sasmodels enhancement new 2018-09-08T08:25:07-04:00 2018-09-12T07:51:43-04:00 "The output from a McSAS optimisation is a set of uncorrelated contributions, the sum of which comprises the scattered intensity. As discussed during the SasView Code camp McSAS session, defining a parameter's polydispersity using either/or a classical definition and a freeform (e.g. McSAS) definition would require that the SasModels calculation can handle a range of freeform distributions. While there is some sort of freeform distribution already implemented using a set of points and scaling factors (between which there is interpolation going on), The McSAS definition makes no assumption of the relationship between the points. For example, a set of ten McSAS cylinder contributions with a fixed length might (conceptually) look like this: - cylinder, diameter 3.4211 - cylinder, diameter 1.1235 - cylinder, diameter 2.1098 - cylinder, diameter 2.0983 - cylinder, diameter 4.0917 - cylinder, diameter 3.0918 - cylinder, diameter 1.091 - cylinder, diameter 2.901 - cylinder, diameter 2.998 - cylinder, diameter 3.116 Note that a typical scattering pattern can easily be described using about 200 or 300 such contributions that make up a scattering pattern, when each contribution is scaled by its surface or volume, not the normal volume-squared scaling. This has the effect of suppressing the scattering of large contributions so that the smaller ones become visible, which is taken into account when visualising the result in a number- volume- or surface-weighted distribution. Anyway, back to the topic. The idea during the SasView code camp was to enable a workflow that looked like this: - optimize a set of 1D or 2D model parameters using a classical optimisation - pick one to three parameters to be optimised using a McSAS optimisation core, fixing all parameters except for the background- and scaling parameters (which are least-squares optimised for every McSAS iteration). - get a coffee - allow for re-optimization of the remaining model parameters using classical optimisation, fixing the McSAS-optimized parameter distributions Another aspect to note is that the uncertainties on the McSAS parameter distributions come from the analysis of variance from repeated, independent MC results in the optional histogramming (visualisation) phase. So, theoretically, you'd automatically repeat the above optimisation sequence a number of times to get a nice mean and standard error on the mean. Back (again) to the topic at hand, for starters we would need a method that returns a calculated intensity as the sum (or average) of a set of individual contributions, each with its own parameters. That's at least as far as I can imagine for now. This could be in SasModels or in SasView.." toqduj Milestone SasView 5.1.0 1185 change data in a FitPage SasView enhancement richardh new 2018-09-28T11:06:47-04:00 2018-10-08T03:10:25-04:00 "It still annoys me greatly that having set up a complicated model in a !FitPage you have to start from scratch to reuse it with a different data set. Thus is particularly important if you have constraints between two or three !FitPages. I would like to send a fresh data set to a !FitPage, at the same time ""freezing"" any fit results currently there so they are still available. Is there any reason why this would not work? (Also is there a ticket for this somewhere already?)" richardh Milestone SasView 5.1.0 1241 Support fits to models with data operations SasView enhancement new 2019-03-05T10:34:11-05:00 2019-03-05T10:49:59-05:00 "It would be useful in some circumstances for the fitting engine to have access to data operation parameters, so that examples such as the following can be fit: {{{ S(Q; p) = scale * (Ia(Q)-BKGa)/ (Ib(Q)-BKGb) + Bkg }}} with parameters p from the structure factor S as well as scale BGKa, BKGb and Bkg. See the discussion on ticket #1157 for more details. " pkienzle Milestone SasView 5.1.0 1268 abstract optimizer handling SasView enhancement ibressler new 2019-03-29T11:32:09-04:00 2019-03-29T11:34:10-04:00 "Currently, SasView is tied very closely to the bumps package. Only optimizers available in bumps can be used. Moreover, the bumps module serves as global storage for optimizer settings and is configured by the GUI directly. copy of https://jira.esss.lu.se/browse/SASVIEW-1285" ibressler Milestone SasView 5.1.0 1269 build fitting options from optimizer defaults automatically SasView enhancement ibressler new 2019-03-29T11:33:28-04:00 2019-03-29T11:34:20-04:00 "Once the optimizer handling is generalized, populate the fitting options form automatically from the available optimizer backends. Avoids to hard-code and duplicate most of the forms for each optimizer. Allows to add new optimizers with less effort. Reduces maintenance efforts required in the long term. copy of https://jira.esss.lu.se/browse/SASVIEW-1286" ibressler Milestone SasView 5.1.0 1270 Add McSAS as optimizer SasView enhancement ibressler new 2019-03-29T11:36:24-04:00 2019-03-29T11:36:24-04:00 "Include McSAS as submodule in SasView. It should be selectable in the FittingOptions and start once the user hits the 'Fit' button. Requires McSAS to implement the interfaces FitEngine, FitData[12]D in sascalc/fit/AbstractFitEngine.py - this blocks it at the moment. copy of https://jira.esss.lu.se/browse/SASVIEW-1290" ibressler Milestone SasView 5.1.0 1271 Use resolution calculator to define dqx/dqy for fit page SasView enhancement new 2019-03-29T12:02:39-04:00 2019-03-29T12:02:39-04:00 A proper estimate of resolution requires too many details about the experiment configuration for the fitting panel. Could we perhaps attach it to the Q resolution estimator window that we already have? pkienzle Milestone SasView 5.1.0 1203 OpenCL deprecated on Mac sasmodels task new 2018-10-26T09:01:59-04:00 2019-03-01T17:29:17-05:00 "sasmodels on future macs Apple has announced that OpenCL is deprecated as of Mojave [https://developer.apple.com/macos/whats-new/], however, there does seem to be an alternate path. There is an OpenCL frontend in clang, triggered by ""-x cl"", as shown on [http://steckdenis.be/post-2011-05-02-using-clang-to-compile-opencl-kernels.html this blog entry], and which seems to work on my Mac. Khronos provides the [https://github.com/KhronosGroup/SPIRV-LLVM LLVM to SPIR-V] translator and the [https://github.com/KhronosGroup/MoltenVK MoltenVK] driver which takes SPIR-V and sends it to Apple's Metal framework. So perhaps the problem will resolve itself, and a third party will put together the necessary toolchain in a nice anaconda package that we can supply with the mac distribution of sasview. Otherwise we will need to put together the pieces ourselves, or update kernel_iq.c to support Metal in addition to OpenCL and CUDA, and write a replacement for pyopencl/pycuda that targets Metal. There is no answer yet on [https://stackoverflow.com/questions/51238079/is-there-a-vulkanpython-alternative-to-pyopencl-for-multiplatform-gpgpu-compute stackoverflow]." pkienzle Milestone SasView 5.1.0 231 Option to send data to fit panel cloned from existing one SasView defect new 2014-04-03T04:12:22-04:00 2017-10-26T03:39:32-04:00 "It is a pain to have to redo all the model parameters and panel settings for a new fit when you have just done one. It should be possible to ""send data to fit using clone of fit page x""" ajj Milestone SasView 5.1.0 26 Fit curve should extend beyond region of fit to cover full plot q range SasView enhancement new 2012-03-29T06:19:41-04:00 2017-10-23T06:43:10-04:00 It would be very helpful to see how the fit curve covers the whole plotted q range. It is probably useful to visualize which part of the fit is withing the fitted range. Could for example use a dotted rather than solid line of the same color to plot outside the range butlerpd Milestone SasView 5.1.0 28 "Need a simplified interface to simultaneous fitting for ""combining"" data" SasView enhancement new 2012-03-29T11:18:57-04:00 2017-10-26T03:43:32-04:00 "a lot of SANS data is collected over more than one instrument setting in order to extend the q range probed. This is normally not an issue for data analysis as it is the job of the reduction to combine those sets into one set with appropriate resolution information attached to each point. However, it may happen that this is not the case from time to time, probably because they came from different instruments (i.e. SANS and USANS). Even then it would be straightforward to put them in one file of course, unless one is not on an absolute scale for example. It would be nice to provide a simple interface for dealing with this. It can of course be done using the general simultaneous fit, but something that either allows one to identify two data sets as being treated as one for model fitting purpose, or setting up a simultaneous fit with only one model (not one model per data set) and one set of parameters. It might be appropriate to also allow the choice of independent scale factors or not (i.e. in case they are not on the same absolute scale)" butlerpd Milestone SasView 5.1.0 29 Need a simplified interface for constraining fit on one data set SasView enhancement new 2012-03-29T11:55:26-04:00 2017-10-26T03:45:42-04:00 "basically being able to relate two parameters within the model such as thickness of layer 1 and 3 of a core + 3 shell model are the same, and/or 1/2 the thickness of layer 2 etc. If this is available (without making a dummy second fit) within ""simultaneous fitting"" then the name should be changed to constrained and simultaneous fitting. Otherwise will not be intuitive to a user." butlerpd Milestone SasView 5.1.0 35 Provide tool for determine contrast match point SasView enhancement new 2012-03-29T16:53:12-04:00 2017-10-26T03:44:42-04:00 "since the strength of neutrons is in the contrast matching ability, a simplified tool for calculating that based on several (2 or more -- though an ""idiot warning"" should probably be generated if less than 4?) data sets. There should be the usual !PrView and Invariant option for estimating the background and several options for determining I which should include choosing a Guinier fit to get I0 or calculating an integrated intensity within a Q range (which also covers the case of choosing the lowest q point). The tool should then provide the plot and compute and print the estimated match point." butlerpd Milestone SasView 5.1.0 248 Need to allow scaling of qx and qy independently on 2D plot SasView enhancement new 2014-04-21T05:53:34-04:00 2017-10-23T06:45:20-04:00 "Currently on 1D plots one can change the aspect ratio of the plot by changing the y scale independently of x. This still needs a ""manual"" interactor (see ticket 16) to set the range by typing in numbers, but teh 2D plot does not allow changing of the aspect ratio. While this is generally a good feature, in some circumstances, such as grazing incidence transforms, where the range of say qx is orders of magnitude different that qy it would be nice to be able to force a non 1-1 aspect ratio to better visualize the smaller q range. There is probably not a huge call for this at present but as scattering geometries get more and more ""sophisticated"" such flexibility will likely become more important. Suggested by Adrian Rennie." butler Milestone SasView 5.1.0 437 add correlation coefficient to the correlation plot SasView enhancement new 2015-06-29T09:22:04-04:00 2017-10-23T09:42:18-04:00 For each plot showing a strong correlation (e.g., >0.2) between a pair of parameters, plot the correlation value on the plot. The documentation will need to include information about how to report errors when there are strong correlations. The correlations should also be included in the parameter output table, along with the overall correlation coefficient and other statistics. pkienzle Milestone SasView 5.1.0 366 Allow for re-parameterisation of models SasView enhancement new 2015-02-28T02:37:32-05:00 2019-03-01T17:08:18-05:00 "Karen has requested the ability to easily re-parameterise models. i.e. generate a new parameter set for a model where there are new parameters and some are some function of the other parameters. e.g. new parameter: solvent_fraction new parameter: component_sld old parameter: solvent_sld old parameter: sld = (1-solvent_fraction)*component_sld+solvent_fraction*solvent_sld Thus the new parameter set would not have sld as a parameter, but have solvent_fraction and component_ld instead. This should probably be implemented in a similar way to the 'New Custom Model' page." Karen Edler Milestone SasView 5.1.0 1178 show sld profile plot ought to go down to R=0 SansView enhancement new 2018-09-19T08:48:21-04:00 2018-09-19T08:48:21-04:00 """show sld profile"" button ough to produce a plot that starts at R=0 rather than r_core for the core_multi_shell, onion and spherical_sld models. If sld1 is the sld at r_core, then there ought to be an additional line on the plot from (R=0, sld=sld1) to (R=r_core, sld=sld1)" richardh Milestone SasView Next Release +1 549 Remove pluginmodel.py once we have appropriate sasmodels replacement SasView defect new 2016-03-21T09:24:13-04:00 2019-03-01T17:41:20-05:00 "Currently need pluginmodel.py to provide Model1DPlugin class used for simple sum/multi user generated models. This can be removed once we have sum/product working from sasmodels." ajj Milestone SasView Next Release +1 561 reparameterize onion model SasView enhancement new 2016-04-15T08:40:07-04:00 2019-03-02T17:59:29-05:00 "The existing onion model has two SLDs per shell, the inner and the outer. Tying the SLD at the interface between two shells therefore requires a constraint. If we instead given the SLD at the surface of each shell, we automatically tie the SLDs at the interface. Introducing an SLD jump will therefore require a new layer of zero thickness. Since it will be easier for the user to introduce a jump layer than it is to tie the SLDs at the interface, then the new representation is preferred. If, however, the jump interface is by far the more common requirement, we should keep the existing interface." pkienzle Milestone SasView Next Release +1 1063 Need unit tests for combined models P(Q)S(Q) etc sasmodels enhancement awashington new 2018-01-23T08:28:30-05:00 2018-09-12T04:35:54-04:00 The combined model code currently doesn't appear to have any unit tests. We should add some tests in to prevent future regressions. awashington Milestone SasView Next Release +1 371 Get rid of exec calls in UI SasView defect new 2015-03-05T08:07:43-05:00 2015-06-10T19:44:50-04:00 "I noticed that there are a lot of 'exec' calls peppered in the UI code. We should go through and get rid of them." mathieu Milestone SasView Next Release +1 393 Cannot start SasView with a data file path SasView defect new 2015-03-23T12:11:36-04:00 2015-03-23T12:11:36-04:00 "It used to be that you could start SasView with a data file path: {{{ python sasview test/1000A_sphere_dsm.xml }}} This no longer works. " mathieu Milestone SasView Next Release +1 487 Constraints should be relational operator not assignment operators SasView defect new 2015-11-26T10:56:12-05:00 2018-07-05T03:33:19-04:00 "currently the constraints/optimizer treats the constraint as an assignment rather than relational operator. The result is that for 3 models the following constraint set up {{{ M1.parameter1=M2.paramter1 M1.parameter1=M3.paramter1 }}} will result in ONLY the second constraint being implemented (the second assignment to M1.parameter1 overwrites the fist assignment). However if the constraints are set up as follows: {{{ M2.parameter1=M1.parameter1 M3.parameter1=M1.parameter1 }}} results in the expected behavior. This is both confusing to users and seems logically incorrect for a constraint which should always, I think, be a relational object." butler Milestone SasView Next Release +1 527 convert sld2i to opencl SasView defect new 2016-03-17T07:13:28-04:00 2019-03-01T17:30:29-05:00 once we have vector parameter support in sasmodels, sldi can be added as all the other models. pkienzle Milestone SasView Next Release +1 570 better custom model error diagnostics SasView defect new 2016-05-03T15:13:02-04:00 2016-08-16T10:49:22-04:00 "When defining a custom model but having a bad parameter table, the custom model compile menu item claimed that the model loaded without difficulty. Similarly when there were errors in the C code for the model. The compile button needs to run the model with some nominal value (e.g., Iq([0.1, 0.2, 0.3]) and Iqxy([0.1, 0.2, 0.3], [0.1, 0.2, 0.3]) to make sure that the model runs with the default parameters. Any errors returned by the compiler should be displayed. Check that errors are captured and returned for bad opencl models on the various OpenCL environments (mac GPU, mac CPU, windows nvidia, windows radeon, windows intel) and for kerneldll under windows with the tcc compiler. For pure python models, check that python code with Iq.vectorized=True but if statements in the code shows the correct errors. These tests belong in the sasmodels package. Make sure that the appropriate compiler output gets captured as part of the test. The sasview gui only needs to demonstrate that bad output gets displayed to the user, but does not need to run the tests as part of the test suite. " pkienzle Milestone SasView Next Release +1 580 Sasmodels egg to be shipped to pypi SasView defect new 2016-06-06T05:12:30-04:00 2016-06-19T10:32:57-04:00 "Secondary aim is egg that can be shipped to pypi from ticket #317" piotr Milestone SasView Next Release +1 589 Need to provide at least one custom model in plugins directory SasView defect new 2016-07-04T08:56:51-04:00 2017-07-11T19:31:39-04:00 Users would like to see a default example so they can understand the structure. Creating an easy model gives some basics but probably should include a full model from sasmodels including one python only and one python+C. Could take some of the original plugins and convert? should include documentation at beginning and test suite at end so users can start to get used to what will be required to submit as full model. butler Milestone SasView Next Release +1 602 Linearized fits can fail to find global minimum SasView defect new 2016-07-24T21:07:58-04:00 2016-08-15T19:31:56-04:00 when fitting linearized fits come back wrong because the fit is not linear but using NLLSQ and the starting parameters cannot be altered to tweak. One possibility would be to run linear fit first then use those parameters to run the NLLSQ fit? butler Milestone SasView Next Release +1 717 calculate all I(q) values needed for 1D resolution in one call SasView defect new 2016-10-06T10:42:12-04:00 2017-03-08T10:03:14-05:00 "When I(q) is computed with resolution, the theory values are first computed for the measured points, then another call is made to compute the points before the first measured point and another call is made to compute the points after the last measured point. This will significantly slow down the throughput on the GPU for simple models, where the overhead of three calls will be larger than cost of the calls. This is one step toward refactoring the fitting perspective to more cleanly separate computation from user interface. See code in: {{{ sas.sascalc.data_util.qsmearing.PySmear.apply }}} called from: {{{ sas.sasgui.perspectives.fitting.model_thread.Calc1D.compute sas.sascalc.fit.AbstractFitEngine.FitData1D.residuals }}}" pkienzle Milestone SasView Next Release +1 965 document reasonable q and parameter limits SasView defect new 2017-05-18T15:49:36-04:00 2017-05-18T15:49:36-04:00 "For each model, list the range of q, r, etc. for which the model is accurate to within epsilon. Use the same epsilon across the models (e.g., 5e-5 for single precision, 5e-10 for double precision). Note that the special function libraries in sasmodels are tuned for single and double precision only, so comparing against -quad! may give misleading results. Use the explore/precision.py program to examine the valid range for the underlying sasmodels special function library. " pkienzle Milestone SasView Next Release +1 971 use compiled DREAM algorithm for 2-4x speedup SasView defect new 2017-06-01T14:17:59-04:00 2017-06-11T12:08:09-04:00 "Update the bumps build procedure so that it compiles the DREAM DE stepper as part of the build and release a new version. The new version has both a pure python and a compiled version of the stepper. The compiled version is 2-4x faster, but it is not built by default." pkienzle Milestone SasView Next Release +1 1065 Check the parameter names for complex mixture models SasView defect new 2018-01-24T07:59:11-05:00 2018-07-03T08:30:01-04:00 "mixtures including product models don't have the correct parameter names. For example ``` $ sascomp cylinder+sphere@hardsphere -pars -noplot scale: 1 background: 0.001 A_scale: 1 A_sld: 4 A_sld_solvent: 1 A_radius: 20 A_length: 400 A_theta: 60 A_phi: 60 scale: 1 sld: 1 sld_solvent: 6 radius: 50 volfraction: 0.2 ``` should be: ``` $ sascomp cylinder+sphere@hardsphere -pars -noplot scale: 1 background: 0.001 A_scale: 1 A_sld: 4 A_sld_solvent: 1 A_radius: 20 A_length: 400 A_theta: 60 A_phi: 60 B_scale: 1 B_sld: 1 B_sld_solvent: 6 B_radius: 50 B_volfraction: 0.2 ``` and ``` $ sascomp cylinder+ellipsoid*sphere@hardsphere -pars -noplot scale: 1 background: 0.001 C_scale: 1 C_sld: 4 C_sld_solvent: 1 C_radius: 20 C_length: 400 C_theta: 60 C_phi: 60 Asldradiusvolfraction_scale: 1 A_sld: 4 A_sld_solvent: 1 A_radius_polar: 20 A_radius_equatorial: 400 A_theta: 60 A_phi: 60 sld: 1 sld_solvent: 6 radius: 50 volfraction: 0.2 ``` should be ``` scale: 1 background: 0.001 C_scale: 1 C_sld: 4 C_sld_solvent: 1 C_radius: 20 C_length: 400 C_theta: 60 C_phi: 60 AB_scale: 1 A_sld: 4 A_sld_solvent: 1 A_radius_polar: 20 A_radius_equatorial: 400 A_theta: 60 A_phi: 60 B_sld: 1 B_sld_solvent: 6 B_radius: 50 B_volfraction: 0.2 ``` or perhaps keeping the order of the terms in the original expression ``` scale: 1 background: 0.001 A_scale: 1 A_sld: 4 A_sld_solvent: 1 A_radius: 20 A_length: 400 A_theta: 60 A_phi: 60 BC_scale: 1 B_sld: 4 B_sld_solvent: 1 B_radius_polar: 20 B_radius_equatorial: 400 B_theta: 60 B_phi: 60 C_sld: 1 C_sld_solvent: 6 C_radius: 50 C_volfraction: 0.2 ``` " pkienzle Milestone SasView Next Release +1 1123 ESS_GUI branch - no logs appear in console or in sasview.log SasView defect new 2018-07-02T09:00:05-04:00 2018-07-18T03:38:37-04:00 "I'm finding that all the app's logs are directed solely to the QT GUI (the Log Explorer dock), despite the specification at {{{src/sas/logging.ini}}} to also use the console and log file (this config is the same as that in the master branch). Initially I thought usage of the {{{XStream}}} class in {{{src/sas/qtgui/Utilities/SasviewLogger.py}}} was preventing logs from being processed by the other handlers, but having commented out all reference to that file and removed the Log Explorer dock entirely, there is still no output to the console or log file (which is created, but not written to). I've never seen PyQT break the logging module before, so I'm at a loss for now." tcbennun Milestone SasView Next Release +1 63 Provide ability to look at oriented model in 1D cuts SasView enhancement new 2012-05-06T09:31:37-04:00 2017-01-17T06:05:47-05:00 Stephen King points out that for quick and dirty (and support the way people may be used to doing business) we could provide an oriented 1D fitting. In other words allow the option to fit a 1D slice (e.g. sector average) of an oriented pattern. This could be used as a wizard for setting up the 2D. Also we could use the 2D behind the scenes but integrate the result over the sector width (if that is available) which would then properly smear the model's orientation information to match the smeared 1D data. butlerpd Milestone SasView Next Release +1 277 How does/should SasView handle zero intensities? SasView enhancement new 2014-12-23T02:53:39-05:00 2014-12-23T02:53:39-05:00 "Zero intensities can arise in a reduced data file as a result of 'beam blocked' or 'electronic background' measurements, or masking. Issues arising are: - how does one discern between genuinely zero intensities and intensities that (for whatever reason) are unknown or to be ignored; - what uncertainty should be assigned to a zero intensity? (The issue of zero uncertainties has been previously raised as a problem); - should SasView have a 'how to handle zeros' option in its View -> Startup Setting, for example (AJJ suggestion)? " smk78 Milestone SasView Next Release +1 342 analytical models for sesans SasView enhancement new 2015-02-18T08:04:31-05:00 2016-06-19T10:18:17-04:00 Include the analytical and published models for SESANS into sasview. For example the solid sphere, the cylinder, the ellipsoids, perfect inhomogenous solid, multi-shell spheres. pkienzle Milestone SasView Next Release +1 346 SESANS into GUI Design SasView enhancement ajj assigned 2015-02-18T08:19:10-05:00 2016-06-19T10:10:08-04:00 "In order to include SESANS fully in all parts of the GUI with plotting and fitting need to agree on the design - first visually then code/module wise. example issue to look into: 1. How to integrate w/ SANS fitting in GUI 2. How to identify if data is SESANS (in correlation space) or SANS (reciprocal space) ... and how to make clear graphically 3. If correlation space models are available how to choose what models to present to user seemlessly -- note that for full power scripting would always be the way to go but for GUI want to make transparent and easy for the user 4. What modules will need to be refactored and what new modules created in order to support above? 5. Should we start by making an independent SESANS perspective in order to explore the possibilities first without breaking trunk? Once this is done tickets for the actual work will need to be generated" pkienzle Milestone SasView Next Release +1 352 SESANS with finite acceptance angles SasView enhancement new 2015-02-18T11:03:46-05:00 2016-06-21T07:10:13-04:00 Develop a wrapper for conversion from sasmodels to SESANS taking into account the finite acceptance angles that might depend on the wavelength. This is relevant for OFFSPEC and Larmor. pkienzle Milestone SasView Next Release +1 392 use adaptive integration in sasmodels SasView enhancement new 2015-03-23T08:54:36-04:00 2019-03-01T17:21:21-05:00 "Adaptive integration can get much more accurate results for the same number of function evaluations. This will require a rewrite of the polydispersity loops, the resolution calculation, and the spherical integration used to evaluate 1D models from oriented shapes. Our simple use of opencl which evaluates the form factor over a fixed set of q will become much more complicated. See ticket #312 for slit_test.py, an implementation of slit smearing with adaptive and non-adaptive integration using scipy." pkienzle Milestone SasView Next Release +1 409 Add hexaganally packed cylinders with paracrytalline distortion SasView enhancement new 2015-04-25T13:18:26-04:00 2015-04-25T13:37:51-04:00 Greg Newbloom and Lilo Pozo from the Universit of Washington would like to see the model of Hashimoto et al (paper will br attached when I figure out how to get around 2MB limit - Macromolecules 1994 pp 3063-3072) for hexagaonlly packed cylinders with a paracrystalline distortion butler Milestone SasView Next Release +1 425 allow constraints on batch fits SasView enhancement new 2015-06-10T08:53:05-04:00 2015-06-10T08:53:05-04:00 Batch fitting currently sets the constraints menu as disabled. There is no reason not to enable it now that we are using bumps, but the UI for the constraints screen may need to change. Haven't looked at the code yet. pkienzle Milestone SasView Next Release +1 426 add inequality constraints SasView enhancement awashington assigned 2015-06-10T09:10:08-04:00 2018-07-06T15:32:14-04:00 "Bumps supports constraints such as parameter a < parameter b by having a penalty cost function evaluated for each parameter set. In this case, the function would be something like: ((b-a)^2 + penalty) * (a>b) That way, if the fit finds itself outside the valid range a<=b , it will be pushed back into the range with a quadratic function; the penalty value forces a step at the boundary so that a lower chisq out of bounds is not preferred to a value at the bounds. The penalty value should be large enough to remove any minima outside the bounds, otherwise algorithms like DREAM may be able to stumble onto it. Using a faster growing function, such as e^(b-a) will reduce the problem. If the boundary can be a little less strict, then penalty can be zero. The constraints panel needs an extended syntax to handle inequality constraints. From this syntax, a constraint function could be automatically generated for use with bumps. " pkienzle Milestone SasView Next Release +1 463 Generic Scattering Calculator Enhancements: integrate into fitting SasView enhancement new 2015-10-10T11:41:12-04:00 2015-10-17T13:45:42-04:00 "Lilo Pozo of the University of Washington suggests that she very much likes the concept of the Generic Scattering Calculator and thing it could be an extremel powerful too for SAS analyis if a few features were added. These are being broken into 3 tickets. Once the calculted curve is a theroy curve, we should add instrumental smearing just as we do with any theory curve. Also we need to identify how the SLD is being computed and add the flexibility of using either neutron or X-ray SLDs. Finally we could allow for fitting of background and solvent SLD (i.e. contrast). This latter may require reworking the calculator itself." butler Milestone SasView Next Release +1 464 Generic Scattering Calculator Enhancements: accept MD trajectories SasView enhancement new 2015-10-10T11:45:20-04:00 2015-10-10T11:45:20-04:00 "Lilo Pozo of the University of Washington suggests that she very much likes the concept of the Generic Scattering Calculator and thing it could be an extremel powerful too for SAS analyis if a few features were added. These are being broken into 3 tickets. Once integrated better into fitting, it would be really nice to be able to read in MD trajectory files to account for fluctuations expected and produce the appropriate time averaged curve." butler Milestone SasView Next Release +1 465 Provide choice of fitting cost function beyond Chi2 SasView enhancement new 2015-10-17T13:50:24-04:00 2016-03-20T16:47:52-04:00 Megan Robertson's group from the Universtiy of Houston has indicated the need to use alternate cost functions to the current Chi^2^. This relates mostly to having features in different q ranges that are not always captured if the uncertainties vary widely between q ranges. One should be careful in doing this of course. On the other hand it is clear that if we are ever to have successful co-refinement of SAXS and SANS we will need to do something. Most likely in fact weighting cost function differently for different curves? butler Milestone SasView Next Release +1 475 Add volume fraction explicitly in all relevant models SasView enhancement new 2015-11-17T09:39:28-05:00 2018-09-08T07:10:28-04:00 "11 November 2015 23:19 Subject: Re: [!SasView] Ticket #472: reparameterize Teubner-Strey Wonder if what we want to do ...eventually - don't think we want to muddy waters right this minute (could be for code camp?) but maybe we want to add phi explicitly in all the models where it comes in. This might help reduce confusion in that scale will then always be one except to fix normalizaition problems (no abs scale or the phi and slds chosen and fixed by user are wrong). It would add a parameter to the GUI but at least it would then be consistent across all models? Paul" smk78 Milestone SasView Next Release +1 523 add list of currently used parameters to the sasmodels developer docs SasView enhancement new 2016-03-16T04:22:46-04:00 2019-03-01T18:17:48-05:00 sasmodels.list_pars extracts the list of parameters used across all the models. Add this list to the developer docs so that users creating their own models can more easily follow naming conventions. pkienzle Milestone SasView Next Release +1 528 What should we do with the (short) model description? SasView enhancement new 2016-03-17T08:17:02-04:00 2019-03-26T07:27:47-04:00 "At Code Camp IV it was pointed out that something should be done about the ""description"" pop up that reads from the ""short description"" in the sasmodel. Two levels of questions were raised: * Is it still useful (i.e. should we get rid of it) * If it is useful could we replace with the autogenerated table of parameters " butler Milestone SasView Next Release +1 587 Refactor sum/product model SasView enhancement new 2016-06-22T12:27:40-04:00 2018-07-04T12:50:52-04:00 "We should be able to define mixture models using something as simple as: from sasmodels.sasview_models import mixture Model = mixture('sphere', 'cylinder') rather than large template that is currently produced by a sum model. This will allow us to evolve the sasview model interface without breaking custom mixture models store in the .sasview/plugin_models. Similarly for product models. See #583 for more info. May also consider making mixture/product models as something generated by the user as needed as part of the fit page rather than having to name every mixture that they are using in their fits. Ideally this would be done as part of the 4.0.0 release so we do not need to support the existing sasview plugin model definitions indefinitely. " pkienzle Milestone SasView Next Release +1 609 parameter consistency check SasView enhancement new 2016-08-08T09:52:58-04:00 2016-10-11T10:43:21-04:00 "parameters in the sasmodels description file must match the order of the parameters in the Iq and Iqxy calls. Two alternatives: (1) change the !Iq/Iqxy definition so that it takes a !ParameterTable struct, with parameters referenced in the code as p.name instead of name. (2) parse the !Iq/Iqxy C code to make sure that the names of the parameters correspond exactly to the names of the parameters in the definition file." pkienzle Milestone SasView Next Release +1 610 oriented USANS measurements SasView enhancement new 2016-08-08T10:22:08-04:00 2016-08-08T10:22:08-04:00 "USANS on oriented models requires resolution integration over an oriented 2D pattern rather than a circularly averaged 1D pattern. Sasmodels already includes the resolution calculator to support this. Refactor sasview so that data+model come together in an experiment object that can compute the resolution smeared theory function. Use this object when communicating with the fitter and with sasmodels. This will place the resolution handling code in one place, where it will be easier to flag the data as oriented USANS, and trigger the appropriate resolution function. " pkienzle Milestone SasView Next Release +1 612 interrupt long C model evaluations SasView enhancement new 2016-08-08T10:45:04-04:00 2016-08-08T10:45:04-04:00 Processing time for Compute with large amounts of polydispersity can be long. The polydispersity loop is being executed in small hunks within python, so it would be possible to check an abort flag within the polydispersity calculation. The GUI would need to set the flag and sasmodels would need to have it available. The model may be executing in the GUI thread, in a separate calc thread, in a separate process, or on a separate machine during a fit, so communication needs to be flexible. pkienzle Milestone SasView Next Release +1 676 Reparameterize barbell and capped cylinder SasView enhancement new 2016-10-01T11:18:46-04:00 2019-03-02T18:02:50-05:00 "Currently the parameterization of these models require a constraint in the fitting which may do funky things when using polydispersity: constraint: bell/cap radius >= cylinder radius Possible replacements: * ratio of bell/cap to cylinder * cylinder to bell/cap" butler Milestone SasView Next Release +1 677 Reparameterize pearl_necklace SasView enhancement new 2016-10-01T11:21:12-04:00 2019-03-02T18:03:54-05:00 "Currently the parameterization of this models requires the following constraint in the fitting which may do funky things when using polydispersity: constraint: string_thickness < radius Not sure how best to handle. Could define string thickness as a percentage of radius as a multiple of string thickness but neither of those feel natural" butler Milestone SasView Next Release +1 679 Allow kernels to use global working memory SasView enhancement new 2016-10-03T18:02:22-04:00 2016-10-14T09:34:41-04:00 "Some kernels, such as that attached to #678, require significant working memory in order to run. Allow kernels to declare the amount of memory they need, and provide them with an initialization function (in python) that can be called before the kernel itself is called. Provide the OpenCL context if available so that initialization can use the GPU." pkienzle Milestone SasView Next Release +1 729 Provide a loader for the BerSANS 2D format SasView enhancement new 2016-10-07T14:08:15-04:00 2016-10-07T14:08:15-04:00 "Tickets #183 and #508 have addressed all the file formats identified as desirable to support with the exception of the BerSANS multiple file 2D ASCII format (HZB/KWS). This should also be supported if possible." smk78 Milestone SasView Next Release +1 780 let the user set effective radius in P(Q)*S(Q) SasView enhancement new 2016-10-12T23:00:59-04:00 2018-09-09T01:54:28-04:00 "`sasmodels.product` defines `P(Q)*S(Q)` using the effective radius from `P(Q)` as the `radius_effective` parameter in `S(Q)`. This is not always correct, and should be under control of the user. Similarly for `volfraction` and `VR`. Instead of hard-coding this relationship, make `ER` and `VR` available as derived parameters from the model. These parameters will only be computed if their value is requested. Models could potentially allow other derived parameters. Use `sasmodels.mixture` to multiply the models. Make sure that it supports arbitrary model expressions, not just A+B. May want to allow model constraints to be set in the model value field. When the radius_effective field is edited, the user will see `=A_ER`, indicating the that the ER() derived parameter from model A should be evaluated. This will save bouncing to a constraints page to indicate a simple constraint." pkienzle Milestone SasView Next Release +1 796 Polydispersity limited to 4 dimensions sasmodels enhancement new 2016-10-25T12:21:38-04:00 2016-10-25T12:21:55-04:00 "Max 4 polydisperse parameters. Need warnings in GUI if more are selected. Instead of increasing the number of PD loops in the kernel code, switch to Monte Carlo integration with importance sampling when more than 4 dimensions. Do not extend the code to contain one more loop. Not only will this be slower, but it will increase code size and possibly reduce the number of q values that can be evaluated in parallel. Many 1D models are computed with numerical integrals over all orientations; these integrals can be incorporated into the Monte Carlo. Could also incorporate sampling from the resolution function. Accuracy can be controlled by increasing the number of samples." pkienzle Milestone SasView Next Release +1 1122 General documentation for beta(Q) modification of S(Q) SasView enhancement richardh new 2018-07-01T15:42:03-04:00 2019-03-29T11:30:32-04:00 "Write some general sasview documentation for the beta(Q) modification of S(Q), and new options for S(Q). Link to ""help"" buttons in the qt5 gui." richardh Milestone SasView Next Release +1 1126 Passing additional computed, non-fitting, parameter values back from models sasmodels enhancement richardh new 2018-07-03T10:20:22-04:00 2018-09-09T01:48:00-04:00 "Would be good for constraints on S(Q) radius and phi to be able to access ER and VR values from preceding P(Q) model, preferably without making models too much more complicated. Likely more than one possible type of ER, see #780 and #1115. Would be good for some models to return usful information to users, e.g. Debye lengths from hayter_msa S(Q). Paul K says that this might not be simple, but he has some ideas." richardh Milestone SasView Next Release +1 1153 Separate composition of mixture models in GUI SasView enhancement new 2018-08-09T04:36:29-04:00 2018-09-09T01:44:53-04:00 "'''''From JIRA, SASVIEW-973:''''' Mixture models (a.k.a. sum/multiply models, for current intents and purposes) separate parameters of their component models using prefixes (A_sld, B_sld, and so on). We are on the way to using sub-headings in the parameters table instead (see SASVIEW-966 [''Organise parameter table by model component''; trac #1116]). To implement this for mixture models, an intermediate layer (upon model loading) is needed to extract the parameters by component and display them without prefixes; then, when they are manipulated, translate from the non-prefixed version to the prefixed version, in order to interact with the model itself correctly. The first step seems okay, since modelinfo, I think, contains the necessary information to get the name of the model component from the parameter's prefix. The second step is a bit more involved. One possibility is to have each non-prefixed parameter in the Qt model be associated with a data item which contains the real parameter name. Whatever happens, various routines will need updating to deal with this case, because currently only the item's text is used to identify the parameter. ---- '''''From email correspondence with @pkienzle:''''' For the 5.0 UI where you are talking about keeping the parameters for S and P separate, a cleaner version of product.py is possible. Currently, I have to tear apart the parameter structure before calling the individual S and P with their own sets of parameters. It would be better to build the two separate parameter structures independently. Similarly for mixture models, which ought to be available without having to create a plugin model for each combination. I propose that you assume such an interface exists, and that you can call it with the individual parameter sets decoupled. Within this interface, we can either construct an existing product/mixture model on the fly, or restructure product/mixture to use the decoupled parameters, whichever is more expedient. If you decide to follow the current scheme which views the combined model as a single parameter set (not an unreasonable option given the number of changes required on the UI and project save/load to keep them separate) then you can target the 4.3 interface directly." tcbennun Milestone SasView Next Release +1 1170 Provide volume fraction distribution analysis in SasView SasView enhancement new 2018-09-07T07:34:47-04:00 2018-09-07T07:34:47-04:00 "We should look to provide the functionality for volume fraction distribution analysis in !SasView for the metallurgy/geology/ceramics community in the same way that we provide distance distribution analysis for the biological community. The principles are discussed in: https://doi.org/10.1016/j.prostr.2016.06.121 http://dx.doi.org/10.1107/S0021889888004819 There is no publicly-available software that does this and it would bring new users to !SasView, as well as improve the translation of SANS data from these systems into papers. Could be a future student project? " smk78 Milestone SasView Next Release +1 34 Publish packages to PyPi - sascalc & sasmodels - allow for headless install SasView task new 2012-03-29T16:40:42-04:00 2018-09-03T08:06:38-04:00 "sasmodels is now published on pypi sascalc needs separating out as independent package and then uploading to pypi Old text: We have an old version of the models published on !PyPi which should probably be updated. Since some people like Cameron Neylon are in fact using our stuff this way so we should publish properly. Aside from the immediate, is this something we can automate?" butlerpd Milestone SasView Next Release +1 507 SESANS into GUI - create tickets based on design exercise #346 SasView task new 2016-03-06T16:29:57-05:00 2016-06-19T10:07:46-04:00 Once the design stage is complete, the project will need to be broken into manageable tasks and tickets created and assigned. butler Milestone SasView Next Release +1 619 Remove dlls from install package SasView task new 2016-08-16T08:50:12-04:00 2019-02-26T07:32:18-05:00 now that tinyCC is working there should be no need to distribute the dlls. These should be removed from the windows installer bundle butler Milestone SasView Next Release +1 268 Running Sasview from the command line on linux fills the current directory with .pyc files SasView defect new 2014-06-20T07:15:21-04:00 2015-01-14T05:37:24-05:00 "When running Sasview from the command line on linux, all of the custom models (from .sasview/plugin_models) get compiled to .pyc files *in the current directory*. Sasview should be using the .sasview/plugin_models folder for this." ajj Milestone SasView Next Release +1 272 Install deletes model plugin .py files! SasView defect new 2014-10-20T05:20:37-04:00 2015-02-01T16:19:41-05:00 "Discovered by Richard Heenan; verified by me. Windows build. Affects release versions 2.2.1 and 3.0.0. Installing the SasView release versions causes model plugin .py files to be compiled to .pyc as expected. However, the .py files are then being deleted!!! And, counter-intuitively, the .pyc files are ending up in the SasView top level folder and not in the plugin_models sub-folder (in fact, the latter is completely empty!) " smk78 Milestone SasView Next Release +1 386 warning logging not consistant SasView defect new 2015-03-22T10:13:08-04:00 2015-03-22T10:13:08-04:00 a recent comit indicated that warnings were put in console and after some thought were copied also to the sasview log. Some quick checking with the recent !PrView bug checking indicates this is not quite the case. For example the warnings that the code was UNABLE to evalutate the number of terms showed up in the console ONLY (not in the log) while the fact that the button press could not update the value showed up ONLY in the log (not in the console). As long as it gets recoreded somewhere we are ahead of the game but not sure I understand why some go one place and other go elsewhere and seems inconsistant with what the author of the recent warning logging chages seems to think was done. butler Milestone SasView Next Release +1 396 allow density from formula in sld calculator SasView defect new 2015-03-26T09:33:59-04:00 2015-03-26T09:33:59-04:00 "The following formula is a 20:80 volume ratio of H2O:D2O, where D2O is assumed to have the same number density as H2O, but with isotopic substitution of D for H: 20%vol H2O@1n // D20@1n The resulting formula has a known number density, so the SLD calculator should be able to ask the formula for the density rather than requiring the user to calculate it." pkienzle Milestone SasView Next Release +1 413 entropy calculation requires scikit learn package SasView defect new 2015-05-04T10:56:55-04:00 2015-06-21T16:23:50-04:00 "bumps entropy calculation requires scikit learn package that is not being bundled with windows exe, and is not listed as a dependency. " pkienzle Milestone SasView Next Release +1 481 support polydispersity for integer parameters (e.g., pearl necklace) SasView defect new 2015-11-23T16:09:19-05:00 2019-03-01T17:33:43-05:00 "Models such as pearl necklace would like to be able to have polydispersity on the number of pearls and fit the number of pearls. Need to be able to tag a parameter as an integer parameter, and use this to select the discrete version of the distribution. The model will still take the integer parameter as a floating point number to keep the code simple. The current version sort of works as long as the model converts floats to integers internally. With enough points in the distribution, each integer will be selected in proportion to the area under the distribution for that integer." pkienzle Milestone SasView Next Release +1 562 fix handling of q==0 for various models SasView defect new 2016-04-18T07:09:22-04:00 2016-06-20T09:50:26-04:00 "A number of models do not return a finite value at q = 0. adsorbed_layer -> inf binary_hard_sphere -> nan broad_peak -> inf correlation_length -> inf fractal -> nan linear_pearls -> nan mass_fractal -> nan polymer_excl_volume -> nan porod -> inf power_law -> inf star_polymer -> nan surface_fractal -> nan two_power_law -> inf The -zero option to compare will cause q=0 to be included in the set of q to be calculated. You may want to add a test against a specific value for q=0, but this is optional; once these models are fixed we can include a check for finite q=0 as part of model_test." pkienzle Milestone SasView Next Release +1 563 numerical derivative step size is precision dependent SasView defect new 2016-04-21T16:39:36-04:00 2016-06-26T11:23:37-04:00 Need to use eps=sqrt(1e-16) for double precision and sqrt(1e-8) for single precision when computing step size h for numerical differentiation. If the step size is too small, the cancellation error in f(x+h) - f(x) dominates, and if the step size is too large, the numerical derivative error dominates. Bumps mostly assumes double precision. pkienzle Milestone SasView Next Release +1 564 improve support for tgamma and other missing function SasView defect reopened 2016-04-26T09:20:26-04:00 2019-03-01T17:37:03-05:00 "Executing make clean html from Windows CMD or Git Bash shell: python genmodel.py ../sasmodels/models/fractal.py model/fractal.rst Traceback (most recent call last): File ""genmodel.py"", line 103, in plot_1d(model, opts, ax1d) File ""genmodel.py"", line 47, in plot_1d Iq1D = calculator() File ""e:\sasviewdevelopment\sasmodels\sasmodels\direct_model.py"", line 214, in __call__ return self._calc_theory(pars, cutoff=self.cutoff) File ""e:\sasviewdevelopment\sasmodels\sasmodels\direct_model.py"", line 174, in _calc_theory self._kernel = self._model.make_kernel(self._kernel_inputs) # pylint: disable=attribute-dedata_type File ""e:\sasviewdevelopment\sasmodels\sasmodels\kernelcl.py"", line 320, in make_kernel self.fast) File ""e:\sasviewdevelopment\sasmodels\sasmodels\kernelcl.py"", line 224, in compile_program program = compile_model(self.get_context(dtype), source, dtype, fast) File ""e:\sasviewdevelopment\sasmodels\sasmodels\kernelcl.py"", line 150, in compile_model program = cl.Program(context, source).build(options=options) File ""c:\Anaconda\lib\site-packages\pyopencl\__init__.py"", line 213, in build options=options, source=self._source) File ""c:\Anaconda\lib\site-packages\pyopencl\__init__.py"", line 253, in _build_and_catch_errors raise err pyopencl.RuntimeError: clBuildProgram failed: build program failure - Build on : ""C:/Users/smk78/AppData/Local/Temp\OCL7C94.tmp.cl"", line 210: error: storage-class specifiers extern/static/register not allowed for variables static float SQTPI = 2.50662827463100050242E0f; ^ ""C:/Users/smk78/AppData/Local/Temp\OCL7C94.tmp.cl"", line 232: error: identifier ""SQTPI"" is undefined y = SQTPI * y * w; ^ ""C:/Users/smk78/AppData/Local/Temp\OCL7C94.tmp.cl"", line 238: error: storage-class specifiers extern/static/register not allowed for variables static float LOGPI = 1.14472988584940017414f; ^ ""C:/Users/smk78/AppData/Local/Temp\OCL7C94.tmp.cl"", line 291: warning: goto statement may cause irreducible control flow goto small; ^ ""C:/Users/smk78/AppData/Local/Temp\OCL7C94.tmp.cl"", line 299: warning: goto statement may cause irreducible control flow goto small; ^ 3 errors detected in the compilation of ""C:/Users/smk78/AppData/Local/Temp\OCL7C94.tmp.cl"". Frontend phase failed compilation. (options: -I c:\anaconda\lib\site-packages\pyopencl\cl) (source saved as c:\users\smk78\appdata\local\temp\tmpbnhiza.cl) make: *** [model/fractal.rst] Error 1 smk78@NDW1000 /e/sasviewdevelopment/sasmodels/doc (master) $ " smk78 Milestone SasView Next Release +1 568 custom models should use Iq(q, ...) and Iqxy(qx, qy, ...) SasView defect new 2016-05-02T17:29:37-04:00 2016-06-26T11:24:38-04:00 "The custom model editor defines functions Iq(x, pars...) instead of Iq(q, pars...). Converting a model from python to C, which we may want to do to make it run on the GPU, the natural step is to first convert it from a python def to a string containing the C definition, so for example the quadratic {{{ def Iq(x, a, b, c): return a*x**2 + b*x +c }}} gets edited to {{{ Iq = """""" return a*x*x + b*x + c; """""" }}} The C string wrapper for the Iq function assumes that the first parameter is q, so this expands into {{{ double Iq(double q, double a, double b, double c); double Iq(double q, double a, double b, double c) { return a*x*x + b*x + c; } }}} and the variable x is not defined. Furthermore, when moving using contributed models into future releases of sasmodels it will be convenient if they already use q instead of x so they are consistent with existing models. " pkienzle Milestone SasView Next Release +1 578 allow parallel fitting if multiple gpus SasView defect new 2016-05-24T11:32:22-04:00 2016-05-24T11:32:22-04:00 "Bumps in sasview is currently single threaded. If multiple GPUs are available, then it should be run in parallel. The complication comes when OpenCL is running on the CPU rather than the GPU, in which case only single threaded fitting should be used. For simultaneous fitting, mixtures or product models, part of the model may be run on GPU and part on CPU. This may not be an issue if OpenCL can manage multiple threads asking for OpenCL CPU resources at the same time, but that needs testing." pkienzle Milestone SasView Next Release +1 790 provide single and double precision versions of special functions sasmodels defect new 2016-10-18T09:58:10-04:00 2016-10-18T09:58:10-04:00 "For Si(x) in lib/Si.c the number of terms in the polynomials p and q, and the cutoff value for choosing between p(1/x) and q(x) are probably precision dependent. If not, this should be noted in the code. Check that the remaining libraries use approximations suitable for the precision." pkienzle Milestone SasView Next Release +1 808 view_html failing in the release bundle SasView defect new 2016-11-17T10:02:28-05:00 2016-11-17T10:02:28-05:00 "The 4.0.1 release on Mac does allow users to run `sascomp` {{{ >>> from sasmodels.compare import main >>> main(""cylinder"") OCL32 t=1273.96 ms, intensity=126048 OCL64 t=345.82 ms, intensity=126048 |OCL32-OCL64| max:7.286e-04 median:2.687e-04 98%:6.997e-04 rms:3.349e-04 zero-offset:+2.902e-04 |(OCL32-OCL64)/OCL64| max:6.520e-07 median:2.905e-07 98%:6.114e-07 rms:3.368e-07 zero-offset:+3.037e-07 }}} but not `view_html` {{{ >>> from sasmodels.generate import view_html >>> view_html(""cylinder"") :: (ERROR/3) Cannot embed stylesheet 'html4css1.css': No such file or directory. Traceback (most recent call last): File """", line 1, in File ""/Users/pkienzle/Desktop/SasView 4.0.1.app/Contents/Resources/lib/python2.7/sasmodels/generate.py"", line 916, in view_html File ""/Users/pkienzle/Desktop/SasView 4.0.1.app/Contents/Resources/lib/python2.7/sasmodels/generate.py"", line 908, in make_html File ""/Users/pkienzle/Desktop/SasView 4.0.1.app/Contents/Resources/lib/python2.7/sasmodels/rst2html.py"", line 94, in rst2html File ""docutils/core.pyc"", line 448, in publish_parts File ""docutils/core.pyc"", line 662, in publish_programmatically File ""docutils/core.pyc"", line 219, in publish File ""docutils/writers/__init__.pyc"", line 80, in write File ""docutils/writers/html4css1/__init__.pyc"", line 179, in translate File ""docutils/writers/html4css1/__init__.pyc"", line 182, in apply_template IOError: [Errno 20] Not a directory: 'lib/python2.7/site-packages.zip/docutils/writers/html4css1/template.txt' }}} The reason is that the supporting css and template files are in the library zip bundle, and so are not accessible using normal os file I/O. The documentation already says ""developer version only"" for this feature, so at least users will not be surprised that it is not working. Rather than hacking the package so that support files can be loaded from the zip, or otherwise figuring out which support files are needed, storing them separately, and redirecting the package to look in the new location, we could distribute the application like a virtual environment with its own private python interpreter and site-packages directory. This way the packages themselves could manage their own support files using pip install. Once this is set up the release version will be much more similar to the development version, which should mean much fewer instances of something working for developers and not for users. " pkienzle Milestone SasView Next Release +1 982 random model generation needed for rpa, spherical_sld and onion SasView defect new 2017-08-02T01:01:04-04:00 2017-08-07T10:45:05-04:00 "Hand-tuned random model generators have not been defined for rpa, onion or spherical_sld. See *random* function in core_multi_shell model definition for an example of how to define random generators for multiplicity models." pkienzle Milestone SasView Next Release +1 1001 allow mixtures with some components being P*S sasmodels defect new 2017-09-25T13:35:45-04:00 2018-07-03T08:46:25-04:00 "The following model is not parsed properly in sasmodels.core.load_model_info, and cannot be processed by sasmodels.mixture: ```cylinder + core_shell_sphere@hardsphere``` " pkienzle Milestone SasView Next Release +1 1177 array distribution not respecting hard limits on parameter SasView defect new 2018-09-17T10:34:44-04:00 2018-09-17T10:34:44-04:00 "In `sasmodels.sasview_model.SasviewModel._get_weights` the array distribution values are returned directly as the weights for the parameter regardless of what hard limits are set in the model definition file. This is not a problem, since most models that have hard limits also have a test for VALID that keeps the parameters within the hard limits. Note that the `weights.ArrayDistribution` class does respect the hard limits when returning the distribution, but this is not used in the `SasviewModel._get_weights` method, so the fix should start there." pkienzle Milestone SasView Next Release +1 23 Provide ability to submit bug report directly from SasView SasView enhancement ajj accepted 2012-03-29T05:26:05-04:00 2017-03-07T18:00:16-05:00 There should be a means of submitting bug reports directly from !SasView. These should probably go directly into Trac with some tag to allow someone to sort and classify them ajjackson Milestone SasView Next Release +1 66 Add two Yukawa potential model SasView enhancement assigned 2012-05-06T09:51:45-04:00 2015-08-14T14:23:08-04:00 The two Yukawa interaction potential model is in IGOR and has been requested to be added to SansView models. butlerpd Milestone SasView Next Release +1 243 Add Pegylated Vesicle Model SasView enhancement Gonzalez new 2014-04-05T04:39:42-04:00 2019-03-02T18:14:56-05:00 "Current vesicle model assumes only allows for ""solid layers"" New model adds polymer type inclusions with a ""corona type"" shell inside and outside the vesicle." butler Milestone SasView Next Release +1 289 Add model for cubic sponge phase SasView enhancement none assigned 2015-01-12T01:00:37-05:00 2019-03-25T11:46:30-04:00 "Student of Tommy Nylander, Maria Valldeperas, has asked to be able to add a model for her system which is a cubic sponge phase of lipids. Might be doable with python, but I suspect that some polydispersity will be needed from previous fitting of these systems that Tommy is working on. Paper attached." ajj Milestone SasView Next Release +1 350 resolution for SESANS model SasView enhancement new 2015-02-18T10:59:22-05:00 2016-06-21T07:15:23-04:00 Include resolution into SESANS calculations, taking into account the divergence and the wavelength distribution. pkienzle Milestone SasView Next Release +1 351 SESANS for anistropic scattering SasView enhancement new 2015-02-18T11:01:31-05:00 2016-06-21T07:12:50-04:00 Write a wrapper for anisotropic scattering samples to convert sasmodels to SESANS. This involves a 2 D cosine integration. pkienzle Milestone SasView Next Release +1 427 custom resolution is disabled for batch fits SasView enhancement new 2015-06-16T20:11:06-04:00 2015-06-16T20:11:06-04:00 Adrian Rennie pointed out that custom (pinhole or slit) is not enabled on the batch fit page. This was probably turned off on the grounds that it is unlikely that a custom smear would be the same for all files. However for slit smeared it is quite likely that it would apply to all files, while most batch fitting is probably going to be applied to a series of data taken at once at one configuration so even the custom pinhole is likely to be a reasonable choice. butler Milestone SasView Next Release +1 477 allow user defined models to set there own html markup on units SasView enhancement new 2015-11-20T17:01:44-05:00 2019-03-01T17:38:57-05:00 "Currently if you want to do something fancy like $\Ohm^{-1}^$ for the units in the documentation you need to modify generate.py and add an entry to the RST_UNITS map, converting the GUI form name 1/ohm that is stored in the parameter definition to the appropriate markup in html file. We can extend the unit definition field so that it contains ""units|markup"", and parse it into two different properties when the model is loaded, one for the GUI and one for the documentation. This only matters for third-party models; for now we can update generate.py as needed." pkienzle Milestone SasView Next Release +1 560 extend core multi-shell model to support spline functions. SasView enhancement new 2016-04-15T08:19:07-04:00 2019-03-02T17:58:40-05:00 "Add a polynomial order parameter to the core multi-shell model to support spline functions {{{ sld_core radius sld_solvent form=['shells','ramp','quadratic spline','cubic spline'] n_shells thickness[n_shells] sld_surface[n_shells] }}} Form=0 is a series of shells, like the core multi-shell model, otherwise the SLDs match at the interfaces, with form=1,2,3 as linear, quadratic and cubic splines. Use a [https://en.wikipedia.org/wiki/Monotone_cubic_interpolation monotone cubic spline] for easier control (available in bumps.mono). Using a generic polynomial spline, {{{ rho_i(r) = A_i r^p + B_i r^(p-1) + … }}} the integral from 0 to r_max is {{{ f = f_core - f_solvent + Sum [h(rho_i, r_(i+1)) - h(rho_i, r_i)] }}} with {{{ h(rho,r) = (4 pi)/q^2 Sum_(k=0)^p d^k[-cos(q r)]/dr^k d^k[r rho(r)]/dr^k / (q r)^k }}} For cubic polynomials, this works out to {{{ h(r) = (4 pi) / q^6 [ - cos(qr) (Ar^4 + Br^3 + Cr^2 + Dr) q^4 + sin(qr) (4Ar^3 + 3Br^2 + 2Cr + D) q^3 + cos(qr) (12Ar^2 + 6Br + 2C) q^2 - sin(qr) (24Ar + 6B) q - cos(qr) (24A) ] }}} The terms can be rearranged using the difference in coefficients between layers Delta A, Delta B, … so we only need one evaluation of h for each shell." pkienzle Milestone SasView Next Release +1 566 Need to gather requirements for crystal and flux line analysis (a la GRASP) SasView enhancement new 2016-04-26T09:51:06-04:00 2016-04-26T09:51:06-04:00 Users at SNS have been interested in tools to look at their flux line data. !SasView has several tools already that could be useful in a rather rudimentary state, particularly the 2D slicer tools. A fair amount of functionality could be added to the tools to make them much more feature rich and useful. Before embarking on such a project it would be helpful to talk also to ILL and PSI folk who also do these kinds of SANS measurements to get a good overview of what would be most helpful/useful butler Milestone SasView Next Release +1 574 make model help available for custom models SasView enhancement new 2016-05-17T16:22:21-04:00 2018-09-09T13:06:41-04:00 "Documentation for custom models does not currently appear in sasview help. Using docutils, we can convert docstrings on the fly to html. The basic mechanics are easy: {{{#!python from docutils import core def convert(rst): # use replace_dollar from docs/_extensions/dollarmath.py # or configure mathjax to convert values between $$ to math rst = replace_dollar(rst) parts = core.publish_parts(source=rst, writer_name='html') return parts['whole'] }}} There will be some work required to get everything pretty, including proper style sheets and references to images. Also, we won't want to produce the theory plots on the fly every time so they will need to be cached. " pkienzle Milestone SasView Next Release +1 575 run custom model tests when checking model SasView enhancement new 2016-05-20T18:54:45-04:00 2016-05-20T18:54:45-04:00 "The code in sasgui/perspectives/calculator/pyconsole.py loads and runs the model when editing is complete but it does not run the tests that are recorded in the model. Rearrange the code in sasmodels/model_test.py so that it can be called from sasview on custom models. This could be done either within the unittest framework, or by moving the test cases out of the unittest framework so that they can be called from unittest, from the gui and from the sasmodels command line. Verbose output showing q -> I(q) for each test would be best. " pkienzle Milestone SasView Next Release +1 577 support simultaneous install of different versions SasView enhancement new 2016-05-23T10:58:11-04:00 2017-10-27T04:57:37-04:00 "Particularly for users who are testing new features before they are released, it would be convenient to be able to install multiple versions of !SasView at the same time. Pre-release versions should be marked with the date and the git key so that we know which version has errors and how old it is." pkienzle Milestone SasView Next Release +1 857 warn when model is outside valid range of q or parameters SasView enhancement new 2017-02-21T08:16:54-05:00 2017-10-27T06:29:07-04:00 "Some models are only valid over a limited range of q, or over a limited range of parameters. Provide a mechanism to warn the user that the model parameters are out of range. This needs to be part of the sasmodels.modelinfo.!ModelInfo interface." pkienzle Milestone SasView Next Release +1 908 Scripts for release SasView enhancement ajj new 2017-04-02T11:34:12-04:00 2019-02-26T07:28:31-05:00 "Write scripts to manage release process including - creating release on github - taking release notes from repo - making zenodo release Need to see if zenodo has a means of testing API access without issuing dois" ajj Milestone SasView Next Release +1 1151 Add pivot point to power law model to reduce parameter correlations SasView enhancement new 2018-08-03T11:25:33-04:00 2018-08-03T11:25:33-04:00 "Playing with power law and DREAM, I see a strong negative correlation between scale and power. This correlation can be removed by defining a pivot point in the center of the data so that power rotates the log-log curve around this point and scale shifts it up and down: {{{ I(q) = scale * (q/pivot)**(-power) + background }}} If you pick the pivot in the middle of the q range then fit scale and power, the result is a nicely independent correlation plot with no change in the uncertainty of the fitted power. The correlations get stronger the further the pivot is from the center. Default pivot to one for the existing behaviour. The fitted scale value should be near the measured {{{I(pivot)}}}. Similar parameters from other models: peak_pos: broad_peak, gaussian_peak, peak_lorentz q_0: spinodal " pkienzle Milestone SasView Next Release +1 1215 Clean unused set_fit_weight() parameters SasView enhancement mathieu new 2018-11-14T06:42:20-05:00 2018-11-14T06:42:20-05:00 "The `Plugin.set_fit_weight()` method has an unused `fid` parameter. We should clean this up and look for other related code that is no longer in use. The `set_fit_weight()` method can be found here: `src/sas/sasgui/perspectives/fitting/fitting.py`" mathieu Milestone SasView Next Release +1 266 Add Star Polymer with Excluded Volume Model SasView enhancement new 2014-06-12T07:25:17-04:00 2017-08-26T14:22:18-04:00 "A bunch of folks at ORNL (including Greg Smith) and NIST (Yun Liu) have come up with a form factor for a star polymer with self-avoiding branches which is better than the Benoit Star model already in !SasView (and more useful than the Dozier model which isn't). Li, Do, Liu, Sanchez-Diaz, Smith, Chen A Scattering Function of Star Polymers with Excluded Volume Effect arXiv:1404.6269 [physics.chem-ph] " smk78 Milestone SasView WishList 1082 Improve traceability of SasView output SasView defect new 2018-03-20T09:25:50-04:00 2018-03-20T09:25:50-04:00 "We should provide information about the version of !SasView used, and on what platform, in some of the output from !SasView. This would aid bug tracing and helping with user queries. It would also be disciplined and professional. :-) The pdf report is an obvious candidate, but in the section of the xml files too (as Mantid does) would be good." smk78 Milestone SasView WishList 31 Allow single step option during fitting SasView enhancement new 2012-03-29T16:19:04-04:00 2017-02-28T16:29:38-05:00 Richard Heenan points out that it can be very useful when fits go awry to be able to single step through each iteration, with a rewind option. butlerpd Milestone SasView WishList 611 more typical C code for kernels SasView enhancement new 2016-08-08T10:39:40-04:00 2016-08-08T10:39:40-04:00 "Kernel models could use #include instead of sources = [...]. Make include of sasmodels.h explicit rather than implicit. Kernels embedded in python should use: kernel = """""" #include ... ...typical C code complete with function declarations... """""" rather than Iq = """"""...function body with implied parameters..."""""" Iqxy = """"""...function body with implied parameters..."""""" Maybe reconsider automatic string translation from double to float in models, and instead use typedef'd ""real"". Figure out how to get library-like behaviour so that sas_erf.c is only included if the sas_erf function is used in the code. The use of includes and the fake librarian will require a lot more inspection of the C code, so may not be worthwhile given the minor improvements to in the naturalness of the C code." pkienzle Milestone SasView WishList 1002 Implement multi-phase fractal model sasmodels enhancement new 2017-09-27T03:53:55-04:00 2019-03-02T18:18:00-05:00 The JINR folks have developed a model somewhat complementary to the Beaucage model. It handles the case of two co-existing fractal systems, separated or one inside the other. smk78 Milestone SasView WishList 44 Need to review all uses of pop-up information and the information bar SasView task new 2012-03-29T18:44:23-04:00 2017-01-17T06:05:47-05:00 A full review of the use of pops for information/warning and the information bar needs to be made, and a consistent policy developed on when to use which venue (or when/if to use both). Items showing up in the info bar currently get recorded in a log. Do the popups? Pop ups can be annoying, but in many cases, if the user is expecting something to happen but nothing is because of some error, a popup is the correct solution. extra information should be put on the info bar rather than constantly popping stuff at the user. butlerpd Milestone SasView WishList 496 Remove mutable default arguments in function definitions SasView defect new 2016-01-22T07:02:51-05:00 2017-10-27T06:57:10-04:00 "This is asking for trouble and should be addressed sooner than later. Multiple occurrences, e.g. in !BumpsFitting.py !SasFitness.__init__(), all methods in instrument.py etc. http://docs.python-guide.org/en/latest/writing/gotchas/ " piotr Milestone SasView WishList 972 explore -cl-uniform-work-group-size compiler option SasView defect new 2017-06-01T14:24:07-04:00 2019-03-01T17:50:18-05:00 "Docs says: This requires that the global work-size be a multiple of the work-group size specified to clEnqueueNDRangeKernel. Allow optimizations that are made possible by this restriction. I believe we are already doing this since some drivers were failing when the length of the q array was not a multiple of 32. Instead we check whether we are beyond the end of the array when we enter the kernel. If other drivers can benefit from this with a speed improvement or smaller code size it should be easy to implement." pkienzle Milestone SasView WishList 30 Allow user changing of default model parameters SasView enhancement new 2012-03-29T16:15:43-04:00 2017-02-14T17:26:40-05:00 Adrian Rennie points out that when doing extensive fitting on a project it would be nice to be able to change the default parameters for a model (copy paste only does so much). This probably should be viewed in a larger context of saving individual preferences which can be changed on the fly and are read at startup. butlerpd Milestone SasView WishList 64 Clever default behavior for batch and parametric table and plots SasView enhancement jhjcho assigned 2012-05-06T09:47:30-04:00 2017-01-17T06:05:47-05:00 It is now easy to add error bars on the batch parametric plots. Since in most cases the fit parameter being plotted has an associated (default hidden) error column, it would be nice to have some more intelligence such as autoplotting of associated error and auto renaming columns in the selection range when a column is inserted (i.e. I[2:18] becomes J[2:18] when a column is inserted before I. butlerpd Milestone SasView WishList 100 Add ChenFractal Model SasView enhancement new 2012-09-13T17:45:51-04:00 2017-01-17T06:05:47-05:00 Ticket #84 was to include several new models into SansView ver 2.2. Several did and that ticket was closed. however the ChenFractal model remains one that is desired. Also the FractalO_Z was removed from the GUI as it appears to be the same as an existing model so need to figure out which should be the one to use or if they are in fact truly different. Fortran code is attached to ticket #84 butlerpd Milestone SasView WishList 917 Nexus Support for SESANS SasView enhancement awashington new 2017-04-04T09:43:16-04:00 2017-04-04T10:53:39-04:00 "Currently, the SESANS data are stored in their own format with its own reader. Storing the SESANS data in a Nexus format would present multiple advantages * Multiple runs could be combined into the same file. This could allow SANS and SESANS on asample to be stored in a single file. Alternately, position scans or temperature series could be stored within one file. *: Less Code would be needed. The hope is that the SESANS data will sit as a small addition on top of the current Nexus code, instead of its own 174 line module with separate parsing logic * The files will have better interoperability with other software. The SESANS data could be loaded into standard nexus readers (e.g. HDFView) without needing any new code. Similarly, other scattering software which currently support nexus files will be more likely to enhance that functionality with support for SESANS files than to add an entirely new file format. With these advantages come one major disadvantage: The NxCanSAS format, as it stands, is inappropriate for SESANS and there is not currently accepted alternative standard. A new format can be proposed at hte next CanSAS meeting, but proposals always carry more weight when acompanied with a working prototype." awashington Milestone SasView WishList 1092 Add fractional bin support to dataloader manipulations SasView enhancement awashington new 2018-04-16T02:47:51-04:00 2018-04-16T02:52:55-04:00 The Ring class in sas/sascalc/dataloader/manipulations.py allows for determining intensity as a function of angle on a 2D detector. The current implementation, however, doesn't account for fractional pixels. The counts are all allocated to an infinitesimal point in the center of the pixel which is either completely inside or outside the region of interest. Allowing for fractional pixels would remove aliasing from this calculation. awashington Milestone sasmodels 1.0 1120 beta(Q) approx models to edit sasmodels enhancement richardh new 2018-07-01T15:35:14-04:00 2018-10-30T16:42:20-04:00 "Need add lists here of high, medium and low priority models to edit. Note unit tests for P(Q)S(Q) are part of #1063 " richardh Milestone sasmodels 1.0 1121 validation of beta(Q) and other calculations against external code sasmodels enhancement new 2018-07-01T15:39:33-04:00 2018-10-30T16:43:13-04:00 "Please document here detail results of testing against sasfit, Fish, own matlab codes etc, especially noting where issue were found and how these were resolved. This will provide background information for sasview & sasmodels documentation." richardh Milestone sasmodels 1.0 807 Failing sasmodels unit tests on Intel(R) Iris(TM) Graphics 6100 sasmodels defect new 2016-11-17T06:08:08-05:00 2017-10-24T13:46:08-04:00 "Three sasmodels unit tests are failing on my hardware: Intel(R) Iris(TM) Graphics 6100 Mac OSX 10.11. They work fine on CPU when compiled both with dll and opencl. I am running tests from sasmodels dir: python -m sasmodels.model_test all ====================================================================== FAIL [0.016s]: test_core_shell_cylinder_opencl (__main__.ModelTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File ""/Users/wojciechpotrzebowski/SASVIEW_WORKSPACE/sasmodels/sasmodels/model_test.py"", line 181, in run_all self.run_one(model, test) File ""/Users/wojciechpotrzebowski/SASVIEW_WORKSPACE/sasmodels/sasmodels/model_test.py"", line 229, in run_one 'invalid f(%s): %s' % (xi, actual_yi)) AssertionError: invalid f((0.1, 0.1)): nan Model: core_shell_cylinder, Kernel: OpenCL ====================================================================== FAIL [0.061s]: test_parallelepiped_opencl (__main__.ModelTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File ""/Users/wojciechpotrzebowski/SASVIEW_WORKSPACE/sasmodels/sasmodels/model_test.py"", line 181, in run_all self.run_one(model, test) File ""/Users/wojciechpotrzebowski/SASVIEW_WORKSPACE/sasmodels/sasmodels/model_test.py"", line 239, in run_one % (xi, yi, actual_yi)) AssertionError: f((-0.16022872310938674, 0.11969442882079129)); expected:0.00560296014; actual:0.001 Model: parallelepiped, Kernel: OpenCL ====================================================================== FAIL [0.014s]: test_raspberry_opencl (__main__.ModelTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File ""/Users/wojciechpotrzebowski/SASVIEW_WORKSPACE/sasmodels/sasmodels/model_test.py"", line 181, in run_all self.run_one(model, test) File ""/Users/wojciechpotrzebowski/SASVIEW_WORKSPACE/sasmodels/sasmodels/model_test.py"", line 229, in run_one 'invalid f(%s): %s' % (xi, actual_yi)) AssertionError: invalid f(0.1): nan Model: raspberry, Kernel: OpenCL " wojciech Milestone sasmodels 1.0 1039 more complete testing in sasmodels sasmodels defect new 2017-11-30T09:45:05-05:00 2017-11-30T09:45:05-05:00 "Current automated testing is only looking at models. * Should use nosetest on all of ```sasmodels/*.py```. * Use ```--with-doctest``` in case any functions come with doc tests. * There may be doctests in the sphinx tree, which can be discovered with ```--doctest-extension=rst```. * Automate tests of the examples. * Examples should be pulled into the docs, possibly using ```bumps/doc/pylit.py``` to convert a runnable example into an rst file. " pkienzle Milestone sasmodels 1.0 1078 name collision on multiuser system sasmodels defect new 2018-03-05T16:40:20-05:00 2018-03-05T16:43:57-05:00 "On a linux system the compiled models are placed in `/tmp/MODELNAME.so`. If one user creates a model and another user updates it, there will be a permission collision. Also, what happens to the .so if the plugin model has the same name as a builtin model?" pkienzle Milestone sasmodels 1.0 1193 improve implementation of Si and JN SasView defect new 2018-10-12T14:17:10-04:00 2018-11-15T09:25:24-05:00 sasmodels implementation of Si and JN are very badly behaved across much of their range. pkienzle Milestone sasmodels 1.0 1226 aliasing problem in 2D q rotation? SasView defect new 2019-02-14T23:00:49-05:00 2019-03-01T18:07:40-05:00 "Consider the following image: there appears to be an aliasing problem depending on quadrant. Created using: ` sascomp ellipsoid -2d -nq=128 theta=60 phi=45 -pars -midq radius_polar=250 theta_pd=5 -double!` The problem persists in single precision running on the GPU and long double precision running on the CPU.  It is still there for -nq=127. It is less visible for -nq=256.   It does not appear to be a plotting issue." pkienzle Milestone sasmodels 1.0 1232 canted particles in radial geometry sasmodels defect new 2019-02-20T21:01:33-05:00 2019-03-01T17:56:44-05:00 "In the radial geometry the beam travels through the Couette cell, scattering from both left-to-right and right-to-left flow, so the particle needs to be modeled by adding forward and reverse scattering in equal portion; this will be particularly evident for canted particles, leading to a twinned image on the detector. We should be able to handle this after the model is calculated using `I(qx, qy) + I(-qx, qy)`. This is pretty simple if the beam is centered on the detector because we can just add the computed image to its reverse. Any shift or rotation in the detector, though, makes it pretty messy. Easiest to just compute the pattern twice, once with `+qx` an again with `-qx` in that case, but this guarantees 2x cost. Otherwise we need to do a bunch of checks to select a set of qx-qy values to compute and interpolate within them for the `qx,qy` we need. " pkienzle Milestone sasmodels 1.0 1267 OpenCL driver null when running GPU test sasmodels defect wojciech assigned 2019-03-29T10:07:54-04:00 2019-03-29T10:19:20-04:00 When running GPU test OpenCL driver (clinfo) returns null. It seems like it is related to recent change in sasmodels.kernelcl.enviroment() change wojciech Milestone sasmodels 1.0 491 adding support for F(Q) in sasmodels sasmodels enhancement wojciech assigned 2015-12-19T12:07:45-05:00 2019-03-01T17:25:12-05:00 "I(Q) is proportional to F(Q)^2^ Hence our models return that. However there are times when it may be preferable to have access to the F(Q). For example it is required for the beta approximation (increasing the range of applicability for using most current interaction potentials) or if one wanted to use these as a library for building P(Q) for more complex shapes. Providing a method to access the underlying F(Q) thus would be very useful." butler Milestone sasmodels 1.0 716 reuse computed I(qx,qy) values when computing 2D resolution sasmodels enhancement new 2016-10-06T10:25:53-04:00 2019-03-01T18:09:26-05:00 "sasmodels/resolution2D.py sets the calculated qx,qy points by drawing NR x NPHI points around each measured point qx,qy. This means that the 2D pattern is computed 12, 30, 60, or 200 times depending on the choice of accuracy. Rather than blindly drawing this many points around each qx,qy, we should first check if there are enough points already being computed in the pattern, and only add points where more are needed. This has the potential for significant speedup of 2D calculations when the resolution is worse than the pixel spacing." pkienzle Milestone sasmodels 1.0 727 Check that Flexible Cylinders converges to cylinder model sasmodels enhancement dirk new 2016-10-07T11:54:12-04:00 2019-03-02T18:04:26-05:00 The Kuhn parameter ''b'' parametrizes the stiffness of the rod with length ''L''. For a Kuhn parameter of ''b''=2*''L'' the result should converge to the simple cylinder model, but it does not. There seems to be a numerical issue such that an artefact bumb appears at low ''q''. dirk Milestone sasmodels 1.0 1014 set order of integration based on q and r SasView enhancement new 2017-10-24T13:54:11-04:00 2017-10-24T13:54:11-04:00 "In lieu of full adaptive integration, set the order of integration for theta and phi based on q value and particle dimensions. Cutoff values for increasing the order will need to be determined on a model by model basis. Certain models may have simple approximations such as those for long cylinders or large disks that can be used instead of the integral." pkienzle Milestone sasmodels 1.0 1231 cross-check partially oriented 2D models against other software sasmodels task new 2019-02-20T20:31:29-05:00 2019-03-02T18:05:42-05:00 "There are at least two other packages that support 2D scattering patterns for partially oriented shapes. We could cross check our capabilities/results against these packages. Scatter: http://dx.doi.org/10.1107/S0021889810008289 SASET: http://dx.doi.org/10.1107/S0021889813016658 " pkienzle Milestone sasmodels 1.0 1077 model name must be a valid C identifier sasmodels defect new 2018-02-27T15:34:39-05:00 2018-02-27T15:34:39-05:00 "Clean up model name/id/filename handling, and warn user cleanly if anything is amiss. The sasmodels compiler raises an error when loading a plugin model with spaces in its name, but it reports as a missing semicolon in the kernel_iq.c file which the user did not touch. The real error is in the python file defining the model, so the message is confusing to the user. The distinction between model name and model id has become muddy. Originally the id was to be the internal name that was a proper identifier and the name was the display name that was shown in the user interface. At some point the system evolved so that name is used for both and id is (mostly?) ignored. However, old code for generating a nice display name if one was not provided in the file is still active, which puts spaces between words and capitalization of the first word. The result is that if the name is not present, the model may give the missing semicolon error. An additional wrinkle: the internal name must match the filename so we can find the model definition without having to load all models. " pkienzle Milestone sasmodels 1.0 1040 resolution documentation is in two places sasmodels enhancement new 2017-11-30T09:59:48-05:00 2017-11-30T09:59:48-05:00 "In the documentation for the resolution calculator (sasgui/perspectives/calculator/media) there are some diagrams that would be useful to include in the sasmodels description of resolution. Check that these two docs are consistent, and maybe put the theory description entirely in sasmodels and reference it from the resolution calculator docs. Similarly, ```gen_mag_pic.png``` in this directory is very similar to the ```M_angles_pic.png``` file in sasmodels. Maybe reference the magnetic scattering theory in sasmodels from sas_calculator_help? The general scattering theory would also be useful to have in sasmodels." pkienzle Milestone sasmodels 1.0 1265 Add superball form factor sasmodels enhancement DomiDre new 2019-03-29T06:14:08-04:00 2019-03-29T06:33:25-04:00 A superball represents a cube with rounded edges and transforms from a sphere to a cube by a single parameter with the definition x^(2p) + y^(2p) + z^(2p) <= R^(2p). DomiDre Milestone sasmodels Next Release +1 1118 middle level - sort out P(Q)S(Q) including beta(Q) sasmodels enhancement richardh new 2018-07-01T15:29:03-04:00 2018-10-30T16:41:50-04:00 "See general introduction to beta(Q) project in #1096 Need technical details here as to what to change in what order to develop product.py and other (?) routines to achieve immediate goals of simple sphere, cylinder & ellipsoid times simple S(Q) but keeping in mind some longer term goals for more options and improved usage of gpu (#1091, #392 ) Ideally any calculation of I(Q) should only have one ""flat background"" at the end, but we may have to stick with each P(Q) carrying a flat background around with it.  Some detail discussion and use cases are required here." richardh Milestone sasmodels Next Release +1 670 allow multiple array dispersity parameters SasView defect new 2016-09-28T07:16:34-04:00 2016-10-11T11:02:28-04:00 "The current implementation of fitpage (sasview 4.0) keeps a single values and weights vector that is shared by all array dispersion parameters. This means only one parameter can have array polydispersity. Rather than keeping polydispersity information in the !FitPage attributes, query and update it directly from the sasview_model. That way the model distribution parameter can maintain separate array distributions for each parameter. !PageState and the XML representation will need to be updated so that each distribution can have its own parameters. You may also want to rearrange the hierarchy so that the parameter contains the distribution rather than associating parameter and distribution through parameter name. " pkienzle Milestone sasmodels Next Release +1 771 Add new library routines to sasmodels SasView defect wojciech new 2016-10-11T07:52:15-04:00 2016-10-11T07:52:15-04:00 several new library routines have been developed that mostly support both GPU and CPU and which are needed by a number of SASfit models that we expect to be uploaded to the marketplace. These should be added to the sasmodels library for general use butler Milestone sasmodels Next Release +1 1048 pure python models do not support magnetism or orientation SasView defect new 2017-12-14T13:30:08-05:00 2017-12-14T13:30:08-05:00 "Code from kernel_iq.c has not been ported to kernelpy.py. In particular, the new orientation and magnetism algorithms do not apply to pure python models. " pkienzle Milestone sasmodels Next Release +1 1049 use #include rather than source=[] for C libraries sasmodels defect new 2017-12-14T13:56:33-05:00 2017-12-14T13:56:33-05:00 "Since OpenCL supports #include, we should set up the library functions so that they can be #included into the kernel source. Although it is still odd that we are including the .c files (normal includes are .h files giving the function signature, leaving it to the linker pulls the relevant object files from a library), it is a little less strange than the {{{source=['lib/sasfile.c', ...]}}} strategy that we are currently using. All library files will need to have protection against multiple #includes. A new dependency mechanism will be needed so that models are recompiled if an included file is updated, no matter how many levels deep the include occurs." pkienzle Milestone sasmodels Next Release +1 1096 improve structure factor calculations with beta approximation sasmodels defect new 2018-04-18T09:08:39-04:00 2018-10-30T16:44:25-04:00 Separate calculation of {{{F}}} so we can return {{{}}} and {{{}}} from the {{{I(q)}}} calculator. These will be used for an improved structure factor calculation with non-spherical particles. The average {{{<.>}}} is over size dispersity and orientation. pkienzle Milestone sasmodels Next Release +1 1198 better gpu timeout selection sasmodels defect new 2018-10-15T11:46:53-04:00 2019-03-01T18:00:21-05:00 "When using a GPU device that is attached to a monitor, the OpenCL driver (and maybe the CUDA driver) will halt the calculation after a timeout even if it is not completed, with no indication that the computation timed out. On some platforms it has triggered a system reboot. To prevent this, there is a timeout loop in sasmodels/kernelcl.py (and kernelcuda.py for the cuda-test branch) which breaks after every n kernel evaluations. The problem is that there is no fixed value for ""n"" which is optimal for all models and all platforms. If the value is too low, there is significant overhead (30x slowdown on a GTX-1080 for example), but if the value is too high then some platforms might crash. Need more control over this value. Ideally, ask the card to fail nicely, but otherwise provide a ""computational power"" scaling to the number of function evaluations allowed. Could set the scale factor to infinite for headless GPUs (there is no timeout when a monitor is not attached to the card). That will interfere with Ctrl-C handling, but that should not be a problem for environments where a headless GPU is available." pkienzle Milestone sasmodels Next Release +1 713 Orientational Distribution for Magnetic Models sasmodels enhancement dirk new 2016-10-06T08:00:53-04:00 2019-03-01T18:04:39-05:00 Magnetic models need the angular orientational distribution of magnetic moments around the magnetic field axis. dirk Milestone sasmodels Next Release +1 724 Broad Peak Model sasmodels enhancement none assigned 2016-10-07T09:26:40-04:00 2019-03-02T18:52:56-05:00 "Idea is to build a generalised Broad Peak Model with the following function: I(q) = scale_p/pow(q,exponent)+scale_l/pow((1.0 + pow((fabs(q-q_peak)*length_l),exponent_l) ),exponent_p)+ background For qpeak = 0, m = 2 and p = 1 one gets the Lorentz model. For qpeak = 0, m = 2 and p = 2 The Broad-Peak model is identical to the Debye- Anderson-Brumberger (dab) model. Like this you then can save these two models." dirk Milestone sasmodels Next Release +1 725 Core Shell Microgel Model sasmodels enhancement none assigned 2016-10-07T09:30:58-04:00 2019-03-02T18:51:49-05:00 "The Core Shell Microgel Model does not exist in Sasview. It describes a core shell structure with fuzzy interfaces of core and shell. See: Ingo Berndt, Jan Skov Pedersen, Peter Lindner, and Walter Richtering. Infuence of shell thickness and cross-link density on the structure of temperature-sensitive poly-n-isopropylacrylamidepoly-nisopropylmethacrylamide coreshell microgels investigated by small-angle neutron scattering. Langmuir, 22(1):459{468, 2006. PMID: 16378460. Ingo Berndt, Jan Skov Pedersen, and Walter Richtering. Structure of multiresponsive intelligent? coreshell microgels. Journal of the American Chemical Society, 127(26):9372{9373, 2005. PMID:15984856. Ingo Berndt, Jan Skov Pedersen, and Walter Richtering. Temperature-sensitive coreshell microgel particles with dense shell. Angewandte Chemie, 118(11):1769{1773, 2006." dirk Milestone sasmodels Next Release +1 726 Structur Factor of magnetic spin misalignment sasmodels enhancement dirk new 2016-10-07T09:37:51-04:00 2019-03-02T18:20:34-05:00 There exist magnetic structure factor model describing the magnetic misalignment in a ferromagnetic bulk material arising from particle with magnetocristalline anisotropy. Moreover there exist another magnetic structure factor decribing spin canting due to magnetostatic dipolar fields around mmagnetic inhomogeneities. See A. Michels, Magnetic small-angle neutron scattering of bulk ferromagnets, J. Phys.: Condens. Matter 26, 383201 (2014) (and references therein). dirk Milestone sasmodels Next Release +1 926 draw orientation diagrams with interactive svg SasView enhancement new 2017-04-06T06:49:23-04:00 2019-02-04T15:38:29-05:00 "Orientation diagrams for the different shapes will be easier to understand if the user can adjust the orientation parameters to see how the shape moves with respect to the beam and the detector. This can be done with an svg diagram, which allows interactors with javascript callbacks. E.g., http://www.kevlindev.com/geometry/3D/js3d/index.htm For generating the pdf, these would have to be converted to png files for the default orientation prior to building the pdf, probably by using convert from ImageMagick: http://tex.stackexchange.com/questions/2099/how-to-include-svg-diagrams-in-latex Maybe need a sphinx plugin to automate this." pkienzle Milestone sasmodels Next Release +1 1234 add orientation distributions for Jeffery orbits sasmodels enhancement new 2019-02-25T10:29:46-05:00 2019-02-26T11:10:05-05:00 "Ellipsoids in shear will exhibit tumbling with period related to the shear and aspect ratio. The distribution shape will change with aspect ratio. Need to create theta and phi distribution functions that capture joint distribution and check that they are separable (or nearly so). If not, need to figure out how to handle joint distributions on theta and phi is sasmodels. The work-around is to implement an Iqxy function which has parameters for the Jeffery distribution, but we will need a separate one for each shape, so not a good long-term solution. The following is a starting point: [Stover1990]: Stover, C.A., Cohen, C., 1990. The motion of rodlike particles in the pressure-driven flow between two flat plates. Rheologica Acta 29, 192–203. https://doi.org/10.1007/BF01331355 " pkienzle Milestone sasmodels Next Release +1 1100 OpenMP is turned off in unix sasmodels defect new 2018-04-27T16:17:49-04:00 2018-04-27T16:17:49-04:00 "Testing the following on unix: {{{ python -m sasmodels.compare cylinder -2d -engine=double,double! }}} the DLL pattern was showing excessive noise. Adding in {{{-poly}}} shows distinct banding patterns. OpenMP is turned off in kerneldll.py until this can be resolved. Not sure how badly this affects performance since frame calculation times are inconsistent." pkienzle Milestone sasmodels WishList 707 Boucher Model sasmodels enhancement none assigned 2016-10-05T16:36:56-04:00 2019-03-02T18:50:51-05:00 "Would be nice to have the Boucher Model in SASView. The reference is B Boucher, P Chieux, P Convert, and M Tournarie. Small-angle neutron scattering determination of medium and long range order in the amorphous metallic alloy tbcu 3.54. Journal of Physics F: Metal Physics, 13(7):1339, 1983." dirk Milestone sasmodels WishList 721 Compare Sasfit with Sasview models sasmodels enhancement dirk new 2016-10-07T07:34:27-04:00 2019-03-02T18:08:09-05:00 Compare SASfit with !SasView models and integrate missing SASfit models in !SasView. A list of !SasView vs. SASFit Models can be found under https://ess-ics.atlassian.net/wiki/display/SAS/SasView-SasFit+Overlapping+Models. dirk Milestone sasmodels WishList 945 autogenerate orientation parameters sasmodels enhancement pkienzle new 2017-04-10T04:21:59-04:00 2019-03-01T18:02:48-05:00 As discussed with Paul Kienzle, the orientation parameters should be autogenerated rather than specifying them in each model. ajj Milestone sasmodels WishList 782 Performance tuning for 2D calculations sasmodels enhancement new 2016-10-14T09:00:42-04:00 2019-02-13T20:35:20-05:00 "Can save 6 trig functions 9 multiplications and 5 additions by precomputing the orientation info for each q point. In absolute terms, it is 325k operations on a 128x128 detector. In relative terms, the fcc mode uses an additional 4 special functions, 49 multiplications and 16 adds, so this could be a 25% speed up. Need to transform: {{{ q = sqrt(qx*qx + qy*qy); const double qxhat = qx/q; const double qyhat = qy/q; double sin_theta, cos_theta; double sin_phi, cos_phi; double sin_psi, cos_psi; SINCOS(theta*M_PI_180, sin_theta, cos_theta); SINCOS(phi*M_PI_180, sin_phi, cos_phi); SINCOS(psi*M_PI_180, sin_psi, cos_psi); cos_alpha = cos_theta*cos_phi*qxhat + sin_theta*qyhat; cos_mu = (-sin_theta*cos_psi*cos_phi - sin_psi*sin_phi)*qxhat + cos_theta*cos_psi*qyhat; cos_nu = (-cos_phi*sin_psi*sin_theta + sin_phi*cos_psi)*qxhat + sin_psi*cos_theta*qyhat; }}} Into a precompute phase: {{{ double sin_theta, cos_theta; double sin_phi, cos_phi; double sin_psi, cos_psi; SINCOS(theta*M_PI_180, sin_theta, cos_theta); SINCOS(phi*M_PI_180, sin_phi, cos_phi); SINCOS(psi*M_PI_180, sin_psi, cos_psi); alpha_x = cos_theta*cos_phi; alpha_y = sin_theta; mu_x = -sin_theta*cos_psi*cos_phi - sin_psi*sin_phi; mu_y = cos_theta*cos_psi; nu_x = -cos_phi*sin_psi*sin_theta + sin_phi*cos_psi; nu_y = sin_psi*cos_theta; }}} and a compute phase: {{{ q = sqrt(qx*qx + qy*qy); const double qxhat = qx/q; const double qyhat = qy/q; cos_alpha = alpha_x*qxhat + alpha_y*qyhat; cos_mu = mu_x*qxhat + mu_y*qyhat; cos_nu = nu_x*qxhat + nu_y*qyhat; }}} For polydisperse systems, need to precompute for each independent (theta,phi,psi) triple, but this can be done in parallel. For polydisperse systems, can save a sqrt, 4 multiplies and an add by precomputing q, qxhat and qyhat for each point. Again, this can be done in parallel. Could be implemented using global working memory (ticket #679)." pkienzle Milestone sasmodels WishList 783 Performance tuning for 1D calculations sasmodels enhancement new 2016-10-14T09:34:24-04:00 2016-10-14T09:34:24-04:00 "Many of the 1D calculations involve nested integrals over a fixed set of theta and phi values, with trig functions to turn these values into something useful for the kernel. For example, the cylinder kernel, 2 trig operations, a multiply and an add can be replaced by two table lookups by converting: {{{ const double zm = M_PI_4; const double zb = M_PI_4; double total = 0.0; for (int i=0; i<76 ;i++) { const double alpha = Gauss76Z[i]*zm + zb; double sn, cn; // slots to hold sincos function output // alpha(theta,phi) the projection of the cylinder on the detector plane SINCOS(alpha, sn, cn); total += Gauss76Wt[i] * square(fq(q, sn, cn, radius, length)) * sn; } return total*zm; }}} into: {{{ double total = 0.0; for (int i=0; i<76 ;i++) { total += Gauss76Wt_times_sin_alpha[i] * square(fq(q, sin_alpha[i], cos_alpha[i], radius, length)); } return total*M_PI_4; }}} To see if this might be worthwhile, I substituted Gauss76Z for the sin and Gauss76Wt for cos, and observed a 64% speedup. It had the wrong answer of course, but it does show that this approach could be worthwhile. " pkienzle Milestone sasmodels WishList 940 fit_one_of function to avoid redundant parameters sasmodels enhancement pkienzle assigned 2017-04-09T02:07:16-04:00 2017-04-10T02:12:30-04:00 " Could put some sort of function in model.py to identify which parameters should not all fit simultaneously, then flag to user as an issue. e.g. for a simple particle: fit_one_of('scale', 'sld', 'sld_solvent') e.g. for a core-shell particle, think might need: fit_one_of('scale', 'sld_core'.AND.'sld_shell'.AND.'sld_solvent') There may be a better way to express this, or a clever way to to this automatically, certainly from the derivatives, or the correlation matrix. Also does not work always, e.g. if sld_shell is fixed at same as sld_solvent then the core/shell system beomes a simple particle, but could add extra logic for this??? " richardh Milestone sasmodels WishList 708 Triaxial ellipsoidal core shell sasmodels task none assigned 2016-10-05T17:05:50-04:00 2019-03-02T18:49:46-05:00 Triaxial ellipsoidal core shell model is missing. dirk