Changeset b297ba9 in sasmodels for sasmodels/models/cylinder.py
- Timestamp:
- Mar 20, 2019 5:03:50 PM (5 years ago)
- Branches:
- master, core_shell_microgels, magnetic_model, ticket-1257-vesicle-product, ticket_1156, ticket_1265_superball, ticket_822_more_unit_tests
- Children:
- 4e28511
- Parents:
- 0d362b7
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sasmodels/models/cylinder.py
r99658f6 rb297ba9 98 98 J. S. Pedersen, Adv. Colloid Interface Sci. 70, 171-210 (1997). 99 99 G. Fournet, Bull. Soc. Fr. Mineral. Cristallogr. 74, 39-113 (1951). 100 L. Onsager, Ann. New York Acad. Sci. 51, 627-659 (1949). 100 L. Onsager, Ann. New York Acad. Sci. 51, 627-659 (1949). 101 101 """ 102 102 … … 146 146 147 147 def random(): 148 """Return a random parameter set for the model.""" 148 149 volume = 10**np.random.uniform(5, 12) 149 150 length = 10**np.random.uniform(-2, 2)*volume**0.333 … … 184 185 185 186 # Default radius and length 186 radius, length = parameters[2][2], parameters[3][2] 187 def calc_volume(radius, length): 188 """Return form volume for cylinder.""" 189 return pi*radius**2*length 190 def calc_r_effs(radius, length): 191 """Return effective radii for modes 0-7 of cylinder.""" 192 return [ 193 0., 194 0.5*(0.75*radius*(2.0*radius*length 195 + (radius + length)*(pi*radius + length)))**(1./3.), 196 (0.75*radius**2*length)**(1./3.), 197 radius, 198 length/2., 199 min(radius, length/2.), 200 max(radius, length/2.), 201 np.sqrt(4*radius**2 + length**2)/2., 202 ] 203 r_effs = calc_r_effs(parameters[2][2], parameters[3][2]) 204 cyl_vol = calc_volume(parameters[2][2], parameters[3][2]) 187 205 tests.extend([ 188 ({'radius_effective_mode': 0}, 0.1, None, None, 0., pi*radius**2*length, 1.0),189 ({'radius_effective_mode': 1}, 0.1, None, None, 0.5*(0.75*radius*(2.0*radius*length + (radius + length)*(pi*radius + length)))**(1./3.), None, None),190 ({'radius_effective_mode': 2}, 0.1, None, None, (0.75*radius**2*length)**(1./3.), None, None),191 ({'radius_effective_mode': 3}, 0.1, None, None, r adius, None, None),192 ({'radius_effective_mode': 4}, 0.1, None, None, length/2., None, None),193 ({'radius_effective_mode': 5}, 0.1, None, None, min(radius, length/2.), None, None),194 ({'radius_effective_mode': 6}, 0.1, None, None, max(radius, length/2.), None, None),195 ({'radius_effective_mode': 7}, 0.1, None, None, np.sqrt(4*radius**2 + length**2)/2., None, None),206 ({'radius_effective_mode': 0}, 0.1, None, None, r_effs[0], cyl_vol, 1.0), 207 ({'radius_effective_mode': 1}, 0.1, None, None, r_effs[1], None, None), 208 ({'radius_effective_mode': 2}, 0.1, None, None, r_effs[2], None, None), 209 ({'radius_effective_mode': 3}, 0.1, None, None, r_effs[3], None, None), 210 ({'radius_effective_mode': 4}, 0.1, None, None, r_effs[4], None, None), 211 ({'radius_effective_mode': 5}, 0.1, None, None, r_effs[5], None, None), 212 ({'radius_effective_mode': 6}, 0.1, None, None, r_effs[6], None, None), 213 ({'radius_effective_mode': 7}, 0.1, None, None, r_effs[7], None, None), 196 214 ]) 197 del r adius, length215 del r_effs, cyl_vol 198 216 # pylint: enable=bad-whitespace, line-too-long 199 217
Note: See TracChangeset
for help on using the changeset viewer.