1 | r""" |
---|
2 | |
---|
3 | This model provides the form factor, $P(q)$, for a micelle with a spherical |
---|
4 | core and Gaussian polymer chains attached to the surface, thus may be applied |
---|
5 | to block copolymer micelles. To work well the Gaussian chains must be much smaller |
---|
6 | than the core, which is often not the case. Please study the reference carefully. |
---|
7 | |
---|
8 | Definition |
---|
9 | ---------- |
---|
10 | |
---|
11 | The 1D scattering intensity for this model is calculated according to |
---|
12 | the equations given by Pedersen (Pedersen, 2000). |
---|
13 | |
---|
14 | Validation |
---|
15 | ---------- |
---|
16 | |
---|
17 | This model has not yet been validated. Feb2015 |
---|
18 | |
---|
19 | |
---|
20 | References |
---|
21 | ---------- |
---|
22 | |
---|
23 | J Pedersen, *J. Appl. Cryst.*, 33 (2000) 637-640 |
---|
24 | |
---|
25 | """ |
---|
26 | |
---|
27 | from numpy import inf |
---|
28 | |
---|
29 | name = "polymer_micelle" |
---|
30 | title = "Polymer micelle model" |
---|
31 | description = """ |
---|
32 | This model provides an approximate form factor, P(q), for a micelle with |
---|
33 | a spherical core with Gaussian polymer chains attached to the surface. |
---|
34 | """ |
---|
35 | category = "shape:sphere" |
---|
36 | |
---|
37 | # pylint: disable=bad-whitespace, line-too-long |
---|
38 | # ["name", "units", default, [lower, upper], "type","description"], |
---|
39 | parameters = [ |
---|
40 | ["ndensity", "1e15/cm^3", 8.94, [0.0, inf], "", "Number density of micelles"], |
---|
41 | ["v_core", "Ang^3", 62624.0, [0.0, inf], "", "Core volume "], |
---|
42 | ["v_corona", "Ang^3", 61940.0, [0.0, inf], "", "Corona volume"], |
---|
43 | ["sld_solvent", "1e-6/Ang^2", 6.4, [0.0, inf], "", "Solvent scattering length density"], |
---|
44 | ["sld_core", "1e-6/Ang^2", 0.34, [0.0, inf], "", "Core scattering length density"], |
---|
45 | ["sld_corona", "1e-6/Ang^2", 0.8, [0.0, inf], "", "Corona scattering length density"], |
---|
46 | ["radius_core", "Ang", 45.0, [0.0, inf], "", "Radius of core ( must be >> radius_gyr )"], |
---|
47 | ["radius_gyr", "Ang", 20.0, [0.0, inf], "", "Radius of gyration of chains in corona"], |
---|
48 | ["d_penetration", "", 1.0, [-inf, inf], "", "Factor to mimic non-penetration of Gaussian chains"], |
---|
49 | ["n_aggreg", "", 6.0, [-inf, inf], "", "Aggregation number of the micelle"], |
---|
50 | ] |
---|
51 | # pylint: enable=bad-whitespace, line-too-long |
---|
52 | |
---|
53 | source = ["lib/sph_j1c.c", "polymer_micelle_kernel.c"] |
---|
54 | |
---|
55 | demo = dict(scale=1, background=0, |
---|
56 | ndensity=8.94, |
---|
57 | v_core=62624.0, |
---|
58 | v_corona=61940.0, |
---|
59 | sld_solvent=6.4, |
---|
60 | sld_core=0.34, |
---|
61 | sld_corona=0.8, |
---|
62 | radius_core=45.0, |
---|
63 | radius_gyr=20.0, |
---|
64 | d_penetration=1.0, |
---|
65 | n_aggreg=6.0) |
---|
66 | |
---|
67 | |
---|
68 | oldname = 'MicelleSphCoreModel' |
---|
69 | oldpars = dict(sld_solvent='rho_solv', |
---|
70 | sld_core='rho_core', |
---|
71 | sld_corona='rho_corona') |
---|
72 | |
---|
73 | tests = [ |
---|
74 | [{}, 0.01, 15.3532], |
---|
75 | ] |
---|
76 | # RKH 20Mar2016 - need to check whether the core & corona volumes are per monomer ??? and how aggregation number works! |
---|
77 | # renamed from micelle_spherical_core to polymer_micelle, moved from shape-independent to spheres section. |
---|
78 | # Ought to be able to add polydisp to core? And add ability to x by S(Q) ? |
---|