Changeset 65ceb7d in sasmodels for sasmodels/product.py
- Timestamp:
- Sep 18, 2017 12:53:23 PM (7 years ago)
- Branches:
- costrafo411
- Children:
- 3a45c2c
- Parents:
- 2f9f1ec (diff), 058460c (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sasmodels/product.py
rf88e248 r058460c 45 45 # structure factor calculator. Structure factors should not 46 46 # have any magnetic parameters 47 if not len(s_info.parameters.kernel_parameters) >= 2: 48 raise TypeError("S needs {} and {} as its first parameters".format(ER_ID, VF_ID)) 47 49 if not s_info.parameters.kernel_parameters[0].id == ER_ID: 48 raise TypeError("S needs %s as first parameter"%ER_ID)50 raise TypeError("S needs {} as first parameter".format(ER_ID)) 49 51 if not s_info.parameters.kernel_parameters[1].id == VF_ID: 50 raise TypeError("S needs %s as second parameter"%VF_ID)52 raise TypeError("S needs {} as second parameter".format(VF_ID)) 51 53 if not s_info.parameters.magnetism_index == []: 52 54 raise TypeError("S should not have SLD parameters") … … 68 70 translate_name = dict((old.id, new.id) for old, new 69 71 in zip(s_pars.kernel_parameters[1:], s_list)) 70 demo = {}71 demo.update(p_info.demo.items())72 demo.update((translate_name[k], v) for k, v in s_info.demo.items()73 if k not in ("background", "scale") and not k.startswith(ER_ID))74 72 combined_pars = p_pars.kernel_parameters + s_list 75 73 parameters = ParameterTable(combined_pars) 76 74 parameters.max_pd = p_pars.max_pd + s_pars.max_pd 75 def random(): 76 combined_pars = p_info.random() 77 s_names = set(par.id for par in s_pars.kernel_parameters[1:]) 78 s = s_info.random() 79 combined_pars.update((translate_name[k], v) 80 for k, v in s_info.random().items() 81 if k in s_names) 82 return combined_pars 77 83 78 84 model_info = ModelInfo() 79 model_info.id = ' *'.join((p_id, s_id))80 model_info.name = ' *'.join((p_name, s_name))85 model_info.id = '@'.join((p_id, s_id)) 86 model_info.name = '@'.join((p_name, s_name)) 81 87 model_info.filename = None 82 88 model_info.title = 'Product of %s and %s'%(p_name, s_name) … … 85 91 model_info.category = "custom" 86 92 model_info.parameters = parameters 93 model_info.random = random 87 94 #model_info.single = p_info.single and s_info.single 88 95 model_info.structure_factor = False … … 93 100 # Remember the component info blocks so we can build the model 94 101 model_info.composition = ('product', [p_info, s_info]) 95 model_info.demo = demo 96 97 ## Show the parameter table with the demo values 102 # TODO: delegate random to p_info, s_info 103 #model_info.random = lambda: {} 104 105 ## Show the parameter table 98 106 #from .compare import get_pars, parlist 99 107 #print("==== %s ====="%model_info.name) 100 #values = get_pars(model_info , use_demo=True)108 #values = get_pars(model_info) 101 109 #print(parlist(model_info, values, is2d=True)) 102 110 return model_info … … 124 132 self.P = P 125 133 self.S = S 134 self.dtype = P.dtype 126 135 127 136 def make_kernel(self, q_vectors):
Note: See TracChangeset
for help on using the changeset viewer.