source: sasmodels/sasmodels/models/porod.py @ 40a87fa

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

lint and latex cleanup

  • Property mode set to 100644
File size: 1.1 KB
Line 
1r"""
2This model fits the Porod function
3
4.. math:: I(q) = C/q^4
5
6to the data directly without any need for linearisation (cf. Log I(q) vs Log q).
7
8Here $C = 2\pi (\Delta\rho)^2 S_v$ is the scale factor where $S_v$ is
9the specific surface area (ie, surface area / volume) of the sample, and
10$\Delta\rho$ is the contrast factor.
11
12For 2D data: The 2D scattering intensity is calculated in the same way as 1D,
13where the q vector is defined as
14
15.. math:: q = \sqrt{q_x^2+q_y^2}
16
17References
18----------
19
20G Porod. *Kolloid Zeit*. 124 (1951) 83.
21
22L A Feigin, D I Svergun, G W Taylor. *Structure Analysis by Small-Angle
23X-ray and Neutron Scattering*. Springer. (1987)
24"""
25
26from numpy import power, inf, errstate
27
28name = "porod"
29title = "Porod function"
30description = """\
31          I(q) = scale/q^4 + background
32"""
33
34category = "shape-independent"
35
36parameters = []
37
38def Iq(q):
39    """
40    @param q: Input q-value
41    """
42    with errstate(divide='ignore'):
43        return power(q, -4)
44
45Iq.vectorized = True  # Iq accepts an array of q values
46
47demo = dict(scale=1.5, background=0.5)
48
49tests = [
50    [{'scale': 0.00001, 'background':0.01}, 0.04, 3.916250],
51    [{}, 0.0, inf],
52]
Note: See TracBrowser for help on using the repository browser.