[bad8b12] | 1 | r""" |
---|
| 2 | Definition |
---|
| 3 | ---------- |
---|
| 4 | |
---|
[2c1bbcdd] | 5 | The figure below shows a schematic of a large droplet surrounded by several |
---|
| 6 | smaller particles forming a structure similar to that of Pickering emulsions. |
---|
[bad8b12] | 7 | |
---|
| 8 | .. figure:: img/raspberry_geometry.jpg |
---|
| 9 | |
---|
| 10 | Schematic of the raspberry model |
---|
| 11 | |
---|
[8c92abb] | 12 | In order to calculate the form factor of the entire complex, the |
---|
| 13 | self-correlation of the large droplet, the self-correlation of the particles, |
---|
| 14 | the correlation terms between different particles and the cross terms between |
---|
| 15 | large droplet and small particles all need to be calculated. |
---|
| 16 | |
---|
| 17 | Consider two infinitely thin shells of radii $R_1$ and $R_2$ separated by |
---|
| 18 | distance $r$. The general structure of the equation is then the form factor |
---|
| 19 | of the two shells multiplied by the phase factor that accounts for the |
---|
| 20 | separation of their centers. |
---|
[a2d8a67] | 21 | |
---|
| 22 | .. math:: |
---|
| 23 | |
---|
[40a87fa] | 24 | S(q) = \frac{\sin(qR_1)}{qR_1}\frac{\sin(qR_2)}{qR_2}\frac{\sin(qr)}{qr} |
---|
[a2d8a67] | 25 | |
---|
[2c1bbcdd] | 26 | In this case, the large droplet and small particles are solid spheres rather |
---|
| 27 | than thin shells. Thus the two terms must be integrated over $R_L$ and $R_S$ |
---|
| 28 | respectively using the weighting function of a sphere. We then obtain the |
---|
| 29 | functions for the form of the two spheres: |
---|
[a2d8a67] | 30 | |
---|
| 31 | .. math:: |
---|
| 32 | |
---|
[40a87fa] | 33 | \Psi_L = \int_0^{R_L}(4\pi R^2_L)\frac{\sin(qR_L)}{qR_L}dR_L = |
---|
| 34 | \frac{3[\sin(qR_L)-qR_L\cos(qR_L)]}{(qR_L)^2} |
---|
[a2d8a67] | 35 | |
---|
| 36 | .. math:: |
---|
| 37 | |
---|
[40a87fa] | 38 | \Psi_S = \int_0^{R_S}(4\pi R^2_S)\frac{\sin(qR_S)}{qR_S}dR_S = |
---|
| 39 | \frac{3[\sin(qR_S)-qR_L\cos(qR_S)]}{(qR_S)^2} |
---|
[a2d8a67] | 40 | |
---|
| 41 | The cross term between the large droplet and small particles is given by: |
---|
| 42 | |
---|
| 43 | .. math:: |
---|
[40a87fa] | 44 | S_{LS} = \Psi_L\Psi_S\frac{\sin(q(R_L+\delta R_S))}{q(R_L+\delta\ R_S)} |
---|
[a2d8a67] | 45 | |
---|
| 46 | and the self term between small particles is given by: |
---|
[bad8b12] | 47 | |
---|
| 48 | .. math:: |
---|
[40a87fa] | 49 | S_{SS} = \Psi_S^2\biggl[\frac{\sin(q(R_L+\delta R_S))}{q(R_L+\delta\ R_S)} |
---|
[2c1bbcdd] | 50 | \biggr]^2 |
---|
[bad8b12] | 51 | |
---|
[a2d8a67] | 52 | The number of small particles per large droplet, $N_p$, is given by: |
---|
| 53 | |
---|
| 54 | .. math:: |
---|
| 55 | |
---|
[40a87fa] | 56 | N_p = \frac{\phi_S\phi_\text{surface}V_L}{\phi_L V_S} |
---|
[a2d8a67] | 57 | |
---|
[2c1bbcdd] | 58 | where $\phi_S$ is the volume fraction of small particles in the sample, |
---|
[40a87fa] | 59 | $\phi_\text{surface}$ is the fraction of the small particles that are adsorbed |
---|
| 60 | to the large droplets, $\phi_L$ is the volume fraction of large droplets in the |
---|
[2c1bbcdd] | 61 | sample, and $V_S$ and $V_L$ are the volumes of individual small particles and |
---|
[a2d8a67] | 62 | large droplets respectively. |
---|
| 63 | |
---|
[2c1bbcdd] | 64 | The form factor of the entire complex can now be calculated including the excess |
---|
| 65 | scattering length densities of the components $\Delta\rho_L$ and $\Delta\rho_S$, |
---|
[40a87fa] | 66 | where $\Delta\rho_x = \left|\rho_x-\rho_\text{solvent}\right|$ : |
---|
[a2d8a67] | 67 | |
---|
| 68 | .. math:: |
---|
| 69 | |
---|
[2c1bbcdd] | 70 | P_{LS} = \frac{1}{M^2}\bigl[(\Delta\rho_L)^2V_L^2\Psi_L^2 |
---|
| 71 | +N_p(\Delta\rho_S)^2V_S^2\Psi_S^2 |
---|
| 72 | + N_p(1-N_p)(\Delta\rho_S)^2V_S^2S_{SS} |
---|
| 73 | + 2N_p\Delta\rho_L\Delta\rho_SV_LV_SS_{LS}\bigr] |
---|
[a2d8a67] | 74 | |
---|
| 75 | where M is the total scattering length of the whole complex : |
---|
| 76 | |
---|
| 77 | .. math:: |
---|
| 78 | M = \Delta\rho_LV_L + N_p\Delta\rho_SV_S |
---|
| 79 | |
---|
[2c1bbcdd] | 80 | In a real system, there will ususally be an excess of small particles such that |
---|
| 81 | some fraction remain unbound. Therefore the overall scattering intensity is |
---|
| 82 | given by: |
---|
[a2d8a67] | 83 | |
---|
| 84 | .. math:: |
---|
[40a87fa] | 85 | I(Q) = I_{LS}(Q) + I_S(Q) = (\phi_L(\Delta\rho_L)^2V_L + |
---|
| 86 | \phi_S\phi_\text{surface}N_p(\Delta\rho_S)^2V_S)P_{LS} |
---|
| 87 | + \phi_S(1-\phi_\text{surface})(\Delta\rho_S)^2V_S\Psi_S^2 |
---|
[a2d8a67] | 88 | |
---|
[2c1bbcdd] | 89 | A useful parameter to extract is the fraction of the surface area of the large |
---|
| 90 | droplets that is covered by small particles. This can be calculated from the |
---|
| 91 | model parameters as: |
---|
[a2d8a67] | 92 | |
---|
| 93 | .. math:: |
---|
[40a87fa] | 94 | \chi = \frac{4\phi_L\phi_\text{surface}(R_L+\delta R_S)}{\phi_LR_S} |
---|
[bad8b12] | 95 | |
---|
| 96 | |
---|
| 97 | References |
---|
| 98 | ---------- |
---|
| 99 | |
---|
[0507e09] | 100 | .. [#] K Larson-Smith, A Jackson, and D C Pozzo, *Small angle scattering model for Pickering emulsions and raspberry particles*, *Journal of Colloid and Interface Science*, 343(1) (2010) 36-41 |
---|
| 101 | |
---|
| 102 | Source |
---|
| 103 | ------ |
---|
| 104 | |
---|
| 105 | `raspberry.py <https://github.com/SasView/sasmodels/blob/master/sasmodels/models/raspberry.py>`_ |
---|
| 106 | |
---|
| 107 | `raspberry.c <https://github.com/SasView/sasmodels/blob/master/sasmodels/models/raspberry.c>`_ |
---|
| 108 | |
---|
| 109 | Authorship and Verification |
---|
| 110 | ---------------------------- |
---|
[bad8b12] | 111 | |
---|
[ef07e95] | 112 | * **Author:** Andrew Jackson **Date:** 2008 |
---|
[0507e09] | 113 | * **Last Modified by:** Andrew Jackson **Date:** March 20, 2016 |
---|
| 114 | * **Last Reviewed by:** Andrew Jackson **Date:** March 20, 2016 |
---|
| 115 | * **Source added by :** Steve King **Date:** March 25, 2019 |
---|
[bad8b12] | 116 | """ |
---|
| 117 | |
---|
[2d81cfe] | 118 | import numpy as np |
---|
[40a87fa] | 119 | from numpy import inf |
---|
[bad8b12] | 120 | |
---|
[5745f0b] | 121 | name = "raspberry" |
---|
[bad8b12] | 122 | title = "Calculates the form factor, *P(q)*, for a 'Raspberry-like' structure \ |
---|
| 123 | where there are smaller spheres at the surface of a larger sphere, such as the \ |
---|
| 124 | structure of a Pickering emulsion." |
---|
| 125 | description = """ |
---|
| 126 | RaspBerryModel: |
---|
[0433203] | 127 | volfraction_lg = volume fraction large spheres |
---|
| 128 | radius_lg = radius large sphere (A) |
---|
| 129 | sld_lg = sld large sphere (A-2) |
---|
| 130 | volfraction_sm = volume fraction small spheres |
---|
| 131 | radius_sm = radius small sphere (A) |
---|
| 132 | surface_fraction = fraction of small spheres at surface |
---|
| 133 | sld_sm = sld small sphere |
---|
| 134 | penetration = small sphere penetration (A) |
---|
| 135 | sld_solvent = sld solvent |
---|
[bad8b12] | 136 | background = background (cm-1) |
---|
| 137 | Ref: J. coll. inter. sci. (2010) vol. 343 (1) pp. 36-41.""" |
---|
| 138 | category = "shape:sphere" |
---|
[8e68ea0] | 139 | |
---|
[bad8b12] | 140 | |
---|
| 141 | # [ "name", "units", default, [lower, upper], "type", "description"], |
---|
[42356c8] | 142 | parameters = [["sld_lg", "1e-6/Ang^2", -0.4, [-inf, inf], "sld", |
---|
[bad8b12] | 143 | "large particle scattering length density"], |
---|
[42356c8] | 144 | ["sld_sm", "1e-6/Ang^2", 3.5, [-inf, inf], "sld", |
---|
[bad8b12] | 145 | "small particle scattering length density"], |
---|
[42356c8] | 146 | ["sld_solvent", "1e-6/Ang^2", 6.36, [-inf, inf], "sld", |
---|
[bad8b12] | 147 | "solvent scattering length density"], |
---|
| 148 | ["volfraction_lg", "", 0.05, [-inf, inf], "", |
---|
| 149 | "volume fraction of large spheres"], |
---|
| 150 | ["volfraction_sm", "", 0.005, [-inf, inf], "", |
---|
| 151 | "volume fraction of small spheres"], |
---|
[0433203] | 152 | ["surface_fraction", "", 0.4, [-inf, inf], "", |
---|
[bad8b12] | 153 | "fraction of small spheres at surface"], |
---|
| 154 | ["radius_lg", "Ang", 5000, [0, inf], "volume", |
---|
| 155 | "radius of large spheres"], |
---|
[d277229] | 156 | ["radius_sm", "Ang", 100, [0, inf], "volume", |
---|
[bad8b12] | 157 | "radius of small spheres"], |
---|
[d277229] | 158 | ["penetration", "Ang", 0, [-1, 1], "volume", |
---|
[a2d8a67] | 159 | "fractional penetration depth of small spheres into large sphere"], |
---|
[bad8b12] | 160 | ] |
---|
| 161 | |
---|
[925ad6e] | 162 | source = ["lib/sas_3j1x_x.c", "raspberry.c"] |
---|
[ee60aa7] | 163 | effective_radius_type = ["radius_large", "radius_outer"] |
---|
[bad8b12] | 164 | |
---|
[8f04da4] | 165 | def random(): |
---|
[b297ba9] | 166 | """Return a random parameter set for the model.""" |
---|
[8f04da4] | 167 | # Limit volume fraction to 20% each |
---|
| 168 | volfraction_lg = 10**np.random.uniform(-3, -0.3) |
---|
| 169 | volfraction_sm = 10**np.random.uniform(-3, -0.3) |
---|
| 170 | # Prefer most particles attached (peak near 60%), but not all or none |
---|
| 171 | surface_fraction = np.random.beta(6, 4) |
---|
| 172 | radius_lg = 10**np.random.uniform(1.7, 4.7) # 500 - 50000 A |
---|
| 173 | radius_sm = 10**np.random.uniform(-3, -0.3)*radius_lg # 0.1% - 20% |
---|
| 174 | penetration = np.random.beta(1, 10) # up to 20% pen. for 90% of examples |
---|
| 175 | pars = dict( |
---|
| 176 | volfraction_lg=volfraction_lg, |
---|
| 177 | volfraction_sm=volfraction_sm, |
---|
| 178 | surface_fraction=surface_fraction, |
---|
| 179 | radius_lg=radius_lg, |
---|
| 180 | radius_sm=radius_sm, |
---|
| 181 | penetration=penetration, |
---|
| 182 | ) |
---|
| 183 | return pars |
---|
| 184 | |
---|
[bad8b12] | 185 | # parameters for demo |
---|
| 186 | demo = dict(scale=1, background=0.001, |
---|
| 187 | sld_lg=-0.4, sld_sm=3.5, sld_solvent=6.36, |
---|
[0433203] | 188 | volfraction_lg=0.05, volfraction_sm=0.005, surface_fraction=0.4, |
---|
[bad8b12] | 189 | radius_lg=5000, radius_sm=100, penetration=0.0, |
---|
| 190 | radius_lg_pd=.2, radius_lg_pd_n=10) |
---|
| 191 | |
---|
[204fd9b] | 192 | # TODO: update tests so the parameters correspond to SasView parameters |
---|
| 193 | # The model was re-parameterized so the results have changed. |
---|
[bad8b12] | 194 | # NOTE: test results taken from values returned by SasView 3.1.2, with |
---|
| 195 | # 0.001 added for a non-zero default background. |
---|
[204fd9b] | 196 | #tests = [[{}, 0.0412755102041, 0.286669115234], |
---|
| 197 | # [{}, 0.5, 0.00103818393658], |
---|
| 198 | # ] |
---|