Changeset 346bc88 in sasmodels for example/fit.py


Ignore:
Timestamp:
Aug 31, 2015 8:24:45 PM (9 years ago)
Author:
Paul Kienzle <pkienzle@…>
Branches:
master, core_shell_microgels, costrafo411, magnetic_model, release_v0.94, release_v0.95, ticket-1257-vesicle-product, ticket_1156, ticket_1265_superball, ticket_822_more_unit_tests
Children:
3e6aaad
Parents:
f224873
git-author:
Paul Kienzle <pkienzle@…> (08/31/15 20:12:39)
git-committer:
Paul Kienzle <pkienzle@…> (08/31/15 20:24:45)
Message:

Add 2D resolution smearing. Split BumpsModel? into Experiment and Model and fix up examples.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • example/fit.py

    r5d3d7b4 r346bc88  
    44import sys 
    55from bumps.names import * 
     6from sasmodels.core import load_model 
    67from sasmodels import bumps_model as sas 
    78 
     
    2324data = radial_data if section != "tangential" else tan_data 
    2425phi = 0 if section != "tangential" else 90 
    25 kernel = sas.load_model(name, dtype="single") 
     26kernel = load_model(name, dtype="single") 
    2627cutoff = 1e-3 
    2728 
    2829if name == "ellipsoid": 
    29     model = sas.BumpsModel(data, kernel, 
    30     scale=0.08, 
    31     rpolar=15, requatorial=800, 
    32     sld=.291, solvent_sld=7.105, 
    33     background=0, 
    34     theta=90, phi=phi, 
    35     theta_pd=15, theta_pd_n=40, theta_pd_nsigma=3, 
    36     rpolar_pd=0.222296, rpolar_pd_n=1, rpolar_pd_nsigma=0, 
    37     requatorial_pd=.000128, requatorial_pd_n=1, requatorial_pd_nsigma=0, 
    38     phi_pd=0, phi_pd_n=20, phi_pd_nsigma=3, 
    39     ) 
     30    model = sas.Model(kernel, 
     31        scale=0.08, 
     32        rpolar=15, requatorial=800, 
     33        sld=.291, solvent_sld=7.105, 
     34        background=0, 
     35        theta=90, phi=phi, 
     36        theta_pd=15, theta_pd_n=40, theta_pd_nsigma=3, 
     37        rpolar_pd=0.222296, rpolar_pd_n=1, rpolar_pd_nsigma=0, 
     38        requatorial_pd=.000128, requatorial_pd_n=1, requatorial_pd_nsigma=0, 
     39        phi_pd=0, phi_pd_n=20, phi_pd_nsigma=3, 
     40        ) 
    4041 
    4142 
    4243    # SET THE FITTING PARAMETERS 
    43     #model.rpolar.range(15, 1000) 
    44     #model.requatorial.range(15, 1000) 
    45     #model.theta_pd.range(0, 360) 
    46     #model.background.range(0,1000) 
     44    model.rpolar.range(15, 1000) 
     45    model.requatorial.range(15, 1000) 
     46    model.theta_pd.range(0, 360) 
     47    model.background.range(0,1000) 
    4748    model.scale.range(0, 10) 
    4849 
    4950 
     51 
    5052elif name == "lamellar": 
    51     model = sas.BumpsModel(data, kernel, 
    52     scale=0.08, 
    53     thickness=19.2946, 
    54     sld=5.38,sld_sol=7.105, 
    55     background=0.003, 
    56     thickness_pd= 0.37765, thickness_pd_n=10, thickness_pd_nsigma=3, 
    57     ) 
     53    model = sas.Model(kernel, 
     54        scale=0.08, 
     55        thickness=19.2946, 
     56        sld=5.38,sld_sol=7.105, 
     57        background=0.003, 
     58        thickness_pd= 0.37765, thickness_pd_n=10, thickness_pd_nsigma=3, 
     59        ) 
     60 
    5861 
    5962    # SET THE FITTING PARAMETERS 
     
    8487        theta_pd=10, theta_pd_n=50, theta_pd_nsigma=3, 
    8588        phi_pd=0, phi_pd_n=10, phi_pd_nsigma=3) 
    86     model = sas.BumpsModel(data, kernel, **pars) 
     89    model = sas.Model(kernel, **pars) 
    8790 
    8891    # SET THE FITTING PARAMETERS 
     
    99102 
    100103elif name == "core_shell_cylinder": 
    101     model = sas.BumpsModel(data, kernel, 
    102     scale= .031, radius=19.5, thickness=30, length=22, 
    103     core_sld=7.105, shell_sld=.291, solvent_sld=7.105, 
    104     background=0, theta=0, phi=phi, 
     104    model = sas.Model(kernel, 
     105        scale= .031, radius=19.5, thickness=30, length=22, 
     106        core_sld=7.105, shell_sld=.291, solvent_sld=7.105, 
     107        background=0, theta=0, phi=phi, 
    105108 
    106     radius_pd=0.26, radius_pd_n=10, radius_pd_nsigma=3, 
    107     length_pd=0.26, length_pd_n=10, length_pd_nsigma=3, 
    108     thickness_pd=1, thickness_pd_n=1, thickness_pd_nsigma=1, 
    109     theta_pd=1, theta_pd_n=10, theta_pd_nsigma=3, 
    110     phi_pd=0.1, phi_pd_n=1, phi_pd_nsigma=1, 
    111     ) 
     109        radius_pd=0.26, radius_pd_n=10, radius_pd_nsigma=3, 
     110        length_pd=0.26, length_pd_n=10, length_pd_nsigma=3, 
     111        thickness_pd=1, thickness_pd_n=1, thickness_pd_nsigma=1, 
     112        theta_pd=1, theta_pd_n=10, theta_pd_nsigma=3, 
     113        phi_pd=0.1, phi_pd_n=1, phi_pd_nsigma=1, 
     114        ) 
    112115 
    113116    # SET THE FITTING PARAMETERS 
     
    126129 
    127130elif name == "capped_cylinder": 
    128     model = sas.BumpsModel(data, kernel, 
    129     scale=.08, radius=20, cap_radius=40, length=400, 
    130     sld_capcyl=1, sld_solv=6.3, 
    131     background=0, theta=0, phi=phi, 
    132     radius_pd=.1, radius_pd_n=5, radius_pd_nsigma=3, 
    133     cap_radius_pd=.1, cap_radius_pd_n=5, cap_radius_pd_nsigma=3, 
    134     length_pd=.1, length_pd_n=1, length_pd_nsigma=0, 
    135     theta_pd=.1, theta_pd_n=1, theta_pd_nsigma=0, 
    136     phi_pd=.1, phi_pd_n=1, phi_pd_nsigma=0, 
    137     dtype=dtype) 
     131    model = sas.Model(kernel, 
     132        scale=.08, radius=20, cap_radius=40, length=400, 
     133        sld_capcyl=1, sld_solv=6.3, 
     134        background=0, theta=0, phi=phi, 
     135        radius_pd=.1, radius_pd_n=5, radius_pd_nsigma=3, 
     136        cap_radius_pd=.1, cap_radius_pd_n=5, cap_radius_pd_nsigma=3, 
     137        length_pd=.1, length_pd_n=1, length_pd_nsigma=0, 
     138        theta_pd=.1, theta_pd_n=1, theta_pd_nsigma=0, 
     139        phi_pd=.1, phi_pd_n=1, phi_pd_nsigma=0, 
     140        ) 
    138141 
    139142    model.scale.range(0, 1) 
     
    141144 
    142145elif name == "triaxial_ellipsoid": 
    143     model = sas.BumpsModel(data, kernel, 
    144     scale=0.08, req_minor=15, req_major=20, rpolar=500, 
    145     sldEll=7.105, solvent_sld=.291, 
    146     background=5, theta=0, phi=phi, psi=0, 
    147     theta_pd=20, theta_pd_n=40, theta_pd_nsigma=3, 
    148     phi_pd=.1, phi_pd_n=1, phi_pd_nsigma=0, 
    149     psi_pd=30, psi_pd_n=1, psi_pd_nsigma=0, 
    150     req_minor_pd=.1, req_minor_pd_n=1, req_minor_pd_nsigma=0, 
    151     req_major_pd=.1, req_major_pd_n=1, req_major_pd_nsigma=0, 
    152     rpolar_pd=.1, rpolar_pd_n=1, rpolar_pd_nsigma=0, dtype=dtype) 
     146    model = sas.Model(kernel, 
     147        scale=0.08, req_minor=15, req_major=20, rpolar=500, 
     148        sldEll=7.105, solvent_sld=.291, 
     149        background=5, theta=0, phi=phi, psi=0, 
     150        theta_pd=20, theta_pd_n=40, theta_pd_nsigma=3, 
     151        phi_pd=.1, phi_pd_n=1, phi_pd_nsigma=0, 
     152        psi_pd=30, psi_pd_n=1, psi_pd_nsigma=0, 
     153        req_minor_pd=.1, req_minor_pd_n=1, req_minor_pd_nsigma=0, 
     154        req_major_pd=.1, req_major_pd_n=1, req_major_pd_nsigma=0, 
     155        rpolar_pd=.1, rpolar_pd_n=1, rpolar_pd_nsigma=0, 
     156        ) 
    153157 
    154158    # SET THE FITTING PARAMETERS 
     
    166170 
    167171model.cutoff = cutoff 
     172M = sas.Experiment(data=data, model=model) 
    168173if section == "both": 
    169    tan_model = sas.BumpsModel(tan_data, model.model, model.parameters()) 
     174   tan_model = sas.Model(model.kernel, **model.parameters()) 
    170175   tan_model.phi = model.phi - 90 
    171176   tan_model.cutoff = cutoff 
    172    problem = FitProblem([model, tan_model]) 
     177   tan_M = sas.Experiment(data=tan_data, model=tan_model) 
     178   problem = FitProblem([M, tan_M]) 
    173179else: 
    174    problem = FitProblem(model) 
     180   problem = FitProblem(M) 
Note: See TracChangeset for help on using the changeset viewer.