Hello everyone,

I am new to pyfr, and i need to use it in order to generate some high fidelty data on a 2D incompressible airfoil problem. I tried replicating the inc_2d_cylinder case by changing the mesh, generated using gmsh. However, when i launch the run, I obtain all NaN in all the domain after the first timestep, and i don’t understand why. I upload the geo, msh and ini files.

Thank you in advance,

Giulio

ls417.msh (535 KB)

ls417.ini (1.4 KB)

ls417.geo (6.58 KB)

Hi Giulio,

Thanks for your interest.

The pseudo-time step size (pseudo-dt) is restricted by the explicit CFL limit. You seem to be running the case with higher Re and your mesh probably contains smaller elements than the inc_2d_cyl case, so you need decrease pseudo-dt for the simulation to remain stable.

Cheers,

Niki

Hi Niki,

This solved the NaN problem, thank you.

So for stability related to the CFL number i can only refer to the pseudo dt, keeping it it low enough, and keep dt arbitrary? Or what other restriction I have to impose?

Thank you,

Giulio

Yes, exactly. Physical dt is implicit so it can be arbitrary. Pseudo dt is explicit so it’s limited by CFL. This allows effective utilisation of modern massively parallel hardware architectures. I tend to keep the dt/pseudo-dt ratio in the range of 50x.

The other parameters that you can fine tune to achieve better convergence rates are

pseudo-dt-max-mult = 2.5

pseudo-dt-fact = 1.75

pseudo-dt-max-mult sets the factor how much pseudo time steps can be increased locally by the local-pi controller. Pseudo-dt-fact is the factor how much pseudo-dt is increased between polynomial multigrid levels. If you increase these too much the simulation tends to blow up.

Cheers,

Niki