Changeset d547f16 in sasmodels
- Timestamp:
- Feb 16, 2015 7:06:30 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:
- a503bfd
- Parents:
- 10576d1
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
compare.py
rf786ff3 rd547f16 4 4 import sys 5 5 import math 6 from os.path import basename, dirname, join as joinpath 7 import glob 6 8 7 9 import numpy as np … … 10 12 from sasmodels import kernelcl, kerneldll 11 13 from sasmodels.convert import revert_model 14 15 # List of available models 16 ROOT = dirname(__file__) 17 MODELS = [basename(f)[:-3] 18 for f in sorted(glob.glob(joinpath(ROOT,"sasmodels","models","[a-zA-Z]*.py")))] 12 19 13 20 … … 295 302 opts = [arg for arg in sys.argv[1:] if arg.startswith('-')] 296 303 args = [arg for arg in sys.argv[1:] if not arg.startswith('-')] 297 models = "\n ".join("%-7s: %s"%(k,v.__name__.replace('_',' ')) 298 for k,v in sorted(MODELS.items())) 304 models = "\n ".join("%-15s"%v for v in MODELS) 299 305 if len(args) == 0: 300 306 print(USAGE%models) … … 311 317 sys.exit(1) 312 318 313 name, pars = MODELS[args[0]]() 319 # Get demo parameters from model definition, or use default parameters 320 # if model does not define demo parameters 321 name = args[0] 322 import sasmodels.models 323 __import__('sasmodels.models.'+name) 324 model = getattr(sasmodels.models, name) 325 pars = getattr(model, 'demo', None) 326 if pars is None: pars = dict((p[0],p[2]) for p in model.parameters) 327 314 328 Nopencl = int(args[1]) if len(args) > 1 else 5 315 329 Nsasview = int(args[2]) if len(args) > 2 else 1 … … 334 348 compare(name, pars, Nsasview, Nopencl, opts, set_pars) 335 349 336 # ===========================================================================337 #338 339 MODELS = {}340 def model(name):341 def gather_function(fn):342 MODELS[name] = fn343 return fn344 return gather_function345 346 347 @model('cyl')348 def cylinder():349 pars = dict(350 scale=1, background=0,351 sld=6, solvent_sld=1,352 #radius=5, length=20,353 radius=260, length=290,354 theta=30, phi=0,355 radius_pd=.2, radius_pd_n=9,356 length_pd=.2,length_pd_n=10,357 theta_pd=15, theta_pd_n=45,358 phi_pd=15, phi_pd_n=1,359 )360 return 'cylinder', pars361 362 @model('capcyl')363 def capped_cylinder():364 pars = dict(365 scale=1, background=0,366 sld=6, solvent_sld=1,367 radius=260, cap_radius=290, length=290,368 theta=30, phi=15,369 radius_pd=.2, radius_pd_n=1,370 cap_radius_pd=.2, cap_radius_pd_n=1,371 length_pd=.2, length_pd_n=10,372 theta_pd=15, theta_pd_n=45,373 phi_pd=15, phi_pd_n=1,374 )375 return 'capped_cylinder', pars376 377 378 @model('cscyl')379 def core_shell_cylinder():380 pars = dict(381 scale=1, background=0,382 core_sld=6, shell_sld=8, solvent_sld=1,383 radius=45, thickness=25, length=340,384 theta=30, phi=15,385 radius_pd=.2, radius_pd_n=1,386 length_pd=.2, length_pd_n=10,387 thickness_pd=.2, thickness_pd_n=10,388 theta_pd=15, theta_pd_n=45,389 phi_pd=15, phi_pd_n=1,390 )391 return 'core_shell_cylinder', pars392 393 394 @model('ell')395 def ellipsoid():396 pars = dict(397 scale=1, background=0,398 sld=6, solvent_sld=1,399 rpolar=50, requatorial=30,400 theta=30, phi=15,401 rpolar_pd=.2, rpolar_pd_n=15,402 requatorial_pd=.2, requatorial_pd_n=15,403 theta_pd=15, theta_pd_n=45,404 phi_pd=15, phi_pd_n=1,405 )406 return 'ellipsoid', pars407 408 409 @model('ell3')410 def triaxial_ellipsoid():411 pars = dict(412 scale=1, background=0,413 sld=6, solvent_sld=1,414 theta=30, phi=15, psi=5,415 req_minor=25, req_major=36, rpolar=50,416 req_minor_pd=0, req_minor_pd_n=1,417 req_major_pd=0, req_major_pd_n=1,418 rpolar_pd=.2, rpolar_pd_n=30,419 theta_pd=15, theta_pd_n=45,420 phi_pd=15, phi_pd_n=1,421 psi_pd=15, psi_pd_n=1,422 )423 return 'triaxial_ellipsoid', pars424 425 @model('sphpy')426 def spherepy():427 pars = dict(428 scale=1, background=0,429 sld=6, solvent_sld=1,430 radius=120,431 radius_pd=.2, radius_pd_n=45,432 )433 return 'spherepy', pars434 435 @model('sph')436 def sphere():437 pars = dict(438 scale=1, background=0,439 sld=6, solvent_sld=1,440 radius=120,441 radius_pd=.2, radius_pd_n=45,442 )443 return 'sphere', pars444 445 @model('lam')446 def lamellar():447 pars = dict(448 scale=1, background=0,449 sld=6, solvent_sld=1,450 thickness=40,451 thickness_pd= 0.2, thickness_pd_n=40,452 )453 return 'lamellar', pars454 455 350 if __name__ == "__main__": 456 351 main() -
sasmodels/models/capped_cylinder.py
r19dcb933 rd547f16 162 162 163 163 164 demo = dict( 165 scale=1, background=0, 166 sld=6, solvent_sld=1, 167 radius=260, cap_radius=290, length=290, 168 theta=30, phi=15, 169 radius_pd=.2, radius_pd_n=1, 170 cap_radius_pd=.2, cap_radius_pd_n=1, 171 length_pd=.2, length_pd_n=10, 172 theta_pd=15, theta_pd_n=45, 173 phi_pd=15, phi_pd_n=1, 174 ) 164 175 -
sasmodels/models/core_shell_cylinder.py
r19dcb933 rd547f16 168 168 return whole, whole-core 169 169 170 demo = dict( 171 scale=1, background=0, 172 core_sld=6, shell_sld=8, solvent_sld=1, 173 radius=45, thickness=25, length=340, 174 theta=30, phi=15, 175 radius_pd=.2, radius_pd_n=1, 176 length_pd=.2, length_pd_n=10, 177 thickness_pd=.2, thickness_pd_n=10, 178 theta_pd=15, theta_pd_n=45, 179 phi_pd=15, phi_pd_n=1, 180 ) -
sasmodels/models/cylinder.py
r19dcb933 rd547f16 151 151 return 0.5 * (ddd)**(1./3.) 152 152 153 # For testing against the old sasview models, include the converted parameter 154 # names and the target sasview model name. 155 oldname='CylinderModel' 156 oldpars=dict(theta='cyl_theta', phi='cyl_phi', sld='sldCyl', solvent_sld='sldSolv') 157 158 # parameters for demo 159 demo = dict( 160 scale=1, background=0, 161 sld=6, solvent_sld=1, 162 #radius=5, length=20, 163 radius=260, length=290, 164 theta=30, phi=0, 165 radius_pd=.2, radius_pd_n=9, 166 length_pd=.2,length_pd_n=10, 167 theta_pd=15, theta_pd_n=45, 168 phi_pd=15, phi_pd_n=1, 169 ) 170 -
sasmodels/models/ellipsoid.py
r19dcb933 rd547f16 177 177 ddd[valid] = 2.0*(delta+1.0)*rpolar*requatorial**2 178 178 return 0.5*ddd**(1.0/3.0) 179 180 181 demo = dict( 182 scale=1, background=0, 183 sld=6, solvent_sld=1, 184 rpolar=50, requatorial=30, 185 theta=30, phi=15, 186 rpolar_pd=.2, rpolar_pd_n=15, 187 requatorial_pd=.2, requatorial_pd_n=15, 188 theta_pd=15, theta_pd_n=45, 189 phi_pd=15, phi_pd_n=1, 190 ) -
sasmodels/models/lamellar.py
r994d77f rd547f16 94 94 # ER defaults to 0.0 95 95 # VR defaults to 1.0 96 97 demo = dict( 98 scale=1, background=0, 99 sld=6, solvent_sld=1, 100 thickness=40, 101 thickness_pd= 0.2, thickness_pd_n=40, 102 ) -
sasmodels/models/sphere.py
r994d77f rd547f16 109 109 110 110 # VR defaults to 1.0 111 112 demo = dict( 113 scale=1, background=0, 114 sld=6, solvent_sld=1, 115 radius=120, 116 radius_pd=.2, radius_pd_n=45, 117 ) -
sasmodels/models/spherepy.py
r10576d1 rd547f16 126 126 127 127 # VR defaults to 1.0 128 129 demo = dict( 130 scale=1, background=0, 131 sld=6, solvent_sld=1, 132 radius=120, 133 radius_pd=.2, radius_pd_n=45, 134 ) -
sasmodels/models/triaxial_ellipsoid.py
r19dcb933 rd547f16 129 129 return ellipsoid_ER(rpolar, np.sqrt(req_minor*req_major)) 130 130 131 demo = dict( 132 scale=1, background=0, 133 sld=6, solvent_sld=1, 134 theta=30, phi=15, psi=5, 135 req_minor=25, req_major=36, rpolar=50, 136 req_minor_pd=0, req_minor_pd_n=1, 137 req_major_pd=0, req_major_pd_n=1, 138 rpolar_pd=.2, rpolar_pd_n=30, 139 theta_pd=15, theta_pd_n=45, 140 phi_pd=15, phi_pd_n=1, 141 psi_pd=15, psi_pd_n=1, 142 )
Note: See TracChangeset
for help on using the changeset viewer.