1 | """ |
---|
2 | P(r) inversion for SANS |
---|
3 | """ |
---|
4 | ## \mainpage P(r) inversion for SANS |
---|
5 | # |
---|
6 | # \section intro_sec Introduction |
---|
7 | # This module provides calculations to transform scattering intensity data |
---|
8 | # I(q) into distance distribution function P(r). A description of the |
---|
9 | # technique can be found elsewhere [1-5]. The module is useable as a |
---|
10 | # standalone application but its functionality is meant to be presented |
---|
11 | # to end-users through the user interface developed as part of the SANS |
---|
12 | # flagship application. |
---|
13 | # |
---|
14 | # Procedure: We will follow the procedure of Moore [1]. |
---|
15 | # |
---|
16 | # [1] P.B. Moore, J.Appl. Cryst (1980) 13, 168-175. |
---|
17 | # |
---|
18 | # [2] O. Glatter, J.Appl. Cryst (1977) 10, 415-421. |
---|
19 | # |
---|
20 | # [3] D.I. Svergun, J.Appl. Cryst (1991) 24, 485-492. |
---|
21 | # |
---|
22 | # [4] D.I. Svergun, J.Appl. Cryst (1992) 25, 495-503. |
---|
23 | # |
---|
24 | # [5] S. Hansen and J. Skov Pedersen, J.Appl. Cryst (1991) 24, 541-548. |
---|
25 | # |
---|
26 | ## \subsection class Class Diagram: |
---|
27 | # The following shows a partial class diagram with the main attributes and methods of the invertor. |
---|
28 | # |
---|
29 | # \image html architecture.png |
---|
30 | # |
---|
31 | # \section install_sec Installation |
---|
32 | # |
---|
33 | # \subsection obtain Obtaining the Code |
---|
34 | # |
---|
35 | # The code is available here: |
---|
36 | # \verbatim |
---|
37 | #$ svn co svn://danse.us/sans/pr_inversion |
---|
38 | # \endverbatim |
---|
39 | # |
---|
40 | # \subsection depends External Dependencies |
---|
41 | # scipy, numpy, pylab |
---|
42 | # |
---|
43 | # \subsection build Building the code |
---|
44 | # The standard python package can be built with distutils. |
---|
45 | # \verbatim |
---|
46 | #$ python setup.py build |
---|
47 | #$ python setup.py install |
---|
48 | # \endverbatim |
---|
49 | # |
---|
50 | # |
---|
51 | # \subsection Tutorial |
---|
52 | # To create an inversion object: |
---|
53 | # \verbatim |
---|
54 | #from sans.pr.invertor import Invertor |
---|
55 | # invertor = Invertor() |
---|
56 | # \endverbatim |
---|
57 | # |
---|
58 | # To set the maximum distance between any two points: |
---|
59 | # \verbatim |
---|
60 | # invertor.d_max = 160.0 |
---|
61 | # \endverbatim |
---|
62 | # |
---|
63 | # To set the regularization constant: |
---|
64 | # \verbatim |
---|
65 | # invertor.alpha = 0.0007 |
---|
66 | # \endverbatim |
---|
67 | # |
---|
68 | # To set the q, I(q) and error on I(q): |
---|
69 | # \verbatim |
---|
70 | # invertor.x = q_vector |
---|
71 | # invertor.y = Iq_vector |
---|
72 | # invertor.err = dIq_vector |
---|
73 | # \endverbatim |
---|
74 | # |
---|
75 | # To perform the inversion. In this example, we choose |
---|
76 | # a P(r) expension wit 10 base functions. |
---|
77 | # \verbatim |
---|
78 | # c_out, c_cov = invertor.invert(10) |
---|
79 | # \endverbatim |
---|
80 | # The c_out and c_cov are the set of coefficients and the covariance |
---|
81 | # matrix for those coefficients, respectively. |
---|
82 | # |
---|
83 | # To get P(r): |
---|
84 | # \verbatim |
---|
85 | # r = 10.0 |
---|
86 | # pr = invertor.pr(c_out, r) |
---|
87 | # \endverbatim |
---|
88 | # Alternatively, one can get P(r) with the error on P(r): |
---|
89 | # \verbatim |
---|
90 | # r = 10.0 |
---|
91 | # pr, dpr = invertor.pr_err(c_out, c_cov, r) |
---|
92 | # \endverbatim |
---|
93 | # |
---|
94 | # To get the output I(q) from the set of coefficients found: |
---|
95 | # \verbatim |
---|
96 | # q = 0.001 |
---|
97 | # iq = invertor.iq(c_out, q) |
---|
98 | # \endverbatim |
---|
99 | # |
---|
100 | # Examples are available as unit tests under sans.pr_inversion.test. |
---|
101 | # |
---|
102 | # \section help_sec Contact Info |
---|
103 | # Code and Documentation produced as part of the DANSE project. |
---|
104 | |
---|
105 | __author__ = 'University of Tennessee' |
---|