Changeset 3556ad7 in sasmodels
- Timestamp:
- Mar 20, 2016 4:24:32 AM (9 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:
- e796fcb
- Parents:
- 09d7a54
- Location:
- sasmodels/models
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
sasmodels/models/core_shell_ellipsoid_xt.py
r29172aa r3556ad7 89 89 parameters = [ 90 90 ["equat_core", "Ang", 20, [0, inf], "volume", "Equatorial radius of core"], 91 ["x_core", "None", 3, [0, inf], "volume", " Polar radius of core"],92 ["t_shell", "Ang", 30, [0, inf], "volume", " Equatorial radius of shell"],93 ["x_polar_shell", "", 1, [0, inf], "volume", " Polar radius of shell"],91 ["x_core", "None", 3, [0, inf], "volume", "axial ratio of core, X = r_polar/r_equatorial"], 92 ["t_shell", "Ang", 30, [0, inf], "volume", "thickness of shell at equator"], 93 ["x_polar_shell", "", 1, [0, inf], "volume", "ratio of thickness of shell at pole to that at equator"], 94 94 ["sld_core", "1e-6/Ang^2", 2, [-inf, inf], "", "Core scattering length density"], 95 95 ["sld_shell", "1e-6/Ang^2", 1, [-inf, inf], "", "Shell scattering length density"], -
sasmodels/models/core_shell_sphere.py
raa2edb2 r3556ad7 19 19 V_s(\rho_s-\rho_{solv})\frac{\sin(qr_s)-qr_s\cos(qr_s)}{(qr_s)^3}\right] 20 20 21 where $V_s$ is the volume of the outer shell, $V_c$ is22 the volume of the core, $r_s$ is the radius of the shell, $r_c$ is the radius of the21 where $V_s$ is the volume of the whole particle, $V_c$ is 22 the volume of the core, $r_s$ = $radius$ + $thickness$ is the radius of the particle, $r_c$ is the radius of the 23 23 core, $\rho_c$ is the scattering length density of the core, $\rho_s$ is the scattering length 24 24 density of the shell, $\rho_{solv}$ is the scattering length density of the solvent. … … 30 30 effective radius for $S(Q)$ when $P(Q) \cdot S(Q)$ is applied. 31 31 32 Reference 33 --------- 32 References 33 ---------- 34 34 35 35 A Guinier and G Fournet, *Small-Angle Scattering of X-Rays*, John Wiley and Sons, New York, (1955) … … 49 49 title = "Form factor for a monodisperse spherical particle with particle with a core-shell structure." 50 50 description = """ 51 F^2(q) = 3/V_s [V_c ( core_sld-shell_sld) (sin(q*radius)-q*radius*cos(q*radius))/(q*radius)^352 + V_s (s hell_sld-solvent_sld) (sin(q*r_s)-q*r_s*cos(q*r_s))/(q*r_s)^3]51 F^2(q) = 3/V_s [V_c (sld_core-sld_shell) (sin(q*radius)-q*radius*cos(q*radius))/(q*radius)^3 52 + V_s (sld_shell-sld_solvent) (sin(q*r_s)-q*r_s*cos(q*r_s))/(q*r_s)^3] 53 53 54 54 V_s: Volume of the sphere shell … … 62 62 parameters = [["radius", "Ang", 60.0, [0, inf], "volume", "Sphere core radius"], 63 63 ["thickness", "Ang", 10.0, [0, inf], "volume", "Sphere shell thickness"], 64 [" core_sld", "1e-6/Ang^2", 1.0, [-inf, inf], "", "Spherecore scattering length density"],65 ["s hell_sld", "1e-6/Ang^2", 2.0, [-inf, inf], "", "Sphereshell scattering length density"],66 ["s olvent_sld", "1e-6/Ang^2", 3.0, [-inf, inf], "", "Solvent scattering length density"]]64 ["sld_core", "1e-6/Ang^2", 1.0, [-inf, inf], "", "core scattering length density"], 65 ["sld_shell", "1e-6/Ang^2", 2.0, [-inf, inf], "", "shell scattering length density"], 66 ["sld_solvent", "1e-6/Ang^2", 3.0, [-inf, inf], "", "Solvent scattering length density"]] 67 67 # pylint: enable=bad-whitespace, line-too-long 68 68 … … 70 70 71 71 demo = dict(scale=1, background=0, radius=60, thickness=10, 72 core_sld=1.0, shell_sld=2.0, solvent_sld=0.0)72 sld_core=1.0, sld_shell=2.0, sld_solvent=0.0) 73 73 74 74 oldname = 'CoreShellModel' 75 oldpars = {} 75 oldpars = dict( sld_core='core_sld', 76 sld_shell='shell_sld', 77 sld_solvent='solvent_sld') 76 78 77 79 def ER(radius, thickness): … … 99 101 [{'radius': 60.0, 100 102 'thickness': 10.0, 101 ' core_sld': 1.0,102 's hell_sld':2.0,103 's olvent_sld':3.0,103 'sld_core': 1.0, 104 'sld_shell':2.0, 105 'sld_solvent':3.0, 104 106 'background':0.0 105 107 }, 0.4, 0.000698838]] -
sasmodels/models/ellipsoid.py
rcedad32 r3556ad7 2 2 # Note: model title and parameter table are inserted automatically 3 3 r""" 4 The form factor is normalized by the particle volume .4 The form factor is normalized by the particle volume 5 5 6 6 Definition … … 31 31 32 32 $\alpha$ is the angle between the axis of the ellipsoid and $\vec q$, 33 $V $ is the volume of the ellipsoid, $R_p$ is the polar radius along the33 $V = (4/3)\pi R_pR_e^2$ is the volume of the ellipsoid , $R_p$ is the polar radius along the 34 34 rotational axis of the ellipsoid, $R_e$ is the equatorial radius perpendicular 35 35 to the rotational axis of the ellipsoid and $\Delta \rho$ (contrast) is the … … 41 41 :ref:`cylinder orientation figure <cylinder-angle-definition>`. 42 42 For the ellipsoid, $\theta$ is the angle between the rotational axis 43 and the $z$ -axis.43 and the $z$ -axis. 44 44 45 45 NB: The 2nd virial coefficient of the solid ellipsoid is calculated based … … 54 54 .. figure:: img/ellipsoid_angle_projection.jpg 55 55 56 The angles for oriented ellipsoid .56 The angles for oriented ellipsoid, shown here as oblate, $a$ = $R_p$ and $b$ = $R_e$ 57 57 58 58 Validation … … 74 74 calculated from our 2D model and the intensity from the NIST SANS 75 75 analysis software. The parameters used were: *scale* = 1.0, 76 *r polar* = 20 |Ang|, *requatorial* = 400 |Ang|,76 *r_polar* = 20 |Ang|, *r_equatorial* = 400 |Ang|, 77 77 *contrast* = 3e-6 |Ang^-2|, and *background* = 0.0 |cm^-1|. 78 78 … … 102 102 description = """\ 103 103 P(q.alpha)= scale*f(q)^2 + background, where f(q)= 3*(sld 104 - s olvent_sld)*V*[sin(q*r(Rp,Re,alpha))104 - sld_solvent)*V*[sin(q*r(Rp,Re,alpha)) 105 105 -q*r*cos(qr(Rp,Re,alpha))] 106 106 /[qr(Rp,Re,alpha)]^3" … … 110 110 111 111 sld: SLD of the ellipsoid 112 s olvent_sld: SLD of the solvent112 sld_solvent: SLD of the solvent 113 113 V: volume of the ellipsoid 114 114 Rp: polar radius of the ellipsoid … … 120 120 parameters = [["sld", "1e-6/Ang^2", 4, [-inf, inf], "", 121 121 "Ellipsoid scattering length density"], 122 ["s olvent_sld", "1e-6/Ang^2", 1, [-inf, inf], "",122 ["sld_solvent", "1e-6/Ang^2", 1, [-inf, inf], "", 123 123 "Solvent scattering length density"], 124 ["r polar", "Ang", 20, [0, inf], "volume",124 ["r_polar", "Ang", 20, [0, inf], "volume", 125 125 "Polar radius"], 126 ["r equatorial", "Ang", 400, [0, inf], "volume",126 ["r_equatorial", "Ang", 400, [0, inf], "volume", 127 127 "Equatorial radius"], 128 128 ["theta", "degrees", 60, [-inf, inf], "orientation", … … 134 134 source = ["lib/sph_j1c.c", "lib/gauss76.c", "ellipsoid.c"] 135 135 136 def ER(r polar, requatorial):136 def ER(r_polar, r_equatorial): 137 137 import numpy as np 138 138 139 ee = np.empty_like(r polar)140 idx = r polar > requatorial141 ee[idx] = (r polar[idx] ** 2 - requatorial[idx] ** 2) / rpolar[idx] ** 2142 idx = r polar < requatorial143 ee[idx] = (r equatorial[idx] ** 2 - rpolar[idx] ** 2) / requatorial[idx] ** 2144 idx = r polar == requatorial145 ee[idx] = 2 * r polar[idx]146 valid = (r polar * requatorial != 0)139 ee = np.empty_like(r_polar) 140 idx = r_polar > r_equatorial 141 ee[idx] = (r_polar[idx] ** 2 - r_equatorial[idx] ** 2) / r_polar[idx] ** 2 142 idx = r_polar < r_equatorial 143 ee[idx] = (r_equatorial[idx] ** 2 - r_polar[idx] ** 2) / r_equatorial[idx] ** 2 144 idx = r_polar == r_equatorial 145 ee[idx] = 2 * r_polar[idx] 146 valid = (r_polar * r_equatorial != 0) 147 147 bd = 1.0 - ee[valid] 148 148 e1 = np.sqrt(ee[valid]) … … 152 152 delta = 0.75 * b1 * b2 153 153 154 ddd = np.zeros_like(r polar)155 ddd[valid] = 2.0 * (delta + 1.0) * r polar * requatorial ** 2154 ddd = np.zeros_like(r_polar) 155 ddd[valid] = 2.0 * (delta + 1.0) * r_polar * r_equatorial ** 2 156 156 return 0.5 * ddd ** (1.0 / 3.0) 157 157 158 158 159 159 demo = dict(scale=1, background=0, 160 sld=6, s olvent_sld=1,161 r polar=50, requatorial=30,160 sld=6, sld_solvent=1, 161 r_polar=50, r_equatorial=30, 162 162 theta=30, phi=15, 163 r polar_pd=.2, rpolar_pd_n=15,164 r equatorial_pd=.2, requatorial_pd_n=15,163 r_polar_pd=.2, r_polar_pd_n=15, 164 r_equatorial_pd=.2, r_equatorial_pd_n=15, 165 165 theta_pd=15, theta_pd_n=45, 166 166 phi_pd=15, phi_pd_n=1) 167 167 oldname = 'EllipsoidModel' 168 168 oldpars = dict(theta='axis_theta', phi='axis_phi', 169 sld='sldEll', s olvent_sld='sldSolv',170 r polar='radius_a', requatorial='radius_b')169 sld='sldEll', sld_solvent='sldSolv', 170 r_polar='radius_a', r_equatorial='radius_b')
Note: See TracChangeset
for help on using the changeset viewer.