Changeset d57b06c in sasmodels for sasmodels/models/cylinder.py
- Timestamp:
- Mar 30, 2019 2:06:15 PM (5 years ago)
- Branches:
- master
- Children:
- be0942c
- Parents:
- a42b091 (diff), e15a822 (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. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sasmodels/models/cylinder.py
rc1e44e5 rd57b06c 147 147 source = ["lib/polevl.c", "lib/sas_J1.c", "lib/gauss76.c", "cylinder.c"] 148 148 have_Fq = True 149 effective_radius_type= [149 radius_effective_modes = [ 150 150 "excluded volume", "equivalent volume sphere", "radius", 151 151 "half length", "half min dimension", "half max dimension", "half diagonal", … … 176 176 phi_pd=10, phi_pd_n=5) 177 177 178 # pylint: disable=bad-whitespace, line-too-long178 # Test 1-D and 2-D models 179 179 qx, qy = 0.2 * np.cos(2.5), 0.2 * np.sin(2.5) 180 # After redefinition of angles, find new tests values. Was 10 10 in old coords 180 theta, phi = 80.1534480601659, 10.1510817110481 # (10, 10) in sasview 3.x 181 181 tests = [ 182 182 [{}, 0.2, 0.042761386790780453], 183 183 [{}, [0.2], [0.042761386790780453]], 184 # new coords 185 [{'theta':80.1534480601659, 'phi':10.1510817110481}, (qx, qy), 0.03514647218513852], 186 [{'theta':80.1534480601659, 'phi':10.1510817110481}, [(qx, qy)], [0.03514647218513852]], 187 # old coords 188 #[{'theta':10.0, 'phi':10.0}, (qx, qy), 0.03514647218513852], 189 #[{'theta':10.0, 'phi':10.0}, [(qx, qy)], [0.03514647218513852]], 184 [{'theta': theta, 'phi': phi}, (qx, qy), 0.03514647218513852], 185 [{'theta': theta, 'phi': phi}, [(qx, qy)], [0.03514647218513852]], 190 186 ] 191 del qx, qy # not necessary to delete, but cleaner 192 193 # Default radius and length 194 def calc_volume(radius, length): 195 """Return form volume for cylinder.""" 196 return pi*radius**2*length 197 def calc_r_effs(radius, length): 198 """Return effective radii for modes 0-7 of cylinder.""" 199 return [ 187 del qx, qy, theta, phi # not necessary to delete, but cleaner 188 189 def _extend_with_reff_tests(radius, length): 190 """Test R_eff and form volume calculations""" 191 # V and Vr are the same for each R_eff mode 192 V = pi*radius**2*length # shell volume = form volume for solid objects 193 Vr = 1.0 # form:shell volume ratio 194 # Use test value for I(0.2) from above to check Fsq value. Need to 195 # remove scale and background before testing. 196 q = 0.2 197 scale, background = V, 0.001 198 Fsq = (0.042761386790780453 - background)*scale 199 F = None # Need target value for <F> 200 # Various values for R_eff, depending on mode 201 r_effs = [ 200 202 0., 201 203 0.5*(0.75*radius*(2.0*radius*length … … 208 210 np.sqrt(4*radius**2 + length**2)/2., 209 211 ] 210 r_effs = calc_r_effs(parameters[2][2], parameters[3][2]) 211 cyl_vol = calc_volume(parameters[2][2], parameters[3][2]) 212 tests.extend([ 213 ({'radius_effective_mode': 0}, 0.1, None, None, r_effs[0], cyl_vol, 1.0),214 ({'radius_effective_mode': 1}, 0.1, None, None, r_effs[1], None, None),215 ({'radius_effective_mode': 2}, 0.1, None, None, r_effs[2], None, None),216 ({'radius_effective_mode': 3}, 0.1, None, None, r_effs[3], None, None),217 ({'radius_effective_mode': 4}, 0.1, None, None, r_effs[4], None, None),218 ({'radius_effective_mode': 5}, 0.1, None, None, r_effs[5], None, None),219 ({'radius_effective_mode': 6}, 0.1, None, None, r_effs[6], None, None),220 ({'radius_effective_mode': 7}, 0.1, None, None, r_effs[7], None, None), 221 ]) 222 del r_effs, cyl_vol 223 # pylint: enable=bad-whitespace, line-too-long 212 tests.extend([ 213 ({'radius_effective_mode': 0}, q, F, Fsq, r_effs[0], V, Vr), 214 ({'radius_effective_mode': 1}, q, F, Fsq, r_effs[1], V, Vr), 215 ({'radius_effective_mode': 2}, q, F, Fsq, r_effs[2], V, Vr), 216 ({'radius_effective_mode': 3}, q, F, Fsq, r_effs[3], V, Vr), 217 ({'radius_effective_mode': 4}, q, F, Fsq, r_effs[4], V, Vr), 218 ({'radius_effective_mode': 5}, q, F, Fsq, r_effs[5], V, Vr), 219 ({'radius_effective_mode': 6}, q, F, Fsq, r_effs[6], V, Vr), 220 ({'radius_effective_mode': 7}, q, F, Fsq, r_effs[7], V, Vr), 221 ]) 222 223 # Test Reff and volume with default model parameters 224 _extend_with_reff_tests(parameters[2][2], parameters[3][2]) 225 del _extend_with_reff_tests 224 226 225 227 # ADDED by: RKH ON: 18Mar2016 renamed sld's etc
Note: See TracChangeset
for help on using the changeset viewer.