# 2d pseudo-spectral turbulence simulation with random initial velocities

I am trying to write a 2d pseudo-spectral DNS code with random initial velocities. This is kind of a classic simulation where the very tiny vortices group together forming larger and larger vortices as the spectral energy cascades upward. So far I have done what I think is the intuitive thing to do: I have done a splitting scheme where the nonlinear term is treated explicitly using a 2nd order adams bashforth time stepping, while the diffusive term is completed implicitly by trapezoid time stepping. Finally the incompressibility condition is enforced by the projection method.

So far this seems to work well for other initial conditions, for example zero initial velocity but with a forcing term added. However for the problem I am trying to tackle, the flow is just too diffusive and smears everything out for low Reynolds numbers, or becomes unstable for anything over a couple hundred (Re). I have tried hyper viscosity, but this then becomes unstable as well even after applying various filters (sharp, box, gaussian etc).

Basically I was wondering whether anyone can tell me what standard methods are usually employed for this kind of problem. It is a common toy simulation set-up, so I am assuming there is a common introductory way that people solve this.

Note: I am solving the non-dimensionalized Navier-Stokes where the nonlinear term is written in conservative form.

• While not pseudo-spectral, the rest of the scheme sounds very similar to what Paul Fischer of Argonne does with Nek5000 (spectral element code, higher order splitting scheme of Karniadakis et al, projection method for incompressibility). As Rhys mentioned, aliasing may be an issue for the convective regime. I am surprised to hear that the convective regime is unstable; unless your CFL limit is tiny (due to very high order, perhaps?). Mar 8, 2014 at 16:05