Fittings pressure drop (fluids.fittings)¶
This module contains correlations for the loss coefficient of various types of pipe fittings. Whether you are desining a network or modeling a single element, the correlations here cover most cases.
For reporting bugs, adding feature requests, or submitting pull requests, please use the GitHub issue tracker or contact the author at Caleb.Andrew.Bell@gmail.com.
Entrances¶

fluids.fittings.
entrance_sharp
(method='Rennels')[source]¶ Returns loss coefficient for a sharp entrance to a pipe. Six sources are available; four of them recommending K = 0.5, the most recent ‘Rennels’, method recommending K = 0.57, and the ‘Miller’ method recommending ~0.51 as read from a graph.
 Parameters
 methodstr, optional
The method to use; one of ‘Rennels’, ‘Swamee’, ‘Blevins’, ‘Idelchik’, ‘Crane’, or ‘Miller, []
 Returns
 Kfloat
Loss coefficient []
Notes
0.5 is the result for ‘Swamee’, ‘Blevins’, ‘Idelchik’, and ‘Crane’; ‘Miller’ returns 0.5093, and ‘Rennels’ returns 0.57.
References
 1
Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012.
 2
Miller, Donald S. Internal Flow Systems: Design and Performance Prediction. Gulf Publishing Company, 1990.
 3
Idel’chik, I. E. Handbook of Hydraulic Resistance: Coefficients of Local Resistance and of Friction (Spravochnik Po Gidravlicheskim Soprotivleniyam, Koeffitsienty Mestnykh Soprotivlenii i Soprotivleniya Treniya). National technical information Service, 1966.
 4
Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984.
 5
Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009.
 6
Swamee, Prabhata K., and Ashok K. Sharma. Design of Water Supply Pipe Networks. John Wiley & Sons, 2008.
Examples
>>> entrance_sharp() 0.57

fluids.fittings.
entrance_distance
(Di, t=None, l=None, method='Rennels')[source]¶ Returns the loss coefficient for a sharp entrance to a pipe at a distance from the wall of a reservoir. This calculation has five methods available; all but ‘Idelchik’ require the pipe to be at least Di/2 into the reservoir.
The most conservative formulation is that of Rennels; with Miller being almost identical until t/Di reaches 0.05, when it continues settling to K = 0.53 compared to K = 0.57 for ‘Rennels’. ‘Idelchik’ is offset lower by about 0.03 and settles to 0.50. The ‘Harris’ method is a straight interpolation from experimental results with smoothing, and it is the lowest at all points. The ‘Crane’ [6] method returns 0.78 for all cases.
The Rennels [1] formula is:
\[K = 1.12  22\frac{t}{d} + 216\left(\frac{t}{d}\right)^2 + 80\left(\frac{t}{d}\right)^3 \] Parameters
 Difloat
Inside diameter of pipe, [m]
 tfloat, optional
Thickness of pipe wall, used in all but ‘Crane’ method, [m]
 lfloat, optional
The distance the pipe extends into the reservoir; used only in the ‘Idelchik’ method, defaults to Di, [m]
 methodstr, optional
One of ‘Rennels’, ‘Miller’, ‘Idelchik’, ‘Harris’, ‘Crane’, []
 Returns
 Kfloat
Loss coefficient []
Notes
This type of inlet is also known as a Borda’s mouthpiece. It is not of practical interest according to [1].
The ‘Idelchik’ [3] data is recommended in [5]; it also provides rounded values for the ‘Harris. method.
(Source code, png, hires.png, pdf)
References
 1(1,2)
Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012.
 2
Miller, Donald S. Internal Flow Systems: Design and Performance Prediction. Gulf Publishing Company, 1990.
 3
Idel’chik, I. E. Handbook of Hydraulic Resistance: Coefficients of Local Resistance and of Friction (Spravochnik Po Gidravlicheskim Soprotivleniyam, Koeffitsienty Mestnykh Soprotivlenii i Soprotivleniya Treniya). National technical information Service, 1966.
 4
Harris, Charles William. The Influence of Pipe Thickness on ReEntrant Intake Losses. Vol. 48. University of Washington, 1928.
 5
Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984.
 6
Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009.
Examples
>>> entrance_distance(Di=0.1, t=0.0005) 1.0154100000000001 >>> entrance_distance(Di=0.1, t=0.0005, method='Idelchik') 0.9249999999999999 >>> entrance_distance(Di=0.1, t=0.0005, l=.02, method='Idelchik') 0.8474999999999999

fluids.fittings.
entrance_angled
(angle, method='Idelchik')[source]¶ Returns loss coefficient for a sharp, angled entrance to a pipe flush with the wall of a reservoir. First published in [2], it has been recommended in [3] as well as in [1].
\[K = 0.57 + 0.30\cos(\theta) + 0.20\cos(\theta)^2 \] Parameters
 anglefloat
Angle of inclination (90° = straight, 0° = parallel to pipe wall), [degrees]
 methodstr, optional
The method to use; only ‘Idelchik’ is supported
 Returns
 Kfloat
Loss coefficient []
Notes
Not reliable for angles under 20 degrees. Loss coefficient is the same for an upward or downward angled inlet.
References
 1
Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012.
 2
Idel’chik, I. E. Handbook of Hydraulic Resistance: Coefficients of Local Resistance and of Friction (Spravochnik Po Gidravlicheskim Soprotivleniyam, Koeffitsienty Mestnykh Soprotivlenii i Soprotivleniya Treniya). National technical information Service, 1966.
 3
Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984.
Examples
>>> entrance_angled(30) 0.9798076211353315

fluids.fittings.
entrance_rounded
(Di, rc, method='Rennels')[source]¶ Returns loss coefficient for a rounded entrance to a pipe flush with the wall of a reservoir. This calculation has six methods available.
The most conservative formulation is that of Rennels; with the Swammee correlation being 0.020.07 lower. They were published in 2012 and 2008 respectively, and for this reason could be regarded as more reliable.
The Idel’chik correlation appears based on the Hamilton data; and the Miller correlation as well, except a little more conservative. The Crane model trends similarly but only has a few points. The Harris data set is the lowest.
The Rennels [1] formulas are:
\[K = 0.0696\left(1  0.569\frac{r}{d}\right)\lambda^2 + (\lambda1)^2 \]\[\lambda = 1 + 0.622\left(1  0.30\sqrt{\frac{r}{d}}  0.70\frac{r}{d}\right)^4 \]The Swamee [5] formula is:
\[K = 0.5\left[1 + 36\left(\frac{r}{D}\right)^{1.2}\right]^{1} \] Parameters
 Difloat
Inside diameter of pipe, [m]
 rcfloat
Radius of curvature of the entrance, [m]
 methodstr, optional
One of ‘Rennels’, ‘Crane’, ‘Miller’, ‘Idelchik’, ‘Harris’, or ‘Swamee’.
 Returns
 Kfloat
Loss coefficient []
Notes
For generously rounded entrance (rc/Di >= 1), the loss coefficient converges to 0.03 in the Rennels method.
The Rennels formulation was derived primarily from data and theoretical analysis from different flow scenarios than a rounded pipe entrance; the only available data in [2] is quite old and [1] casts doubt on it.
The Hamilton data set is available in [1] and [6].
(Source code, png, hires.png, pdf)
References
 1(1,2,3,4)
Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012.
 2
Hamilton, James Baker. Suppression of Pipe Intake Losses by Various Degrees of Rounding. Seattle: Published by the University of Washington, 1929. https://search.library.wisc.edu/catalog/999823652202121.
 3
Miller, Donald S. Internal Flow Systems: Design and Performance Prediction. Gulf Publishing Company, 1990.
 4
Harris, Charles William. Elimination of Hydraulic Eddy Current Loss at Intake, Agreement of Theory and Experiment. University of Washington, 1930.
 5
Swamee, Prabhata K., and Ashok K. Sharma. Design of Water Supply Pipe Networks. John Wiley & Sons, 2008.
 6
Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009.
 7
Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984.
 8
Idel’chik, I. E. Handbook of Hydraulic Resistance: Coefficients of Local Resistance and of Friction (Spravochnik Po Gidravlicheskim Soprotivleniyam, Koeffitsienty Mestnykh Soprotivlenii i Soprotivleniya Treniya). National technical information Service, 1966.
Examples
Point from Diagram 9.2 in [1], which was used to confirm the Rennels model implementation:
>>> entrance_rounded(Di=0.1, rc=0.0235) 0.09839534618360923

fluids.fittings.
entrance_beveled
(Di, l, angle, method='Rennels')[source]¶ Returns loss coefficient for a beveled or chamfered entrance to a pipe flush with the wall of a reservoir. This calculation has two methods available.
The ‘Rennels’ and ‘Idelchik’ methods have similar trends, but the ‘Rennels’ formulation is centered around a straight loss coefficient of 0.57, so it is normally at least 0.07 higher.
The Rennels [1] formulas are:
\[K = 0.0696\left(1  C_b\frac{l}{d}\right)\lambda^2 + (\lambda1)^2 \]\[\lambda = 1 + 0.622\left[11.5C_b\left(\frac{l}{d} \right)^{\frac{1(l/d)^{1/4}}{2}}\right] \]\[C_b = \left(1  \frac{\theta}{90}\right)\left(\frac{\theta}{90} \right)^{\frac{1}{1+l/d}} \] Parameters
 Difloat
Inside diameter of pipe, [m]
 lfloat
Length of bevel measured parallel to the pipe length, [m]
 anglefloat
Angle of bevel with respect to the pipe length, [degrees]
 methodstr, optional
One of ‘Rennels’, or ‘Idelchik’, []
 Returns
 Kfloat
Loss coefficient []
Notes
A cheap way of getting a lower pressure drop. Little credible data is available.
The table of data in [2] uses the angle for both bevels, so it runs from 0 to 180 degrees; this function follows the convention in [1] which uses only one angle, with the angle varying from 0 to 90 degrees.
(Source code, png, hires.png, pdf)
References
 1(1,2)
Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012.
 2
Idel’chik, I. E. Handbook of Hydraulic Resistance: Coefficients of Local Resistance and of Friction (Spravochnik Po Gidravlicheskim Soprotivleniyam, Koeffitsienty Mestnykh Soprotivlenii i Soprotivleniya Treniya). National technical information Service, 1966.
Examples
>>> entrance_beveled(Di=0.1, l=0.003, angle=45) 0.450868642219 >>> entrance_beveled(Di=0.1, l=0.003, angle=45, method='Idelchik') 0.399500000000

fluids.fittings.
entrance_beveled_orifice
(Di, do, l, angle)[source]¶ Returns loss coefficient for a beveled or chamfered orifice entrance to a pipe flush with the wall of a reservoir, as shown in [1].
\[K = 0.0696\left(1  C_b\frac{l}{d_o}\right)\lambda^2 + \left(\lambda \left(\frac{d_o}{D_i}\right)^2\right)^2 \]\[\lambda = 1 + 0.622\left[1C_b\left(\frac{l}{d_o}\right)^{\frac{1 (l/d_o)^{0.25}}{2}}\right] \]\[C_b = \left(1  \frac{\Psi}{90}\right)\left(\frac{\Psi}{90} \right)^{\frac{1}{1+l/d_o}} \] Parameters
 Difloat
Inside diameter of pipe, [m]
 dofloat
Inside diameter of orifice, [m]
 lfloat
Length of bevel measured parallel to the pipe length, [m]
 anglefloat
Angle of bevel with respect to the pipe length, [degrees]
 Returns
 Kfloat
Loss coefficient []
References
 1
Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012.
Examples
>>> entrance_beveled_orifice(Di=0.1, do=.07, l=0.003, angle=45) 1.2987552913818574

fluids.fittings.
entrance_distance_45_Miller
(Di, Di0)[source]¶ Returns loss coefficient for a sharp entrance to a pipe at a distance from the wall of a reservoir with an initial 45 degree slope conical section of diameter Di0 added to reduce the overall loss coefficient.
This method is as shown in Miller’s Internal Flow Systems [1]. This method is a curve fit to a graph in [1] which was digitized.
 Parameters
 Difloat
Inside diameter of pipe, [m]
 Di0float
Initial inner diameter of the welded conical section of the entrance of the distant (reentrant) pipe, [m]
 Returns
 Kfloat
Loss coefficient with respect to the main pipe diameter Di, []
Notes
The graph predicts an almost constant loss coefficient once the thickness of pipe wall to pipe diameter ratio becomes ~0.02.
References
 1(1,2)
Miller, Donald S. Internal Flow Systems: Design and Performance Prediction. Gulf Publishing Company, 1990.
Examples
>>> entrance_distance_45_Miller(Di=0.1, Di0=0.14) 0.24407641818143339
Exits¶

fluids.fittings.
exit_normal
()[source]¶ Returns loss coefficient for any exit to a pipe as shown in [1] and in other sources.
\[K = 1 \] Returns
 Kfloat
Loss coefficient []
Notes
It has been found on occasion that K = 2.0 for laminar flow, and ranges from about 1.04 to 1.10 for turbulent flow.
References
 1
Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012.
Examples
>>> exit_normal() 1.0
Bends¶

fluids.fittings.
bend_rounded
(Di, angle, fd=None, rc=None, bend_diameters=None, Re=None, roughness=0.0, L_unimpeded=None, method='Rennels')[source]¶ Returns loss coefficient for rounded bend in a pipe of diameter Di, angle, with a specified either radius of curvature rc or curvature defined by bend_diameters, Reynolds number Re and optionally pipe roughness, unimpeded length downstrean, and with the specified method. This calculation has six methods available.
It is hard to describe one method as more conservative than another as depending on the conditions, the relative results change significantly.
The ‘Miller’ method is the most complicated and slowest method; the ‘Ito’ method comprehensive as well and a source of original data, and the primary basis for the ‘Rennels’ method. The ‘Swamee’ method is very simple and generally does not match the other methods. The ‘Crane’ method may match or not match other methods depending on the inputs. There is also a ‘Crane standard’ method for use with threaded fittings which have higher pressure drops. It is a linear interpolation of values at angles of 45, 90, and 180 degrees.
The Rennels [1] formula is:
\[K = f\alpha\frac{r}{d} + (0.10 + 2.4f)\sin(\alpha/2) + \frac{6.6f(\sqrt{\sin(\alpha/2)}+\sin(\alpha/2))} {(r/d)^{\frac{4\alpha}{\pi}}} \]The Swamee [5] formula is:
\[K = \left[0.0733 + 0.923 \left(\frac{d}{rc}\right)^{3.5} \right] \theta^{0.5} \] Parameters
 Difloat
Inside diameter of pipe, [m]
 anglefloat
Angle of bend, [degrees]
 fdfloat, optional
Darcy friction factor; used only in Rennels method; calculated if not provided from Reynolds number, diameter, and roughness []
 rcfloat, optional
Radius of curvature of the entrance, optional [m]
 bend_diametersfloat, optional (used if rc not provided)
Number of diameters of pipe making up the bend radius []
 Refloat, optional
Reynolds number of the pipe (used in Miller, Ito methods primarily, and Rennels method if no friction factor given), []
 roughnessfloat, optional
Roughness of bend wall (used in Miller, Ito methods primarily, and Rennels method if no friction factor given), [m]
 L_unimpededfloat, optional
The length of unimpeded pipe without any fittings, instrumentation, or flow disturbances downstream (assumed 20 diameters if not specified); used only in Miller method, [m]
 methodstr, optional
One of ‘Rennels’, ‘Miller’, ‘Crane’, ‘Crane standard’, ‘Ito’, or ‘Swamee’, []
 Returns
 Kfloat
Loss coefficient []
Notes
When inputting bend diameters, note that manufacturers often specify this as a multiplier of nominal diameter, which is different than actual diameter. Those require that rc be specified.
In the ‘Rennels’ method, rc is limited to 0.5 or above; which represents a sharp, square, inner edge  and an outer bend radius of 1.0. Losses are at a minimum when this value is large. Its first term represents surface friction loss; the second, secondary flows; and the third, flow separation. It encompasses the entire range of elbow and pipe bend configurations. It was developed for bend angles between 0 and 180 degrees; and r/D ratios above 0.5. Only smooth pipe data was used in its development. Note the loss coefficient includes the surface friction of the pipe as if it was straight.
References
 1
Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012.
 2
Miller, Donald S. Internal Flow Systems: Design and Performance Prediction. Gulf Publishing Company, 1990.
 3
Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009.
 4
Swamee, Prabhata K., and Ashok K. Sharma. Design of Water Supply Pipe Networks. John Wiley & Sons, 2008.
 5
Itō, H.”Pressure Losses in Smooth Pipe Bends.” Journal of Fluids Engineering 82, no. 1 (March 1, 1960): 13140. doi:10.1115/1.3662501
 6
Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984.
Examples
>>> bend_rounded(Di=4.020, rc=4.0*5, angle=30, Re=1E5) 0.11519070808085191

fluids.fittings.
bend_rounded_Miller
(Di, angle, Re, rc=None, bend_diameters=None, roughness=0.0, L_unimpeded=None)[source]¶ Calculates the loss coefficient for a rounded pipe bend according to Miller [1]. This is a sophisticated model which uses corrections for pipe roughness, the length of the pipe downstream before another interruption, and a correction for Reynolds number. It interpolates several times using several corrections graphs in [1].
 Parameters
 Difloat
Inside diameter of pipe, [m]
 anglefloat
Angle of bend, [degrees]
 Refloat
Reynolds number of the pipe (no specification if inlet or outlet properties should be used), [m]
 rcfloat, optional
Radius of curvature of the entrance, [m]
 bend_diametersfloat, optional
Number of diameters of pipe making up the bend radius (used if rc not provided; defaults to 5), []
 roughnessfloat, optional
Roughness of bend wall, [m]
 L_unimpededfloat, optional
The length of unimpeded pipe without any fittings, instrumentation, or flow disturbances downstream (assumed 20 diameters if not specified), [m]
 Returns
 Kfloat
Loss coefficient []
Notes
When inputting bend diameters, note that manufacturers often specify this as a multiplier of nominal diameter, which is different than actual diameter. Those require that rc be specified.
rc is limited to 0.5 or above; which represents a sharp, square, inner edge  and an outer bend radius of 1.0. Losses are at a minimum when this value is large.
This was developed for bend angles between 10 and 180 degrees; and r/D ratios between 0.5 and 10. Both smooth and rough data was used in its development from several sources.
Note the loss coefficient includes the surface friction of the pipe as if it was straight.
References
 1(1,2)
Miller, Donald S. Internal Flow Systems: Design and Performance Prediction. Gulf Publishing Company, 1990.
Examples
>>> bend_rounded_Miller(Di=.6, bend_diameters=2, angle=90, Re=2e6, ... roughness=2E5, L_unimpeded=30*.6) 0.15261820705145895

fluids.fittings.
bend_rounded_Crane
(Di, angle, rc=None, bend_diameters=None)[source]¶ Calculates the loss coefficient for any rounded bend in a pipe according to the Crane TP 410M [1] method. This method effectively uses an interpolation from tabulated values in [1] for friction factor multipliers vs. curvature radius.
 Parameters
 Difloat
Inside diameter of pipe, [m]
 anglefloat
Angle of bend, [degrees]
 rcfloat, optional
Radius of curvature of the entrance; specify either rc or bend_diameters, optional [m]
 bend_diametersfloat, optional
Number of diameters of pipe making up the bend radius; specify either rc or bend_diameters, []
 Returns
 Kfloat
Loss coefficient []
Notes
The Crane method does match the trend of increased pressure drop as roughness increases.
The points in [1] are extrapolated to other angles via a wellfitting Chebyshev approximation, whose accuracy can be seen in the below plot.
(Source code, png, hires.png, pdf)
References
Examples
>>> bend_rounded_Crane(Di=.4020, rc=.4*5, angle=30) 0.09321910015613409

fluids.fittings.
bend_miter
(angle, Di=None, Re=None, roughness=0.0, L_unimpeded=None, method='Rennels')[source]¶ Returns loss coefficient for any singlejoint miter bend in a pipe of angle angle, diameter Di, Reynolds number Re, roughness roughness unimpeded downstream length L_unimpeded, and using the specified method. This calculation has four methods available. The ‘Rennels’ method is based on a formula and extends to angles up to 150 degrees. The ‘Crane’ method extends only to 90 degrees; the ‘Miller’ and ‘Blevins’ methods extend to 120 degrees.
The Rennels [1] formula is:
\[K = 0.42\sin(\alpha/2) + 2.56\sin^3(\alpha/2) \]The ‘Crane’, ‘Miller’, and ‘Blevins’ methods are all in part graph or tabular based and do not have straightforward formulas.
 Parameters
 anglefloat
Angle of bend, [degrees]
 Difloat, optional
Inside diameter of pipe, [m]
 Refloat, optional
Reynolds number of the pipe (no specification if inlet or outlet properties should be used), []
 roughnessfloat, optional
Roughness of bend wall, [m]
 L_unimpededfloat, optional
The length of unimpeded pipe without any fittings, instrumentation, or flow disturbances downstream (assumed 20 diameters if not specified), [m]
 methodstr, optional
The specified method to use; one of ‘Rennels’, ‘Miller’, ‘Crane’, or ‘Blevins’, []
 Returns
 Kfloat
Loss coefficient with respect to either upstream or downstream diameter, []
Notes
This method is designed only for singlejointed miter bends. It is common for miter bends to have two or three sections, to further reduce the loss coefficient. Some methods exist in [2] for taking this into account. Because the additional configurations reduce the pressure loss, it is “common practice” to simply ignore their effect and accept the slight overdesign.
The following figure illustrates the different methods.
(Source code, png, hires.png, pdf)
References
 1
Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012.
 2
Miller, Donald S. Internal Flow Systems: Design and Performance Prediction. Gulf Publishing Company, 1990.
 3
Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009.
 4
Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984.
Examples
>>> bend_miter(150) 2.7128147734758103 >>> bend_miter(Di=.6, angle=45, Re=1e6, roughness=1e5, L_unimpeded=20, ... method='Miller') 0.2944060416245169

fluids.fittings.
bend_miter_Miller
(Di, angle, Re, roughness=0.0, L_unimpeded=None)[source]¶ Calculates the loss coefficient for a single miter bend according to Miller [1]. This is a sophisticated model which uses corrections for pipe roughness, the length of the pipe downstream before another interruption, and a correction for Reynolds number. It interpolates several times using several corrections graphs in [1].
 Parameters
 Difloat
Inside diameter of pipe, [m]
 anglefloat
Angle of miter bend, [degrees]
 Refloat
Reynolds number of the pipe (no specification if inlet or outlet properties should be used), [m]
 roughnessfloat, optional
Roughness of bend wall, [m]
 L_unimpededfloat, optional
The length of unimpeded pipe without any fittings, instrumentation, or flow disturbances downstream (assumed 20 diameters if not specified), [m]
 Returns
 Kfloat
Loss coefficient []
Notes
Note the loss coefficient includes the surface friction of the pipe as if it was straight.
References
 1(1,2)
Miller, Donald S. Internal Flow Systems: Design and Performance Prediction. Gulf Publishing Company, 1990.
Examples
>>> bend_miter_Miller(Di=.6, angle=90, Re=2e6, roughness=2e5, ... L_unimpeded=30*.6) 1.1921574594947664

fluids.fittings.
helix
(Di, rs, pitch, N, fd)[source]¶ Returns loss coefficient for any size constantpitch helix as shown in [1]. Has applications in immersed coils in tanks.
\[K = N \left[f\frac{\sqrt{(2\pi r)^2 + p^2}}{d} + 0.20 + 4.8 f\right] \] Parameters
 Difloat
Inside diameter of pipe, [m]
 rsfloat
Radius of spiral, [m]
 pitchfloat
Distance between two subsequent coil centers, [m]
 Nfloat
Number of coils in the helix []
 fdfloat
Darcy friction factor []
 Returns
 Kfloat
Loss coefficient []
Notes
Formulation based on peak secondary flow as in two 180 degree bends per coil. Flow separation ignored. No f, Re, geometry limitations. Source not compared against others.
References
 1
Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012.
Examples
>>> helix(Di=0.01, rs=0.1, pitch=.03, N=10, fd=.0185) 14.525134924495514

fluids.fittings.
spiral
(Di, rmax, rmin, pitch, fd)[source]¶ Returns loss coefficient for any size constantpitch spiral as shown in [1]. Has applications in immersed coils in tanks.
\[K = \frac{r_{max}  r_{min}}{p} \left[ f\pi\left(\frac{r_{max} +r_{min}}{d}\right) + 0.20 + 4.8f\right] + \frac{13.2f}{(r_{min}/d)^2} \] Parameters
 Difloat
Inside diameter of pipe, [m]
 rmaxfloat
Radius of spiral at extremity, [m]
 rminfloat
Radius of spiral at end near center, [m]
 pitchfloat
Distance between two subsequent coil centers, [m]
 fdfloat
Darcy friction factor []
 Returns
 Kfloat
Loss coefficient []
Notes
Source not compared against others.
References
 1
Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012.
Examples
>>> spiral(Di=0.01, rmax=.1, rmin=.02, pitch=.01, fd=0.0185) 7.950918552775473
Contractions¶

fluids.fittings.
contraction_sharp
(Di1, Di2, fd=None, Re=None, roughness=0.0, method='Rennels')[source]¶ Returns loss coefficient for a sharp edged pipe contraction.
This calculation has two methods available. The ‘Rennels’ [2] method is a fit for turbulent regimes, while the Hooper method is more complicated and claims to have full dependence on Re including a laminar transition at Re of 2500 (based on the original pipe diameter).
The Rennels [1] formulas are:
\[K_1 = 0.0696(1\beta^5)\lambda^2 + (\lambda1)^2 \]\[\lambda = 1 + 0.622(10.215\beta^2  0.785\beta^5) \]\[\beta = d_2/d_1 \]The Hooper [1] formulas are:
If \({Re}_1 \le 2500\):
\[K_1 = \left[1.2 + \frac{160}{\text{Re}_1}\right] \left[ \left(\frac{D_1} {D_2} \right)^4 1 \right] \]If \({Re}_1 > 2500\):
\[K_1 = \left[0.6 + 0.48f_1\right] \left(\frac{D_1} {D_2} \right)^2 \left[ \left(\frac{D_1} {D_2} \right)^2 1 \right] \]Converting the loss coefficient to a consistent basis:
\[K_2 = K_1\frac{D_2^4}{D_1^4} \]For the Crane formula see contraction_conical_Crane with a length of zero.
 Parameters
 Di1float
Inside diameter of original (larger) pipe, [m]
 Di2float
Inside diameter of following (smaller) pipe, [m]
 fdfloat, optional
Darcy friction factor in original pipe; used only in the Hooper method and will be calculated from Re if not given, []
 Refloat, optional
Reynolds number of the pipe (used in Hooper method, [m]
 roughnessfloat, optional
Roughness of original pipe (used in Hooper method only if no friction factor given), [m]
 methodstr
The calculation method to use; one of ‘Hooper’, ‘Rennels’, or ‘Crane’ []
 Returns
 Kfloat
Loss coefficient in terms of the following pipe []
Notes
A value of 0.506 or simply 0.5 is often used.
References
 1(1,2)
Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012.
 2
Hooper, William B. “Calculate Head Loss Caused by Change in Pipe Size.” Chemical Engineering 95, no. 16 (November 7, 1988): 89.
Examples
>>> contraction_sharp(Di1=1, Di2=0.4) 0.5301269161 >>> contraction_sharp(Di1=1, Di2=0.4, Re=1e5, method='Hooper') 0.5112534765
The Hooper method supports laminar flow, while Rennels is not even Re aware.
>>> contraction_sharp(Di1=1, Di2=0.4, Re=1e3, method='Hooper') 1.325184
Crane offers similar results:
>>> contraction_sharp(3.0, 2.0, method='Crane') 0.2777777

fluids.fittings.
contraction_round
(Di1, Di2, rc, method='Rennels')[source]¶ Returns loss coefficient for any any round edged pipe contraction. This calculation has three methods available. The ‘Miller’ [2] method is a bivariate spline digitization of a graph; the ‘Idelchik’ [3] method is an interpolation using a formula and a table of values.
The most conservative formulation is that of Rennels; with fairly similar. The ‘Idelchik’ method is more conservative and less complex; it offers a straightline curve where the others curves are curved.
The Rennels [1] formulas are:
\[K = 0.0696\left(1  0.569\frac{r}{d_2}\right)\left(1\sqrt{\frac{r} {d_2}}\beta\right)(1\beta^5)\lambda^2 + (\lambda1)^2 \]\[\lambda = 1 + 0.622\left(1  0.30\sqrt{\frac{r}{d_2}}  0.70\frac{r}{d_2}\right)^4 (10.215\beta^20.785\beta^5) \]\[\beta = d_2/d_1 \] Parameters
 Di1float
Inside diameter of original pipe, [m]
 Di2float
Inside diameter of following pipe, [m]
 rcfloat
Radius of curvature of the contraction, [m]
 methodstr
The calculation method to use; one of ‘Rennels’, ‘Miller’, or ‘Idelchik’, []
 Returns
 Kfloat
Loss coefficient in terms of the following pipe []
Notes
Rounding radius larger than 0.14Di2 prevents flow separation from the wall. Further increase in rounding radius continues to reduce loss coefficient.
(Source code, png, hires.png, pdf)
References
 1
Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012.
 2
Miller, Donald S. Internal Flow Systems: Design and Performance Prediction. Gulf Publishing Company, 1990.
 3
Idel’chik, I. E. Handbook of Hydraulic Resistance: Coefficients of Local Resistance and of Friction (Spravochnik Po Gidravlicheskim Soprotivleniyam, Koeffitsienty Mestnykh Soprotivlenii i Soprotivleniya Treniya). National technical information Service, 1966.
Examples
>>> contraction_round(Di1=1, Di2=0.4, rc=0.04) 0.1783332490866574

fluids.fittings.
contraction_round_Miller
(Di1, Di2, rc)[source]¶ Returns loss coefficient for any round edged pipe contraction using the method of Miller [1]. This method uses a spline fit to a graph with area ratios 0 to 1, and radius ratios (rc/Di2) from 0.1 to 0.
 Parameters
 Di1float
Inside diameter of original pipe, [m]
 Di2float
Inside diameter of following pipe, [m]
 rcfloat
Radius of curvature of the contraction, [m]
 Returns
 Kfloat
Loss coefficient in terms of the following pipe, []
Notes
This method normally gives lower losses than the Rennels formulation.
References
 1
Miller, Donald S. Internal Flow Systems: Design and Performance Prediction. Gulf Publishing Company, 1990.
Examples
>>> contraction_round_Miller(Di1=1, Di2=0.4, rc=0.04) 0.08565953051298639

fluids.fittings.
contraction_conical
(Di1, Di2, fd=None, l=None, angle=None, Re=None, roughness=0.0, method='Rennels')[source]¶ Returns the loss coefficient for any conical pipe contraction. This calculation has five methods available. The ‘Idelchik’ [2] and ‘Blevins’ [3] methods use interpolation among tables of values; ‘Miller’ uses a 2d spline representation of a graph; and the ‘Rennels’ [1], ‘Crane’ [4], ‘Swamee’ [5] and ‘Hooper’ methods use formulas for their calculations.
The ‘Rennels’ [1] formulas are:
\[K_2 = K_{fr,2} + K_{conv,2} \]\[K_{fr,2} = \frac{f_d ({1  \beta^4})}{8\sin(\theta/2)} \]\[K_{conv,2} = 0.0696[1+C_B(\sin(\alpha/2)1)](1\beta^5)\lambda^2 + (\lambda1)^2 \]\[\lambda = 1 + 0.622(\alpha/180)^{0.8}(10.215\beta^20.785\beta^5) \]\[\beta = d_2/d_1 \]The ‘Swamee’ [5] formula is:
\[K = 0.315 \theta^{1/3} \]The Hooper [7] formulas are:
If \({Re}_1 \le 2500\):
\[K_{1,sharp} = \left[1.2 + \frac{160}{\text{Re}_1}\right] \left[ \left(\frac{D_1} {D_2} \right)^4 1 \right] \]If \({Re}_1 > 2500\):
\[K_{1,sharp} = \left[0.6 + 0.48f_1\right] \left(\frac{D_1} {D_2} \right)^2 \left[ \left(\frac{D_1} {D_2} \right)^2 1 \right] \]In both cases, a multiplier is added for the angle:
For angles between 45 and 180 degrees:
\[K_1 = K_{1,sharp} \sqrt{\sin \frac{\theta}{2}} \]For angles between 0 and 45 degrees:
\[K_1 = K_{1,sharp} 1.6 \sin \frac{\theta}{2} \]Converting the Hooper loss coefficient to a consistent basis:
\[K_2 = K_1\frac{D_2^4}{D_1^4} \] Parameters
 Di1float
Inside pipe diameter of the larger, upstream, pipe, [m]
 Di2float
Inside pipe diameter of the smaller, downstream, pipe, [m]
 fdfloat, optional
Darcy friction factor; used only in the Rennels and Hooper method and will be calculated from Re and roughness if not given, []
 lfloat, optional
Length of the contraction, optional [m]
 anglefloat, optional
Angle of contraction (180 = sharp, 0 = infinitely long contraction), optional [degrees]
 Refloat, optional
Reynolds number of the pipe (used in Rennels and Hooper method only if no friction factor given), [m]
 roughnessfloat, optional
Roughness of bend wall (used in Rennel method if no friction factor given), [m]
 methodstr, optional
The method to use for the calculation; one of ‘Rennels’, ‘Idelchik’, ‘Crane’, ‘Swamee’ ‘Hooper’, or ‘Blevins’, []
 Returns
 Kfloat
Loss coefficient in terms of the following pipe []
Notes
Cheap and has substantial impact on pressure drop.
The ‘Idelchik’ method includes two tabular interpolations; its friction term is limited to angles between 2 and 20 degrees and area ratios 0.05 to 0.6, while its main term is limited to length over diameter ratios 0.025 to 0.6. This seems to give it high results for angles < 25 degrees.
The ‘Blevins’ method is based on Idelchik data; it should not be used, because its data jumps around and its data is limited to area ratios .1 to 0.83, and length over diameter ratios 0 to 0.6. The ‘Miller’ method jumps around as well. Unlike most of Miller’s method, there is no correction for Reynolds number.
There is quite a bit of variance in the predictions of the methods, as demonstrated by the following figure.
(Source code, png, hires.png, pdf)
References
 1(1,2)
Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012.
 2
Idel’chik, I. E. Handbook of Hydraulic Resistance: Coefficients of Local Resistance and of Friction (Spravochnik Po Gidravlicheskim Soprotivleniyam, Koeffitsienty Mestnykh Soprotivlenii i Soprotivleniya Treniya). National technical information Service, 1966.
 3
Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984.
 4
Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009.
 5(1,2)
Swamee, Prabhata K., and Ashok K. Sharma. Design of Water Supply Pipe Networks. John Wiley & Sons, 2008.
 6
Miller, Donald S. Internal Flow Systems: Design and Performance Prediction. Gulf Publishing Company, 1990.
 7
Hooper, William B. “Calculate Head Loss Caused by Change in Pipe Size.” Chemical Engineering 95, no. 16 (November 7, 1988): 89.
Examples
>>> contraction_conical(Di1=0.1, Di2=0.04, l=0.04, Re=1E6) 0.15639885880609544

fluids.fittings.
contraction_conical_Crane
(Di1, Di2, l=None, angle=None)[source]¶ Returns loss coefficient for a conical pipe contraction as shown in Crane TP 410M [1] between 0 and 180 degrees.
If \(\theta < 45^{\circ}\):
\[K_2 = {0.8 \sin \frac{\theta}{2}(1  \beta^2)} \]otherwise:
\[K_2 = {0.5\sqrt{\sin \frac{\theta}{2}} (1  \beta^2)} \]\[\beta = d_2/d_1 \] Parameters
 Di1float
Inside pipe diameter of the larger, upstream, pipe, [m]
 Di2float
Inside pipe diameter of the smaller, downstream, pipe, [m]
 lfloat, optional
Length of the contraction [m]
 anglefloat, optional
Angle of contraction [degrees]
 Returns
 Kfloat
Loss coefficient in terms of the following (smaller) pipe []
Notes
Cheap and has substantial impact on pressure drop. Note that the nomenclature in [1] is somewhat different  the smaller pipe is called 1, and the larger pipe is called 2; and so the beta ratio is reversed, and the fourth power of beta used in their equation is not necessary.
References
Examples
>>> contraction_conical_Crane(Di1=0.0779, Di2=0.0525, l=0) 0.2729017979998056

fluids.fittings.
contraction_beveled
(Di1, Di2, l=None, angle=None)[source]¶ Returns loss coefficient for any sharp beveled pipe contraction as shown in [1].
\[K = 0.0696[1+C_B(\sin(\alpha/2)1)](1\beta^5)\lambda^2 + (\lambda1)^2 \]\[\lambda = 1 + 0.622\left[1+C_B\left(\left(\frac{\alpha}{180} \right)^{0.8}1\right)\right](10.215\beta^20.785\beta^5) \]\[C_B = \frac{l}{d_2}\frac{2\beta\tan(\alpha/2)}{1\beta} \]\[\beta = d_2/d_1 \] Parameters
 Di1float
Inside diameter of original pipe, [m]
 Di2float
Inside diameter of following pipe, [m]
 lfloat
Length of the bevel along the pipe axis ,[m]
 anglefloat
Angle of bevel, [degrees]
 Returns
 Kfloat
Loss coefficient in terms of the following pipe []
References
 1
Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012.
Examples
>>> contraction_beveled(Di1=0.5, Di2=0.1, l=.7*.1, angle=120) 0.40946469413070485
Expansions/Diffusers¶

fluids.fittings.
diffuser_sharp
(Di1, Di2, Re=None, fd=None, roughness=0.0, method='Rennels')[source]¶ Returns loss coefficient for any sudden pipe diameter expansion according to the specified method.
The main theoretical formula is as follows, in [1] and in other sources and is implemented under the name Rennels.
\[K_2 = (1\beta^2)^2 \]The Hooper [2] formulas are:
If \({Re}_1 \le 4000\):
\[K_1 = 2 \left[1  \left( \frac{D_1}{D_2} \right)^4 \right] \]else:
\[K_1 = \left[1 + 0.8 f_{d,1}\right] \left\{ \left[1  \left( \frac{D_1}{D_2}\right)^2 \right]^2 \right\} \] Parameters
 Di1float
Inside diameter of original pipe (smaller), [m]
 Di2float
Inside diameter of following pipe (larger), [m]
 Refloat, optional
Reynolds number of the pipe for original (smaller) pipe, used in Hooper method []
 fdfloat, optional
Darcy friction factor for original (smaller) pipe []
 roughnessfloat, optional
Roughness of pipe wall (used in Hooper method if no friction factor given), [m]
 methodstr
The method to use for the calculation; one of ‘Rennels’, ‘Hooper’ []
 Returns
 Kfloat
Loss coefficient with respect to the original (smaller) pipe []
Notes
Highly accurate.
References
 1
Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012.
 2
Hooper, William B. “Calculate Head Loss Caused by Change in Pipe Size.” Chemical Engineering 95, no. 16 (November 7, 1988): 89.
Examples
>>> diffuser_sharp(Di1=.5, Di2=1) 0.5625 >>> diffuser_sharp(Di1=.5, Di2=1, Re=1e5, fd=1e7, method='Hooper') 0.562500045

fluids.fittings.
diffuser_conical
(Di1, Di2, l=None, angle=None, fd=None, Re=None, roughness=0.0, method='Rennels')[source]¶ Returns the loss coefficient for any conical pipe diffuser. This calculation has six methods available.
The ‘Rennels’ [1] formulas are as follows (three different formulas are used, depending on the angle and the ratio of diameters):
For 0 to 20 degrees, all aspect ratios:
\[K_1 = 8.30[\tan(\alpha/2)]^{1.75}(1\beta^2)^2 + \frac{f(1\beta^4)}{8\sin(\alpha/2)} \]For 20 to 60 degrees, beta < 0.5:
\[K_1 = \left\{1.366\sin\left[\frac{2\pi(\alpha15^\circ)}{180}\right]^{0.5}  0.170  3.28(0.0625\beta^4)\sqrt{\frac{\alpha20^\circ}{40^\circ}}\right\} (1\beta^2)^2 + \frac{f(1\beta^4)}{8\sin(\alpha/2)} \]For 20 to 60 degrees, beta >= 0.5:
\[K_1 = \left\{1.366\sin\left[\frac{2\pi(\alpha15^\circ)}{180}\right]^{0.5}  0.170 \right\}(1\beta^2)^2 + \frac{f(1\beta^4)}{8\sin(\alpha/2)} \]For 60 to 180 degrees, beta < 0.5:
\[K_1 = \left[1.205  3.28(0.0625\beta^4)12.8\beta^6\sqrt{\frac {\alpha60^\circ}{120^\circ}}\right](1\beta^2)^2 \]For 60 to 180 degrees, beta >= 0.5:
\[K_1 = \left[1.205  0.20\sqrt{\frac{\alpha60^\circ}{120^\circ}} \right](1\beta^2)^2 \]The Swamee [5] formula is:
\[K = \left\{\frac{0.25}{\theta^3}\left[1 + \frac{0.6}{r^{1.67}} \left(\frac{\pi\theta}{\theta} \right) \right]^{0.533r  2.6} \right\}^{0.5} \]The Hooper [6] formulas are:
If \({Re}_1 \le 4000\):
\[K_{sharp} = 2 \left[1  \left( \frac{D_1}{D_2} \right)^4 \right] \]else:
\[K_{sharp} = \left[1 + 0.8 f_{d,1}\right] \left\{ \left[1  \left( \frac{D_1}{D_2}\right)^2 \right]^2 \right\} \]If the angle > 45 degrees, \(K = K_{sharp}\) otherwise
\[K = 2.6 \sin \left(\frac{\theta}{2} \right)K_{sharp} \] Parameters
 Di1float
Inside diameter of original pipe (smaller), [m]
 Di2float
Inside diameter of following pipe (larger), [m]
 lfloat, optional
Length of the contraction along the pipe axis, optional, [m]
 anglefloat, optional
Angle of contraction, [degrees]
 fdfloat, optional
Darcy friction factor []
 Refloat, optional
Reynolds number of the pipe (used in Rennels method only if no friction factor given), [m]
 roughnessfloat, optional
Roughness of bend wall (used in Rennel method if no friction factor given), [m]
 methodstr
The method to use for the calculation; one of ‘Rennels’, ‘Crane’, ‘Miller’, ‘Swamee’, ‘Idelchik’, or ‘Hooper’ []
 Returns
 Kfloat
Loss coefficient with respect to smaller, upstream diameter []
Notes
The Miller method changes around quite a bit.
There is quite a bit of variance in the predictions of the methods, as demonstrated by the following figure.
(Source code, png, hires.png, pdf)
References
 1
Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012.
 2
Idel’chik, I. E. Handbook of Hydraulic Resistance: Coefficients of Local Resistance and of Friction (Spravochnik Po Gidravlicheskim Soprotivleniyam, Koeffitsienty Mestnykh Soprotivlenii i Soprotivleniya Treniya). National technical information Service, 1966.
 3
Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009.
 4
Swamee, Prabhata K., and Ashok K. Sharma. Design of Water Supply Pipe Networks. John Wiley & Sons, 2008.
 5
Miller, Donald S. Internal Flow Systems: Design and Performance Prediction. Gulf Publishing Company, 1990.
 6
Hooper, William B. “Calculate Head Loss Caused by Change in Pipe Size.” Chemical Engineering 95, no. 16 (November 7, 1988): 89.
Examples
>>> diffuser_conical(Di1=1/3., Di2=1.0, angle=50.0, Re=1E6) 0.8027721093415322

fluids.fittings.
diffuser_conical_staged
(Di1, Di2, DEs, ls, fd=None, method='Rennels')[source]¶ Returns loss coefficient for any series of staged conical pipe expansions as shown in [1]. Five different formulas are used, depending on the angle and the ratio of diameters. This function calls diffuser_conical.
 Parameters
 Di1float
Inside diameter of original pipe (smaller), [m]
 Di2float
Inside diameter of following pipe (larger), [m]
 DEsarray
Diameters of intermediate sections, [m]
 lsarray
Lengths of the various sections, size 1 more than DEs, [m]
 fdfloat
Darcy friction factor []
 methodstr
The method to use for the calculation; one of ‘Rennels’, ‘Crane’, ‘Miller’, ‘Swamee’, or ‘Idelchik’ []
 Returns
 Kfloat
Loss coefficient with respect to smaller, upstream diameter []
Notes
Only lengths of sections currently allowed. This could be changed to understand angles also.
Formula doesn’t make much sense, as observed by the example comparing a series of conical sections. Use only for small numbers of segments of highly differing angles.
References
 1
Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012.
Examples
>>> diffuser_conical_staged(Di1=1., Di2=10., DEs=[2,3,4], ls=[1.1,1.2,1.3,1.4], fd=0.01) 1.9317533188274658

fluids.fittings.
diffuser_curved
(Di1, Di2, l)[source]¶ Returns loss coefficient for any curved wall pipe expansion as shown in [1].
\[K_1 = \phi(1.431.3\beta^2)(1\beta^2)^2 \]\[\phi = 1.01  0.624\frac{l}{d_1} + 0.30\left(\frac{l}{d_1}\right)^2  0.074\left(\frac{l}{d_1}\right)^3 + 0.0070\left(\frac{l}{d_1}\right)^4 \] Parameters
 Di1float
Inside diameter of original pipe (smaller), [m]
 Di2float
Inside diameter of following pipe (larger), [m]
 lfloat
Length of the curve along the pipe axis, [m]
 Returns
 Kfloat
Loss coefficient []
Notes
Beta^2 should be between 0.1 and 0.9. A small mismatch between tabulated values of this function in table 11.3 is observed with the equation presented.
References
 1
Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012.
Examples
>>> diffuser_curved(Di1=.25**0.5, Di2=1., l=2.) 0.2299781250000002

fluids.fittings.
diffuser_pipe_reducer
(Di1, Di2, l, fd1, fd2=None)[source]¶ Returns loss coefficient for any pipe reducer pipe expansion as shown in [1]. This is an approximate formula.
\[K_f = f_1\frac{0.20l}{d_1} + \frac{f_1(1\beta)}{8\sin(\alpha/2)} + f_2\frac{0.20l}{d_2}\beta^4 \]\[\alpha = 2\tan^{1}\left(\frac{d_1d_2}{1.20l}\right) \] Parameters
 Di1float
Inside diameter of original pipe (smaller), [m]
 Di2float
Inside diameter of following pipe (larger), [m]
 lfloat
Length of the pipe reducer along the pipe axis, [m]
 fd1float
Darcy friction factor at inlet diameter []
 fd2float
Darcy friction factor at outlet diameter, optional []
 Returns
 Kfloat
Loss coefficient []
Notes
Industry lack of standardization prevents better formulas from being developed. Add 15% if the reducer is eccentric. Friction factor at outlet will be assumed the same as at inlet if not specified.
Doubt about the validity of this equation is raised.
References
 1
Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012.
Examples
>>> diffuser_pipe_reducer(Di1=.5, Di2=.75, l=1.5, fd1=0.07) 0.06873244301714816
Tees¶

fluids.fittings.
K_branch_converging_Crane
(D_run, D_branch, Q_run, Q_branch, angle=90.0)[source]¶ Returns the loss coefficient for the branch of a converging tee or wye according to the Crane method [1].
\[K_{branch} = C\left[1 + D\left(\frac{Q_{branch}}{Q_{comb}\cdot \beta_{branch}^2}\right)^2  E\left(1  \frac{Q_{branch}}{Q_{comb}} \right)^2  \frac{F}{\beta_{branch}^2} \left(\frac{Q_{branch}} {Q_{comb}}\right)^2\right] \]\[\beta_{branch} = \frac{D_{branch}}{D_{comb}} = \frac{D_{branch}}{D_{run}} \]In the above equation, D = 1, E = 2. See the notes for definitions of F and C. The run and combined diameter are assumed the same in this model.
 Parameters
 D_runfloat
Diameter of the straightthrough inlet portion of the tee or wye [m]
 D_branchfloat
Diameter of the pipe attached at an angle to the straightthrough, [m]
 Q_runfloat
Volumetric flow rate in the straightthrough inlet of the tee or wye, [m^3/s]
 Q_branchfloat
Volumetric flow rate in the pipe attached at an angle to the straight through, [m^3/s]
 anglefloat, optional
Angle the branch makes with the straightthrough (tee=90, wye<90) [degrees]
 Returns
 Kfloat
Loss coefficient of branch with respect to the velocity and inside diameter of the combined flow outlet []
Notes
F is linearly interpolated from the table of angles below. There is no cutoff to prevent angles from being larger or smaller than 30 or 90 degrees.
Angle [°]
30
1.74
45
1.41
60
1
90
0
If \(\beta_{branch}^2 \le 0.35\), C = 1
If \(\beta_{branch}^2 > 0.35\) and \(Q_{branch}/Q_{comb} > 0.4\), C = 0.55.
If neither of the above conditions are met:
\[C = 0.9\left(1  \frac{Q_{branch}}{Q_{comb}}\right) \]Note that there is an error in the text of [1]; the errata can be obtained here: http://www.flowoffluids.com/publications/tp410errata.aspx
References
Examples
Example 735 of [1]. A DN100 schedule 40 tee has 1135 liters/minute of water passing through the straight leg, and 380 liters/minute of water converging with it through a 90° branch. Calculate the loss coefficient in the branch. The calculated value there is 0.04026.
>>> K_branch_converging_Crane(0.1023, 0.1023, 0.018917, 0.00633) 0.0404410851362

fluids.fittings.
K_run_converging_Crane
(D_run, D_branch, Q_run, Q_branch, angle=90)[source]¶ Returns the loss coefficient for the run of a converging tee or wye according to the Crane method [1].
\[K_{branch} = C\left[1 + D\left(\frac{Q_{branch}}{Q_{comb}\cdot \beta_{branch}^2}\right)^2  E\left(1  \frac{Q_{branch}}{Q_{comb}} \right)^2  \frac{F}{\beta_{branch}^2} \left(\frac{Q_{branch}} {Q_{comb}}\right)^2\right] \]\[\beta_{branch} = \frac{D_{branch}}{D_{comb}} = \frac{D_{branch}}{D_{run}} \]In the above equation, C=1, D=0, E=1. See the notes for definitions of F and also the special case of 90°. The run and combined diameter are assumed the same in this model.
 Parameters
 D_runfloat
Diameter of the straightthrough inlet portion of the tee or wye [m]
 D_branchfloat
Diameter of the pipe attached at an angle to the straightthrough, [m]
 Q_runfloat
Volumetric flow rate in the straightthrough inlet of the tee or wye, [m^3/s]
 Q_branchfloat
Volumetric flow rate in the pipe attached at an angle to the straight through, [m^3/s]
 anglefloat, optional
Angle the branch makes with the straightthrough (tee=90, wye<90) [degrees]
 Returns
 Kfloat
Loss coefficient of run with respect to the velocity and inside diameter of the combined flow outlet []
Notes
F is linearly interpolated from the table of angles below. There is no cutoff to prevent angles from being larger or smaller than 30 or 60 degrees. The switch to the special 90° happens at 75°.
Angle [°]
30
1.74
45
1.41
60
1
For the special case of 90°, the formula used is as follows.
\[K_{run} = 1.55\left(\frac{Q_{branch}}{Q_{comb}} \right)  \left(\frac{Q_{branch}}{Q_{comb}}\right)^2 \]References
Examples
Example 735 of [1]. A DN100 schedule 40 tee has 1135 liters/minute of water passing through the straight leg, and 380 liters/minute of water converging with it through a 90° branch. Calculate the loss coefficient in the run. The calculated value there is 0.03258.
>>> K_run_converging_Crane(0.1023, 0.1023, 0.018917, 0.00633) 0.32575847854551254

fluids.fittings.
K_branch_diverging_Crane
(D_run, D_branch, Q_run, Q_branch, angle=90)[source]¶ Returns the loss coefficient for the branch of a diverging tee or wye according to the Crane method [1].
\[K_{branch} = G\left[1 + H\left(\frac{Q_{branch}}{Q_{comb} \beta_{branch}^2}\right)^2  J\left(\frac{Q_{branch}}{Q_{comb} \beta_{branch}^2}\right)\cos\theta\right] \]\[\beta_{branch} = \frac{D_{branch}}{D_{comb}} = \frac{D_{branch}}{D_{run}} \]See the notes for definitions of H, J, and G. The run and combined diameter are assumed the same in this model.
 Parameters
 D_runfloat
Diameter of the straightthrough inlet portion of the tee or wye [m]
 D_branchfloat
Diameter of the pipe attached at an angle to the straightthrough, [m]
 Q_runfloat
Volumetric flow rate in the straightthrough outlet of the tee or wye, [m^3/s]
 Q_branchfloat
Volumetric flow rate in the pipe attached at an angle to the straight through, [m^3/s]
 anglefloat, optional
Angle the branch makes with the straightthrough (tee=90, wye<90) [degrees]
 Returns
 Kfloat
Loss coefficient of branch with respect to the velocity and inside diameter of the combined flow inlet []
Notes
If \(\beta_{branch} = 1, \theta = 90^\circ\), H = 0.3 and J = 0. Otherwise H = 1 and J = 2.
G is determined according to the following pseudocode:
if angle < 75: if beta2 <= 0.35: if Q_ratio <= 0.4: G = 1.1  0.7*Q_ratio else: G = 0.85 else: if Q_ratio <= 0.6: G = 1.0  0.6*Q_ratio else: G = 0.6 else: if beta2 <= 2/3.: G = 1 else: G = 1 + 0.3*Q_ratio*Q_ratio
Note that there are several errors in the text of [1]; the errata can be obtained here: http://www.flowoffluids.com/publications/tp410errata.aspx
References
Examples
Example 736 of [1]. A DN150 schedule 80 wye has 1515 liters/minute of water exiting the straight leg, and 950 liters/minute of water exiting it through a 45° branch. Calculate the loss coefficient in the branch. The calculated value there is 0.4640.
>>> K_branch_diverging_Crane(0.146, 0.146, 0.02525, 0.01583, angle=45) 0.4639895627496694

fluids.fittings.
K_run_diverging_Crane
(D_run, D_branch, Q_run, Q_branch, angle=90)[source]¶ Returns the loss coefficient for the run of a converging tee or wye according to the Crane method [1].
\[K_{run} = M \left(\frac{Q_{branch}}{Q_{comb}}\right)^2 \]\[\beta_{branch} = \frac{D_{branch}}{D_{comb}} = \frac{D_{branch}}{D_{run}} \]See the notes for the definition of M. The run and combined diameter are assumed the same in this model.
 Parameters
 D_runfloat
Diameter of the straightthrough inlet portion of the tee or wye [m]
 D_branchfloat
Diameter of the pipe attached at an angle to the straightthrough, [m]
 Q_runfloat
Volumetric flow rate in the straightthrough outlet of the tee or wye, [m^3/s]
 Q_branchfloat
Volumetric flow rate in the pipe attached at an angle to the straight through, [m^3/s]
 anglefloat, optional
Angle the branch makes with the straightthrough (tee=90, wye<90) [degrees]
 Returns
 Kfloat
Loss coefficient of run with respect to the velocity and inside diameter of the combined flow inlet []
Notes
M is calculated according to the following pseudocode:
if beta*beta <= 0.4: M = 0.4 elif Q_branch/Q_comb <= 0.5: M = 2*(2*Q_branch/Q_comb  1) else: M = 0.3*(2*Q_branch/Q_comb  1)
References
Examples
Example 736 of [1]. A DN150 schedule 80 wye has 1515 liters/minute of water exiting the straight leg, and 950 liters/minute of water exiting it through a 45° branch. Calculate the loss coefficient in the branch. The calculated value there is 0.06809.
>>> K_run_diverging_Crane(0.146, 0.146, 0.02525, 0.01583, angle=45) 0.06810067607153049
Valves¶

fluids.fittings.
K_gate_valve_Crane
(D1, D2, angle, fd=None)[source]¶ Returns loss coefficient for a gate valve of types wedge disc, double disc, or plug type, as shown in [1].
If β = 1 and θ = 0:
\[K = K_1 = K_2 = 8f_d \]If β < 1 and θ <= 45°:
\[K_2 = \frac{K + \sin \frac{\theta}{2} \left[0.8(1\beta^2) + 2.6(1\beta^2)^2\right]}{\beta^4} \]If β < 1 and θ > 45°:
\[K_2 = \frac{K + 0.5\sqrt{\sin\frac{\theta}{2}}(1\beta^2) + (1\beta^2)^2}{\beta^4} \] Parameters
 D1float
Diameter of the valve seat bore (must be smaller or equal to D2), [m]
 D2float
Diameter of the pipe attached to the valve, [m]
 anglefloat
Angle formed by the reducer in the valve, [degrees]
 fdfloat, optional
Darcy friction factor calculated for the actual pipe flow in clean steel (roughness = 0.0018 inch) in the fully developed turbulent region; do not specify this to use the original Crane friction factor! []
 Returns
 Kfloat
Loss coefficient with respect to the pipe inside diameter []
Notes
This method is not valid in the laminar regime and the pressure drop will be underestimated in those conditions [2].
References
 1(1,2)
Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009.
 2
Harvey Wilson. “Pressure Drop in Pipe Fittings and Valves  Equivalent Length and Resistance Coefficient.” Katmar Software. Accessed July 28, 2017. http://www.katmarsoftware.com/articles/pipefittingpressuredrop.htm.
Examples
Example 74 in [1]; a 150 by 100 mm class 600 steel gate valve, conically tapered ports, length 550 mm, back of sear ring ~150 mm. The valve is connected to 146 mm schedule 80 pipe. The angle can be calculated to be 13 degrees. The valve is specified to be operating in turbulent conditions.
>>> K_gate_valve_Crane(D1=.1, D2=.146, angle=13.115) 1.1466029421844073
The calculated result is lower than their value of 1.22; the difference is due to Crane’s generous intermediate rounding. A later, Imperial edition of Crane rounds differently  and comes up with K=1.06.

fluids.fittings.
K_angle_valve_Crane
(D1, D2, fd=None, style=0)[source]¶ Returns the loss coefficient for all types of angle valve, (reduced seat or throttled) as shown in [1].
If β = 1:
\[K = K_1 = K_2 = N\cdot f_d \]Otherwise:
\[K_2 = \frac{K + \left[0.5(1\beta^2) + (1\beta^2)^2\right]}{\beta^4} \]For style 0 and 2, N = 55; for style 1, N=150.
 Parameters
 D1float
Diameter of the valve seat bore (must be smaller or equal to D2), [m]
 D2float
Diameter of the pipe attached to the valve, [m]
 fdfloat, optional
Darcy friction factor calculated for the actual pipe flow in clean steel (roughness = 0.0018 inch) in the fully developed turbulent region; do not specify this to use the original Crane friction factor!, []
 styleint, optional
One of 0, 1, or 2; refers to three different types of angle valves as shown in [1] []
 Returns
 Kfloat
Loss coefficient with respect to the pipe inside diameter []
Notes
This method is not valid in the laminar regime and the pressure drop will be underestimated in those conditions.
References
Examples
>>> K_angle_valve_Crane(.01, .02) 26.597361811128465

fluids.fittings.
K_globe_valve_Crane
(D1, D2, fd=None)[source]¶ Returns the loss coefficient for all types of globe valve, (reduced seat or throttled) as shown in [1].
If β = 1:
\[K = K_1 = K_2 = 340 f_d \]Otherwise:
\[K_2 = \frac{K + \left[0.5(1\beta^2) + (1\beta^2)^2\right]}{\beta^4} \] Parameters
 D1float
Diameter of the valve seat bore (must be smaller or equal to D2), [m]
 D2float
Diameter of the pipe attached to the valve, [m]
 fdfloat, optional
Darcy friction factor calculated for the actual pipe flow in clean steel (roughness = 0.0018 inch) in the fully developed turbulent region; do not specify this to use the original Crane friction factor!, []
 Returns
 Kfloat
Loss coefficient with respect to the pipe inside diameter []
Notes
This method is not valid in the laminar regime and the pressure drop will be underestimated in those conditions.
References
 1
Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009.
Examples
>>> K_globe_valve_Crane(.01, .02) 135.9200548324305

fluids.fittings.
K_swing_check_valve_Crane
(D=None, fd=None, angled=True)[source]¶ Returns the loss coefficient for a swing check valve as shown in [1].
\[K_2 = N\cdot f_d \]For angled swing check valves N = 100; for straight valves, N = 50.
 Parameters
 Dfloat, optional
Diameter of the pipe attached to the valve, [m]
 fdfloat, optional
Darcy friction factor calculated for the actual pipe flow in clean steel (roughness = 0.0018 inch) in the fully developed turbulent region; do not specify this to use the original Crane friction factor!, []
 angledbool, optional
If True, returns a value 2x the unangled value; the style of the valve []
 Returns
 Kfloat
Loss coefficient with respect to the pipe inside diameter []
Notes
This method is not valid in the laminar regime and the pressure drop will be underestimated in those conditions.
References
 1
Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009.
Examples
>>> K_swing_check_valve_Crane(D=.02) 2.3974274785373257

fluids.fittings.
K_lift_check_valve_Crane
(D1, D2, fd=None, angled=True)[source]¶ Returns the loss coefficient for a lift check valve as shown in [1].
If β = 1:
\[K = K_1 = K_2 = N\cdot f_d \]Otherwise:
\[K_2 = \frac{K + \left[0.5(1\beta^2) + (1\beta^2)^2\right]}{\beta^4} \]For angled lift check valves N = 55; for straight valves, N = 600.
 Parameters
 D1float
Diameter of the valve seat bore (must be smaller or equal to D2), [m]
 D2float
Diameter of the pipe attached to the valve, [m]
 fdfloat, optional
Darcy friction factor calculated for the actual pipe flow in clean steel (roughness = 0.0018 inch) in the fully developed turbulent region; do not specify this to use the original Crane friction factor!, []
 angledbool, optional
If True, returns a value 2x the unangled value; the style of the valve []
 Returns
 Kfloat
Loss coefficient with respect to the pipe inside diameter []
Notes
This method is not valid in the laminar regime and the pressure drop will be underestimated in those conditions.
References
 1
Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009.
Examples
>>> K_lift_check_valve_Crane(.01, .02) 28.597361811128465

fluids.fittings.
K_tilting_disk_check_valve_Crane
(D, angle, fd=None)[source]¶ Returns the loss coefficient for a tilting disk check valve as shown in [1]. Results are specified in [1] to be for the disk’s resting position to be at 5 or 25 degrees to the flow direction. The model is implemented here so as to switch to the higher loss 15 degree coefficients at 10 degrees, and use the lesser coefficients for any angle under 10 degrees.
\[K = N\cdot f_d \]N is obtained from the following table:
angle = 5 °
angle = 15°
28”
40
120
1014”
30
90
1648”
20
60
The actual change of coefficients happen at <= 9” and <= 15”.
 Parameters
 Dfloat
Diameter of the pipe section the valve in mounted in; the same as the line size [m]
 anglefloat
Angle of the tilting disk to the flow direction; nominally 5 or 15 degrees [degrees]
 fdfloat, optional
Darcy friction factor calculated for the actual pipe flow in clean steel (roughness = 0.0018 inch) in the fully developed turbulent region; do not specify this to use the original Crane friction factor!, []
 Returns
 Kfloat
Loss coefficient with respect to the pipe inside diameter []
Notes
This method is not valid in the laminar regime and the pressure drop will be underestimated in those conditions.
References
Examples
>>> K_tilting_disk_check_valve_Crane(.01, 5) 1.1626516551826345

fluids.fittings.
K_globe_stop_check_valve_Crane
(D1, D2, fd=None, style=0)[source]¶ Returns the loss coefficient for a globe stop check valve as shown in [1].
If β = 1:
\[K = K_1 = K_2 = N\cdot f_d \]Otherwise:
\[K_2 = \frac{K + \left[0.5(1\beta^2) + (1\beta^2)^2\right]}{\beta^4} \]Style 0 is the standard form; style 1 is angled, with a restrition to force the flow up through the valve; style 2 is also angled but with a smaller restriction forcing the flow up. N is 400, 300, and 55 for those cases respectively.
 Parameters
 D1float
Diameter of the valve seat bore (must be smaller or equal to D2), [m]
 D2float
Diameter of the pipe attached to the valve, [m]
 fdfloat, optional
Darcy friction factor calculated for the actual pipe flow in clean steel (roughness = 0.0018 inch) in the fully developed turbulent region; do not specify this to use the original Crane friction factor!, []
 styleint, optional
One of 0, 1, or 2; refers to three different types of angle valves as shown in [1] []
 Returns
 Kfloat
Loss coefficient with respect to the pipe inside diameter []
Notes
This method is not valid in the laminar regime and the pressure drop will be underestimated in those conditions.
References
Examples
>>> K_globe_stop_check_valve_Crane(.1, .02, style=1) 4.5235076518969795

fluids.fittings.
K_angle_stop_check_valve_Crane
(D1, D2, fd=None, style=0)[source]¶ Returns the loss coefficient for a angle stop check valve as shown in [1].
If β = 1:
\[K = K_1 = K_2 = N\cdot f_d \]Otherwise:
\[K_2 = \frac{K + \left[0.5(1\beta^2) + (1\beta^2)^2\right]}{\beta^4} \]Style 0 is the standard form; style 1 has a restrition to force the flow up through the valve; style 2 is has the clearest flow area with no guides for the angle valve. N is 200, 350, and 55 for those cases respectively.
 Parameters
 D1float
Diameter of the valve seat bore (must be smaller or equal to D2), [m]
 D2float
Diameter of the pipe attached to the valve, [m]
 fdfloat, optional
Darcy friction factor calculated for the actual pipe flow in clean steel (roughness = 0.0018 inch) in the fully developed turbulent region; do not specify this to use the original Crane friction factor!, []
 styleint, optional
One of 0, 1, or 2; refers to three different types of angle valves as shown in [1] []
 Returns
 Kfloat
Loss coefficient with respect to the pipe inside diameter []
Notes
This method is not valid in the laminar regime and the pressure drop will be underestimated in those conditions.
References
Examples
>>> K_angle_stop_check_valve_Crane(.1, .02, style=1) 4.525425593879809

fluids.fittings.
K_ball_valve_Crane
(D1, D2, angle, fd=None)[source]¶ Returns the loss coefficient for a ball valve as shown in [1].
If β = 1:
\[K = K_1 = K_2 = 3f_d \]If β < 1 and θ <= 45°:
\[K_2 = \frac{K + \sin \frac{\theta}{2} \left[0.8(1\beta^2) + 2.6(1\beta^2)^2\right]} {\beta^4} \]If β < 1 and θ > 45°:
\[K_2 = \frac{K + 0.5\sqrt{\sin\frac{\theta}{2}}(1\beta^2) + (1\beta^2)^2}{\beta^4} \] Parameters
 D1float
Diameter of the valve seat bore (must be equal to or smaller than D2), [m]
 D2float
Diameter of the pipe attached to the valve, [m]
 anglefloat
Angle formed by the reducer in the valve, [degrees]
 fdfloat, optional
Darcy friction factor calculated for the actual pipe flow in clean steel (roughness = 0.0018 inch) in the fully developed turbulent region; do not specify this to use the original Crane friction factor!, []
 Returns
 Kfloat
Loss coefficient with respect to the pipe inside diameter []
Notes
This method is not valid in the laminar regime and the pressure drop will be underestimated in those conditions.
References
 1
Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009.
Examples
>>> K_ball_valve_Crane(.01, .02, 50) 14.051310974926592

fluids.fittings.
K_diaphragm_valve_Crane
(D=None, fd=None, style=0)[source]¶ Returns the loss coefficient for a diaphragm valve of either weir (style = 0) or straightthrough (style = 1) as shown in [1].
\[K = K_1 = K_2 = N\cdot f_d \]For style 0 (weir), N = 149; for style 1 (straight through), N = 39.
 Parameters
 Dfloat, optional
Diameter of the pipe section the valve in mounted in; the same as the line size [m]
 fdfloat, optional
Darcy friction factor calculated for the actual pipe flow in clean steel (roughness = 0.0018 inch) in the fully developed turbulent region; do not specify this to use the original Crane friction factor!, []
 styleint, optional
Either 0 (weir type valve) or 1 (straight through weir valve) []
 Returns
 Kfloat
Loss coefficient with respect to the pipe inside diameter []
Notes
This method is not valid in the laminar regime and the pressure drop will be underestimated in those conditions.
References
 1
Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009.
Examples
>>> K_diaphragm_valve_Crane(D=.1, style=0) 2.4269804835982565

fluids.fittings.
K_foot_valve_Crane
(D=None, fd=None, style=0)[source]¶ Returns the loss coefficient for a foot valve of either poppet disc (style = 0) or hingeddisk (style = 1) as shown in [1]. Both valves are specified include the loss of the attached strainer.
\[K = K_1 = K_2 = N\cdot f_d \]For style 0 (poppet disk), N = 420; for style 1 (hinged disk), N = 75.
 Parameters
 Dfloat, optional
Diameter of the pipe section the valve in mounted in; the same as the line size [m]
 fdfloat, optional
Darcy friction factor calculated for the actual pipe flow in clean steel (roughness = 0.0018 inch) in the fully developed turbulent region; do not specify this to use the original Crane friction factor!, []
 styleint, optional
Either 0 (poppet disk foot valve) or 1 (hinged disk foot valve) []
 Returns
 Kfloat
Loss coefficient with respect to the pipe inside diameter []
Notes
This method is not valid in the laminar regime and the pressure drop will be underestimated in those conditions.
References
 1
Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009.
Examples
>>> K_foot_valve_Crane(D=0.2, style=0) 5.912221498436275

fluids.fittings.
K_butterfly_valve_Crane
(D, fd=None, style=0)[source]¶ Returns the loss coefficient for a butterfly valve as shown in [1]. Three different types are supported; Centric (style = 0), double offset (style = 1), and triple offset (style = 2).
\[K = N\cdot f_d \]N is obtained from the following table:
Size range
Centric
Double offset
Triple offset
2”  8”
45
74
218
10”  14”
35
52
96
16”  24”
25
43
55
The actual change of coefficients happen at <= 9” and <= 15”.
 Parameters
 Dfloat
Diameter of the pipe section the valve in mounted in; the same as the line size [m]
 fdfloat, optional
Darcy friction factor calculated for the actual pipe flow in clean steel (roughness = 0.0018 inch) in the fully developed turbulent region; do not specify this to use the original Crane friction factor!, []
 styleint, optional
Either 0 (centric), 1 (double offset), or 2 (triple offset) []
 Returns
 Kfloat
Loss coefficient with respect to the pipe inside diameter []
Notes
This method is not valid in the laminar regime and the pressure drop will be underestimated in those conditions.
References
 1
Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009.
Examples
>>> K_butterfly_valve_Crane(D=.1, style=2) 3.5508841974793284

fluids.fittings.
K_plug_valve_Crane
(D1, D2, angle, fd=None, style=0)[source]¶ Returns the loss coefficient for a plug valve or cock valve as shown in [1].
If β = 1:
\[K = K_1 = K_2 = Nf_d \]Otherwise:
\[K_2 = \frac{K + 0.5\sqrt{\sin\frac{\theta}{2}}(1\beta^2) + (1\beta^2)^2}{\beta^4} \]Three types of plug valves are supported. For straightthrough plug valves (style = 0), N = 18. For 3way, flow straight through (style = 1) plug valves, N = 30. For 3way, flow 90° valves (style = 2) N = 90.
 Parameters
 D1float
Diameter of the valve plug bore (must be equal to or smaller than D2), [m]
 D2float
Diameter of the pipe attached to the valve, [m]
 anglefloat
Angle formed by the reducer in the valve, [degrees]
 fdfloat, optional
Darcy friction factor calculated for the actual pipe flow in clean steel (roughness = 0.0018 inch) in the fully developed turbulent region; do not specify this to use the original Crane friction factor!, []
 styleint, optional
Either 0 (straightthrough), 1 (3way, flow straightthrough), or 2 (3way, flow 90°) []
 Returns
 Kfloat
Loss coefficient with respect to the pipe inside diameter []
Notes
This method is not valid in the laminar regime and the pressure drop will be underestimated in those conditions.
References
 1
Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009.
Examples
>>> K_plug_valve_Crane(D1=.01, D2=.02, angle=50) 19.80513692341617
Hooper 2K fittings¶

fluids.fittings.
Hooper2K
(Di, Re, name=None, K1=None, Kinfty=None)[source]¶ Returns loss coefficient for any various fittings, depending on the name input. Alternatively, the Hooper constants K1, Kinfty may be provided and used instead. Source of data is [1]. Reviews of this model are favorable less favorable than the Darby method but superior to the constantK method.
\[K = \frac{K_1}{Re} + K_\infty\left(1 + \frac{1\text{ inch}}{D_{in}}\right) \]Note this model uses actual inside pipe diameter in inches.
 Parameters
 Difloat
Actual inside diameter of the pipe, [in]
 Refloat
Reynolds number, []
 namestr, optional
String from Hooper dict representing a fitting
 K1float, optional
K1 parameter of Hooper model, optional []
 Kinftyfloat, optional
Kinfty parameter of Hooper model, optional []
 Returns
 Kfloat
Loss coefficient []
Notes
Also described in Ludwig’s Applied Process Design. Relatively uncommon to see it used. No actual example found.
References
 1
Hooper, W. B., “The 2K Method Predicts Head Losses in Pipe Fittings,” Chem. Eng., p. 97, Aug. 24 (1981).
 2
Hooper, William B. “Calculate Head Loss Caused by Change in Pipe Size.” Chemical Engineering 95, no. 16 (November 7, 1988): 89.
 3
Kayode Coker. Ludwig’s Applied Process Design for Chemical and Petrochemical Plants. 4E. Amsterdam ; Boston: Gulf Professional Publishing, 2007.
Examples
>>> Hooper2K(Di=2., Re=10000., name='Valve, Globe, Standard') 6.15 >>> Hooper2K(Di=2., Re=10000., K1=900, Kinfty=4) 6.09

fluids.fittings.
Hooper
= {'Elbow, 180°, Longradius (R/D = 1.5), All types': (1000.0, 0.3), 'Elbow, 180°, Standard (R/D = 1), Flanged/welded': (1000.0, 0.35), 'Elbow, 45°, Longradius (R/D 1.5), All types': (500.0, 0.15), 'Elbow, 45°, Mitered (R/D=1.5), 1 weld (45° angle)': (500.0, 0.25), 'Elbow, 45°, Mitered (R/D=1.5), 2 weld (22.5° angle)': (500.0, 0.15), 'Elbow, 45°, Standard (R/D = 1), All types': (500.0, 0.2), 'Elbow, 45°, Standard (R/D = 1), Screwed': (1000.0, 0.7), 'Elbow, 90°, Longradius (R/D = 1.5), All types': (800.0, 0.2), 'Elbow, 90°, Mitered (R/D = 1.5), 1 weld (90° angle)': (1000.0, 1.15), 'Elbow, 90°, Mitered (R/D = 1.5), 2 weld (45° angle)': (800.0, 0.35), 'Elbow, 90°, Mitered (R/D = 1.5), 3 weld (30° angle)': (800.0, 0.3), 'Elbow, 90°, Mitered (R/D = 1.5), 4 weld (22.5° angle)': (800.0, 0.27), 'Elbow, 90°, Mitered (R/D = 1.5), 5 weld (18° angle)': (800.0, 0.25), 'Elbow, 90°, Standard (R/D = 1), Flanged/welded': (800.0, 0.25), 'Elbow, 90°, Standard (R/D = 1), Screwed': (800.0, 0.4), 'Elbow, Elbow, Longradius, Screwed': (800.0, 0.4), 'Elbow, Elbow, Standard, Flanged/welded': (800.0, 0.8), 'Elbow, Elbow, Stubin type branch': (1000.0, 1.0), 'Elbow, Used as, Standard, Screwed': (500.0, 0.7), 'Tee, Run, Screwed': (200.0, 0.1), 'Tee, Tee, Stubin type branch': (100.0, 0.0), 'Tee, Through, Flanged or welded': (150.0, 0.05), 'Valve, Ball, Reduced trim, Beta = 0.9': (500.0, 0.15), 'Valve, Butterfly,': (800.0, 0.25), 'Valve, Check, Lift': (2000.0, 10.0), 'Valve, Check, Swing': (1500.0, 1.5), 'Valve, Check, Tiltingdisc': (1000.0, 0.5), 'Valve, Diaphragm, Dam type': (1000.0, 2.0), 'Valve, Gate, Full line size, Beta = 1': (300.0, 0.1), 'Valve, Globe, Angle or Ytype': (1000.0, 2.0), 'Valve, Globe, Standard': (1500.0, 4.0), 'Valve, Plug, Reduced trim, Beta = 0.8': (1000.0, 0.25)}¶ Dictionary of coefficients for Hooper’s 2K fitting pressure drop method; the tuple contains \(K_1\) and \(K_\infty\) in that order.
Darby 3K fittings¶

fluids.fittings.
Darby3K
(NPS=None, Re=None, name=None, K1=None, Ki=None, Kd=None)[source]¶ Returns loss coefficient for any various fittings, depending on the name input. Alternatively, the Darby constants K1, Ki and Kd may be provided and used instead. Source of data is [1]. Reviews of this model are favorable.
\[K_f = \frac{K_1}{Re} + K_i\left(1 + \frac{K_d}{D_{\text{NPS}}^{0.3}} \right) \]Note this model uses nominal pipe diameter in inches.
 Parameters
 NPSfloat
Nominal diameter of the pipe, [in]
 Refloat
Reynolds number, []
 namestr
String from Darby dict representing a fitting
 K1float
K1 parameter of Darby model, optional []
 Kifloat
Ki parameter of Darby model, optional []
 Kdfloat
Kd parameter of Darby model, optional [in]
 Returns
 Kfloat
Loss coefficient []
Notes
Also described in Albright’s Handbook and Ludwig’s Applied Process Design. Relatively uncommon to see it used.
The possibility of combining these methods with those above are attractive.
References
 1
Silverberg, Peter, and Ron Darby. “Correlate Pressure Drops through Fittings: Three Constants Accurately Calculate Flow through Elbows, Valves and Tees.” Chemical Engineering 106, no. 7 (July 1999): 101.
 2
Silverberg, Peter. “Correlate Pressure Drops Through Fittings.” Chemical Engineering 108, no. 4 (April 2001): 127,129130.
Examples
>>> Darby3K(NPS=2., Re=10000., name='Valve, Angle valve, 45°, full line size, β = 1') 1.1572523963562356 >>> Darby3K(NPS=12., Re=10000., K1=950, Ki=0.25, Kd=4) 0.819510280626355

fluids.fittings.
Darby
= {'Elbow, 180°, all, (r/D = 1.5)': (1000.0, 0.1, 4.0), 'Elbow, 180°, flanged, (r/D = 1)': (1000.0, 0.12, 4.0), 'Elbow, 180°, threaded, closereturn bend, (r/D = 1)': (1000.0, 0.23, 4.0), 'Elbow, 45°, long radius, (r/D = 1.5)': (500.0, 0.052, 4.0), 'Elbow, 45°, mitered, 1 weld, (45°)': (500.0, 0.086, 4.0), 'Elbow, 45°, mitered, 2 welds, (22.5°)': (500.0, 0.052, 4.0), 'Elbow, 45°, threaded standard, (r/D = 1)': (500.0, 0.071, 4.2), 'Elbow, 90°, (r/D = 2)': (800.0, 0.056, 3.9), 'Elbow, 90°, (r/D = 4)': (800.0, 0.066, 3.9), 'Elbow, 90°, (r/D = 6)': (800.0, 0.075, 4.2), 'Elbow, 90°, 2 welds, (45°)': (800.0, 0.068, 4.1), 'Elbow, 90°, 3 welds, (30°)': (800.0, 0.035, 4.2), 'Elbow, 90°, flanged, welded, bends, (r/D = 1)': (800.0, 0.091, 4.0), 'Elbow, 90°, mitered, 1 weld, (90°)': (1000.0, 0.27, 4.0), 'Elbow, 90°, threaded, long radius, (r/D = 1.5)': (800.0, 0.071, 4.2), 'Elbow, 90°, threaded, standard, (r/D = 1)': (800.0, 0.14, 4.0), 'Tee, Runthrough, flanged, (r/D = 1)': (150.0, 0.05, 4.0), 'Tee, Runthrough, stubin branch': (100.0, 0.0, 0.0), 'Tee, Runthrough, threaded, (r/D = 1)': (200.0, 0.091, 4.0), 'Tee, Throughbranch, (as elbow), flanged, (r/D = 1)': (800.0, 0.28, 4.0), 'Tee, Throughbranch, (as elbow), stubin branch': (1000.0, 0.34, 4.0), 'Tee, Throughbranch, (as elbow), threaded, (r/D = 1)': (500.0, 0.274, 4.0), 'Tee, Throughbranch,(as elbow), (r/D = 1.5)': (800.0, 0.14, 4.0), 'Valve, Angle valve, 45°, full line size, β = 1': (950.0, 0.25, 4.0), 'Valve, Angle valve, 90°, full line size, β = 1': (1000.0, 0.69, 4.0), 'Valve, Ball valve, standard, β = 1': (300.0, 0.017, 3.5), 'Valve, Diaphragm, dam type': (1000.0, 0.69, 4.9), 'Valve, Gate valve, standard, β = 1': (300.0, 0.037, 3.9), 'Valve, Globe valve, standard, β = 1': (1500.0, 1.7, 3.6), 'Valve, Lift check': (2000.0, 2.85, 3.8), 'Valve, Plug valve, branch flow': (500.0, 0.41, 4.0), 'Valve, Plug valve, straight through': (300.0, 0.084, 3.9), 'Valve, Plug valve, threeway (flow through)': (300.0, 0.14, 4.0), 'Valve, Swing check': (1500.0, 0.46, 4.0)}¶ Dictionary of coefficients for Darby’s 3K fitting pressure drop method; the tuple contains \(K_1\) and \(K_i\) and \(K_d\) in that order.
Loss Coefficient Converters¶

fluids.fittings.
Cv_to_K
(Cv, D)[source]¶ Convert imperial valve flow coefficient from imperial units to regular loss coefficients.
\[K = 1.6\times 10^9 \frac{D^4}{\left(\frac{C_v}{1.56}\right)^2} \] Parameters
 Cvfloat
Imperial Cv valve flow coefficient (flow rate of water at a pressure drop of 1 psi) [gallons/minute]
 Dfloat
Inside diameter of the valve [m]
 Returns
 Kfloat
Loss coefficient, []
Notes
The exact conversion coefficient between Kv to Cv is 1.1560992283536566; it is rounded in the formula above.
References
 1
ISA75.01.012007 (6053421 Mod) Draft
Examples
>>> Cv_to_K(2.712, .015) 14.719595348352

fluids.fittings.
Kv_to_K
(Kv, D)[source]¶ Convert valve flow coefficient from common metric units to regular loss coefficients.
\[K = 1.6\times 10^9 \frac{D^4}{K_v^2} \] Parameters
 Kvfloat
Metric Kv valve flow coefficient (flow rate of water at a pressure drop of 1 bar) [m^3/hr]
 Dfloat
Inside diameter of the valve [m]
 Returns
 Kfloat
Loss coefficient, []
Notes
Crane TP 410 M (2009) gives the coefficient of 0.04 (with diameter in mm).
It also suggests the density of water should be found between 540°C. Older versions specify the density should be found at 60 °F, which is used here, and the pessure for the appropriate density is back calculated.
\[\Delta P = 1 \text{ bar} = \frac{1}{2}\rho V^2\cdot K V = \frac{\frac{K_v\cdot \text{ hour}}{3600 \text{ second}}}{\frac{\pi}{4}D^2} \rho = 999.29744568 \;\; kg/m^3 \text{ at } T=60° F, P = 703572 Pa\]The value of density is calculated with IAPWS95; it is chosen as it makes the coefficient a very convenient round number. Others constants that have been used are 1.604E9, and 1.60045E9.
References
 1
ISA75.01.012007 (6053421 Mod) Draft
Examples
>>> Kv_to_K(2.312, .015) 15.153374600399898

fluids.fittings.
K_to_Cv
(K, D)[source]¶ Convert regular loss coefficient to imperial valve flow coefficient.
\[K_v = 1.156 \cdot 4\times 10^4 \sqrt{ \frac{D^4}{K}} \] Parameters
 Kfloat
Loss coefficient, []
 Dfloat
Inside diameter of the valve [m]
 Returns
 Cvfloat
Imperial Cv valve flow coefficient (flow rate of water at a pressure drop of 1 psi) [gallons/minute]
Notes
The conversion factor does not depend on the density of the fluid or the diameter of the valve. It is calculated with the definition of a US gallon as 231 cubic inches, and a psi as a poundforce per square inch.
The exact conversion coefficient between Kv to Cv is 1.1560992283536566; it is rounded in the formula above.
References
 1
ISA75.01.012007 (6053421 Mod) Draft
Examples
>>> K_to_Cv(16, .015) 2.601223263795727

fluids.fittings.
K_to_Kv
(K, D)[source]¶ Convert regular loss coefficient to valve flow coefficient.
\[K_v = 4\times 10^4 \sqrt{ \frac{D^4}{K}} \] Parameters
 Kfloat
Loss coefficient, []
 Dfloat
Inside diameter of the valve [m]
 Returns
 Kvfloat
Metric Kv valve flow coefficient (flow rate of water at a pressure drop of 1 bar) [m^3/hr]
Notes
Crane TP 410 M (2009) gives the coefficient of 0.04 (with diameter in mm).
It also suggests the density of water should be found between 540°C. Older versions specify the density should be found at 60 °F, which is used here, and the pessure for the appropriate density is back calculated.
\[\Delta P = 1 \text{ bar} = \frac{1}{2}\rho V^2\cdot K V = \frac{\frac{K_v\cdot \text{ hour}}{3600 \text{ second}}}{\frac{\pi}{4}D^2} \rho = 999.29744568 \;\; kg/m^3 \text{ at } T=60° F, P = 703572 Pa\]The value of density is calculated with IAPWS95; it is chosen as it makes the coefficient a very convenient round number. Others constants that have been used are 1.604E9, and 1.60045E9.
References
 1
ISA75.01.012007 (6053421 Mod) Draft
Examples
>>> K_to_Kv(15.15337460039990, .015) 2.312

fluids.fittings.
Cv_to_Kv
(Cv)[source]¶ Convert valve flow coefficient from imperial to common metric units.
\[K_v = C_v/1.156 \] Parameters
 Cvfloat
Imperial Cv valve flow coefficient (flow rate of water at a pressure drop of 1 psi) [gallons/minute]
 Returns
 Kvfloat
Metric Kv valve flow coefficient (flow rate of water at a pressure drop of 1 bar) [m^3/hr]
Notes
Kv = 0.865 Cv is in the IEC standard 6053421. It has also been said that Cv = 1.17Kv; this is wrong by current standards.
The conversion factor does not depend on the density of the fluid or the diameter of the valve. It is calculated with the definition of a US gallon as 231 cubic inches, and a psi as a poundforce per square inch.
The exact conversion coefficient between Kv to Cv is 1.1560992283536566; it is rounded in the formula above.
References
 1
ISA75.01.012007 (6053421 Mod) Draft
Examples
>>> Cv_to_Kv(2.312) 1.9998283393826013

fluids.fittings.
Kv_to_Cv
(Kv)[source]¶ Convert valve flow coefficient from imperial to common metric units.
\[C_v = 1.156 K_v \] Parameters
 Kvfloat
Metric Kv valve flow coefficient (flow rate of water at a pressure drop of 1 bar) [m^3/hr]
 Returns
 Cvfloat
Imperial Cv valve flow coefficient (flow rate of water at a pressure drop of 1 psi) [gallons/minute]
Notes
Kv = 0.865 Cv is in the IEC standard 6053421. It has also been said that Cv = 1.17Kv; this is wrong by current standards.
The conversion factor does not depend on the density of the fluid or the diameter of the valve. It is calculated with the definition of a US gallon as 231 cubic inches, and a psi as a poundforce per square inch.
The exact conversion coefficient between Kv to Cv is 1.1560992283536566; it is rounded in the formula above.
References
 1
ISA75.01.012007 (6053421 Mod) Draft
Examples
>>> Kv_to_Cv(2) 2.3121984567073133
Miscellaneous¶

fluids.fittings.
v_lift_valve_Crane
(rho, D1=None, D2=None, style='swing check angled')[source]¶ Calculates the approximate minimum velocity required to lift the disk or other controlling element of a check valve to a fully open, stable, position according to the Crane method [1].
\[v_{min} = N\cdot \text{m/s} \cdot \sqrt{\frac{\text{kg/m}^3}{\rho}} \]\[v_{min} = N\beta^2 \cdot \text{m/s} \cdot \sqrt{\frac{\text{kg/m}^3}{\rho}} \]See the notes for the definition of values of N and which check valves use which formulas.
 Parameters
 rhofloat
Density of the fluid [kg/m^3]
 D1float, optional
Diameter of the valve bore (must be equal to or smaller than D2), [m]
 D2float, optional
Diameter of the pipe attached to the valve, [m]
 stylestr
The type of valve; one of [‘swing check angled’, ‘swing check straight’, ‘swing check UL’, ‘lift check straight’, ‘lift check angled’, ‘tilting check 5°’, ‘tilting check 15°’, ‘stop check globe 1’, ‘stop check angle 1’, ‘stop check globe 2’, ‘stop check angle 2’, ‘stop check globe 3’, ‘stop check angle 3’, ‘foot valve poppet disc’, ‘foot valve hinged disc’], []
 Returns
 v_minfloat
Approximate minimum velocity required to keep the disc fully lifted, preventing chattering and wear [m/s]
Notes
This equation is not dimensionless.
Name/string
N
Full
‘swing check angled’
45
No
‘swing check straight’
75
No
‘swing check UL’
120
No
‘lift check straight’
50
Yes
‘lift check angled’
170
Yes
‘tilting check 5°’
100
No
‘tilting check 15°’
40
No
‘stop check globe 1’
70
Yes
‘stop check angle 1’
95
Yes
‘stop check globe 2’
75
Yes
‘stop check angle 2’
75
Yes
‘stop check globe 3’
170
Yes
‘stop check angle 3’
170
Yes
‘foot valve poppet disc’
20
No
‘foot valve hinged disc’
45
No
References
 1
Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009.
Examples
>>> v_lift_valve_Crane(rho=998.2, D1=0.0627, D2=0.0779, style='lift check straight') 1.0252301935349286
Sources¶
The main sources for these correlations are as follows [100] [101] [102] [103] [104]:
 100
Crane Co. TP 410 Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009.
 101
Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012.
 102
Miller, Donald S. Internal Flow Systems: Design and Performance Prediction. Gulf Publishing Company, 1990.
 103
Idel’chik, I. E. Handbook of Hydraulic Resistance: Coefficients of Local Resistance and of Friction (Spravochnik Po Gidravlicheskim Soprotivleniyam, Koeffitsienty Mestnykh Soprotivlenii i Soprotivleniya Treniya). National technical information Service, 1966.
 104
Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984.