# Can compressible flow solvers be used to solve incompressible flow?

I know that incompressible and compressible flow solvers are specifically designed to solve different types of problems with different fluid properties/flow conditions. Clearly, among the advantages of using incompressible flow solvers for modeling problems with incompressible fluids is that the energy equation can be neglected, thus reducing the number of variables and equations that need to be solved.

However, I'm curious to know about the accuracy of compressible flow solvers in the limit as the fluid properties and flow conditions tend toward being incompressible. Do compressible flow solvers tend to fail as the fluid/flow being modeled becomes more and more incompressible? Or do compressible flow solvers perform equally well independently of the compressibility of the fluid/flow?

I realize that this question is a bit broad and may very well depend upon the characteristics of the problem being modeled. If such is the case, please help me to understand what factors I need to keep in mind when determining the applicability of using a compressible flow solver where otherwise an incompressible flow solver would suffice.

• Which compressible flow solvers (as in low/high mach regimes)? Also, see cs.swan.ac.uk/reports/yr2004/CSR2-2004.pdf – stali Feb 9 '16 at 16:42
• Clearly, it would have to be in low mach regimes. Otherwise, an incompressible solver would not suffice for the same problem. – Paul Feb 9 '16 at 16:45
• This is the topic of my thesis... a rough rule of thumb -- $M < 0.1$ and you are going to suffer accuracy problems with an explicit code; pressure will be under-damped numerically while momentum will be overly damped. This says nothing about efficiency. You will completely get the wrong answer at low Mach numbers and/or face numerical instabilities. – tpg2114 Feb 10 '16 at 3:10
• Track down a copy of these lecture notes for a good understanding of the math/physics in low Mach number systems and an approach for dealing with it. If you cannot find it, ping me and I will see what I can do. – tpg2114 Feb 10 '16 at 3:12

The compressible equations are hyperbolic in nature, i.e., they have a finite speed of sound. In practice, this implies that you have to take a time step that is proportional to something like the mesh size divided by the speed of sound. (This is, in its essence, the CFL condition you have to satisfy for stability when using explicit solvers, and for accuracy if you use implicit solvers.)

On the other hand, if you go to the incompressible limit, then this implies that the speed of sound goes to infinity. With the usual hyperbolic solvers, this means that you need to let the time step go to zero -- i.e., you will not make a lot of progress in your simulations. Consequently, compressible solvers are poorly suited for incompressible problems, and when used for such problems almost always treat them as slightly compressible problems.

Put another way, there are fundamental differences between the compressible and incompressible equations, even though one is the limit of the other. This implies that one is well advised to use different codes that tailor to these differences.

• To add to Wolfgang's answer, it's certainly possible (see for example Hauke and Hughes sciencedirect.com/science/article/pii/0045782594900558, who point out that flow in boundary layers is nearly incompressible). However, it does seem that care must be taken to adapt compressible solvers to incompressible regimes (i.e. different variables, formulation, stabilization, etc). – Jesse Chan Feb 9 '16 at 20:20
• I like very much the quip about "not making a lot of progress". In experimental physics there is no such thing as a truly incompressible fluid. Incompressibility is indeed just a very useful mathematical assumption that allows for readily computing an approximation to a slightly compressible problem. So you can switch to an incompressible solver when tracking the effects of compressibility becomes to costly and gives rise to small perturbations with respect to an incompressible flow. But as W.B. points out, remember that by doing so you changed the very nature of the equations and solution. – Stefano M Feb 9 '16 at 20:37
• @JesseChan -- what happens in boundary layers is that the flow becomes incompressible in the sense that the divergence of the velocity becomes small. But that's because the velocities are small there, not because the properties of the medium change. That's an important distinction: whether a medium is incompressible or not is a property of the medium, not the velocity (i.e., the solution); whether a flow is incompressible or not is a property of the velocity. When we talk about compressible/incompressible solvers, we talk about the properties of the medium, not the solution. – Wolfgang Bangerth Feb 9 '16 at 22:30
• If I am not mistaken, treating incompressible problems with a "slight compressibility" is often used as a numerical trick, and is refered to as artificial compressibility : link.springer.com/chapter/10.1007/3-540-26454-X_10 – imranal Feb 10 '16 at 12:34
• Artificial compressibility is a different technique that avoids problems when using discretizations that are not inf-sup stable. In these methods, the compressibility is chosen proportional to the mesh size (or some power of it), i.e., the material becomes incompressible in the limit of infinitely small meshes. On the other hand, if you use compressible solvers for incompressible problems, you will likely want to choose the compressibility small but constant. – Wolfgang Bangerth Feb 10 '16 at 15:01

The incompressibility assumption is an approximation. Thus compressible flow solvers -- which don't employ that approximation -- are more accurate but also more expensive. A compressible solver will give you a perfectly good answer if applied to an "incompressible" problem (i.e. one where compressibility plays no significant role). It will just take a ridiculously long time.

The same answer applies to any pair of models where one is a lower-cost approximation of the other.

A few years back, I was doing an internship for a private research center which had develop a very robust compressible problem. I was using it to solve an incompressible solver. In order to do it as efficiently as possible (in terms of CPU time), I had to increase the velocity up to the incompressible limit (Mach $\approx 0.2$) and also increase the viscosity accordingly so the Reynolds number would remain unchanged: $Re = \dfrac{v D}{\nu}$