Loading web-font TeX/Math/Italic

ChemEng stuff followers

Monday, June 5, 2023

Solving the Colebrook equation

 Finding the friction factor f_F can be big trouble for some students with poor numerical methods background while some other will try to go around by using the diagram of Moody. There is nothing wrong with the Moody diagram but you cannot automate any calculations with that. Besides, we are in the XXI century!

First, the friction factor f_F in the Colebrook equation cannot be isolated because this is a trascendental equation. Since f_F appears in the argument of the function and in other terms only numerical solutions are possible. There are several approximations to the Colebrook equation, like that due to Swamee-Jain (shown below),

f_F=\dfrac{0.25}{\left[ \log_{10}\left( \dfrac{\epsilon}{3.7D} + \dfrac{5.74}{N_{Re}^{0.9}} \right) \right]^2}        Eq. (1)

which give f_F explicitly. However, these approximations are valid for a range of parameters only. It is not easy to take care of these restrictions all the time.


As the Colebrook equation has a more general scope and very practical tools are already available, its numerical solutions should not be painful anymore. This equation is,

\dfrac{1}{\sqrt{f_F}}=-2\log_{10}\left( \dfrac{\epsilon}{3.72D}+\dfrac{2.51}{N_{Re}\sqrt{f_F}} \right)        Eq. (2)

where \epsilon is the pipe roughness, D is the pipe inside diameter, and N_{Re} is the Reynolds number.


Data for some common pipe roughness \epsilon

Pipe material Roughness \epsilon (m) Roughness \epsilon (ft)
Glass Smooth Smooth
Plastic 3.0 \times 10^{-7} 9.8 \times 10^{-7}
Drawn tubing; copper, brass, steel 1.5 \times 10^{-6} 4.9 \times 10^{-6}
Steel, commercial or welded 4.6 \times 10^{-5} 1.5 \times 10^{-4}
Galvanized iron 1.5 \times 10^{-4} 5.0 \times 10^{-4}
Ductile iron - coated 1.2 \times 10^{-4} 4.0 \times 10^{-}
Ductile iron - uncoated 2.4 \times 10^{-4} 8.0 \times 10^{-4}
Concrete, well made 1.2 \times 10^{-4} 4.0 \times 10^{-4}
Riveted steel 1.8 \times 10^{-4} 6.0 \times 10^{-3}


Numerical estimation of f_F

First, you will need to fixed all parameters N_{Re}, \epsilon, D but f_F (just in case). All parameters must be in the same unit system!

The friction factor f_F can be iteratively approached by rewritting Eq. (2) as follows,

f_F=\dfrac{0.25}{\log_{10}\left( \dfrac{\epsilon}{3.72D}+\dfrac{2.51}{N_{Re}\sqrt{f_F}} \right)^2}        Eq. (3)

The iterative process is as follows. In iteration #1, substitute a guess for f_F on the right hand side of Eq. (3) as shown,

f_F^{New}=\dfrac{0.25}{\log_{10}\left( \dfrac{\epsilon}{3.72D}+\dfrac{2.51}{N_{Re}\sqrt{f_F^{Guess}}} \right)^2}        Eq. (4)

and check for the error on satisfying this equation with,

\left|\dfrac{f_F^{Guess}-f_F^{New}}{f_F^{Guess}}\right| \times 100        Eq. (5)

For iteration #2, use f_F^{New}, from iteration #1, as the f_F^{Guess}. Check again for the % error, which should have decreased. Continue the iterations until a reasonable 0.1% error has been achieved.

Estimating f_F with Google Sheets


As you may think, this iterative procedure is a perfect candidate for implementation in Google Sheets. Follow the link below to access a sheet automated to estimate the friction factor:


Any question? Write in the comments and I shall try to help.

=========
Ildebrando.

No comments:

Post a Comment

Most popular posts