Changes in / [ccd5f01:9eb5eca] in sasmodels


Ignore:
Location:
sasmodels
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • sasmodels/conversion_table.py

    rfa6d6fc re1ea6b5  
    88""" 
    99 
     10# TODO: May need to version this for future versions of sasview when 
     11# TODO: models are reparameterized 
    1012 
    1113CONVERSION_TABLE = { 
     
    211213    ], 
    212214    "correlation_length": [ 
    213         "CorrLengthModel", 
     215        "CorrLength", 
    214216        { 
    215217            "porod_scale": "scale_p", 
     
    299301    ], 
    300302    "fractal_core_shell": [ 
    301         "FractalCoreShellModel", 
     303        "FractalCoreShell", 
    302304        { 
    303305            "sld_core": "core_sld", 
     
    321323    ], 
    322324    "gauss_lorentz_gel": [ 
    323         "GaussLorentzGelModel", 
     325        "GaussLorentzGel", 
    324326        { 
    325327            "gauss_scale": "scale_g", 
     
    331333    ], 
    332334    "gaussian_peak": [ 
    333         "PeakGaussModel", 
     335        "Peak Gauss Model", 
    334336        { 
    335337            "peak_pos": "q0", 
     
    343345            "lorentz_scale": "lScale", 
    344346            "guinier_scale": "gScale", 
    345             "fractal_dim": "scale", 
     347            "fractal_dim": "FractalExp", 
    346348            "cor_length": "zeta", 
    347349        } 
    348350    ], 
    349351    "guinier": [ 
    350         "GuinierModel", 
     352        "Guinier", 
    351353        { 
    352354            "rg": "rg" 
     
    354356    ], 
    355357    "guinier_porod": [ 
    356         "GuinierPorodModel", 
     358        "GuinierPorod", 
    357359        { 
    358360            "s": "dim", 
     
    454456            "d_spacing": "spacing", 
    455457            "Caille_parameter": "caille", 
    456             "Nlayers": "N_plates", 
     458            "Nlayers": "n_plates", 
    457459        } 
    458460    ], 
     
    486488    ], 
    487489    "lorentz": [ 
    488         "LorentzModel", 
     490        "Lorentz", 
    489491        { 
    490492            "cor_length": "length" 
     
    510512    ], 
    511513    "mono_gauss_coil": [ 
    512         "DebyeModel", 
     514        "Debye", 
    513515        { 
    514516            "rg": "rg", 
     
    564566    ], 
    565567    "peak_lorentz": [ 
    566         "PeakLorentzModel", 
     568        "Peak Lorentz Model", 
    567569        { 
    568570            "peak_pos": "q0", 
     
    802804    ], 
    803805    "two_lorentzian": [ 
    804         "TwoLorentzianModel", 
     806        "TwoLorentzian", 
    805807        { 
    806808            "lorentz_scale_1": "scale_1", 
     
    814816    ], 
    815817    "two_power_law": [ 
    816         "TwoPowerLawModel", 
     818        "TwoPowerLaw", 
    817819        { 
    818820            "coefficent_1": "coef_A", 
     
    824826    ], 
    825827    "unified_power_Rg": [ 
    826         "UnifiedPowerRgModel", 
    827         { 
    828         } 
     828        "UnifiedPowerRg", 
     829        dict(((field_new+str(index), field_old+str(index)) 
     830              for field_new, field_old in [("rg", "Rg"), 
     831                                           ("power", "power"), 
     832                                           ("G", "G"), 
     833                                           ("B", "B"),] 
     834              for index in range(11)), 
     835             **{ 
     836                   "background": "background", 
     837                   "scale": "scale", 
     838               }) 
    829839    ], 
    830840    "vesicle": [ 
  • sasmodels/convert.py

    rf80f334 re1ea6b5  
    5353    ("_pd_nsigma", ".nsigmas"), 
    5454    ("_pd_type", ".type"), 
     55    (".lower", ".lower"), 
     56    (".upper", ".upper"), 
     57    (".fittable", ".fittable"), 
     58    (".std", ".std"), 
     59    (".units", ".units"), 
     60    ("", "") 
    5561    ] 
    5662 
     
    6470    if id.startswith('M0:'): 
    6571        return True 
    66     if id.startswith('volfraction') or id.startswith('radius_effective'): 
    67         return False 
    6872    if '_pd' in id or '.' in id: 
    6973        return False 
     
    7579        if p.id == id: 
    7680            return p.type == 'sld' 
    77     raise ValueError("unknown parameter %r in conversion"%id) 
     81    return False 
    7882 
    7983def _rescale_sld(model_info, pars, scale): 
     
    119123def _pd_to_underscores(pars): 
    120124    return dict((_dot_pd_to_underscore_pd(k), v) for k, v in pars.items()) 
    121  
    122 def _convert_name(conv_dict, pars): 
    123     """ 
    124     Renames parameter values (upper, lower, etc) to v4.0 names 
    125     :param conv_dict: conversion dictionary mapping new name : old name 
    126     :param pars: parameters to convert 
    127     :return: 
    128     """ 
    129     new_pars = {} 
    130     i = 0 
    131     j = 0 
    132     for key_par, value_par in pars.iteritems(): 
    133         j += 1 
    134         for key_conv, value_conv in conv_dict.iteritems(): 
    135             if re.search(value_conv, key_par): 
    136                 new_pars[key_par.replace(value_conv, key_conv)] = value_par 
    137                 i += 1 
    138                 break 
    139             elif re.search("background", key_par) or re.search("scale", key_par): 
    140                 new_pars[key_par] = value_par 
    141                 i += 1 
    142                 break 
    143         if i != j: 
    144             new_pars[key_par] = value_par 
    145             i += 1 
    146     return new_pars 
    147125 
    148126def _convert_pars(pars, mapping): 
     
    166144                    del newpars[source] 
    167145    return newpars 
    168  
    169146 
    170147def _conversion_target(model_name): 
     
    215192            pd = oldpars['radius.width']*oldpars['radius']/thickness 
    216193            oldpars['radius.width'] = pd 
     194    elif name == 'multilayer_vesicle': 
     195        if 'scale' in oldpars: 
     196            oldpars['volfraction'] = oldpars['scale'] 
     197            oldpars['scale'] = 1.0 
     198        if 'scale.lower' in oldpars: 
     199            oldpars['volfraction.lower'] = oldpars['scale.lower'] 
     200        if 'scale.upper' in oldpars: 
     201            oldpars['volfraction.upper'] = oldpars['scale.upper'] 
     202        if 'scale.fittable' in oldpars: 
     203            oldpars['volfraction.fittable'] = oldpars['scale.fittable'] 
     204        if 'scale.std' in oldpars: 
     205            oldpars['volfraction.std'] = oldpars['scale.std'] 
     206        if 'scale.units' in oldpars: 
     207            oldpars['volfraction.units'] = oldpars['scale.units'] 
    217208    elif name == 'pearl_necklace': 
    218209        pass 
     
    236227                oldpars[p + ".upper"] /= 1e-13 
    237228    elif name == 'spherical_sld': 
    238         oldpars["CONTROL"] += 1 
     229        oldpars["CONTROL"] = 0 
     230        i = 0 
     231        while "nu_inter" + str(i) in oldpars: 
     232            oldpars["CONTROL"] += 1 
     233            i += 1 
    239234    elif name == 'teubner_strey': 
    240235        # basically undoing the entire Teubner-Strey calculations here. 
     
    298293        translation = _get_translation_table(model_info) 
    299294    newpars = _hand_convert(newname, pars.copy()) 
    300     newpars = _convert_name(translation, newpars) 
    301295    newpars = _convert_pars(newpars, translation) 
    302296    if not model_info.structure_factor: 
Note: See TracChangeset for help on using the changeset viewer.