Skip to content

PoreSizeDistribution

AnitaZhang0526 edited this page Jan 22, 2024 · 15 revisions

Pore Size Distribution

Background

Implement pore size distribution from Irena: https://saxs-igorcodedocs.readthedocs.io/en/stable/Irena/SizeDistribution.html

Relevant Info

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.)

Code

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

Plan - discussion at Collaboration Camp 2024

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.

To Do

  • 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

(Potential) Contributors Resources

Helping others to use SasView

Code & Contributor Camps

Clone this wiki locally