Community
cancel
Showing results for
Search instead for
Did you mean: Beginner
64 Views

## MKL 3D FFT of 1D function (fortran)

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 Replies