source: sasmodels/sasmodels/models/lamellarCailleHG.py @ eb69cce

core_shell_microgelscostrafo411magnetic_modelrelease_v0.94release_v0.95ticket-1257-vesicle-productticket_1156ticket_1265_superballticket_822_more_unit_tests
Last change on this file since eb69cce was eb69cce, checked in by Paul Kienzle <pkienzle@…>, 8 years ago

make model docs more consistent; build pdf docs

  • Property mode set to 100644
File size: 4.7 KB
Line 
1# Note: model title and parameter table are inserted automatically
2r"""
3This model provides the scattering intensity, $I(q) = P(q)S(q)$, for a lamellar
4phase where a random distribution in solution are assumed. Here a Caille $S(q)$
5is used for the lamellar stacks.
6
7The scattering intensity $I(q)$ is
8
9.. math::
10
11    I(q) = 2 \pi \frac{P(q)S(q)}{\delta q^2}
12
13
14The form factor $P(q)$ is
15
16.. math::
17
18        P(q) = \frac{4}{q^2}\big\{
19        \Delta\rho_H \left[\sin[q(\delta_H + \delta_T)] - \sin(q\delta_T)\right]
20            + \Delta\rho_T\sin(q\delta_T)\big\}^2
21
22and the structure factor $S(q)$ is
23
24.. math::
25
26    S(q) = 1 + 2 \sum_1^{N-1}\left(1-\frac{n}{N}\right)
27        \cos(qdn)\exp\left(-\frac{2q^2d^2\alpha(n)}{2}\right)
28
29where
30
31.. math::
32
33    %\begin{align*} % isn't working with pdflatex
34    \begin{array}{rll}
35    \alpha(n) &= \frac{\eta_{cp}}{4\pi^2} \left(\ln(\pi n)+\gamma_E\right)
36              &  \\
37    \gamma_E  &= 0.5772156649
38              & \text{Euler's constant} \\
39    \eta_{cp} &= \frac{q_o^2k_B T}{8\pi\sqrt{K\overline{B}}}
40              & \text{Caille constant} \\
41              &
42    \end{array}
43
44
45$\delta_T$ is the tail length (or *tail_length*), $\delta_H$ is the head
46thickness (or *head_length*), $\Delta\rho_H$ is SLD(headgroup) - SLD(solvent),
47and $\Delta\rho_T$ is SLD(tail) - SLD(headgroup). Here $d$ is (repeat) spacing,
48$K$ is smectic bending elasticity, $B$ is compression modulus, and $N$ is the
49number of lamellar plates (*Nlayers*).
50
51NB: **When the Caille parameter is greater than approximately 0.8 to 1.0, the
52assumptions of the model are incorrect.**  And due to a complication of the
53model function, users are responsible for making sure that all the assumptions
54are handled accurately (see the original reference below for more details).
55
56Non-integer numbers of stacks are calculated as a linear combination of
57results for the next lower and higher values.
58
59The 2D scattering intensity is calculated in the same way as 1D, where
60the $q$ vector is defined as
61
62.. math::
63
64    q = \sqrt{q_x^2 + q_y^2}
65
66.. figure:: img/lamellarCailleHG_1d.jpg
67
68    1D plot using the default values (w/6000 data point).
69
70References
71----------
72
73F Nallet, R Laversanne, and D Roux, J. Phys. II France, 3, (1993) 487-502
74
75also in J. Phys. Chem. B, 105, (2001) 11081-11088
76"""
77from numpy import inf
78
79name = "lamellarCailleHG"
80title = "Random lamellar sheet with Caille structure factor"
81description = """\
82    [Random lamellar phase with Caille  structure factor]
83        randomly oriented stacks of infinite sheets
84        with Caille S(Q), having polydisperse spacing.
85        layer thickness =(H+T+T+H) = 2(Head+Tail)
86        sld = Tail scattering length density
87        sld_head = Head scattering length density
88        sld_solvent = solvent scattering length density
89        background = incoherent background
90        scale = scale factor
91"""
92category = "shape:lamellae"
93
94parameters = [
95              #   [ "name", "units", default, [lower, upper], "type",
96              #     "description" ],
97              [ "tail_length", "Ang",  10, [0, inf], "volume",
98                "Tail thickness" ],
99              [ "head_length", "Ang",  2, [0, inf], "volume",
100                "head thickness" ],
101              [ "Nlayers", "",  30, [0, inf], "",
102                "Number of layers" ],
103              [ "spacing", "Ang", 40., [0.0,inf], "volume",
104                "d-spacing of Caille S(Q)" ],
105              [ "Caille_parameter", "", 0.001, [0.0,0.8], "",
106                "Caille parameter" ],
107              [ "sld", "1e-6/Ang^2", 0.4, [-inf,inf], "",
108                "Tail scattering length density" ],
109              [ "head_sld", "1e-6/Ang^2", 2.0, [-inf,inf], "",
110                "Head scattering length density" ],
111              [ "solvent_sld", "1e-6/Ang^2", 6, [-inf,inf], "",
112                "Solvent scattering length density" ],
113    ]
114
115source = [ "lamellarCailleHG_kernel.c"]
116
117# No volume normalization despite having a volume parameter
118# This should perhaps be volume normalized?
119form_volume = """
120    return 1.0;
121    """
122
123Iqxy = """
124    return Iq(sqrt(qx*qx+qy*qy), IQ_PARAMETERS);
125    """
126
127# ER defaults to 0.0
128# VR defaults to 1.0
129
130demo = dict(
131            scale=1, background=0,
132            Nlayers=20,
133            spacing=200., Caille_parameter=0.05,
134            tail_length=15,head_length=10,
135            #sld=-1, head_sld=4.0, solvent_sld=6.0,
136            sld=-1, head_sld=4.1, solvent_sld=6.0,
137            tail_length_pd= 0.1, tail_length_pd_n=20,
138            head_length_pd= 0.05, head_length_pd_n=30,
139            spacing_pd= 0.2, spacing_pd_n=40
140           )
141
142oldname = 'LamellarPSHGModel'
143oldpars = dict(tail_length='deltaT',head_length='deltaH',Nlayers='n_plates',Caille_parameter='caille', sld='sld_tail', head_sld='sld_head',solvent_sld='sld_solvent')
Note: See TracBrowser for help on using the repository browser.