Changes in / [a8a1d48:e5bbe64] 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

    rcd28947 rcd28947  
    10061006        pars = model_info.parameters.kernel_parameters 
    10071007    else: 
    1008         pars = (model_info.parameters.common_parameters 
    1009                 + model_info.parameters.kernel_parameters) 
     1008        pars = model_info.parameters.COMMON + model_info.parameters.kernel_parameters 
    10101009    partable = make_partable(pars) 
    10111010    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

    r3a1afed r3a1afed  
    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 
     
    930931    CylinderModel().evalDistribution([0.1, 0.1]) 
    931932 
    932 def test_structure_factor_background(): 
    933     # type: () -> None 
    934     """ 
    935     Check that sasview model and direct model match, with background=0. 
    936     """ 
    937     from .data import empty_data1D 
    938     from .core import load_model_info, build_model 
    939     from .direct_model import DirectModel 
    940  
    941     model_name = "hardsphere" 
    942     q = [0.0] 
    943  
    944     sasview_model = _make_standard_model(model_name)() 
    945     sasview_value = sasview_model.evalDistribution(np.array(q))[0] 
    946  
    947     data = empty_data1D(q) 
    948     model_info = load_model_info(model_name) 
    949     model = build_model(model_info) 
    950     direct_model = DirectModel(data, model) 
    951     direct_value_zero_background = direct_model(background=0.0) 
    952  
    953     assert sasview_value == direct_value_zero_background 
    954  
    955     # Additionally check that direct value background defaults to zero 
    956     direct_value_default = direct_model() 
    957     assert sasview_value == direct_value_default 
    958  
    959  
    960933def magnetic_demo(): 
    961934    Model = _make_standard_model('sphere') 
     
    978951    #print("rpa:", test_rpa()) 
    979952    #test_empty_distribution() 
    980     #test_structure_factor_background() 
Note: See TracChangeset for help on using the changeset viewer.