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

FFT

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 = πQmax.

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

  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πr[ρ(r)ρ0]=2π0Q[S(Q)1]sin(Qr)dQ

and in this algorithm, it is implemented as

G(r)=2πQminQmaxQ[S(Q)1]sin(Qr)M(Q,Qmax)ΔQ

where M(Q,Qmax) is an optional filter function. If Filter property is set (true) then

M(Q,Qmax)=sin(πQ/Qmax)πQ/Qmax

otherwise

M(Q,Qmax)=1

g(r)

G(r)=4πρ0r[g(r)1]

transforms to

g(r)=G(r)4πρ0r+1

RDF(r)

RDF(r)=4πρ0r2g(r)

transforms to

RDF(r)=rG(r)+4πρ0r2

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