Changes in / [6da1d76:a1ec908] in sasmodels
- Location:
- sasmodels
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
sasmodels/compare.py
rb6dab59 rbd7630d 1151 1151 'rel_err' : True, 1152 1152 'explore' : False, 1153 'use_demo' : False,1153 'use_demo' : True, 1154 1154 'zero' : False, 1155 1155 'html' : False, -
sasmodels/direct_model.py
rb6d1d52 r7b9e4dd 31 31 from . import resolution2d 32 32 from .details import make_kernel_args, dispersion_mesh 33 from .modelinfo import DEFAULT_BACKGROUND 33 34 34 35 # pylint: disable=unused-import … … 349 350 350 351 # Need to pull background out of resolution for multiple scattering 351 default_background = self._model.info.parameters.common_parameters[1].default 352 background = pars.get('background', default_background) 352 background = pars.get('background', DEFAULT_BACKGROUND) 353 353 pars = pars.copy() 354 354 pars['background'] = 0. -
sasmodels/generate.py
rb6dab59 r6e45516 968 968 pars = model_info.parameters.kernel_parameters 969 969 else: 970 pars = (model_info.parameters.common_parameters 971 + model_info.parameters.kernel_parameters) 970 pars = model_info.parameters.COMMON + model_info.parameters.kernel_parameters 972 971 partable = make_partable(pars) 973 972 subst = dict(id=model_info.id.replace('_', '-'), -
sasmodels/modelinfo.py
rd321747 rd321747 405 405 parameters counted as n individual parameters p1, p2, ... 406 406 407 * *common_parameters* is the list of common parameters, with a unique408 copy for each model so that structure factors can have a default409 background of 0.0.410 411 407 * *call_parameters* is the complete list of parameters to the kernel, 412 408 including scale and background, with vector parameters recorded as … … 421 417 parameters don't use vector notation, and instead use p1, p2, ... 422 418 """ 419 # scale and background are implicit parameters 420 COMMON = [Parameter(*p) for p in COMMON_PARAMETERS] 421 423 422 def __init__(self, parameters): 424 423 # type: (List[Parameter]) -> None 425 426 # scale and background are implicit parameters427 # Need them to be unique to each model in case they have different428 # properties, such as default=0.0 for structure factor backgrounds.429 self.common_parameters = [Parameter(*p) for p in COMMON_PARAMETERS]430 431 424 self.kernel_parameters = parameters 432 425 self._set_vector_lengths() … … 478 471 if p.polydisperse and p.type not in ('orientation', 'magnetic')) 479 472 self.pd_2d = set(p.name for p in self.call_parameters if p.polydisperse) 480 481 def set_zero_background(self):482 """483 Set the default background to zero for this model. This is done for484 structure factor models.485 """486 # type: () -> None487 # Make sure background is the second common parameter.488 assert self.common_parameters[1].id == "background"489 self.common_parameters[1].default = 0.0490 self.defaults = self._get_defaults()491 473 492 474 def check_angles(self): … … 588 570 def _get_call_parameters(self): 589 571 # type: () -> List[Parameter] 590 full_list = self. common_parameters[:]572 full_list = self.COMMON[:] 591 573 for p in self.kernel_parameters: 592 574 if p.length == 1: … … 691 673 692 674 # Gather the user parameters in order 693 result = control + self. common_parameters675 result = control + self.COMMON 694 676 for p in self.kernel_parameters: 695 677 if not is2d and p.type in ('orientation', 'magnetic'): … … 790 772 return kernel_module.model_info 791 773 info = ModelInfo() 792 793 # Build the parameter table794 774 #print("make parameter table", kernel_module.parameters) 795 775 parameters = make_parameter_table(getattr(kernel_module, 'parameters', [])) 796 797 # background defaults to zero for structure factor models798 structure_factor = getattr(kernel_module, 'structure_factor', False)799 if structure_factor:800 parameters.set_zero_background()801 802 # TODO: remove demo parameters803 # The plots in the docs are generated from the model default values.804 # Sascomp set parameters from the command line, and so doesn't need805 # demo values for testing.806 776 demo = expand_pars(parameters, getattr(kernel_module, 'demo', None)) 807 808 777 filename = abspath(kernel_module.__file__).replace('.pyc', '.py') 809 778 kernel_id = splitext(basename(filename))[0] … … 822 791 info.docs = kernel_module.__doc__ 823 792 info.category = getattr(kernel_module, 'category', None) 824 info.structure_factor = structure_factor793 info.structure_factor = getattr(kernel_module, 'structure_factor', False) 825 794 info.profile_axes = getattr(kernel_module, 'profile_axes', ['x', 'y']) 826 795 # Note: custom.load_custom_kernel_module assumes the C sources are defined -
sasmodels/models/hardsphere.py
rb6dab59 r2d81cfe 171 171 # VR defaults to 1.0 172 172 173 demo = dict(radius_effective=200, volfraction=0.2, 174 radius_effective_pd=0.1, radius_effective_pd_n=40) 173 175 # Q=0.001 is in the Taylor series, low Q part, so add Q=0.1, 174 176 # assuming double precision sasview is correct -
sasmodels/sasview_model.py
rd321747 rd321747 382 382 hidden.add('scale') 383 383 hidden.add('background') 384 self._model_info.parameters.defaults['background'] = 0. 384 385 385 386 self._persistency_dict = {} … … 880 881 CylinderModel().evalDistribution([0.1, 0.1]) 881 882 882 def test_structure_factor_background():883 # type: () -> None884 """885 Check that sasview model and direct model match, with background=0.886 """887 from .data import empty_data1D888 from .core import load_model_info, build_model889 from .direct_model import DirectModel890 891 model_name = "hardsphere"892 q = [0.0]893 894 sasview_model = _make_standard_model(model_name)()895 sasview_value = sasview_model.evalDistribution(np.array(q))[0]896 897 data = empty_data1D(q)898 model_info = load_model_info(model_name)899 model = build_model(model_info)900 direct_model = DirectModel(data, model)901 direct_value_zero_background = direct_model(background=0.0)902 903 assert sasview_value == direct_value_zero_background904 905 # Additionally check that direct value background defaults to zero906 direct_value_default = direct_model()907 assert sasview_value == direct_value_default908 909 910 883 def magnetic_demo(): 911 884 Model = _make_standard_model('sphere') … … 928 901 #print("rpa:", test_rpa()) 929 902 #test_empty_distribution() 930 #test_structure_factor_background()
Note: See TracChangeset
for help on using the changeset viewer.