Version 3 (modified by butler, 16 months ago) (diff)

Sasmodels Enhancement Discussion

  • From Roadmap
    • reparametrization of models -
      • What types: simple (e.g. sld → solvent fractions), complex (e.g. molecular constraints), other?
      • How to implement (using categories, on the fly change, constrained fit special workflows, other?)
      • Resources - when?
    • Inclusion of more complex structure factors
      • Locally Monodisperse approximation, others
      • Structure factors that include the form factor directly
      • How/who? resources?
    • scatter 2D modeling of crystal structures
    • 1D oriented data (i.e. 1D cuts through anisotropic data)
      • Do we bother?
      • How: separate function in model file (e.g. Iqxy1D), calculate in 2D and slice (e.g. use existing models and add infrastructure), other?
      • How/who?
  • New item
    • Computational speeds - exploring integration options
      • Options (golden vectors, adaptive, other?, combos?)
      • Precision with single precision and compatibility with openCL
      • Do we punt again? who/how resources?
    • Optimizer benchmarking
      • Project description
      • Use cases covering broad base of different types of problems


Reparameterisation of models

  • Use Cases:
    • Amounts of water in outer layer vs SLD of layer
    • Number of particles / packing e.g. Volumes of heads and tails tied
    • Examples of complicated things from Sylvain and Richard e.g. micelles with charge and molecular constraints
  • How to implement?
    • Make lots of models and use categories to manage. Each parameterization of a model is now its own model
    • Provide a "workflow" that uses the contraints system to create on the fly
    • Create new infrastructure to add calculated parameters on the fly
  • How do we do this?
    • Can we make a good interface for the user to do parameter mapping
    • Wojciech - the optimiser might have problems with that.
    • Non-fittable parameters
      • Involved with a constraint
      • Calculated outputs
      • See SLD profiles, see 3D shape
    • Narayan: Make sure that it is clear that constrained parameters are visible and clear that they are constrained.
    • PDB: Actually should be easy to provide an on the fly reparameterization: Use a GUI tool like the Add Model Editor to provide parameters, any constraints and their relationship to the existing parameters. Then "create the code" by editing the model file: adding the conversion math at the beginning of the function. Essentially the infrastructure and a first order proof of concept already.
    • Start with a simple test, then maybe talk to Paul Kienzle
    • Think about GUI

Include more complex structure factors

  • Discussion of the implementation of F(Q)
    • We don’t have complex amplitudes
      • Use case : Janus particles - but can cheat it with end capped cylinder
  • Beta
  • Locally monodisperse
  • More ways of dealing with structure factors *pyPRISM - will be implemented in SasView? by Tyler Martin
  • Discussion of SasFit? / SasView?
  • Models
  • OZ Solver
  • More ways of dealing with polydispersity
  • Orientation dependent Structure factors that depend on form factor (amplitude)

Write analytical ones Yun - only good for hard sphere and spherical particles Yun - Continuous distributions in OZ framework is hard Yun - should go for numerical solutions for more complex interaction potentials Yun - for e.g. mixture of latex and gold, need cross terms, so need complex amplitudes

  • Sylvain - Finish decoupling approximation first? For spherical.

ALL - AGREED last point

Include material from Scatter

Andrew has had student working on it. Difficult. Needs hypergeometric functions. MLZ have been working on it too - a few simple models. They have some proof of concept in Born Again Need to work out API to work with SasView? Plan for this … Aim for next Code Camp to have BornAgain? team integrate their code. Check SasFit? - Joachim may have implemented already.

1D oriented data …

How to fit a slice from a 2D dataset Do we do it? How? Make special 1D models? Or cut 2D models? Speed … ? Need to look at the speed …= User interface … ? How to show the slicer options to the user? Narayan / Sylvain to find some example data. Maybe start with simulation and treat as real data to test process AJJ to make some simulated data and share with everyone.

Project to do benchmarking of optimisers

  • Wojciech : Idea is that there is a summer student at ISIS working with Anders

Mantid have been testing their optimisers seeing how they perform on different classes of problems. Want to do something similar for SasView?

  • Test SasView? optimisers against their defined problems
  • Identify classes of problems that would be representative for the SANS community
  • AJJ - need to know the answer?
  • AJJ - how is SANS mathematically different from other test cases?
  • RKH - What about things where we have models that have multiple possible simulations?

Computation speed and integration options and approaches

  • Ingo : Suggestion - improve the integrations inside models.
    • Get rid of nested integrals
    • Use lebchev(?) Integrals? - some unrolled already- but other would require balancing competing requirements?
    • How to include with GPU code ?
    • Testing already … some models have numerical integration problems. Work underway.
    • Richard - will always have convergence issues for large particles. Or at least with particles that have one dimension that is massively larger than the other.
  • Hypergeometric functions
    • Can we implement them for more models?
    • AJJ to find code from Johan.