source: sasmodels/sasmodels/models/dab.py @ f3f46cd

core_shell_microgelscostrafo411magnetic_modelrelease_v0.94release_v0.95ticket-1257-vesicle-productticket_1156ticket_1265_superballticket_822_more_unit_tests
Last change on this file since f3f46cd was 3e428ec, checked in by Doucet, Mathieu <doucetm@…>, 9 years ago

Cleaning up

  • Property mode set to 100644
File size: 1.9 KB
Line 
1r"""
2
3Scattering model class for the DAB (Debye Anderson Brumberger) Model
4
5Definition
6----------
7
8Calculates the scattering from a randomly distributed, two-phase system based on the Debye-Anderson-Brumberger (DAB)
9model for such systems. The two-phase system is characterized by a single length scale, the correlation length, which
10is a measure of the average spacing between regions of phase 1 and phase 2. **The model also assumes smooth interfaces**
11**between the phases** and hence exhibits Porod behavior (I ~ *q*\ :sup:`-4`) at large *q* (*QL* >> 1).
12
13The DAB model is ostensibly a development of the earlier Debye-Bueche model.
14
15.. figure:: img/dab_1d.jpg
16
17.. math:: I(q) = \text{scale}\cdot\frac{L^3}{(1 + (q L)^2)^2} + \text{background}
18
19where scale is
20
21.. math:: \text{scale} = 8 \pi \phi (1-\phi)(\Delta \rho)^2
22
23Reference
24---------
25
26P Debye, H R Anderson, H Brumberger, *Scattering by an Inhomogeneous Solid. II. The Correlation Function*
27*and its Application*, *J. Appl. Phys.*, 28(6) (1957) 679
28
29P Debye, A M Bueche, *Scattering by an Inhomogeneous Solid*, *J. Appl. Phys.*, 20 (1949) 518
30
31*2013/09/09 - Description reviewed by King, S and Parker, P.*
32
33"""
34
35from numpy import inf
36
37name = "dab"
38title = "DAB (Debye Anderson Brumberger) Model"
39description = """\
40
41F(q)= L^3/(1 + (q*L)^2)^2
42
43L: the correlation length
44
45"""
46category = "shape-independent"
47
48#             ["name", "units", default, [lower, upper], "type", "description"],
49parameters = [["length", "Ang", 50.0, [0, inf], "", "correlation length"],
50             ]
51
52Iq = """
53    double numerator   = pow(length, 3);
54    double denominator = pow(1 + pow(q*length,2), 2);
55   
56    return numerator / denominator ;
57    """
58
59Iqxy = """
60    // never called since no orientation or magnetic parameters.
61    //return -1.0;
62    return Iq(sqrt(qx*qx + qy*qy), length);
63    """
64
65# ER defaults to 1.0
66
67# VR defaults to 1.0
68
69demo = dict(scale=1, background=0, length=50)
70oldname = "DABModel"
71oldpars = dict(length='length')
Note: See TracBrowser for help on using the repository browser.