# Will computational fluid dynamics (CFD) ever be 100% correct?

CFD results never match real world numbers especially in turbulent 3D complex flow...

What stops CFD being perfect, and will it ever be 100% correct? If the Navier-Stokes Millennium problem is solved, will CFD then become perfect, or is turbulent flow simply so complex that no math can describe it properly?

• Re "never match real world numbers": What is the deviation (in %)? What deviation can be tolerated? Nov 26, 2021 at 23:36
• Can reality ever be 100% correct? The universe has a granularity, too. Nov 27, 2021 at 5:13
• @PcMan So the exponential problem is actually solvable in linear time because computer power grows exponentially, too. 200 years, give or take a few. We should focus on solving aging first, apparently. How is Kurzweil doing, btw.? Still chugging 100 pills a day? Nov 27, 2021 at 5:18
• There exists yet no complete model of physics, so no model of anything is ever 100% correct, analytical or numerical.
– J...
Nov 27, 2021 at 14:09
• @PcMan: Actually single core/thread processing speed HAS pretty well stagnated: preshing.com/20120208/… Where you're seeing performance increases is in putting multiple cores in a CPU, and doing instruction-level parallism in the core. But multiple cores only help if you can parallelize the problem, and there are a great many problems that are inherently sequential. And you also get to a point where the bottleneck isn't flops, but communication between cores. (See e.g. GPU programming.) Nov 29, 2021 at 4:02

As high eng CFD now stands, it already is correct enough for, say, 95% of use cases. I am not aware of much utility in modelling complex turbulent flow to a high level of accuracy.

CFD will proceed to become more and more accurate, but 100% accuracy will never be achieved, not at least if we are to assume this would mean a 100% accurate path prediction at molecular / atomic level.

The thing is, even nature can't replicate flow events. Any fluid flow is chaotic, and will only seem steady or repeating if observed at great enough scale. By nature, all flow obeys the principle layed out by Heraclitus:

"You cannot step into the same river twice"

• So if throw same stone in glass of calm water from same height,water movement in microscopic level will never be the same? Nov 26, 2021 at 18:33
• Exactly. If, and only if you could make every single variable the same, the fluid dynamics of the event might be the same. But even if you do everything the same, the universe will not. On the smallest scale you will have virtual particles that randomly interfere with the experiment, altering the results ever so slightly. Nov 26, 2021 at 18:52
• @JurgenM No matter how calm it looks, any two bodies of liquid water are never the same. Each and every one of its molecules is in a different energy state, moving and bouncing with a different angle and velocity. Brownian motion giving rise to an unending number of unpredictable convective flows, and that's even if both those bodies have the same overall temperature. Then when you factor in all the boundary layer interactions, things get much much crazier still...
– Will
Nov 26, 2021 at 22:43
• @Jurgen M: Assuming a glass of water contains one US cup, there are (per Google) 8.3569904e+24 molecules in that glass. Even if you could somehow get every one of those molecules going in EXACTLY the same random direction & speed in both glasses (which you can't: see the Heisenberg uncertainty principle), there are 3 atoms in each molecule, vibrating and spinning in various modes, some of which are only approximately real (because of quantum :-)), and our friend Chaos (AKA sensitive dependence on initial conditions) will amplify even the tiniest difference. Nov 27, 2021 at 2:23
• as for accuracy - there would be some use cases. Something i could think of, right now - boundary layer separation and detached flows over airfoils (leading to stall), especially to determine the stall and margin in axial compressors. To my knowledge, current CFD isn't really up to the task. Nov 27, 2021 at 20:46

100% correct, no. That's because CFD (and a great many other computer applications) work on numerical approximations. There's either no exact solution* known, or the exact solution isn't computable. So the application uses numerical approximations, typically on a grid or mesh. To get a better approximation, you either make the grid smaller, or use a smaller timestep (both of which increase the computation time needed). But you won't get 100% exact unless you use an infinitely small grid spacing & timestep**, which is impractical.

Another problem is that floating point computations on a computer have only a limited precision. (About 7 decimal digits for single precision, 15 for double.

Also, when you get into turbulent flow regimes, you run into the problem of sensitive dependence on initial conditions, AKA 'chaos" or "the butterfly effect". Change the input to a problem ever so slightly, and after some time the outputs will be entirely different: https://en.wikipedia.org/wiki/Chaos_theory

*For instance, spacecraft trajectories. There's no general solution to the 3 body problem - how 3 or more objects move under the influence of gravity. But numerical approximations are good enough to land a spacecraft at a given spot on Mars, or play gravitational pool among the moons of Jupiter & Saturn.

**Or the Planck length & time, if you accept the theory that spacetime is quantized: https://en.wikipedia.org/wiki/Planck_units At the current state of computer tech, there's not much practical difference :-)

First, the Millennium Challenge asks about the existence and uniqueness of a solution to the Navier-Stokes (NS) equations given any compatible initial/boundary conditions. This question is of significant interest from an applied mathematics perspective, but it doesn't* help with actually obtaining the numerical solution and, therefore, is of limited interest to engineers.

* But who knows? Maybe a constructive proof will actually aid in solving the equations.

Second, assuming uniqueness and existence hold, Direct Numerical Simulation (DNS) of the NS has been shown to match experiments extremely well where continuum holds. DNS can even substitute experiments in many cases, assuming you can actually get the solution in reasonable time and with existing computational capabilities. The problem lies in completely resolving the length scale of the turbulence, which would require a mesh size that scales with Reynolds number to $$Re^3$$; the time step size also shrinks as a power of the Reynolds number. For any reasonable engineering problem, the memory/processor/time required to solve is prohibitive for practical purpose.

Hence the reason for turbulence modeling, which makes practical computation tractable. These models ignore the turbulence at small length scales by mimicking their effects on the larger scales in a bid to predict phenomena of interest to engineers, such as drag, flow separation, eddies, etc. However, there is no free lunch; the "truncation" of the length scale means that turbulence is not resolved naturally, but rather "prescribed" via parameters; and you usually don't know what these parameters should be until you've resolved the turbulence.

If that sounds like a chicken and egg question to you, you're right! That's why CFD (with turbulence modeling) still requires experimental verification and will never be 100% correct, as you put it.

For the reasons cited above, the answer definitely No, but one point to remember here is that high-end CFD does not have to be perfect to be immensely useful. Imagine one wanted to get 7-place precision out of a temperature prediction in CFD. This would be a fool's errand because in engineering practice, you can't measure free-stream temperatures to that precision in the first place. (It has been said that three-place accuracy was sufficient to design the SR-71.)

No, it will never be 100% accurate. Air or water are quite well described by the Navier-Stokes equations assuming the fluid is a continuum. Usually it is also assumed that they are Newtonian fluid.

The Navier-Stokes equations for a turbulent flow must be solved numerically (for some laminar flows analytical solutions exist). Numerical solutions are never exact for these problems, no matter what kind of order of accuracy you use for your discretizations (FDM, FVM, DG, FEM,...). There will always be some numerical errors (I am now ignoring turbulence modelling, because it is obvious that the closures are always only approximate, the only hope for exact stuff would be in DNS).

Even if you solve the Navier-Stokes solutions exactly (as you can do in some laminar flows), you only solved the model equations. Real fluids are made of molecules, not a continuum. You could do molecular dynamics solution (see https://mattermodeling.stackexchange.com/questions/tagged/molecular-dynamics) but you will again solve some model equations - with some potentials between molecules and atoms. Real molecules are made of nuclei and electrons. The electrons interact in a difficult way and quantum effects will appear. There is inherent randomness in them. Again, models for many particle quantum systems exist - like DFT or H-T, but there are approximations inherent in their formulation.

Less importantly, nuclei are obviously also compounds of nucleons, which are interacting by some complicated potentials through pions, but more exactly actually again made of quarks).

Each of the steps of course require immense computational power even for some small problems, but there are barriers of other kinds in the models themselves that made some aspects essentially random.

And then the whole issues of unknown initial conditions, unknown boundary conditions and deterministic chaos. Those are very important for actual solutions for a given time, less important for time-averaged values.

There are various CFD methods which all involve some trade-offs between computational complexity and precision. Obviously Direct Numerical Simulation, the computationally most intensive one, is the only method which can be considered for your question - and even in DNS small-scale turbulence is usually parametrized. DNS is already almost prohibitive but going beyond 95% will require exponentially even more resources for every percent. In fact, I would intuitively say that you would need a computer with processing power matching the number of molecules - which by definition - even if it could really exist at all - is to be at least few times larger than the simulated environment. Then there is of course the Millennium Prize - if there is no such solution, no amount of processing power could get you there.

And do not forget than even very high end DNS can end up with dramatically wrong results if there happens to be a small-scale phenomenon that happens below the resolution of the model - something rare today mostly because we are starting to have very good experience with DNS and most of these are already known.

• In DNS small scale turbulence cannot be parametrized, that is the very definition of DNS. The assumptions used are the Navier-Stokes equations and hence continuum and usually a Newtonian fluid is assumed. There is no point speaking about the number of molecules in DNS. If you want molecules ,speak about molecular dynamics, not about DNS. Nov 26, 2021 at 22:26

No simulation, in whatever field, can be 100% correct. Just because computer discretize. And small errors diverge exponentially with time (search for Lyapunov exponent).

It is safe to say that it will never be 100% correct. It would require accounting for and simulating each single fluid molecule. As little as one cubic centimeter of air has more that 10 to the power of 19 molecules: it is more that 10.000.000.000.000.000.000 molecules. Good luck having any existing or future piece of hardware simulate all the interactions beetwen them.