Changes in / [c1799d3:cf3d0ce] in sasmodels
- Location:
- sasmodels
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
sasmodels/compare.py
r4de14584 r4de14584 1152 1152 'rel_err' : True, 1153 1153 'explore' : False, 1154 'use_demo' : False,1154 'use_demo' : True, 1155 1155 'zero' : False, 1156 1156 'html' : False, -
sasmodels/direct_model.py
r5024a56 r5024a56 332 332 333 333 # Need to pull background out of resolution for multiple scattering 334 default_background = self._model.info.parameters.common_parameters[1].default 335 background = pars.get('background', default_background) 334 background = pars.get('background', DEFAULT_BACKGROUND) 336 335 pars = pars.copy() 337 336 pars['background'] = 0. -
sasmodels/generate.py
r39a06c9 r39a06c9 1008 1008 pars = model_info.parameters.kernel_parameters 1009 1009 else: 1010 pars = (model_info.parameters.common_parameters 1011 + model_info.parameters.kernel_parameters) 1010 pars = model_info.parameters.COMMON + model_info.parameters.kernel_parameters 1012 1011 partable = make_partable(pars) 1013 1012 subst = dict(id=model_info.id.replace('_', '-'), -
sasmodels/modelinfo.py
r39a06c9 r39a06c9 404 404 parameters counted as n individual parameters p1, p2, ... 405 405 406 * *common_parameters* is the list of common parameters, with a unique407 copy for each model so that structure factors can have a default408 background of 0.0.409 410 406 * *call_parameters* is the complete list of parameters to the kernel, 411 407 including scale and background, with vector parameters recorded as … … 420 416 parameters don't use vector notation, and instead use p1, p2, ... 421 417 """ 418 # scale and background are implicit parameters 419 COMMON = [Parameter(*p) for p in COMMON_PARAMETERS] 420 422 421 def __init__(self, parameters): 423 422 # type: (List[Parameter]) -> None 424 425 # scale and background are implicit parameters426 # Need them to be unique to each model in case they have different427 # properties, such as default=0.0 for structure factor backgrounds.428 self.common_parameters = [Parameter(*p) for p in COMMON_PARAMETERS]429 430 423 self.kernel_parameters = parameters 431 424 self._set_vector_lengths() … … 475 468 if p.polydisperse and p.type not in ('orientation', 'magnetic')) 476 469 self.pd_2d = set(p.name for p in self.call_parameters if p.polydisperse) 477 478 def set_zero_background(self):479 """480 Set the default background to zero for this model. This is done for481 structure factor models.482 """483 # type: () -> None484 # Make sure background is the second common parameter.485 assert self.common_parameters[1].id == "background"486 self.common_parameters[1].default = 0.0487 self.defaults = self._get_defaults()488 470 489 471 def check_angles(self): … … 585 567 def _get_call_parameters(self): 586 568 # type: () -> List[Parameter] 587 full_list = self. common_parameters[:]569 full_list = self.COMMON[:] 588 570 for p in self.kernel_parameters: 589 571 if p.length == 1: … … 688 670 689 671 # Gather the user parameters in order 690 result = control + self. common_parameters672 result = control + self.COMMON 691 673 for p in self.kernel_parameters: 692 674 if not is2d and p.type in ('orientation', 'magnetic'): … … 788 770 789 771 info = ModelInfo() 790 791 # Build the parameter table792 772 #print("make parameter table", kernel_module.parameters) 793 773 parameters = make_parameter_table(getattr(kernel_module, 'parameters', [])) 794 795 # background defaults to zero for structure factor models796 structure_factor = getattr(kernel_module, 'structure_factor', False)797 if structure_factor:798 parameters.set_zero_background()799 800 # TODO: remove demo parameters801 # The plots in the docs are generated from the model default values.802 # Sascomp set parameters from the command line, and so doesn't need803 # demo values for testing.804 774 demo = expand_pars(parameters, getattr(kernel_module, 'demo', None)) 805 806 775 filename = abspath(kernel_module.__file__).replace('.pyc', '.py') 807 776 kernel_id = splitext(basename(filename))[0] -
sasmodels/models/hardsphere.py
r304c775 r304c775 162 162 return pars 163 163 164 demo = dict(radius_effective=200, volfraction=0.2, 165 radius_effective_pd=0.1, radius_effective_pd_n=40) 164 166 # Q=0.001 is in the Taylor series, low Q part, so add Q=0.1, 165 167 # assuming double precision sasview is correct -
sasmodels/sasview_model.py
r5024a56 r5024a56 382 382 hidden.add('scale') 383 383 hidden.add('background') 384 self._model_info.parameters.defaults['background'] = 0. 384 385 385 386 # Update the parameter lists to exclude any hidden parameters … … 913 914 CylinderModel().evalDistribution([0.1, 0.1]) 914 915 915 def test_structure_factor_background():916 # type: () -> None917 """918 Check that sasview model and direct model match, with background=0.919 """920 from .data import empty_data1D921 from .core import load_model_info, build_model922 from .direct_model import DirectModel923 924 model_name = "hardsphere"925 q = [0.0]926 927 sasview_model = _make_standard_model(model_name)()928 sasview_value = sasview_model.evalDistribution(np.array(q))[0]929 930 data = empty_data1D(q)931 model_info = load_model_info(model_name)932 model = build_model(model_info)933 direct_model = DirectModel(data, model)934 direct_value_zero_background = direct_model(background=0.0)935 936 assert sasview_value == direct_value_zero_background937 938 # Additionally check that direct value background defaults to zero939 direct_value_default = direct_model()940 assert sasview_value == direct_value_default941 942 943 916 def magnetic_demo(): 944 917 Model = _make_standard_model('sphere') … … 961 934 #print("rpa:", test_rpa()) 962 935 #test_empty_distribution() 963 #test_structure_factor_background()
Note: See TracChangeset
for help on using the changeset viewer.