7. Model access¶
sasmodels.core
¶
Core model handling routines.
-
sasmodels.core.
list_models
(kind=None)¶ Return the list of available models on the model path.
kind can be one of the following:
- all: all models
- py: python models only
- c: compiled models only
- single: models which support single precision
- double: models which require double precision
- opencl: controls if OpenCL is supperessed
- 1d: models which are 1D only, or 2D using abs(q)
- 2d: models which can be 2D
- magnetic: models with an sld
- nommagnetic: models without an sld
For multiple conditions, combine with plus. For example, c+single+2d would return all oriented models implemented in C which can be computed accurately with single precision arithmetic.
-
sasmodels.core.
load_model
(model_name, dtype=None, platform='ocl')¶ Load model info and build model.
model_name is the name of the model, or perhaps a model expression such as sphere*hardsphere or sphere+cylinder.
dtype and platform are given by
build_model()
.
-
sasmodels.core.
load_model_info
(model_string)¶ Load a model definition given the model name.
model_string is the name of the model, or perhaps a model expression such as sphere*cylinder or sphere+cylinder. Use ‘@’ for a structure factor product, e.g. sphere@hardsphere. Custom models can be specified by prefixing the model name with ‘custom.’, e.g. ‘custom.MyModel+sphere’.
This returns a handle to the module defining the model. This can be used with functions in generate to build the docs or extract model info.
-
sasmodels.core.
build_model
(model_info, dtype=None, platform='ocl')¶ Prepare the model for the default execution platform.
This will return an OpenCL model, a DLL model or a python model depending on the model and the computing platform.
model_info is the model definition structure returned from
load_model_info()
.dtype indicates whether the model should use single or double precision for the calculation. Choices are ‘single’, ‘double’, ‘quad’, ‘half’, or ‘fast’. If dtype ends with ‘!’, then force the use of the DLL rather than OpenCL for the calculation.
platform should be “dll” to force the dll to be used for C models, otherwise it uses the default “ocl”.
-
sasmodels.core.
precompile_dlls
(path, dtype='double')¶ Precompile the dlls for all builtin models, returning a list of dll paths.
path is the directory in which to save the dlls. It will be created if it does not already exist.
This can be used when build the windows distribution of sasmodels which may be missing the OpenCL driver and the dll compiler.