Question on two-dimensional Fourier transform via fft2 in Python

I solve a two-dimensional stationary diffraction equation using the two-dimensional Fourier transform. I do it in Python using fft2. To obtain the solution, the direct Fourier transform is first performed only from the boundary condition (and it is in the form of exp (- (x^2+y^2))). Then multiply by some function that depends on i and k, where i corresponds to x, k-y (that is, already on the grid). And then I do the inverse Fourier transform. The question is as follows. The field amplitude is output (as the root from the sum of the squares of the real and imaginary parts) for a particular z = const. As a result, you should still get a surface in a Gaussian shape, which should blur as you increase z. But this does not work. Additional "bumps" appear, and the original "bump" is shifted. I don't understand why this is happening. I assume that something is at the stage of multiplying by a function (before taking the inverse Fourier). There may be some additional phase. I will be grateful for any help and hints.

 0
Author: aleksandr barakin, 2020-04-26