I want to perform a 3D Fourier transformation (using fortran) of a complex function which is in a 10^9 array, where each element corresponds to a 3D vector k. So each element of the array is in fact a particle in Fourier space with k vector being its wavenumber.
In a mathematical notation I want to do:
F(x)=3D integral(f(k vector)*exp(i*k*x))dx
F(x) is a real function and x is a real 3D vector
f(k) is a complex function of vector k
k*x is the dot product of the two 3D vectors
What is the dimension of the transformation I should put in DFTI_DIMENSION one or three. Examples I have seen for the 3D case the f(k) input function has to be a 3D matrix (while mine is 1D) and what it does is the FFT of each dimension in the matrix. Is there a way to specify the k vectors in the transformation?
What configurations I have to do to get a real function from a complex one? Something like this would do the trick:
status = DftiCreateDescriptor(hand, <precision>, DFTI_REAL, <dimension>, <sizes>) status = DftiSetValue(hand, DFTI_CONJUGATE_EVEN_STORAGE, DFTI_COMPLEX_COMPLEX)