SimScale CAE Forum

Wrong speed of sound in compressible fluid flow


I’m having some trouble looking at a wave propagation problem using the transient compressible flow analysis in simscale. The project is here and the best study in it to highlight the problem is the one titled “mesh study”.

I am looking at wave propagation in air contained within a two metre long pipe. In my simulation, I have set up probe points at 0.5m, 1m, and 1.5m along the length of the tube, and am exciting the tube at the inlet at 0cm with a sinusoidal pressure source (given from a .csv file).

Using a speed of sound of 340 m/s, the pulse should arrive at each probe point at 0.0015s, 0.0029 s, and 0.0044 s. The simulation is recording the pulse arriving at each probe point at around 0.0009s, 0.0018 s, and 0.0027 s, which corresponds to a speed of sound around 550 m/s. This result appears to be consistent with finer resolution meshes and time steps (from deltat = 1e-5s to 1e-7s). I haven’t tried different solvers yet but I don’t believe they should affect the speed of sound this way.

The material properties of air were taken straight from the SimScale library. I tried adjusting the amount of substance (default 1 mole) to what would be the actual amount, thinking this may have an effect on density, and therefore speed of sound, but this had no noticeable affect on the output.

If anyone has any suggestions on how to fix this problem or on how to test it further, I’d be grateful to hear your thoughts.


Hi @rharsley!

Cool project! To be honest, I would have first thought of \Delta t as the culprit here but you ran several iterations with different (small) time steps. Compressible simulations are sometimes a slap in your face and very unthankful :smiley: Could you try do a study using different numerical schemes by tweaking Gradient, Divergence and Laplacian in the tab Numerics? I would have used a function instead of a table upload as well but since you are working with pressure that’s not possible :frowning:

@Retsam, @DaleKramer - if you have any additional tips here, feel free to jump in!

Cheers and keep me posted!



Thanks for the advice and speedy response @jousefm. I’ll try tweaking the other schemes and keep you posted.
I would have preferred to use a function, but as you said for the pressure that’s not an option (one for the wish list of future developments?).


Hi @jousefm. I’ve tried your suggestion by independently adjusting the schemes for time stepping, gradient, divergence, and laplacian and have not seen a noticeable effect. The only thing that does seem to affect the arrival time of the pulse is changing the material, although this still doesn’t match up with what the speed of sound should be. Trying C02 as the material, the pulse arrived around 0.0011 s at the probe 0.5 m. This corresponds to a speed of sound around 454 m/s, less than the speed I was getting for air but still well above what the value should be for C02 of 267 m/s (source This is (roughly) the same factor difference I got for air.

I wasn’t completely convinced that the solver was the problem, but my main experience is with the numerics in 1D linear systems so I’m not sure if what I know from them is applicable to the case studied in a 3D cfd problem. Typically when I’ve seen problems with the numerics, they’ve introduced dispersion which makes the wave packet look like it’s been slowed down, not sped up. I’ve checked through my settings again and can’t see anything that would cause the arrival time to be affected so dramatically. Any other ideas for how to investigate?