Changeset ce896fd in sasmodels for sasmodels/modelinfo.py
- Timestamp:
- Mar 28, 2016 7:27:22 AM (8 years ago)
- 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:
- fb5914f, d1c4760
- Parents:
- 5c028e3
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sasmodels/modelinfo.py
rd19962c rce896fd 45 45 if isinstance(limits, list) and all(isstr(k) for k in limits): 46 46 choices = limits 47 limits = [ 1, len(choices)]47 limits = [0, len(choices)-1] 48 48 else: 49 choices = None49 choices = [] 50 50 # TODO: maybe allow limits of None for (-inf, inf) 51 51 try: … … 115 115 return parameter 116 116 117 118 def set_demo(model_info, demo): 119 """ 120 Assign demo parameters to model_info['demo'] 121 122 If demo is not defined, then use defaults. 123 124 If demo is defined, override defaults with value from demo. 125 126 If demo references vector fields, such as thickness[n], then support 127 different ways of assigning the demo values, including assigning a 128 specific value (e.g., thickness3=50.0), assigning a new value to all 129 (e.g., thickness=50.0) or assigning values using list notation. 130 """ 131 partable = model_info['parameters'] 132 if demo is None: 133 result = partable.defaults 134 else: 135 pars = dict((p.id, p) for p in partable.kernel_parameters) 136 result = partable.defaults.copy() 137 vectors = dict((name,value) for name,value in demo.items() 138 if name in pars and pars[name].length > 1) 139 if vectors: 140 scalars = dict((name, value) for name, value in demo.items() 141 if name not in pars or pars[name].length == 1) 142 for name, value in vectors.items(): 143 if np.isscalar(value): 144 # support for the form 145 # demo(thickness=0, thickness2=50) 146 for k in pars[name].length: 147 key = name+str(k) 148 if key not in scalars: 149 scalars[key] = vectors 150 else: 151 # supoprt for the form 152 # demo(thickness=[20,10,3]) 153 for (k,v) in enumerate(value): 154 scalars[name+str(k)] = v 155 result.update(scalars) 156 else: 157 result.update(demo) 158 159 model_info['demo'] = result 160 117 161 class Parameter(object): 118 162 """ … … 171 215 self.type = type 172 216 self.description = description 173 self.choices = None174 217 175 218 # Length and length_control will be filled in once the complete … … 182 225 self.polydisperse = False 183 226 self.relative_pd = False 227 228 # choices are also set externally. 229 self.choices = [] 184 230 185 231 def as_definition(self):
Note: See TracChangeset
for help on using the changeset viewer.