Hi, I’m new to PyFR and have been learning how to use it by simulating some flows with basic geometries.

I noticed that for instance with a half cylinder case, the start of the vortex shedding instability behind the gobject seems to be dependent on the timestep. You can see the result at t=100.0 for both a finer dt=8e-4 (top) and a coarser dt=2e-3.

The dt/pseudo-dt ratio is larger for the coarse dt case (at around 25) while it’s just 10 for the finer dt case. I can’t raise the pseudo dt for the coarse dt case as that leads to a NaN. One of your team members mentioned in this topic that a dt/pseudo-dt ratio up to 50 is okay, though I also read that increasing this ratio leads to more artificial dissipation.

Considering all this, what is the suggested way to get the ‘true’ converged solution? I can share my .pyfrm and .ini files if you need to replicate this result.

This is not unexpected; for an instability to develop something has to break down. For most low-order codes there is enough numerical dissipation that this process happens on its own. However, high-order codes do a surprisingly good job at holding unstable solutions (which can be thought of as being maxima on a graph) for long periods of time. The usual solution here is to increase the Reynolds number, then once everything has broken down, restart the simulation at the true lower Reynolds number.

Just to confirm what Freddie has said, but there is also a further factor at play here. By increasing the physical time step you have effectively applied a temporal filter. It could be that, although you are able to get a stable solution at this higher dt, that you have filtered out part of the mechanism that causes the shedding. (Given that there is also somewhat of an equivalence between filtering and diffusion, it is not surprising that your solutions look as they do)

Please try what Freddie has advised but I wouldn’t be surprised if you can’t get the shedding to appear. In which case the only real solution would be to increase the temporal filter width, i.e reduce dt.

I tried quadrupling the Re, but that still did not lead to vortex shedding, unfortunately. Increasing it further seems not practical as the dt goes too low and the simulation takes ages even on powerful hardware.

At the same reynolds #, I was able to keep dt same and increase pseudo dt by coarsening the mesh instead (keeping CFL approximately same), reducing the dt/pseudo-dt ratio. This led to the shedding re-appearing. Does the filtering effect increase when dt/pseudo-dt ratio is higher?

So the problem with increasing the Reynolds number is it will increase the range of time scales, so although it can trigger the shedding, if your temporal filter is too narrow then this method probably won’t help.

Ultimately, you need to reduce the physical dt you are using.

It is important to node that a small physical step is typically only needed to get the simulation to start shedding; that is to say to kick off the instability. Once it is there you can typically increase the time step a little and it will remain.