2.20.2010

How to solve the Colebrook equation in Excel/VBA

I see that a lot of people have been searching for a quick and easy way to solve the Colebrook equation for the Darcy friction factor in Excel/VBA. Well, here you go. Thanks to Efficient Resolution of the Colebrook Equation by Didier Clamond, the Colebrook equation can be solved and the Darcy friction factor found with a very short and simple function.

This two iteration solving method is EXTREMELY accurate, "around machine precision" (Clamond).

The following VBA code is derived from Clamond's MATLAB implementation supplied in his paper. It can be added to a new VBA Module in your Excel spreadsheet so that you can access it from cells (i.e. "=Colebrook(somecell, anothercell)").

R is the Reynolds number (Re, dimensionless), and K is relative roughness (K = e/Dh, dimensionless), which is equal to the absolute roughness divided by the hydraulic diameter. Watch your units!

The returned result is of course the Darcy friction factor, which is meant to be used with the Darcy-Weisbach equation to calculate pressure drop.

Function Colebrook(R As Double, K As Double) As Double
Dim X1 As Double, X2 As Double, F As Double, E As Double
X1 = K * R * 0.123968186335418
X2 = Log(R) - 0.779397488455682
F = X2 - 0.2
E = (Log(X1 + F) + F - X2) / (1 + X1 + F)
F = F - (1 + X1 + F + 0.5 * E) * E * (X1 + F) / (1 + X1 + F + E * (1 + E / 3))
E = (Log(X1 + F) + F - X2) / (1 + X1 + F)
F = F - (1 + X1 + F + 0.5 * E) * E * (X1 + F) / (1 + X1 + F + E * (1 + E / 3))
F = 1.15129254649702 / F
Colebrook = F * F
End Function

Enjoy, and thank you to Didier Clamond for coming up with this solving method!

3 comments:

  1. THANK YOU SO MUCH!!!!!!

    ReplyDelete
  2. Where did you get the 0.123968186335418 and -0.779397488455682?

    Thanks!

    ReplyDelete
  3. If you look at the first paragraph, there's a link to Didier Clamond's paper that explains this solving method in great detail. They are statistically determined coefficients that produce the best overall results (within machine precision).

    ReplyDelete