Analytical Solution of Colebrook Equation

Colebrook Puzzle

In my introduction to fluid dynamics class (ME331) at OSU. I encountered a pesky implicit formula called the Colebrook equation [1] which is important to solve friction factor in turbulent flows, defined as


I put it in the back of my mind and forget about it. This is my first principle of problem-solving, if it’s too troublesome and not urgent, ignore it for a while. In other words, let the subconscious do it for you.

Then after a few weeks, I googled LambertW Wk(x) [2] function as I was thinking I have seen it somewhere. By this point, I have all the tools necessary to solve the Colebrook equation, but I still didn’t realize it. Until in my procrastination I meet a cousin of LambertW function, the Wright Omega ω(x) [3] function defined as the solution to


But this is very close to the form of which Colebrook equation is presented, and I was ready to solve the equation. The first thing that I think about was how to make the Colebrook equation in a similar form to the above. Getting Y is the hard part because I have to sync both the expression inside the log and an additive term. The X is easy, it’s just whatever multiplicative term is leftover after the process of “syncing” the Y has succeeded.

The first step is to rearrange the equation so that all f variable is on one side and ln(10) factor is pulled out so that



Now the solution looks closer, and I have to sync the variable inside the natural logarithm with the additive term. Here we exploit the fact that multiplying an expression in a logarithm yields an addition outside of it, and thus both expression is almost exactly of the same form minus an additive term that we can dump into X.

Thus the form that we wanted is finally in sight, the Wright Omega solution in the form of


Which by definition yields to


After further simplifications, the closed form of the friction factor in terms of Wright Omega is


As a bonus, using the definition of Wright Omega function in terms of LambertW function expressed as


We can write the solution using the principal branch of LambertW as


I never really looked if anyone had done this before, and did not want to find spoilers because it is such a perfect puzzle. Not too easy, not too hard.

Now I have finished the puzzle, I think it is decent to acknowledge prior works that do the similar/same approach to derivation. So today I delved into Google scholar to find who did it using a similar approach.

The earliest analytical solution of Colebrook equation that uses Wright Omega is a paper by Clamond in 2008 [4], this paper actually discussed the iterative solution in depth and compared different speed using different derivations. In order of rapidness, from the most to the least is a shifted Wright Omega, Wright Omega, and principal branch LambertW function.

Edit: Just to be sure, I did some test on the function using some random numbers on MATLAB iterative solver and the difference magnitude is much lower (~1e-11) than FSOLVE tolerance (1e-6). Which is good.

a = 3.7; b = 2.51;
iterative_colebrook = @(Re,rf) fsolve(@(f) (-2.*log10(rf./a+b./(Re.*sqrt(f)))-1./sqrt(f)),0.02,optimset('Display','off'));

wright_colebrook = @(Re,rf) (2/log(10)*wrightOmega(log(10)*Re*rf/(2*a*b)-log(2*b/(log(10)*Re)))-Re*rf/(a*b))^-2;
lambert_colebrook = @(Re,rf) (2/log(10)*lambertw(exp(log(10)*Re*rf/(2*a*b)-log(2*b/(log(10)*Re))))-Re*rf/(a*b))^-2;

wright_log_error = @(Re,rf) log10(abs(wright_colebrook(Re,rf)-iterative_colebrook(Re,rf)));
lambert_log_error = @(Re,rf) log10(abs(lambert_colebrook(Re,rf)-iterative_colebrook(Re,rf)));

I wrote this for a sort of fun writing and math practice. But if anyone happens to read this and have any corrections/questions/clarifications please email me at


[1] C. F. Colebrook, “Turbulent Flow in Pipes, with Particular Reference to the Transition between the Smooth and Rough Pipe Laws,” J. Inst. Civ. Eng. Lond., vol. 11, 1938–1939, pp. 133–156.

[2] Corless, R. M., Gonnet, G. H., Hare, D. E. G., Jeffrey, D. J., and Knuth, D. E.,1996, “On the LambertW Function,” Adv Comput Math, 5(1), pp. 329–359.

[3] Corless, R., and Jeffrey, D., 2002, “The Wright Omega Function.,” pp. 76–89.

[4] Clamond, D., 2008, “Efficient Resolution of the Colebrook Equation,” arXiv:0810.5564 [physics].


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s