Changeset 8698a0d in sasmodels for sasmodels/direct_model.py
- Timestamp:
- Oct 17, 2017 9:53:01 PM (7 years ago)
- Branches:
- master, core_shell_microgels, magnetic_model, ticket-1257-vesicle-product, ticket_1156, ticket_1265_superball, ticket_822_more_unit_tests
- Children:
- 32f87a5
- Parents:
- becded3
- git-author:
- Paul Kienzle <pkienzle@…> (10/17/17 16:23:09)
- git-committer:
- Paul Kienzle <pkienzle@…> (10/17/17 21:53:01)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sasmodels/direct_model.py
rd1ff3a5 r8698a0d 66 66 67 67 #print("pars",[p.id for p in parameters.call_parameters]) 68 vw_pairs = [(get_weights(p, pars) if active(p.name) 69 else ([pars.get(p.name, p.default)], [1.0])) 70 for p in parameters.call_parameters] 71 72 call_details, values, is_magnetic = make_kernel_args(calculator, vw_pairs) 68 mesh = [get_weights(p, pars, active(p.name)) 69 for p in parameters.call_parameters] 70 71 call_details, values, is_magnetic = make_kernel_args(calculator, mesh) 73 72 #print("values:", values) 74 73 return calculator(call_details, values, cutoff, is_magnetic) … … 130 129 131 130 132 def get_weights(parameter, values ):131 def get_weights(parameter, values, active=True): 133 132 # type: (Parameter, Dict[str, float]) -> Tuple[np.ndarray, np.ndarray] 134 133 """ … … 140 139 """ 141 140 value = float(values.get(parameter.name, parameter.default)) 142 relative = parameter.relative_pd143 limits = parameter.limits144 disperser = values.get(parameter.name+'_pd_type', 'gaussian')145 141 npts = values.get(parameter.name+'_pd_n', 0) 146 142 width = values.get(parameter.name+'_pd', 0.0) 147 nsigma = values.get(parameter.name+'_pd_nsigma', 3.0) 148 if npts == 0 or width == 0: 149 return [value], [1.0] 150 value, weight = weights.get_weights( 151 disperser, npts, width, nsigma, value, limits, relative) 152 return value, weight / np.sum(weight) 143 if npts == 0 or width == 0 or not active: 144 # Note: orientation parameters have the viewing angle as the parameter 145 # value and the jitter in the distribution, so be sure to set the 146 # empty pd for orientation parameters to 0. 147 pd = [value if parameter.type != 'orientation' else 0.0], [1.0] 148 else: 149 relative = parameter.relative_pd 150 limits = parameter.limits 151 disperser = values.get(parameter.name+'_pd_type', 'gaussian') 152 nsigma = values.get(parameter.name+'_pd_nsigma', 3.0) 153 pd = weights.get_weights(disperser, npts, width, nsigma, 154 value, limits, relative) 155 return value, pd[0], pd[1] 153 156 154 157
Note: See TracChangeset
for help on using the changeset viewer.