1
$\begingroup$

Let $u_n$ be an array containing discrete values of the function $u(x,y)$. Performing a 2D FFT to this array we obtain $\hat{u_n}$ representing the values of $\hat{u}(k_x,k_y)$. I would like to perform something like the 2/3 rule often used in pseudospectral methods for fluid dynamics:

$$\hat{u}(k)=0\qquad if \quad k>(2/3)k_{max} $$

I know how to do this in 1D, but I am having trouble implementing it in 2D. I have tried setting to zero all $\hat{u}(k_x,k_y)$ for which $k=\sqrt{k_x^2+k_y^2}>(2/3)k_{max}$ but this method is affecting the energy of my lower frequencies, which I would like to be preserved without numerical dissipation. I would like to obtain something like this:

enter image description here

Which I have only been able to obtain setting a filter in terms of the dependent magnitude (Normalized Energy), and not regarding the wavenumber $k=\sqrt{k_x^2+k_y^2}$ as I would want.

I would appreciate if someone pointed me in the right direction to tackle my problem.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.