Version 3 (modified by butler, 5 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
- Stephan Forster Scatter -http://www.esrf.eu/UsersAndScience/Experiments/CRG/BM26/SaxsWaxs/DataAnalysis/Scatter
- How/who?

- 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?

- reparametrization of models -
- 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

- Computational speeds - exploring integration options

## Minutes

### 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

- We don’t have complex amplitudes
- 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.