Changeset 765eb0e in sasmodels for sasmodels/mixture.py


Ignore:
Timestamp:
Sep 11, 2017 5:42:31 PM (7 years ago)
Author:
Paul Kienzle <pkienzle@…>
Branches:
master, core_shell_microgels, costrafo411, magnetic_model, ticket-1257-vesicle-product, ticket_1156, ticket_1265_superball, ticket_822_more_unit_tests
Children:
2ad5d30
Parents:
ce8c388
Message:

allow random generation of parameters for product and mixture models

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sasmodels/mixture.py

    r6dc78e4 r765eb0e  
    4040    # Build new parameter list 
    4141    combined_pars = [] 
    42     demo = {} 
    4342    for k, part in enumerate(parts): 
    4443        # Parameter prefix per model, A_, B_, ... 
     
    5655                p.length_control = prefix + p.length_control 
    5756            combined_pars.append(p) 
    58         demo.update((prefix+k, v) for k, v in part.demo.items() 
    59                     if k != "background") 
    60     #print("pars",combined_pars) 
    6157    parameters = ParameterTable(combined_pars) 
    6258    parameters.max_pd = sum(part.parameters.max_pd for part in parts) 
     59 
     60    def random(): 
     61        combined_pars = {} 
     62        for k, part in enumerate(parts): 
     63            prefix = chr(ord('A')+k) + '_' 
     64            pars = part.random() 
     65            combined_pars.update((prefix+k, v) for k, v in pars.items()) 
     66        return combined_pars 
    6367 
    6468    model_info = ModelInfo() 
     
    7175    model_info.category = "custom" 
    7276    model_info.parameters = parameters 
     77    model_info.random = random 
    7378    #model_info.single = any(part['single'] for part in parts) 
    7479    model_info.structure_factor = False 
     
    7984    # Remember the component info blocks so we can build the model 
    8085    model_info.composition = ('mixture', parts) 
    81     model_info.demo = demo 
    8286    return model_info 
    8387 
     
    8892        self.info = model_info 
    8993        self.parts = parts 
     94        self.dtype = parts[0].dtype 
    9095 
    9196    def make_kernel(self, q_vectors): 
Note: See TracChangeset for help on using the changeset viewer.