coreshellmicrogel (SASfit) - sasfit_coreshellmicrogel.py

    r"""
This file has been automatically generated by sasfit_convert and manually edited
by Wojciech Potrzebowski, ESS on 2017-12-07.

The model calculates an empirical functional form for SAS data characterized
by coreshellmicrogel

Definition:
-----------
This model can be used to calculate the scattering from spherical
particles with a parabolic "fuzzy" interface \cite{Berndt2005,Berndt2006,Berndt2006a}.
The radial profile is given by

.. math::
\rho(r,R,\sigma) &=
\begin{cases}
1 & \mbox{for } r\leq R-\sigma \\
1-\frac{1}{2}\frac{\left((r-R)+\sigma\right)^2}{\sigma^2} & \mbox{for } R-\sigma < r \leq R \\
\frac{1}{2}\frac{\left((R-r)+\sigma\right)^2}{\sigma^2} & \mbox{for } R< r\leq R+\sigma \\
0 & \mbox{for } r > \leq R+\sigma
\end{cases}


where $R=W+\sigma$. For such a radial profile the Fourier-transformation can be calculated analytically as

.. math::
F(Q,R,\sigma) = \mathcal{F}[\rho(r,R,\sigma)] = \\
4 \pi \Bigg(
        \left(\frac{R}{\sigma^2}+\frac{1}{\sigma}\right) \frac{\cos (q(R+\sigma))}{q^4}
    +   \left(\frac{R}{\sigma^2}-\frac{1}{\sigma}\right) \frac{\cos (q(R-\sigma))}{q^4} \\
    -   3 \frac{\sin(q(R+\sigma))}{q^5 \sigma^2}
    -   3 \frac{\sin(q(R-\sigma))}{q^5 \sigma^2}
    -   6  \frac{\sin(qR)}{q^5 \sigma^2}
    -   2 R \frac{\cos(qR)}{q^4 \sigma^2}

The last term in the brackets needed to be corrected compared to the papers mentioned above
due to a typo in the original papers.
The radial scattering length density profile of a fuzzy core
shell like in Fig.\ \ref{fig:profile:CoreShellMicrogel}b can be obtained by

.. math::
\eta_{core,sh}(r,W_\textrm{core},\sigma_\textrm{core},D,\sigma_\textrm{sh,in},W_\textrm{sh},\sigma_\textrm{sh,out}) =
    \eta_\textrm{sol}
+ (\eta_\textrm{shell}-\eta_\textrm{sol}) \rho(r,R_\textrm{out},\sigma_\textrm{out}) \\
+ (\eta_\textrm{shell}-\eta_\textrm{sol}) \rho(r,R_\textrm{sh,in},\sigma_\textrm{sh,in})
+ (\eta_\textrm{core} -\eta_\textrm{sol}) \rho(r,R_\textrm{core},\sigma_\textrm{core})

with
.. math::
    R_\textrm{core} &= W_\textrm{core}+\sigma_\textrm{core} \\
    R_\textrm{sh,in}&= R_\textrm{core}+D \\
    R_\textrm{out}  &= R_\textrm{sh,in}+\sigma_\textrm{sh,in}+W_\textrm{sh}+\sigma_\textrm{sh,out}

In the same way also the scattering amplitude $F_\textrm{core,sh}(Q,\cdots)$ and the scattering intensity
$I_\textrm{core,sh}(Q,\cdots)=\abs{F_\textrm{core,sh}(Q,\cdots)}^2$ can be calculated

.. math::
F_\textrm{core,sh}(Q,W_\textrm{core},\sigma_\textrm{core},D,\sigma_\textrm{sh,in},W_\textrm{sh},\sigma_\textrm{sh,out}) =
  (\eta_\textrm{shell}-\eta_\textrm{sol}) F(Q,R_\textrm{out},\sigma_\textrm{out}) \\
+ (\eta_\textrm{shell}-\eta_\textrm{sol}) F(Q,R_\textrm{sh,in},\sigma_\textrm{sh,in})
+ (\eta_\textrm{core} -\eta_\textrm{sol}) F(Q,R_\textrm{core},\sigma_\textrm{core})
I_\textrm{core,sh}(Q,W_\textrm{core},\sigma_\textrm{core},D,\sigma_\textrm{sh,in},W_\textrm{sh},\sigma_\textrm{sh,out}) &=
\abs{F_\textrm{core,sh}(Q,\cdots)}^2

References:
-----------
Author(s) of the original file: src/plugins/fuzzysphere/sasfit_ff_coreshellmicrogel.c
Joachim Kohlbrecher (joachim.kohlbrecher@psi.ch)

https://github.com/SASfit/SASfit/
A paper about SASfit has been published in
J. Appl. Cryst. (2015). 48, 1587-1598
doi:10.1107/S1600576715016544

Ingo Berndt, Jan Skov Pedersen, Peter Lindner, and Walter Richtering.
Influence of shell thickness and cross-link density on the structure of
temperature-sensitive poly-n-isopropylacrylamidepoly-n-isopropylmethacrylamide
coreshell microgels investigated by small-angle neutron scattering.
Langmuir, 22(1):459-468,2006.PMID: 16378460.

Ingo Berndt, Jan Skov Pedersen, and Walter Richtering.
Structure of multiresponsive intelligent? coreshell microgels.
Journal of the American Chemical Society,
127(26):9372-9373, 2005 PMID: 15984856

Ingo Berndt, Jan Skov Pedersen, and Walter Richtering.
Temperature-sensitive coreshell microgel particles with dense shell.
Angewandte Chemie, 118(11):1769-1773, 2006.
"""
from numpy import inf

name = "coreshellmicrogel"
title = " "
description = ""
category = "shape-independent"
#pylint: disable=bad-whitespace, line-too-long
parameters = [
 [ "W_CORE", 	"", 	10.0, 	[-inf, inf], 	"volume", 	"radius of center parts of core Wcore with homogeneous scattering length density"],
 [ "SIGMA_CORE", 	"", 	3.0, 	[-inf, inf], 	"volume", 	"interface half width of the core"],
 [ "W_SH", 	"", 	4, 	[-inf, inf], 	"volume", 	"width of center parts of shell Wsh with homogeneous scattering length density"],
 [ "SIGMA_SHIN", 	"", 	3, 	[-inf, inf], 	"volume", 	"half width of the inner interface of shell"],
 [ "D", 	"", 	3.0, 	[-inf, inf], 	"volume", 	"distance between interface of core and in interface of shell"],
 [ "SIGMA_OUT", 	"", 	4.0, 	[-inf, inf], 	"volume", 	"half width of the outer surface profile"],
 [ "ETA_CORE", 	"", 	3.5, 	[-inf, inf], 	"", 	"scattering length density of homogeneous core part"],
 [ "ETA_SHELL", 	"", 	2.5, 	[-inf, inf], 	"", 	"scattering length density of homogeneous shell part "],
 [ "ETA_SOL", 	"", 	1.0, 	[-inf, inf], 	"", 	"scattering length density of solvent"],
]
 #pylint: enable=bad-whitespace, line-too-long

source = ["sas_pow.c","sasfit_coreshellmicrogel.c" ]

single = False

demo = dict(
	W_CORE = 10.0,
	SIGMA_CORE = 3.0,
	W_SH = 4.0,
	SIGMA_SHIN = 3.0,
	D = 3.0,
	SIGMA_OUT = 4.0,
	ETA_CORE = 3.5,
	ETA_SHELL = 2.5,
	ETA_SOL = 1.0)

tests = [[{}, 0.001, 120157.969934],
         [{}, 0.2, 303.628432595],
         [{}, [0.2], [303.628432595]]
        ]

Back to Model Download