source: sasmodels/sasmodels/models/dab.py @ 0507e09

core_shell_microgelsmagnetic_modelticket-1257-vesicle-productticket_1156ticket_1265_superballticket_822_more_unit_tests
Last change on this file since 0507e09 was 0507e09, checked in by smk78, 5 years ago

Added link to source code to each model. Closes #883

  • Property mode set to 100644
File size: 2.4 KB
RevLine 
[80768fc]1r"""
[f224873]2Calculates the scattering from a randomly distributed, two-phase system based on
3the Debye-Anderson-Brumberger (DAB) model for such systems. The two-phase system
4is characterized by a single length scale, the correlation length, which is a
5measure of the average spacing between regions of phase 1 and phase 2. **The
6model also assumes smooth interfaces between the phases** and hence exhibits
[eb69cce]7Porod behavior $(I \sim q^{-4})$ at large $q$, $(qL \gg 1)$.
[80768fc]8
9The DAB model is ostensibly a development of the earlier Debye-Bueche model.
10
[eb69cce]11Definition
12----------
13
14.. math::
[80768fc]15
[eb69cce]16    I(q) = \text{scale}\cdot\frac{L^3}{(1 + (q\cdot L)^2)^2} + \text{background}
[80768fc]17
18where scale is
19
[eb69cce]20.. math:: \text{scale} = 8 \pi \phi (1-\phi) \Delta\rho^2
[80768fc]21
[eb69cce]22and the parameter $L$ is the correlation length.
[f224873]23
[eb69cce]24For 2D data the scattering intensity is calculated in the same way as 1D,
25where the $q$ vector is defined as
[f224873]26
27.. math:: q = \sqrt{q_x^2 + q_y^2}
28
29
[eb69cce]30References
31----------
[80768fc]32
[0507e09]33.. [#] P Debye, H R Anderson, H Brumberger, *Scattering by an Inhomogeneous Solid. II. The Correlation Function and its Application*, *J. Appl. Phys.*, 28(6) (1957) 679
34.. [#] P Debye, A M Bueche, *Scattering by an Inhomogeneous Solid*, *J. Appl. Phys.*, 20 (1949) 518
[80768fc]35
[0507e09]36Source
37------
[80768fc]38
[0507e09]39`dab.py <https://github.com/SasView/sasmodels/blob/master/sasmodels/models/dab.py>`_
40
41Authorship and Verification
42----------------------------
43
44* **Author:**
45* **Last Modified by:**
46* **Last Reviewed by:** Steve King & Peter Parker **Date:** September 09, 2013
47* **Source added by :** Steve King **Date:** March 25, 2019
[80768fc]48"""
49
[2d81cfe]50import numpy as np
[80768fc]51from numpy import inf
52
53name = "dab"
54title = "DAB (Debye Anderson Brumberger) Model"
55description = """\
56
[f224873]57F(q)= scale * L^3/(1 + (q*L)^2)^2
[80768fc]58
59L: the correlation length
60
61"""
[a5d0d00]62category = "shape-independent"
[80768fc]63
[3e428ec]64#             ["name", "units", default, [lower, upper], "type", "description"],
[a807206]65parameters = [["cor_length", "Ang", 50.0, [0, inf], "", "correlation length"],
[3e428ec]66             ]
[80768fc]67
68Iq = """
[4962519]69    double numerator   = cube(cor_length);
70    double denominator = square(1 + square(q*cor_length));
[404ebbd]71
[80768fc]72    return numerator / denominator ;
73    """
74
[404ebbd]75def random():
[b297ba9]76    """Return a random parameter set for the model."""
[404ebbd]77    pars = dict(
78        scale=10**np.random.uniform(1, 4),
79        cor_length=10**np.random.uniform(0.3, 3),
[0507e09]80#        background = 0,
[404ebbd]81    )
82    pars['scale'] /= pars['cor_length']**3
83    return pars
84
[a807206]85demo = dict(scale=1, background=0, cor_length=50)
Note: See TracBrowser for help on using the repository browser.