1

I use the discrete Fourier transform in 3D to solve my model partially in real space and partially in Fourier space. The DFT pair is defined as \begin{equation} F[\boldsymbol{k}]=\sum_{n_3=0}^{N_3-1}\sum_{n_2=0}^{N_2-1}\sum_{n_1=0}^{N_1-1} f[\boldsymbol{n}] \exp \left(-i\frac{2\pi}{N}{\boldsymbol k}\cdot\boldsymbol{n}\right)\equiv{\rm DFT}\{f[\boldsymbol{n}]\} \end{equation}

\begin{equation} f[\boldsymbol{n}]=\frac{1}{N_1N_2N_3}\sum_{k_3=0}^{N_3-1}\sum_{k_2=0}^{N_2-1}\sum_{k_1=0}^{N_1-1} F[\boldsymbol{k}] \exp\left(i\frac{2\pi}{N}\boldsymbol{k}\cdot\boldsymbol{n}\right)\equiv{\rm DFT}^{-1}\{F[\boldsymbol{k}]\} \end{equation}

where $n_j,k_j=0,\ldots,N_j-1$ are integers and $j=1,2,3$. I would like to avoid sampling the wavevectors that correspond to $k_j=0$ at which my field $F[\boldsymbol{k}]$ displays singularities that are extremely hard to handle. Is it possible to avoid these problems by shifting the k-space grid using the Fourier shift theorem? By this, I would have

\begin{equation} F[\boldsymbol{k}-\boldsymbol{k_0}] = {\rm DFT}\left\{f[\boldsymbol{n}] \exp\left(i\frac{2\pi}{N}\boldsymbol{k_0}\cdot\boldsymbol{n}\right)\right\} \end{equation}

\begin{equation} f[\boldsymbol{n}]=\exp\left(-i\frac{2\pi}{N}\boldsymbol{k_0}\cdot\boldsymbol{n}\right) {\rm DFT}^{-1}\{F[\boldsymbol{k}-\boldsymbol{k_0}]\} \end{equation}

where the components of $\boldsymbol{k_0}$ are not integers. This looks like I can carry out the k-space calculations on a shifted grid, where $\boldsymbol{k}-\boldsymbol{k_0}$ is never zero and thus avoiding the singularities. However, how do I calculate ${\rm DFT}^{-1}\{F[\boldsymbol{k}-\boldsymbol{k_0}]\}$? My intuition tells me that I could define $\boldsymbol{k}^*=\boldsymbol{k}-\boldsymbol{k_0}$ and then use FFTW to Fourier invert $F[\boldsymbol{k^*}]$. In this case, there would be $k_j^*=0$ but these would physically correspond to nonzero components of the wavevector $\boldsymbol{k}$, which is good. However, there may be a catch somewhere that I do not foresee. Any comments?

Roman
  • 83

0 Answers0