Changeset b297ba9 in sasmodels for sasmodels/product.py


Ignore:
Timestamp:
Mar 20, 2019 7:03:50 PM (5 years ago)
Author:
Paul Kienzle <pkienzle@…>
Branches:
master, core_shell_microgels, magnetic_model, ticket-1257-vesicle-product, ticket_1156, ticket_1265_superball, ticket_822_more_unit_tests
Children:
4e28511
Parents:
0d362b7
Message:

lint

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sasmodels/product.py

    rfd7291e rb297ba9  
    1818import numpy as np  # type: ignore 
    1919 
    20 from .modelinfo import ParameterTable, ModelInfo, Parameter, parse_parameter 
     20from .modelinfo import ParameterTable, ModelInfo, parse_parameter 
    2121from .kernel import KernelModel, Kernel 
    22 from .details import make_details, dispersion_mesh 
     22from .details import make_details 
    2323 
    2424# pylint: disable=unused-import 
     
    2828    pass 
    2929else: 
    30     from .modelinfo import ParameterSet 
     30    from .modelinfo import ParameterSet, Parameter 
    3131# pylint: enable=unused-import 
    3232 
     
    4242VOLFRAC_ID = "volfraction" 
    4343def make_extra_pars(p_info): 
     44    # type: (ModelInfo) -> List[Parameter] 
     45    """ 
     46    Create parameters for structure_factor_mode and radius_effective_mode. 
     47    """ 
    4448    pars = [] 
    4549    if p_info.have_Fq: 
    4650        par = parse_parameter( 
    47                 STRUCTURE_MODE_ID, 
    48                 "", 
    49                 0, 
    50                 [["P*S","P*(1+beta*(S-1))"]], 
    51                 "", 
    52                 "Structure factor calculation") 
     51            STRUCTURE_MODE_ID, 
     52            "", 
     53            0, 
     54            [["P*S", "P*(1+beta*(S-1))"]], 
     55            "", 
     56            "Structure factor calculation") 
    5357        pars.append(par) 
    5458    if p_info.effective_radius_type is not None: 
    5559        par = parse_parameter( 
    56                 RADIUS_MODE_ID, 
    57                 "", 
    58                 1, 
    59                 [["unconstrained"] + p_info.effective_radius_type], 
    60                 "", 
    61                 "Effective radius calculation") 
     60            RADIUS_MODE_ID, 
     61            "", 
     62            1, 
     63            [["unconstrained"] + p_info.effective_radius_type], 
     64            "", 
     65            "Effective radius calculation") 
    6266        pars.append(par) 
    6367    return pars 
     
    104108    parameters.max_pd = p_pars.max_pd + s_pars.max_pd 
    105109    def random(): 
     110        """Random set of model parameters for product model""" 
    106111        combined_pars = p_info.random() 
    107112        s_names = set(par.id for par in s_pars.kernel_parameters) 
     
    132137        profile_pars = set(p.id for p in p_info.parameters.kernel_parameters) 
    133138        def profile(**kwargs): 
     139            """Return SLD profile of the form factor as a function of radius.""" 
    134140            # extract the profile args 
    135141            kwargs = dict((k, v) for k, v in kwargs.items() if k in profile_pars) 
     
    173179        effective_radius, # type: float 
    174180        beta_mode,        # type: bool 
    175         ): 
     181    ): 
    176182    # type: (...) -> OrderedDict[str, Union[np.ndarray, float]] 
    177183    """ 
     
    199205 
    200206class ProductModel(KernelModel): 
     207    """ 
     208    Model definition for product model. 
     209    """ 
    201210    def __init__(self, model_info, P, S): 
    202211        # type: (ModelInfo, KernelModel, KernelModel) -> None 
     
    229238        s_kernel = self.S.make_kernel(q_vectors) 
    230239        return ProductKernel(self.info, p_kernel, s_kernel) 
     240    make_kernel.__doc__ = KernelModel.make_kernel.__doc__ 
    231241 
    232242    def release(self): 
     
    240250 
    241251class ProductKernel(Kernel): 
     252    """ 
     253    Instantiated kernel for product model. 
     254    """ 
    242255    def __init__(self, model_info, p_kernel, s_kernel): 
    243256        # type: (ModelInfo, Kernel, Kernel) -> None 
     
    248261        self.results = []  # type: List[np.ndarray] 
    249262 
    250     def __call__(self, call_details, values, cutoff, magnetic): 
     263    def Iq(self, call_details, values, cutoff, magnetic): 
    251264        # type: (CallDetails, np.ndarray, float, bool) -> np.ndarray 
    252265 
     
    263276        beta_mode_offset = 2+p_npars+s_npars 
    264277        beta_mode = (values[beta_mode_offset] > 0) if have_beta_mode else False 
    265         if beta_mode and self.p_kernel.dim== '2d': 
     278        if beta_mode and self.p_kernel.dim == '2d': 
    266279            raise NotImplementedError("beta not yet supported for 2D") 
    267280 
     
    327340        # polydispersity distribution slot in the values array due to 
    328341        # implementation details in kernel_iq.c. 
    329         #print("R_eff=%d:%g, volfrac=%g, volume ratio=%g"%(radius_type, effective_radius, volfrac, volume_ratio)) 
     342        #print("R_eff=%d:%g, volfrac=%g, volume ratio=%g" 
     343        #      % (radius_type, effective_radius, volfrac, volume_ratio)) 
    330344        if radius_type > 0: 
    331345            # set the value to the model R_eff and set the weight to 1 
     
    360374        return final_result 
    361375 
     376    Iq.__doc__ = Kernel.Iq.__doc__ 
     377    __call__ = Iq 
     378 
    362379    def release(self): 
    363380        # type: () -> None 
     381        """Free resources associated with the kernel.""" 
    364382        self.p_kernel.release() 
    365383        self.s_kernel.release() 
Note: See TracChangeset for help on using the changeset viewer.