Changes in sasmodels/models/sphere.py [0507e09:a34b811] in sasmodels
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sasmodels/models/sphere.py
r0507e09 ra34b811 49 49 ---------------------------- 50 50 51 * **Author:** 52 * **Last Modified by:** 51 * **Author:** 52 * **Last Modified by:** 53 53 * **Last Reviewed by:** S King and P Parker **Date:** 2013/09/09 and 2014/01/06 54 54 * **Source added by :** Steve King **Date:** March 25, 2019 … … 81 81 source = ["lib/sas_3j1x_x.c", "sphere.c"] 82 82 have_Fq = True 83 effective_radius_type= ["radius"]83 radius_effective_modes = ["radius"] 84 84 85 85 def random(): … … 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.228843], 98 [{"radius": 120., "radius_pd": 0.2, "radius_pd_n":45}, 99 0.1, None, None, 120., None, 1.0], 100 [{"@S": "hardsphere"}, 0.1, None], 94 [{}, 0.2, 0.726362], # each test starts with default parameter values inside { }, unless modified. Then Q and expected value of I(Q) 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 101 # F and F^2 are "unscaled", with for n <F F*>S(q) or for beta approx I(q) = n [<F F*> + <F><F*> (S(q) - 1)] 102 # for n the number density and <.> the orientation average, and F = integral rho(r) exp(i q . r) dr. 103 # The number density is volume fraction divided by particle volume. 104 # Effectively, this leaves F = V drho form, where form is the usual 3 j1(qr)/(qr) or whatever depending on the shape. 105 # [{"@S": "hardsphere"}, 106 # 0.01, 55.881884232102124], # this is current value, not verified elsewhere yet 107 # [{"radius": 120., "radius_pd": 0.2, "radius_pd_n":45}, 108 # 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) 109 # [{"@S": "hardsphere"}, 110 # 0.2, 0.14730859242492958], # this is current value, not verified elsewhere yet 111 # [{"@S": "hardsphere"}, 112 # 0.1, 0.7940350343811906], # this is current value, not verified elsewhere yet 113 [{"@S": "hardsphere", 114 "radius": 120., "radius_pd": 0.2, "radius_pd_n":45, 115 "volfraction":0.2, 116 "radius_effective":45.0, # uses this (check) 117 "structure_factor_mode": 1, # 0 = normal decoupling approximation, 1 = beta(Q) approx 118 "radius_effective_mode": 0 # equivalent sphere, there is only one valid mode for sphere. says -this used r_eff =0 or default 50? 119 }, 0.01, 1316.2990966463444 ], 120 [{"@S": "hardsphere", 121 "radius": 120., "radius_pd": 0.2, "radius_pd_n":45, 122 "volfraction":0.2, 123 "radius_effective":50.0, # hard sphere structure factor 124 "structure_factor_mode": 1, # 0 = normal decoupling approximation, 1 = beta(Q) approx 125 "radius_effective_mode": 0 # this used r_eff =0 or default 50? 126 }, 0.01, 1324.7375636587356 ], 127 [{"@S": "hardsphere", 128 "radius": 120., "radius_pd": 0.2, "radius_pd_n":45, 129 "volfraction":0.2, 130 "radius_effective":50.0, # hard sphere structure factor 131 "structure_factor_mode": 1, # 0 = normal decoupling approximation, 1 = beta(Q) approx 132 "radius_effective_mode": 1 # this used 120 ??? 133 }, 0.01, 1579.2858949296565 ] 101 134 ] 135 # 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.