I am using the FFTW MPI in C.
I have a simple question.
Quoting from fftw.org
The multi-dimensional transforms of FFTW, in general, compute simply the separable product of the given 1d transform along each dimension of the array. Since each of these transforms is unnormalized, computing the forward followed by the backward/inverse multi-dimensional transform will result in the original array scaled by the product of the normalization factors for each dimension (e.g. the product of the dimension sizes, for a multi-dimensional DFT).
Imagine we have $\tilde{A}$ in the Fourier space with the coresponding $A$ in the physical space. I want to compute $\tilde{B}$ that is $\tilde{A}^2$. The normalization factor is $F_{norm}$.
The idea is $A=IFFT(\tilde{A})$ (inverse fourier transform, A now is real)
So
$B=A^2$
$A=A*F_{norm}$, $B=B*F_{norm}$ (we have to normalize before to transform back to Fourier space.)
$\tilde{A}=FFT(A)$
$\tilde{B}=FFT(B)$
The questions are:
1) Do I normalize A before or after the computation of B ?
2) Does anything change if B is used directly in physical space ?