- Timestamp:
- Sep 2, 2014 2:35:23 PM (10 years ago)
- 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
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
fit.py
r4001d6e r87985ca 2 2 # -*- coding: utf-8 -*- 3 3 4 import sys 4 5 from 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 6 from sasmodels import bumps_model as sas 13 7 14 8 """ IMPORT THE DATA USED """ 15 #data = load_data('December/Tangential/Sector0/DEC07133.ABS') 16 data = load_data('December/DEC07098.DAT') 9 radial_data = sas.load_data('December/DEC07267.DAT') 10 sas.set_beam_stop(radial_data, 0.00669, outer=0.025) 11 sas.set_top(radial_data, -.0185) 17 12 18 """ SET INNER BEAM STOP, OUTER RING, AND MASK HALF OF THE DATA """ 19 s et_beam_stop(data, 0.004)#, outer=0.025)20 s et_top(data, -.018)21 #s et_half(data, 'right')13 tan_data = sas.load_data('December/DEC07266.DAT') 14 sas.set_beam_stop(tan_data, 0.00669, outer=0.025) 15 sas.set_top(tan_data, -.0185) 16 #sas.set_half(tan_data, 'right') 22 17 18 name = "ellipsoid" if len(sys.argv) < 2 else sys.argv[1] 19 section = "radial" if len(sys.argv) < 3 else sys.argv[2] 20 data = radial_data if section is not "tangent" else tan_data 21 kernel = sas.load_model(name, dtype="single") 23 22 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, 23 if name == "ellipsoid": 24 model = sas.BumpsModel(data, kernel, 35 25 scale=0.08, 36 r adius_a=15, radius_b=800,37 sld Ell=.291e-6, sldSolv=7.105e-6,26 rpolar=15, requatorial=800, 27 sld=.291, solvent_sld=7.105, 38 28 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 r adius_a_pd=0.222296, radius_a_pd_n=1, radius_a_pd_nsigma=0,42 r adius_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 ) 45 35 46 36 47 37 # SET THE FITTING PARAMETERS 48 #model.r adius_a.range(15, 1000)49 #model.r adius_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) 51 41 #model.background.range(0,1000) 52 42 model.scale.range(0, 1) 53 43 54 44 55 if 0:56 model = SasModel(data, GpuLamellar,45 elif name == "lamellar": 46 model = sas.BumpsModel(data, kernel, 57 47 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, 60 50 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 ) 63 53 64 54 # SET THE FITTING PARAMETERS 65 #model. bi_thick.range(0, 1000)55 #model.thickness.range(0, 1000) 66 56 #model.scale.range(0, 1) 67 #model. bi_thick_pd.range(0, 1000)57 #model.thickness_pd.range(0, 1000) 68 58 #model.background.range(0, 1000) 69 model.sld _bi.range(0, 1)59 model.sld.range(0, 1) 70 60 71 61 72 if 0:62 elif name == "cylinder": 73 63 """ 74 64 pars = dict(scale=0.0023, radius=92.5, length=798.3, 75 sld Cyl=.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, 78 68 radius_pd=.0084, radius_pd_n=10, radius_pd_nsigma=3, 79 69 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,) 81 71 """ 82 72 pars = dict( 83 scale=.01, radius=64.1, length=66.96, sld Cyl=.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, 85 75 radius_pd=0.1, radius_pd_n=10, radius_pd_nsigma=3, 86 76 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) 90 80 91 81 … … 94 84 model.radius.range(1, 500) 95 85 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 + 586 #model.theta.range(-90,100) 87 #model.theta_pd.range(0, 90) 88 #model.theta_pd_n = model.theta_pd + 5 99 89 #model.radius_pd.range(0, 90) 100 90 #model.length_pd.range(0, 90) 101 91 model.scale.range(0, 1) 102 92 #model.background.range(0, 100) 103 #model.sld Cyl.range(0, 1)93 #model.sld.range(0, 1) 104 94 105 95 106 if 1:107 model = SasModel(data, GpuCoreShellCylinder,96 elif name == "core_shell_cylinder": 97 model = sas.BumpsModel(data, kernel, 108 98 scale= .031, radius=19.5, thickness=30, length=22, 109 core_sld=7.105 e-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, 111 101 112 102 radius_pd=0.26, radius_pd_n=10, radius_pd_nsigma=3, 113 103 length_pd=0.26, length_pd_n=10, length_pd_nsigma=3, 114 104 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 ) 118 108 119 109 # SET THE FITTING PARAMETERS … … 122 112 #model.thickness.range(18, 38) 123 113 #model.thickness_pd.range(0, 1) 124 #model. axis_phi.range(0, 90)114 #model.phi.range(0, 90) 125 115 #model.radius_pd.range(0, 1) 126 116 #model.length_pd.range(0, 1) 127 #model. axis_theta_pd.range(0, 360)117 #model.theta_pd.range(0, 360) 128 118 #model.background.range(0,5) 129 119 model.scale.range(0, 1) … … 131 121 132 122 133 if 0:134 model = SasModel(data, GpuCapCylinder,135 scale=.08, rad _cyl=20, rad_cap=40, len_cyl=400,136 sld_capcyl=1 e-6, sld_solv=6.3e-6,123 elif 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, 137 127 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, 141 131 theta_pd=.1, theta_pd_n=1, theta_pd_nsigma=0, 142 132 phi_pd=.1, phi_pd_n=1, phi_pd_nsigma=0, 143 dtype= 'float32')133 dtype=dtype) 144 134 145 135 model.scale.range(0, 1) 146 136 147 137 148 if 0:149 model = SasModel(data, GpuTriEllipse,150 scale=0.08, axisA=15, axisB=20, axisC=500,151 sldEll=7.105 e-6, sldSolv=.291e-6,138 elif 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, 152 142 background=5, theta=0, phi=0, psi=0, 153 143 theta_pd=20, theta_pd_n=40, theta_pd_nsigma=3, 154 144 phi_pd=.1, phi_pd_n=1, phi_pd_nsigma=0, 155 145 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) 159 149 160 150 # 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) 164 154 #model.background.range(0,1000) 165 155 #model.theta_pd.range(0, 360) … … 167 157 #model.psi_pd.range(0, 360) 168 158 159 else: 160 print "No parameters for %s"%name 161 sys.exit(1) 169 162 163 if 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]) 167 else: 168 problem = FitProblem(model) 170 169 171 172 problem = FitProblem(model)173
Note: See TracChangeset
for help on using the changeset viewer.