-
Notifications
You must be signed in to change notification settings - Fork 41
PoreSizeDistribution
Implement pore size distribution from Irena: https://saxs-igorcodedocs.readthedocs.io/en/stable/Irena/SizeDistribution.html
The paper most relevant to the implementation of the code is this: https://doi.org/10.1093/mnras/211.1.111 (J Skilling and RK Bryan; MNRAS 211 (1984) 111 - 124.)
Can probably use code from GSAS II for this : https://subversion.xray.aps.anl.gov/pyGSAS/Tutorials/SAsize/Small%20Angle%20Size%20Distribution.htm https://subversion.xray.aps.anl.gov/pyGSAS/trunk/GSASIIsasd.py (search for SB-MaxEnt)
Branch for work on Pore Size perspective : https://github.com/SasView/sasview/tree/poresize/src/sas/sascalc/poresize
Issues related to Pore Size perspective : https://github.com/SasView/sasview/labels/Poresize%20Perspective
Aim is to re-implement the size distribution methods from Irena into SasView. We are calling this pore size, but it is really a general size distribution calculation method, calling it pore size to distinguish it from other size distribution functions that are used for e.g. polydispersity.
Initial work showed that there exists GSAS II code that implements the routines from Irena, but in python. Tests confirmed that the two sets of code produce the same result (or close enough given the method) and so we can make use of the GSAS II code.
Because this is not a model fitting method - we do not refine input parameters, but provide parameters to the maxent method, we could not implement this as a model in sasmodels.
Thus the plan is to implement a new perspective, firstly just as code that can be used from e.g. jupyter. Once we are confident the underlying code works we can implement a gui for the perspective.
- Create branch and initial files for perspective
- Import GSAS II code to branch
- Write perspective code that can take Data1d objects and maxent parameters and call the GSAS II methods for doing the maxent calculation of size distribution. Discussion of how this should work is needed - what should be returned for example? @anita
- Check implementation of slit smearing in Irena and then how to implement in SasView @ryan
- Develop methods to obtain uncertainties on output distribution. Look at what Irena does, consider doing something "smarter"? @ryan @yingrui
- Do extrapolation at high and low Q - copy / use functions from Invariant Perspective? @ryan
- Develop testing - test data sets @ryan / test data sets output from Irena @ryan / and GSAS II @ajj / and prinsas @RotherG
- Decide on design of GUI
- Implement GUI
- Decide on a release target for non-guy (6.1?) and gui (6.3?) parts
- Create issue list and assign work @ajj
- View/Subscribe to the SasView Calendar
- Fortnightly developer's agenda/minutes
- Developer Guides
- Admin Processes and Procedure Notes
- Active Project Pages
- Historical Archive of Obsolete Pages
- Contributor e-Learning Course (free)
- Non Coding contribution needs/projects
- New functionality projects
- DRAFT for acknowledging contributions