Efficient pseudo-spectral DNS for isotropic and anisotropic turbulence: dealiasing methods

Journées des GDRs MFGA & NS 2.0

Clovis Lambert, Jason Reneuve, Pierre Augier, Nicolas Mordant

LEGI, Grenoble

2026-06-16

Physical context and objectives

Stratified fluids: Ocean & Atmosphere

Turbulence in stratified fluids:

  • Experiments in Coriolis facility

  • Direct numerical simulations (DNS) pseudo-spectral

  • Turbulent anisotropic cascade in strongly stratified regime

  • Compute vectorial third-order structure function \(\mathbf{J}\)

  • \(\mathbf{J}\) characterizes the nonlinear turbulent energy flux: never done yet

Technical context

Simulation cost \(\color{red}{\propto N_x^4} = N_x^3\) (3D) \(\times N_x\) (time step, CFL)

Size \(4096^3\) \(12288^3\) \(32768^3\)
Paris to New-York flights (CO\(_2\)) \(0.5\) \(60\) \(3200\)




How to avoid that:

  • Very expensive computation time for dealiasing

  • Aliasing: errors generated by Fourier transforms of nonlinearities

Dealiasing

Dealiasing methods

Truncation

\(\color{red}{C_t} = \color{red}{2/3}\), \(\kmax = \color{red}{C_t} k_N\), \(k_N = \frac{2\pi}{L} \frac{N_x}{2}\)







  • Remove \(100\%\) of aliasing errors

  • Same time schemes

  • Retain: \(30\%\) & \(15\%\) of \(\kvec\)

  • \(80\%\) simulation cost for unused \(\kvec\)

Phase-shifting








  • \(0\%\) simulation cost for unused \(\kvec\)
  • Still aliasing errors

  • Modified time schemes

\(\implies\) Simulation cost

Dealiasing methods based on Phase-shifting

Known but not well cited and non-reproducible

  • (Yeung et al., 2025): “Aliasing errors for the nonlinear terms are controlled by a combination of phase shifting and truncation at wavenumbers beyond \(\kmax = \color{red}{2\sqrt{2}/3} \times k_N\) in Fourier space (Canuto et al., 1988)

Historical studies:

  • Hard to study & reproduce

  • No benchmark available

  • No open-source implementation: only propriatory codes

Our work

  • Open-source implementation: Fluidsim (Mohanan et al., 2019)

  • Easy to use, few command lines to launch a simulation:

uvx install-locked-env https://github.com/fluiddyn/fluidsim/tree/branch/default/pixi-envs/env-fluidsim
pixi shell -m env-fluidsim
mpirun -np 2 python doc/examples/simul_ns3d_forced_isotropic.py

Comprehensive study and benchmark:

Lambert, Reneuve & Augier (2026)Aliasing and phase shifting in pseudo-spectral simulations of the incompressible Navier-Stokes equations — arXiv:2603.08892

  • Description of Phase-shifting methods

  • Speedup gain & Error:

    • Turbulent decaying Flows

    • Homogeneous Isotropic Turbulent (HIT) flows

Turbulent decaying flow: Taylor-Green vortices

Fully dealiased vs aliased simulations

Type \(N_x^3\) \(Re\) scheme \(C_t\) \(k_{\max}\) Expected speedup
Fully dealiased \(192^3\) \(1600\) RK4 \(2/3\) \(64\) \(1.0\)
Aliased \(128^3\) \(1600\) RK4 \(1\) \(64\) \(\color{red}{5.0} = (192/128)^4 = (3/2)^4\)

Turbulent decaying flow: Taylor-Green vortices

Aliasing errors: velocity field

\[ V_x \text{, } t=9 \]

Fully dealiased: 2/3-truncation

\(N_x^3 = 192^3\)

Aliased

\(N_x^3 = 128^3\)

Turbulent decaying flow: Taylor-Green vortices

Aliasing errors: energy spectra

Definition of an error index

For these simulations:

  • Error \(= \color{red}{25 \%}\)

  • Speedup \(= \color{red}{5}\)

  • \(\color{red}{80\%}\) of time for unused \(\kvec\)

Objective with phase-shifting:

  • Faster simulations

  • Better simulations

Phase-shifting and truncation for turbulent decaying flow



  • Errors \(\leq 0.2 \%\)

  • The best compromise:

    \(\color{red}{2\sqrt{2}/3} \approx 0.94 < C_t \leq 1\) + Random scheme

Forced HIT simulations: \(\kmax \eta = 2\), \(R_\lambda = 200\), Spherical truncation

  • Errors \(\sim \color{red}{2.5\%}\)

  • Optimal choice: \(C_t = \color{red}{1}\)

    • Speedup \(= \color{red}{2.9}\)

    • \(1.5 \times\) faster than \(C_t = 2\sqrt{2}/3\)

  • Theoretical \(C_t = \color{red}{2\sqrt{2}/3}\) has no practical interest

Stratified turbulence

Objective

  • The \(4/5\)-th or \(4/3\)-rd law for \(Re \to \infty\) at \(\eta \ll r \ll L\) with \(\delta \mathbf{u}(\mathbf{r}) = \mathbf{u}(\mathbf{x} + \mathbf{r}) - \mathbf{u}(\mathbf{x})\), \(\delta u_L(\mathbf{r}) = \delta \mathbf{u}(\mathbf{r}) \cdot \frac{\mathbf{r}}{r}\) (Karman & Howarth, 1938; Kolmogorov, 1941; Antonia et al., 1997):

\[ \langle \delta \mathbf{u}(\mathbf{r})^3\rangle = -\frac{4}{5} \epsilon_K r \text{ or } \langle \delta \mathbf{u}(\mathbf{r})^2 \delta u_L(\mathbf{r})\rangle = -\frac{4}{3} \epsilon_K r \tag{1}\]

\[ \mathbf{\nabla} \cdot \mathbf{J} = -4 \epsilon \tag{2}\]

With \(\mathbf{J}(\mathbf{r}) = \mathbf{J_K}(\mathbf{r}) + \mathbf{J_P}(\mathbf{r}) = \langle |\delta \mathbf{u}(\mathbf{r})^2| \delta \mathbf{u}(\mathbf{r}) \rangle + \langle (\delta b/N^2) \delta \mathbf{u}(\mathbf{r}) \rangle\) and \(\epsilon = \epsilon_K + \epsilon_P\)

  • Integrated form with axisymetry, anisotropic parameter \(\alpha\):

\[ \mathbf{J}(r_h, r_v) = - \frac{4\epsilon}{\alpha + 2}(r_h\mathbf{e_h} + \alpha r_v\mathbf{e_v}) \tag{3}\]

Compute the vectorial energy flux \(\mathbf{J}\) + Numerical verification of Equations (1), (2) and (3)

Comparison with \(4/3\)-rd law on \(J_L(\mathbf{r})\)

\[ \langle \delta \mathbf{u}(\mathbf{r})^2 \delta u_L(\mathbf{r})\rangle = -\frac{4}{3} \epsilon r \]

Isotropic: \(R_\lambda = 315\)

Stratified: \(F_h = 0.03\), \(Re_b = 15.5\)

Numerical verification for \(\mathbf{\nabla} \cdot \mathbf{J} = -4\epsilon\)

\[ -\frac{\mathbf{\nabla} \cdot \mathbf{J}}{4 \epsilon} = 1 \]

Isotropic: \(R_\lambda = 315\)

Stratified: \(F_h = 0.03\), \(Re_b = 15.5\)

Vectorial nonlinear flux \(\mathbf{J}\)

\[ -\frac{\mathbf{J}(r_h, r_v)}{4\epsilon} = \frac{1}{\alpha + 2}(r_h\mathbf{e_h} + \alpha r_v\mathbf{e_v}) \]

Isotropic: \(R_\lambda = 315\)

Stratified: \(F_h = 0.03\), \(Re_b = 15.5\)

Conclusions

Dealiasing methods

Lambert, Reneuve & Augier (2026)Aliasing and phase shifting in pseudo-spectral simulations of the incompressible Navier-Stokes equations — arXiv:2603.08892

  • 3 times faster for HIT simulations at \(\kmax \eta = 2\) and \(R_\lambda = 200\)

  • Easy to use and well documented open-source implementation on Fluidsim

Stratified turbulence

  • Verify: \(\mathbf{\nabla} \cdot \mathbf{J} = -4 \epsilon\)

Perspectives:

  • Verify: \(\mathbf{J}(r_h, r_v) = - \frac{4\epsilon}{\alpha + 2}(r_h\mathbf{e_h} + \alpha r_v\mathbf{e_v})\), \(\alpha\) meaning ?

  • Characterize \(\mathbf{J}\) for various parameters and forcing

References

Karman, T. de, & Howarth, L. (1938). On the statistical theory of isotropic turbulence. Proceedings of the Royal Society of London. A. Mathematical and Physical Sciences, 164(917), 192–215. https://doi.org/10.1098/rspa.1938.0013
Kolmogorov, A. N. (1941). Dissipation of energy in the locally isotropic turbulence. Proceedings of the Royal Society of London. Series A: Mathematical and Physical Sciences, 434, 15–17. https://api.semanticscholar.org/CorpusID:122060992
Patterson Jr, G., & Orszag, S. A. (1971). Spectral calculations of isotropic turbulence: Efficient removal of aliasing interactions. The Physics of Fluids, 14(11), 2538–2541.
Rogallo, R. S. (1981). Numerical experiments in homogeneous turbulence (Vol. 81315). National Aeronautics; Space Administration.
Canuto, C., Hussaini, M. Y., Quarteroni, A., Thomas Jr, A., et al. (1988). Spectral methods in fluid dynamics. Springer Science & Business Media.
Antonia, R. A., Ould-Rouis, M., Anselmet, F., & Zhu, Y. (1997). Analogy between predictions of kolmogorov and yaglom. Journal of Fluid Mechanics, 332, 395–409. https://doi.org/10.1017/S0022112096004090
Galtier, S. (2011). Third-order elsässer moments in axisymmetric MHD turbulence. Comptes Rendus Physique, 12(2), 151–159. https://doi.org/https://doi.org/10.1016/j.crhy.2010.11.006
Augier, P., Galtier, S., & Billant, P. (2012). Kolmogorov laws for stratified turbulence. Journal of Fluid Mechanics, 709, 659–670. https://doi.org/10.1017/jfm.2012.379
Mohanan, A. V., Bonamy, C., Linares, M. C., & Augier, P. (2019). FluidSim: Modular, object-oriented Python package for high-performance CFD simulations. Journal of Open Research Software, 7. https://doi.org/10.5334/jors.239
Yeung, P. K., Ravikumar, K., Nichols, S., & Uma-Vaideswaran, R. (2025). GPU-enabled extreme-scale turbulence simulations: Fourier pseudo-spectral algorithms at the exascale using OpenMP offloading. Computer Physics Communications, 306, 109364. https://doi.org/https://doi.org/10.1016/j.cpc.2024.109364
Lambert, C., Reneuve, J., & Augier, P. (2026). Aliasing and phase shifting in pseudo-spectral simulations of the incompressible navier-stokes equations. https://arxiv.org/abs/2603.08892

Appendix 1: Aliasing in 3D

In 3D, nonlinear wavenumbers \(k_{\mathrm{nl},i}\) become components of wavevector \(\kvec_{\mathrm{nl}}\) with three types of aliases:

  • Single alias arises when exactly one component satisfies \(|k_{\mathrm{nl},i}| > k_N\)

  • Double alias when two components do

  • Triple alias when all three do

Phase-shiftied “exact” schemes: removes \(100\%\) of Single aliases and Triple aliases but \(0\%\) of Double aliases

Appendix 2: Double aliasing

Double aliases remaining:

Appendix 3: Phase-shifting and truncation

Appendix 3: HIT simulations energy

Appendix 4: HIT simulations performances

\(N\) scheme \(C_t\) nb of proc. CPU.h speedup \(\mathrm{Err}_{\mathrm{early}}\) \(\mathrm{Err}_{\mathrm{late}}\) \(\mathrm{Err}(\overline{E})\)
960 RK4 2/3 60 1.0 0.0 0.0 0.0
896 RK2 PS rand split 0.714 64 0.7 0.6 5.42 3.37
768 RK2 PS rand split 0.833 64 1.4 0.73 4.41 2.67
696 RK2 PS rand split 0.920 58 1.7 0.73 4.22 1.6
672 RK2 PS rand split 0.952 56 2.4 0.81 3.78 1.83
640 RK2 PS rand split 1 64 2.9 0.77 4.83 2.5