PDFFourierTransform v1

../_images/PDFFourierTransform-v1_dlg.png

PDFFourierTransform dialog.

Summary

Fourier transform from S(Q) to G(r), which is paired distribution function (PDF). G(r) will be stored in another named workspace.

Properties

Name Direction Type Default Description
InputWorkspace Input MatrixWorkspace Mandatory S(Q), S(Q)-1, or Q[S(Q)-1]
OutputWorkspace Output MatrixWorkspace 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 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

  1. 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
  2. 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)')

# 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++ source: PDFFourierTransform.cpp (last modified: 2019-07-17)

C++ header: PDFFourierTransform.h (last modified: 2018-10-05)