Changes in / [c1799d3:cf3d0ce] in sasmodels


Ignore:
Location:
sasmodels
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • sasmodels/compare.py

    r4de14584 r4de14584  
    11521152        'rel_err'   : True, 
    11531153        'explore'   : False, 
    1154         'use_demo'  : False, 
     1154        'use_demo'  : True, 
    11551155        'zero'      : False, 
    11561156        'html'      : False, 
  • sasmodels/direct_model.py

    r5024a56 r5024a56  
    332332 
    333333        # 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) 
    336335        pars = pars.copy() 
    337336        pars['background'] = 0. 
  • sasmodels/generate.py

    r39a06c9 r39a06c9  
    10081008        pars = model_info.parameters.kernel_parameters 
    10091009    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 
    10121011    partable = make_partable(pars) 
    10131012    subst = dict(id=model_info.id.replace('_', '-'), 
  • sasmodels/modelinfo.py

    r39a06c9 r39a06c9  
    404404      parameters counted as n individual parameters p1, p2, ... 
    405405 
    406     * *common_parameters* is the list of common parameters, with a unique 
    407       copy for each model so that structure factors can have a default 
    408       background of 0.0. 
    409  
    410406    * *call_parameters* is the complete list of parameters to the kernel, 
    411407      including scale and background, with vector parameters recorded as 
     
    420416    parameters don't use vector notation, and instead use p1, p2, ... 
    421417    """ 
     418    # scale and background are implicit parameters 
     419    COMMON = [Parameter(*p) for p in COMMON_PARAMETERS] 
     420 
    422421    def __init__(self, parameters): 
    423422        # type: (List[Parameter]) -> None 
    424  
    425         # scale and background are implicit parameters 
    426         # Need them to be unique to each model in case they have different 
    427         # properties, such as default=0.0 for structure factor backgrounds. 
    428         self.common_parameters = [Parameter(*p) for p in COMMON_PARAMETERS] 
    429  
    430423        self.kernel_parameters = parameters 
    431424        self._set_vector_lengths() 
     
    475468                         if p.polydisperse and p.type not in ('orientation', 'magnetic')) 
    476469        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 for 
    481         structure factor models. 
    482         """ 
    483         # type: () -> None 
    484         # Make sure background is the second common parameter. 
    485         assert self.common_parameters[1].id == "background" 
    486         self.common_parameters[1].default = 0.0 
    487         self.defaults = self._get_defaults() 
    488470 
    489471    def check_angles(self): 
     
    585567    def _get_call_parameters(self): 
    586568        # type: () -> List[Parameter] 
    587         full_list = self.common_parameters[:] 
     569        full_list = self.COMMON[:] 
    588570        for p in self.kernel_parameters: 
    589571            if p.length == 1: 
     
    688670 
    689671        # Gather the user parameters in order 
    690         result = control + self.common_parameters 
     672        result = control + self.COMMON 
    691673        for p in self.kernel_parameters: 
    692674            if not is2d and p.type in ('orientation', 'magnetic'): 
     
    788770 
    789771    info = ModelInfo() 
    790  
    791     # Build the parameter table 
    792772    #print("make parameter table", kernel_module.parameters) 
    793773    parameters = make_parameter_table(getattr(kernel_module, 'parameters', [])) 
    794  
    795     # background defaults to zero for structure factor models 
    796     structure_factor = getattr(kernel_module, 'structure_factor', False) 
    797     if structure_factor: 
    798         parameters.set_zero_background() 
    799  
    800     # TODO: remove demo parameters 
    801     # The plots in the docs are generated from the model default values. 
    802     # Sascomp set parameters from the command line, and so doesn't need 
    803     # demo values for testing. 
    804774    demo = expand_pars(parameters, getattr(kernel_module, 'demo', None)) 
    805  
    806775    filename = abspath(kernel_module.__file__).replace('.pyc', '.py') 
    807776    kernel_id = splitext(basename(filename))[0] 
  • sasmodels/models/hardsphere.py

    r304c775 r304c775  
    162162    return pars 
    163163 
     164demo = dict(radius_effective=200, volfraction=0.2, 
     165            radius_effective_pd=0.1, radius_effective_pd_n=40) 
    164166# Q=0.001 is in the Taylor series, low Q part, so add Q=0.1, 
    165167# assuming double precision sasview is correct 
  • sasmodels/sasview_model.py

    r5024a56 r5024a56  
    382382            hidden.add('scale') 
    383383            hidden.add('background') 
     384            self._model_info.parameters.defaults['background'] = 0. 
    384385 
    385386        # Update the parameter lists to exclude any hidden parameters 
     
    913914    CylinderModel().evalDistribution([0.1, 0.1]) 
    914915 
    915 def test_structure_factor_background(): 
    916     # type: () -> None 
    917     """ 
    918     Check that sasview model and direct model match, with background=0. 
    919     """ 
    920     from .data import empty_data1D 
    921     from .core import load_model_info, build_model 
    922     from .direct_model import DirectModel 
    923  
    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_background 
    937  
    938     # Additionally check that direct value background defaults to zero 
    939     direct_value_default = direct_model() 
    940     assert sasview_value == direct_value_default 
    941  
    942  
    943916def magnetic_demo(): 
    944917    Model = _make_standard_model('sphere') 
     
    961934    #print("rpa:", test_rpa()) 
    962935    #test_empty_distribution() 
    963     #test_structure_factor_background() 
Note: See TracChangeset for help on using the changeset viewer.