Changeset 87985ca in sasmodels for fit.py


Ignore:
Timestamp:
Sep 2, 2014 2:35:23 PM (10 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:
19dcb933
Parents:
f4cf580
Message:

clean up source tree

File:
1 edited

Legend:

Unmodified
Added
Removed
  • fit.py

    r4001d6e r87985ca  
    22# -*- coding: utf-8 -*- 
    33 
     4import sys 
    45from bumps.names import * 
    5 from sasmodel import SasModel, load_data, set_beam_stop, set_half, set_top 
    6 from Models.code_capcyl import GpuCapCylinder 
    7 from Models.code_coreshellcyl_f import GpuCoreShellCylinder 
    8 from Models.code_cylinder_f import GpuCylinder 
    9 #from Models.code_cylinder import GpuCylinder, OneDGpuCylinder 
    10 from Models.code_ellipse_f import GpuEllipse 
    11 from Models.code_lamellar import GpuLamellar 
    12 from Models.code_triaxialellipse import GpuTriEllipse 
     6from sasmodels import bumps_model as sas 
    137 
    148""" IMPORT THE DATA USED """ 
    15 #data = load_data('December/Tangential/Sector0/DEC07133.ABS') 
    16 data = load_data('December/DEC07098.DAT') 
     9radial_data = sas.load_data('December/DEC07267.DAT') 
     10sas.set_beam_stop(radial_data, 0.00669, outer=0.025) 
     11sas.set_top(radial_data, -.0185) 
    1712 
    18 """ SET INNER BEAM STOP, OUTER RING, AND MASK HALF OF THE DATA """ 
    19 set_beam_stop(data, 0.004)#, outer=0.025) 
    20 set_top(data, -.018) 
    21 #set_half(data, 'right') 
     13tan_data = sas.load_data('December/DEC07266.DAT') 
     14sas.set_beam_stop(tan_data, 0.00669, outer=0.025) 
     15sas.set_top(tan_data, -.0185) 
     16#sas.set_half(tan_data, 'right') 
    2217 
     18name = "ellipsoid" if len(sys.argv) < 2 else sys.argv[1] 
     19section = "radial" if len(sys.argv) < 3 else sys.argv[2] 
     20data = radial_data if section is not "tangent" else tan_data 
     21kernel = sas.load_model(name, dtype="single") 
    2322 
    24 if 0: 
    25     model = SasModel(data, OneDGpuCylinder, 
    26     scale=0.0013, radius=105, length=1000, 
    27     background=21, sldCyl=.291e-6,sldSolv=7.105e-6, 
    28     radius_pd=0.1,radius_pd_n=10,radius_pd_nsigma=0, 
    29     length_pd=0.1,length_pd_n=5,length_pd_nsigma=0, 
    30     bolim=0.0, uplim=90) #bottom limit, upper limit of angle integral 
    31  
    32  
    33 if 0: 
    34     model = SasModel(data, GpuEllipse, 
     23if name == "ellipsoid": 
     24    model = sas.BumpsModel(data, kernel, 
    3525    scale=0.08, 
    36     radius_a=15, radius_b=800, 
    37     sldEll=.291e-6, sldSolv=7.105e-6, 
     26    rpolar=15, requatorial=800, 
     27    sld=.291, solvent_sld=7.105, 
    3828    background=0, 
    39     axis_theta=90, axis_phi=0, 
    40     axis_theta_pd=15, axis_theta_pd_n=40, axis_theta_pd_nsigma=3, 
    41     radius_a_pd=0.222296, radius_a_pd_n=1, radius_a_pd_nsigma=0, 
    42     radius_b_pd=.000128, radius_b_pd_n=1, radius_b_pd_nsigma=0, 
    43     axis_phi_pd=2.63698e-05, axis_phi_pd_n=20, axis_phi_pd_nsigma=3, 
    44     dtype='float32') 
     29    theta=90, phi=0, 
     30    theta_pd=15, theta_pd_n=40, theta_pd_nsigma=3, 
     31    rpolar_pd=0.222296, rpolar_pd_n=1, rpolar_pd_nsigma=0, 
     32    requatorial_pd=.000128, requatorial_pd_n=1, requatorial_pd_nsigma=0, 
     33    phi_pd=0, phi_pd_n=20, phi_pd_nsigma=3, 
     34    ) 
    4535 
    4636 
    4737    # SET THE FITTING PARAMETERS 
    48     #model.radius_a.range(15, 1000) 
    49     #model.radius_b.range(15, 1000) 
    50     #model.axis_theta_pd.range(0, 360) 
     38    #model.rpolar.range(15, 1000) 
     39    #model.requatorial.range(15, 1000) 
     40    #model.theta_pd.range(0, 360) 
    5141    #model.background.range(0,1000) 
    5242    model.scale.range(0, 1) 
    5343 
    5444 
    55 if 0: 
    56     model = SasModel(data, GpuLamellar, 
     45elif name == "lamellar": 
     46    model = sas.BumpsModel(data, kernel, 
    5747    scale=0.08, 
    58     bi_thick=19.2946, 
    59     sld_bi=5.38e-6,sld_sol=7.105e-6, 
     48    thickness=19.2946, 
     49    sld=5.38,sld_sol=7.105, 
    6050    background=0.003, 
    61     bi_thick_pd= 0.37765, bi_thick_pd_n=10, bi_thick_pd_nsigma=3, 
    62     dtype='float32') 
     51    thickness_pd= 0.37765, thickness_pd_n=10, thickness_pd_nsigma=3, 
     52    ) 
    6353 
    6454    # SET THE FITTING PARAMETERS 
    65     #model.bi_thick.range(0, 1000) 
     55    #model.thickness.range(0, 1000) 
    6656    #model.scale.range(0, 1) 
    67     #model.bi_thick_pd.range(0, 1000) 
     57    #model.thickness_pd.range(0, 1000) 
    6858    #model.background.range(0, 1000) 
    69     model.sld_bi.range(0, 1) 
     59    model.sld.range(0, 1) 
    7060 
    7161 
    72 if 0: 
     62elif name == "cylinder": 
    7363    """ 
    7464    pars = dict(scale=0.0023, radius=92.5, length=798.3, 
    75         sldCyl=.29e-6, sldSolv=7.105e-6, background=5, 
    76         cyl_theta=0, cyl_phi=0, 
    77         cyl_theta_pd=22.11, cyl_theta_pd_n=5, cyl_theta_pd_nsigma=3, 
     65        sld=.29, solvent_sld=7.105, background=5, 
     66        theta=0, phi=0, 
     67        theta_pd=22.11, theta_pd_n=5, theta_pd_nsigma=3, 
    7868        radius_pd=.0084, radius_pd_n=10, radius_pd_nsigma=3, 
    7969        length_pd=0.493, length_pd_n=10, length_pd_nsigma=3, 
    80         cyl_phi_pd=0, cyl_phi_pd_n=5, cyl_phi_pd_nsigma=3,) 
     70        phi_pd=0, phi_pd_n=5, phi_pd_nsigma=3,) 
    8171        """ 
    8272    pars = dict( 
    83         scale=.01, radius=64.1, length=66.96, sldCyl=.291e-6, sldSolv=5.77e-6, background=.1, 
    84         cyl_theta=90, cyl_phi=0, 
     73        scale=.01, radius=64.1, length=66.96, sld=.291, solvent_sld=5.77, background=.1, 
     74        theta=90, phi=0, 
    8575        radius_pd=0.1, radius_pd_n=10, radius_pd_nsigma=3, 
    8676        length_pd=0.1,length_pd_n=5, length_pd_nsigma=3, 
    87         cyl_theta_pd=0.1, cyl_theta_pd_n=5, cyl_theta_pd_nsigma=3, 
    88         cyl_phi_pd=0.1, cyl_phi_pd_n=10, cyl_phi_pd_nsigma=3) 
    89     model = SasModel(data, GpuCylinder, dtype="float32", **pars) 
     77        theta_pd=0.1, theta_pd_n=5, theta_pd_nsigma=3, 
     78        phi_pd=0.1, phi_pd_n=10, phi_pd_nsigma=3) 
     79    model = sas.BumpsModel(data, kernel, **pars) 
    9080 
    9181 
     
    9484    model.radius.range(1, 500) 
    9585    model.length.range(1, 5000) 
    96     #model.cyl_theta.range(-90,100) 
    97     #model.cyl_theta_pd.range(0, 90) 
    98     #model.cyl_theta_pd_n = model.cyl_theta_pd + 5 
     86    #model.theta.range(-90,100) 
     87    #model.theta_pd.range(0, 90) 
     88    #model.theta_pd_n = model.theta_pd + 5 
    9989    #model.radius_pd.range(0, 90) 
    10090    #model.length_pd.range(0, 90) 
    10191    model.scale.range(0, 1) 
    10292    #model.background.range(0, 100) 
    103     #model.sldCyl.range(0, 1) 
     93    #model.sld.range(0, 1) 
    10494 
    10595 
    106 if 1: 
    107     model = SasModel(data, GpuCoreShellCylinder, 
     96elif name == "core_shell_cylinder": 
     97    model = sas.BumpsModel(data, kernel, 
    10898    scale= .031, radius=19.5, thickness=30, length=22, 
    109     core_sld=7.105e-6, shell_sld=.291e-6, solvent_sld=7.105e-6, 
    110     background=0, axis_theta=0, axis_phi=0, 
     99    core_sld=7.105, shell_sld=.291, solvent_sld=7.105, 
     100    background=0, theta=0, phi=0, 
    111101 
    112102    radius_pd=0.26, radius_pd_n=10, radius_pd_nsigma=3, 
    113103    length_pd=0.26, length_pd_n=10, length_pd_nsigma=3, 
    114104    thickness_pd=1, thickness_pd_n=1, thickness_pd_nsigma=1, 
    115     axis_theta_pd=1, axis_theta_pd_n=10, axis_theta_pd_nsigma=3, 
    116     axis_phi_pd=0.1, axis_phi_pd_n=1, axis_phi_pd_nsigma=1, 
    117     dtype='float32') 
     105    theta_pd=1, theta_pd_n=10, theta_pd_nsigma=3, 
     106    phi_pd=0.1, phi_pd_n=1, phi_pd_nsigma=1, 
     107    ) 
    118108 
    119109    # SET THE FITTING PARAMETERS 
     
    122112    #model.thickness.range(18, 38) 
    123113    #model.thickness_pd.range(0, 1) 
    124     #model.axis_phi.range(0, 90) 
     114    #model.phi.range(0, 90) 
    125115    #model.radius_pd.range(0, 1) 
    126116    #model.length_pd.range(0, 1) 
    127     #model.axis_theta_pd.range(0, 360) 
     117    #model.theta_pd.range(0, 360) 
    128118    #model.background.range(0,5) 
    129119    model.scale.range(0, 1) 
     
    131121 
    132122 
    133 if 0: 
    134     model = SasModel(data, GpuCapCylinder, 
    135     scale=.08, rad_cyl=20, rad_cap=40, len_cyl=400, 
    136     sld_capcyl=1e-6, sld_solv=6.3e-6, 
     123elif name == "capped_cylinder": 
     124    model = sas.BumpsModel(data, kernel, 
     125    scale=.08, radius=20, cap_radius=40, length=400, 
     126    sld_capcyl=1, sld_solv=6.3, 
    137127    background=0, theta=0, phi=0, 
    138     rad_cyl_pd=.1, rad_cyl_pd_n=5, rad_cyl_pd_nsigma=3, 
    139     rad_cap_pd=.1, rad_cap_pd_n=5, rad_cap_pd_nsigma=3, 
    140     len_cyl_pd=.1, len_cyl_pd_n=1, len_cyl_pd_nsigma=0, 
     128    radius_pd=.1, radius_pd_n=5, radius_pd_nsigma=3, 
     129    cap_radius_pd=.1, cap_radius_pd_n=5, cap_radius_pd_nsigma=3, 
     130    length_pd=.1, length_pd_n=1, length_pd_nsigma=0, 
    141131    theta_pd=.1, theta_pd_n=1, theta_pd_nsigma=0, 
    142132    phi_pd=.1, phi_pd_n=1, phi_pd_nsigma=0, 
    143     dtype='float32') 
     133    dtype=dtype) 
    144134 
    145135    model.scale.range(0, 1) 
    146136 
    147137 
    148 if 0: 
    149     model = SasModel(data, GpuTriEllipse, 
    150     scale=0.08, axisA=15, axisB=20, axisC=500, 
    151     sldEll=7.105e-6, sldSolv=.291e-6, 
     138elif name == "triaxial_ellipsoid": 
     139    model = sas.BumpsModel(data, kernel, 
     140    scale=0.08, req_minor=15, req_major=20, rpolar=500, 
     141    sldEll=7.105, solvent_sld=.291, 
    152142    background=5, theta=0, phi=0, psi=0, 
    153143    theta_pd=20, theta_pd_n=40, theta_pd_nsigma=3, 
    154144    phi_pd=.1, phi_pd_n=1, phi_pd_nsigma=0, 
    155145    psi_pd=30, psi_pd_n=1, psi_pd_nsigma=0, 
    156     axisA_pd=.1, axisA_pd_n=1, axisA_pd_nsigma=0, 
    157     axisB_pd=.1, axisB_pd_n=1, axisB_pd_nsigma=0, 
    158     axisC_pd=.1, axisC_pd_n=1, axisC_pd_nsigma=0, dtype='float32') 
     146    req_minor_pd=.1, req_minor_pd_n=1, req_minor_pd_nsigma=0, 
     147    req_major_pd=.1, req_major_pd_n=1, req_major_pd_nsigma=0, 
     148    rpolar_pd=.1, rpolar_pd_n=1, rpolar_pd_nsigma=0, dtype=dtype) 
    159149 
    160150    # SET THE FITTING PARAMETERS 
    161     model.axisA.range(15, 1000) 
    162     model.axisB.range(15, 1000) 
    163     #model.axisC.range(15, 1000) 
     151    model.req_minor.range(15, 1000) 
     152    model.req_major.range(15, 1000) 
     153    #model.rpolar.range(15, 1000) 
    164154    #model.background.range(0,1000) 
    165155    #model.theta_pd.range(0, 360) 
     
    167157    #model.psi_pd.range(0, 360) 
    168158 
     159else: 
     160    print "No parameters for %s"%name 
     161    sys.exit(1) 
    169162 
     163if section is "both": 
     164   tan_model = sas.BumpsModel(tan_data, model.model, model.parameters()) 
     165   tan_model.phi = model.phi - 90 
     166   problem = FitProblem([model, tan_model]) 
     167else: 
     168   problem = FitProblem(model) 
    170169 
    171  
    172 problem = FitProblem(model) 
    173  
Note: See TracChangeset for help on using the changeset viewer.