Changeset d8e81f7 in sasmodels
- Timestamp:
- Mar 28, 2019 11:49:06 AM (6 years ago)
- Branches:
- master, ticket-1257-vesicle-product, ticket_1156, ticket_822_more_unit_tests
- Children:
- 6140894
- Parents:
- b39bf3b (diff), 2ed7de0 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent. - Location:
- sasmodels
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
sasmodels/core.py
r0b8a1fc r9562dd2 376 376 # type: () -> None 377 377 """Check that model load works""" 378 from .product import RADIUS_ID, VOLFRAC_ID, STRUCTURE_MODE_ID, RADIUS_MODE_ID 378 379 #Test the the model produces the parameters that we would expect 379 380 model = load_model("cylinder@hardsphere*sphere") 380 381 actual = [p.name for p in model.info.parameters.kernel_parameters] 381 target = ("sld sld_solvent radius length theta phi" 382 " radius_effective volfraction " 383 " structure_factor_mode effective_radius_type" 384 " A_sld A_sld_solvent A_radius").split() 382 target = ["sld", "sld_solvent", "radius", "length", "theta", "phi", 383 RADIUS_ID, VOLFRAC_ID, STRUCTURE_MODE_ID, RADIUS_MODE_ID, 384 "A_sld", "A_sld_solvent", "A_radius"] 385 385 assert target == actual, "%s != %s"%(target, actual) 386 386 -
sasmodels/direct_model.py
rb39bf3b rd8e81f7 76 76 R_eff_type = int(pars.pop(RADIUS_MODE_ID, 1.0)) 77 77 mesh = get_mesh(calculator.info, pars, dim=calculator.dim, mono=mono) 78 print("in call_Fq: pars", list(zip(*mesh))[0])78 #print("in call_Fq: pars", list(zip(*mesh))[0]) 79 79 call_details, values, is_magnetic = make_kernel_args(calculator, mesh) 80 80 #print("in call_Fq: values:", values) -
sasmodels/model_test.py
rb39bf3b rd8e81f7 247 247 platform=self.platform) 248 248 # run the tests 249 <<<<<<< HEAD 249 250 #self.info = ps_model.info 250 251 #print("SELF.INFO PARAMS!!!",[p.id for p in self.info.parameters.call_parameters]) 251 252 #print("PS MODEL PARAMETERS:",[p.id for p in ps_model.info.parameters.call_parameters]) 253 ======= 254 >>>>>>> 2ed7de04217c5103c5fd8d7c14e29e04923269d5 252 255 results.append(self.run_one(ps_model, ps_test)) 253 256 … … 394 397 invalid = [] 395 398 for par in sorted(pars.keys()): 396 # special handling of R_eff mode, which is not a usual parameter 399 # Ignore the R_eff mode parameter when checking for valid parameters. 400 # It is an allowed parameter for a model even though it does not exist 401 # in the parameter table. The call_Fq() function pops it from the 402 # parameter list and sends it directly to kernel.Fq(). 397 403 if par == product.RADIUS_MODE_ID: 398 continue399 if par == product.RADIUS_TYPE_ID:400 continue401 if par == product.STRUCTURE_MODE_ID:402 404 continue 403 405 parts = par.split('_pd') -
sasmodels/product.py
rb39bf3b rd8e81f7 39 39 STRUCTURE_MODE_ID = "structure_factor_mode" 40 40 RADIUS_MODE_ID = "radius_effective_mode" 41 # rkh add this to pass to model_test42 RADIUS_TYPE_ID = "effective_radius_type"43 41 RADIUS_ID = "radius_effective" 44 42 VOLFRAC_ID = "volfraction" -
sasmodels/models/sphere.py
r2ed7de0 rb39bf3b 75 75 ["sld_solvent", "1e-6/Ang^2", 6, [-inf, inf], "sld", 76 76 "Solvent scattering length density"], 77 ["radius", "Ang", 50, [0, inf], "volume",77 ["radius", "Ang", 45, [0, inf], "volume", 78 78 "Sphere radius"], 79 79 ] … … 92 92 93 93 tests = [ 94 [{}, 0.2, 0.726362], 95 [{"scale": 1., "background": 0., "sld": 6., "sld_solvent": 1., 96 "radius": 120., "radius_pd": 0.2, "radius_pd_n":45}, 97 0.2, 0.2288431], 98 [{"radius": 120., "radius_pd": 0.02, "radius_pd_n":45}, 0.2, 99 # F1, F2, R_eff, volume, volume_ratio = call_Fq(kernel, pars) at q=0.2 100 792.0646662454202, 1166737.0473152, 120.0, 7246723.820358589, 1.0], 101 # But note P(Q) = F2/volume+background, F1 and F2 are vectors 102 # BUT what is scaling of F1 ??? At low Pd F2 ~ F1^2 ? 103 [{"radius": 120., "radius_pd": 0.2, "radius_pd_n":45}, 0.2, 104 # F1, F2, R_eff, volume, volume_ratio = call_Fq(kernel, pars) at q=0.2 105 1.233304061, 1850806.119736, 120.0, 8087664.1226, 1.0], 106 [{"@S": "hardsphere"}, 107 0.01, 55.881884232102124], # current value, not verified elsewhere yet 108 [{"@S": "hardsphere"}, 109 0.2, 0.14730859242492958], # current value, not verified elsewhere yet 110 [{"@S": "hardsphere"}, 111 0.1, 0.7940350343811906], # current value, not verified elsewhere yet 112 [{"@S": "hardsphere", # hard sphere structure factor 113 "structure_factor_mode": 1, # decoupling approximation 114 "radius_effective_mode": 1, 115 # Currently have hardwired model_test to accept radius_effective 116 "radius_effective": 27.0, # equivalent sphere 117 # direct_model has the name & value BUT does it get passed to S(Q)??? 118 # What about volfracion, plus the many parameters used by other S(Q) ? 94 # [{}, 0.2, 0.726362], 95 # [{"scale": 1., "background": 0., "sld": 6., "sld_solvent": 1., 96 # "radius": 120., "radius_pd": 0.2, "radius_pd_n":45}, 97 # 0.2, 0.2288431], 98 # [{"radius": 120., "radius_pd": 0.02, "radius_pd_n":45}, 99 # 0.2, 792.0646662454202, [1166737.0473152], 120.0, 7246723.820358589, 1.0], # the longer list here checks F1, F2, R_eff, volume, volume_ratio = call_Fq(kernel, pars) 100 # # But note P(Q) = F2/volume, F1 and F2 are vectors, for some reason only F2 needs square brackets 101 # # BUT what is scaling of F1 ??? At low Pd F2 ~ F1^2 ? 102 # [{"@S": "hardsphere"}, 103 # 0.01, 55.881884232102124], # this is current value, not verified elsewhere yet 104 # [{"radius": 120., "radius_pd": 0.2, "radius_pd_n":45}, 105 # 0.2, 1.233304061, [1850806.119736], 120.0, 8087664.1226, 1.0], # the longer list here checks F1, F2, R_eff, volume, volume_ratio = call_Fq(kernel, pars) 106 # [{"@S": "hardsphere"}, 107 # 0.2, 0.14730859242492958], # this is current value, not verified elsewhere yet 108 # [{"@S": "hardsphere"}, 109 # 0.1, 0.7940350343811906], # this is current value, not verified elsewhere yet 110 [{"@S": "hardsphere", 111 "radius": 120., "radius_pd": 0.2, "radius_pd_n":45, 112 "volfraction":0.2, 113 "radius_effective":45.0, # hard sphere structure factor 114 "structure_factor_mode": 1, # decoupling approximation 115 #"effective_radius_type": 1 # equivalent sphere Currently have hardwired model_test to accept radius_effective 116 # direct_model has the name & value BUT does it get passed to S(Q)??? What about volfracion, plus the many parameters used by other S(Q) ? 119 117 # effective_radius_type does NOT appear in the list, has it been stripped out??? 120 }, 0. 1, 0.7940350343881906],121 #[{"@S": "hardsphere", # hard sphere structure factor122 # "structure_factor_mode": 3, # - WHY same result?123 # "effective_radius_type": 3, "radius_effective":23.0 #124 #}, 0.1, 0.7940350343881906]118 }, 0.01, 0.7940350343881906], 119 # [{"@S": "hardsphere", # hard sphere structure factor 120 # "structure_factor_mode": 2, # - WHY same result? 121 # "effective_radius_type": 2, "radius_effective":23.0 # 122 # }, 0.1, 0.7940350343881906] 125 123 ] 126 # putting None for expected result will pass the test if there are no errors 127 # from the routine, but without any check on the value of the result 124 # putting None for expected result will pass the test if there are no errors from the routine, but without any check on the value of the result
Note: See TracChangeset
for help on using the changeset viewer.