\(\renewcommand\AA{\unicode{x212B}}\)
PDFFourierTransform v1¶
Summary¶
Fourier transform from S(Q) to G(r), which is paired distribution function (PDF). G(r) will be stored in another named workspace.
See Also¶
Properties¶
Name |
Direction |
Type |
Default |
Description |
---|---|---|---|---|
InputWorkspace |
Input |
Mandatory |
S(Q), S(Q)-1, or Q[S(Q)-1] |
|
OutputWorkspace |
Output |
Mandatory |
Result paired-distribution function |
|
InputSofQType |
Input |
string |
S(Q) |
To identify whether input function. Allowed values: [‘S(Q)’, ‘S(Q)-1’, ‘Q[S(Q)-1]’] |
Qmin |
Input |
number |
Optional |
Minimum Q in S(Q) to calculate in Fourier transform (optional). |
Qmax |
Input |
number |
Optional |
Maximum Q in S(Q) to calculate in Fourier transform. (optional) |
Filter |
Input |
boolean |
False |
Set to apply Lorch function filter to the input |
PDFType |
Input |
string |
G(r) |
Type of output PDF including G(r). Allowed values: [‘G(r)’, ‘g(r)’, ‘RDF(r)’] |
DeltaR |
Input |
number |
Optional |
Step size of r of G(r) to calculate. Default = \(\frac{\pi}{Q_{max}}\). |
Rmax |
Input |
number |
20 |
Maximum r for G(r) to calculate. |
rho0 |
Input |
number |
Optional |
Average number density used for g(r) and RDF(r) conversions (optional) |
Description¶
The algorithm transforms a single spectrum workspace containing spectral density \(S(Q)\), \(S(Q)-1\), or \(Q[S(Q)-1]\) (as a function of MomentumTransfer or dSpacing units) to a PDF (pair distribution function) as described below. The available output types are the reduced pair distribution function \(G(r)\), the pair distribution function \(g(r)\), and the radial distribution function \(RDF(r)\).
The input Workspace spectrum should be in the Q-space (MomentumTransfer) units . (d-spacing is not supported any more. Contact development team to fix that and enable dSpacing again)
References¶
B. H. Toby and T. Egami, Accuracy of Pair Distribution Functions Analysis Appliced to Crystalline and Non-Crystalline Materials, Acta Cryst. (1992) A 48, 336-346 doi: 10.1107/S0108767391011327
B.H. Toby and S. Billinge, Determination of Standard uncertainties in fits to pair distribution functions Acta Cryst. (2004) A 60, 315-317] doi: 10.1107/S0108767304011754
Output Options¶
G(r)¶
\(G(r) = 4\pi r[\rho(r)-\rho_0] = \frac{2}{\pi} \int_{0}^{\infty} Q[S(Q)-1]\sin(Qr)dQ\)
and in this algorithm, it is implemented as
\(G(r) = \frac{2}{\pi} \sum_{Q_{min}}^{Q_{max}} Q[S(Q)-1]\sin(Qr) M(Q,Q_{max}) \Delta Q\)
where \(M(Q,Q_{max})\) is an optional filter function. If Filter property is set (true) then
\(M(Q,Q_{max}) = \frac{\sin(\pi Q/Q_{max})}{\pi Q/Q_{max}}\)
otherwise
\(M(Q,Q_{max}) = 1\,\)
g(r)¶
\(G(r) = 4 \pi \rho_0 r [g(r)-1]\)
transforms to
\(g(r) = \frac{G(r)}{4 \pi \rho_0 r} + 1\)
RDF(r)¶
\(RDF(r) = 4 \pi \rho_0 r^2 g(r)\)
transforms to
\(RDF(r) = r G(r) + 4 \pi \rho_0 r^2\)
Note: All output forms except \(G(r)\) are calculated by transforming \(G(r)\).
Usage¶
Example - PDF transformation examples:
# Simulates Load of a workspace with all necessary parameters
import numpy as np;
xx = np.array(range(0,100))*0.1
yy = np.exp(-(2.0 * xx)**2)
ws = CreateWorkspace(DataX=xx, DataY=yy, UnitX='MomentumTransfer')
Rt = PDFFourierTransform(ws, InputSofQType='S(Q)', PDFType='g(r)', Version=1)
# Look at sample results:
print('part of S(Q) and its correlation function')
for i in range(10):
print('! {0:4.2f} ! {1:5f} ! {2:f} ! {3:5f} !'.format(xx[i], yy[i], Rt.readX(0)[i], Rt.readY(0)[i]))
Output:
part of S(Q) and its correlation function
! 0.00 ! 1.000000 ! 0.317333 ! -3.977330 !
! 0.10 ! 0.960789 ! 0.634665 ! 2.247452 !
! 0.20 ! 0.852144 ! 0.951998 ! 0.449677 !
! 0.30 ! 0.697676 ! 1.269330 ! 1.313403 !
! 0.40 ! 0.527292 ! 1.586663 ! 0.803594 !
! 0.50 ! 0.367879 ! 1.903996 ! 1.140167 !
! 0.60 ! 0.236928 ! 2.221328 ! 0.900836 !
! 0.70 ! 0.140858 ! 2.538661 ! 1.079278 !
! 0.80 ! 0.077305 ! 2.855993 ! 0.940616 !
! 0.90 ! 0.039164 ! 3.173326 ! 1.050882 !
Categories: AlgorithmIndex | Diffraction\Utility
Source¶
C++ header: PDFFourierTransform.h
C++ source: PDFFourierTransform.cpp