Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

MKL 3D FFT of 1D function (fortran)

karagiannis__dionysi
393 Views

Dear all,

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)
0 Kudos
0 Replies
Reply