Changeset 32c160a in sasmodels for sasmodels/sasview_model.py


Ignore:
Timestamp:
Aug 25, 2014 12:55:08 AM (10 years ago)
Author:
Paul Kienzle <pkienzle@…>
Branches:
master, core_shell_microgels, costrafo411, magnetic_model, release_v0.94, release_v0.95, ticket-1257-vesicle-product, ticket_1156, ticket_1265_superball, ticket_822_more_unit_tests
Children:
13d86bc
Parents:
1f21edf
Message:

support ER/VR python kernels; move metadata to python

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sasmodels/sasview_model.py

    r1780d59 r32c160a  
    44import numpy as np 
    55 
    6 def make_class(name, class_name=None, dtype='single'): 
     6def make_class(kernel_module, dtype='single'): 
    77    from .core import opencl_model 
    8     if class_name is None: 
    9         class_name = "".join(part.capitalize() for part in name.split('_')+['model']) 
    10     model =  opencl_model(name, dtype=dtype) 
    11     class ConstructedModel(SasviewModel): 
    12         kernel = model 
    13         def __init__(self, multfactor=1): 
    14             SasviewModel.__init__(self, self.kernel) 
    15     ConstructedModel.__name__ = class_name 
     8    model =  opencl_model(kernel_module, dtype=dtype) 
     9    def __init__(self, multfactor=1): 
     10        SasviewModel.__init__(self, self.kernel) 
     11    attrs = dict(__init__=__init__, kernel=model) 
     12    ConstructedModel = type(model.info['name'],  (SasviewModel,), attrs) 
     13    #class ConstructedModel(SasviewModel): 
     14    #    kernel = model 
     15    #    def __init__(self, multfactor=1): 
     16    #        SasviewModel.__init__(self, self.kernel) 
     17    #ConstructedModel.__name__ = model.info['name'] 
    1618    return ConstructedModel 
    1719 
     
    267269            values, weights = self._dispersion_mesh(vol_pars) 
    268270            fv = ER(*values) 
     271            #print values[0].shape, weights.shape, fv.shape 
    269272            return np.sum(weights*fv) / np.sum(weights) 
    270273 
     
    275278        :return: the value of the volf ratio 
    276279        """ 
    277         VR = self._model.info.get('ER', None) 
     280        VR = self._model.info.get('VR', None) 
    278281        if VR is None: 
    279282            return 1.0 
     
    323326        values = [v.flatten() for v in np.meshgrid(*values)] 
    324327        weights = np.vstack([v.flatten() for v in np.meshgrid(*weights)]) 
    325         weights = np.prod(weights, axis=1) 
     328        weights = np.prod(weights, axis=0) 
    326329        return values, weights 
    327330 
Note: See TracChangeset for help on using the changeset viewer.