""" P(r) inversion for SAS """ ## \mainpage P(r) inversion for SAS # # \section intro_sec Introduction # This module provides calculations to transform scattering intensity data # I(q) into distance distribution function P(r). A description of the # technique can be found elsewhere [1-5]. The module is useable as a # standalone application but its functionality is meant to be presented # to end-users through the user interface developed as part of the SAS # flagship application. # # Procedure: We will follow the procedure of Moore [1]. # # [1] P.B. Moore, J.Appl. Cryst (1980) 13, 168-175. # # [2] O. Glatter, J.Appl. Cryst (1977) 10, 415-421. # # [3] D.I. Svergun, J.Appl. Cryst (1991) 24, 485-492. # # [4] D.I. Svergun, J.Appl. Cryst (1992) 25, 495-503. # # [5] S. Hansen and J. Skov Pedersen, J.Appl. Cryst (1991) 24, 541-548. # ## \subsection class Class Diagram: # The following shows a partial class diagram with the main attributes # and methods of the invertor. # # \image html architecture.png # # \section install_sec Installation # # \subsection obtain Obtaining the Code # # The code is available here: # \verbatim #$ svn co svn://danse.us/sas/pr_inversion # \endverbatim # # \subsection depends External Dependencies # scipy, numpy # # \subsection build Building the code # The standard python package can be built with distutils. # \verbatim #$ python setup.py build #$ python setup.py install # \endverbatim # # # \subsection Tutorial # To create an inversion object: # \verbatim #from sas.sascalc.pr.invertor import Invertor # invertor = Invertor() # \endverbatim # # To set the maximum distance between any two points: # \verbatim # invertor.d_max = 160.0 # \endverbatim # # To set the regularization constant: # \verbatim # invertor.alpha = 0.0007 # \endverbatim # # To set the q, I(q) and error on I(q): # \verbatim # invertor.x = q_vector # invertor.y = Iq_vector # invertor.err = dIq_vector # \endverbatim # # To perform the inversion. In this example, we choose # a P(r) expension wit 10 base functions. # \verbatim # c_out, c_cov = invertor.invert(10) # \endverbatim # The c_out and c_cov are the set of coefficients and the covariance # matrix for those coefficients, respectively. # # To get P(r): # \verbatim # r = 10.0 # pr = invertor.pr(c_out, r) # \endverbatim # Alternatively, one can get P(r) with the error on P(r): # \verbatim # r = 10.0 # pr, dpr = invertor.pr_err(c_out, c_cov, r) # \endverbatim # # To get the output I(q) from the set of coefficients found: # \verbatim # q = 0.001 # iq = invertor.iq(c_out, q) # \endverbatim # # Examples are available as unit tests under sas.pr_inversion.test. # # \section help_sec Contact Info # Code and Documentation produced as part of the DANSE project. __author__ = 'University of Tennessee'