source: sasmodels/sasmodels/models/star_polymer.py @ d439007

core_shell_microgelscostrafo411magnetic_modelticket-1257-vesicle-productticket_1156ticket_1265_superballticket_822_more_unit_tests
Last change on this file since d439007 was d439007, checked in by butler, 7 years ago

Corrected errors in star_polymer documentation identified by MN student
checked carefully against code, benoit paper and Richter paper cited in
ticket. Also took the opportuinty to generally udated and standardize
the documentation as per ongoing process addresses #646. fixes #962

  • Property mode set to 100644
File size: 3.3 KB
Line 
1r"""
2Definition
3----------
4
5Calcuates the scattering from a simple star polymer with f equal Gaussian coil
6arms. A star being defined as a branched polymer with all the branches
7emanating from a common central (in the case of this model) point.  It is
8derived as a special case of on the Benoit model for general branched
9polymers\ [#CITBenoit]_ as also used by Richter ''et. al.''\ [#CITRichter]_
10
11For a star with $f$ arms the scattering intensity $I(q)$ is calculated as
12
13.. math::
14
15    I(q) = \frac{2}{fv^2}\left[ v-1+\exp(-v)+\frac{f-1}{2}
16           \left[ 1-\exp(-v)\right]^2\right]
17
18where
19
20.. math:: v=\frac{uf}{(3f-2)}
21
22and
23
24.. math:: u = \left\langle R_{g}^2\right\rangle q^2
25
26contains the square of the ensemble average radius-of-gyration of the full
27polymer while v contains the radius of gyration of a single arm $R_{arm}$.
28The two are related as:
29
30.. math:: R_{arm}^2 = \frac{f}{3f-2} R_{g}^2
31
32Note that when there is only one arm, $f = 1$, the Debye Gaussian coil
33equation is recovered.
34
35.. note::
36   Star polymers in solutions tend to have strong interparticle and osmotic
37   effects. Thus the Benoit equation may not work well for many real cases.
38   At small $q$ the Guinier term and hence $I(q=0)$ is the same as for $f$ arms
39   of radius of gyration $R_g$, as described for the :ref:`mono-gauss-coil`
40   model. A newer model for star polymer incorporating excluded volume has been
41   developed by Li et al in arXiv:1404.6269 [physics.chem-ph].
42
43References
44----------
45
46.. [#CITBenoit] H Benoit *J. Polymer Science*, 11, 507-510 (1953)
47.. [#CITRichter] D Richter, B. Farago, J. S. Huang, L. J. Fetters,
48   B Ewen *Macromolecules*, 22, 468-472 (1989)
49
50Authorship and Verification
51----------------------------
52
53* **Author:** Kieran Campbell **Date:** July 24, 2012
54* **Last Modified by:** Paul Butler **Date:** Auguts 26, 2017
55* **Last Reviewed by:** Ziang Li and Richard Heenan **Date:** May 17, 2017
56"""
57
58from numpy import inf
59
60name = "star_polymer"
61title = "Star polymer model with Gaussian statistics"
62description = """
63        Benoit 'Star polymer with Gaussian statistics'
64        with
65        P(q) = 2/{fv^2} * (v - (1-exp(-v)) + {f-1}/2 * (1-exp(-v))^2)
66        where
67        - v = u^2f/(3f-2)
68        - u = <R_g^2>q^2, where <R_g^2> is the ensemble average radius of
69        gyration squared of the entire polymer
70        - f is the number of arms on the star
71        - the radius of gyration of an arm is given b
72        Rg_arm^2 = R_g^2 * f/(3f-2)
73        """
74category = "shape-independent"
75single = False
76# pylint: disable=bad-whitespace, line-too-long
77#             ["name", "units", default, [lower, upper], "type","description"],
78parameters = [["rg_squared", "Ang^2", 100.0, [0.0, inf], "", "Ensemble radius of gyration SQUARED of the full polymer"],
79              ["arms",    "",      3,   [1.0, 6.0], "", "Number of arms in the model"],
80             ]
81# pylint: enable=bad-whitespace, line-too-long
82
83source = ["star_polymer.c"]
84
85demo = dict(scale=1, background=0,
86            rg_squared=100.0,
87            arms=3.0)
88
89tests = [[{'rg_squared': 2.0,
90           'arms':    3.3,
91          }, 0.5, 0.851646091108],
92
93         [{'rg_squared':    1.0,
94           'arms':       2.0,
95           'background': 1.8,
96          }, 1.0, 2.53575888234],
97        ]
98# 23Mar2016  RKH edited docs, would this better use rg not rg^2 ? Numerical noise at extremely small q.rg
Note: See TracBrowser for help on using the repository browser.