-
Notifications
You must be signed in to change notification settings - Fork 0
CodeCampIII_ScheduleAndWork_SasModelsWP
#90Provide
a way for plugin models to use the built-in polydispersity
functions#91Port models
to C++ from
python#251Create new
default category
list#294Refactor Model
Interface#312Problem with
slit smearing#313Python
polydispersity#314Default
to GPU when using
OpenCL#315Be
able to set choice of device for
OpenCL[#316](/ticket/316 "Autogenerate sasmodel "shims"")Autogenerate
sasmodel
"shims"#317Packaging
of sasmodels (build scripts
etc)#319sasmodels unit
testing#330allow
inf/-inf for model
limits#359Be
able to use new models from sasmodels alongside sas.models
models#361Check
all models for order of parameters being
passed#363break
OpenCL calculations into smaller
chunks.#399GelFit
model presents an erroneous
parameter#400DAB
model equation in model function help file is
wrongPorod
model equation in model function help file is
wrong
reparameterize
Teubner-Strey#476autogenerate
theory curves for sasmodels
documentation#484lamellarPC
is precision
limited#499create
sin(x)/x, 2*J1(x)/x and 3*j1(x)/x
functions#504Convert
model editors to support
sasmodels#505List
modules needing changing to accommodate sasmodels new
structure#506Fix
loading of models in models.py and
autodiscovery#524category
handling needs updating for
sasmodels#525Add
GUI category defaults to models in
sasmodels#530Numerical
instabilities in Teubner Strey
model#532Handling
of custom models via
sasmodels#533Make
polydispersy work in sasview with
sasmodels#534Fitting
not working in sasview with
sasmodels#536Add
multiplicity model infrastructure to
sasmodels#537Magnetic
sld not implemented for python
models#538Need
to clean out old sasmodels infrastructure from
SasView#539build
servers to build working windows
exe#540build
servers to build working mac SasView 4.0
dmg#543control
order in which fit parameters appear in gui for easy sum/multi
models#544control
order in which fit parameters appear in gui for user supplied
models#548Remove
MutiplicationModel.py once replacement from Sasmodels is
available#650Standardize C
model
names#675Reparameterize
hollow_cylinder#695linear
slope in onion
model#775Orientation
of stacked_discs model does not
work#776angular
dispersity#890use
new orientation definition for asymmetric
shapes#891update
docs for oriented shapes with new orientation
definition#896equations
in core shell parallelepiped docs do not match
code#1046convert
non builtin models in the marketplace to new API
The list of (non)overlapping SasView-SASfit models can be viewed at: https://ess-ics.atlassian.net/wiki/display/SAS/SasView-SasFit+Overlapping+Models
OpenCL test results for various OS-GPU combinations.
Instructions for converting models from old SasView to sasmodels
List of models for conversion
SasModels package code is here: http://github.com/SasView/sasmodels
SasView code is here: http://github.com/SasView/sasview
Preconverted latex (top and bottom of the file, missing some in the middle): http://sasview.org/attachment/wiki/SasModels%20Work%20Package/Equations.docx.pdf
Options for Angstrom symbol:
- \rlap{ \hspace 0.23em \raise 1.5ex \Tiny \circ}\text{A}
- \text{A}
- \unicode{xc5}
- {\mathring{\text{A}}\vphantom{A}
- {\buildrel {\circ} \over {\text{A}}}\vphantom{A}
- \text{nm}/10
- Python Polydispersity - Paul - #313
- Default to GPU when using OpenCL - David - #314
- Be able to set choice of device for OpenCL - David - #315
- Autogenerate sasmodel "shims" - Andrew - [#316](http://trac.sasview.org/ticket/316 "defect: Autogenerate sasmodel "shims" (closed: wontfix)")
- Packaging of sasmodels (build scripts etc) - Andrew - #317
- sasmodels unittest - Paul K? or Peter? - #319
- Migrate models - need a checklist and progress tracking for this
- Magnetic models
- Make "template" for a model
- Make "standard" list of parameter names
- Define attributes on model (form factor, structure factor, multiplicity etc)
- Move model details to python part (parameters, docs)
- Move scattering kernel to c part
- Unit tests
- Documentation
- Model discovery in sasview
- Move dataloader
- Refactor models interface
- Attributes
- Extra data on models
- Resolution calculation in python
- Constraints in polydispersity loop
- Refactor data structures (including 4 cross-section magnetic 2D)
- Complex scattering lengths
- Make "simple model" system in sasview add a model in the new style
- Start from P Kienzle sasmodels work - fork sasmodels
- Refactor of sasview to use new package
- How to deal with model categorisation
- Cross validate against existing sas.models
- Polydispersity for python models
- Normalization
- PqSq
- Single vs double
- Make sure model is rebuilt if c changes
Statement of Problem to address:
Currently addition of a new model in C requires a rebuilding of the SasView GUI application. Furthermore it requires the creation/editing of a lot of different files and is anything but straightforward making the learning curve quite steep. Finally, while a user can simply add a custom python model, that model does not have access to the necessary polydispersity calculation. Also not clear how the python model code can call a C model (to enhance for example). Making the addition of a C model simple and allowing python model to work properly with polydispersity would have a HUGE impact. New models are probably the single most important thing for the user community and with this change model addition can be removed from the core developer group tasks to being something instrument scientists and power user can do.
This is mostly an underlying computational framework project but also requires tying into existing GUI.
Goal/scope of project: Define and implement a clean C plugin interface that allows dropping a new C based model onto disk that can be discovered live by SasView. If at all possible allow python models to have access to polydispersity code.
Design Requirements:
- Adding a new model in C (for speed) should consist of writing only one file and may possibly require compiling of the model into a shared library file (how does one handle multiple platforms?) (Should !asView compile the models?)
- Adding a new model in C or python consists of dropping the appropriate file into the models directory for discovery by the running application (not GUI bits at this point --- applications can send to GUI bits)
- GUI must update available models while running
- Polydispersity treated properly for constrained/simultaneous
- Accessible Attributes for S(Q), multiplicity, etc
- Compatible with multiprocessing
- Minor requirement
- All models should be treated the same (custom, python, "built-in" etc.)
- Optional requirement
- Would also be nice if python models can access polydispersity
Tasks:
- Come up with and propose design that meets these needs with minimum "intrusion"
- Document Tasks required to achieve full integration with above design - should be at a level that a new person could take on the tasks including code snippets as necessary.
- Decision
- Implementation
- Refactor model code as per design above
- Create/write discovery process in SasView fitting so that computational code updates list of known models to use in fitting
- Create link to SasView GUI so that GUI also updates models available to GUI users while running