The Darcy-Weisbach method assumes that the pipeline fluid density remains constant, which is a valid assumption for incompressible fluids (liquids) but not always the case for compressible fluids in which the density is a function of the fluid pressure (fluids such as steam, air, and most industrial gases). However, with some restrictions, the Darcy-Weisbach method can be extended to analyze compressible fluid systems. These restrictions are listed below (Ref. Crane Technical Paper No. 410, page 1-7):
- If the calculated pressure drop in a pipeline (Pin - Pout) is less than 10% of the inlet pressure, acceptable accuracy is obtained if the density used for the fluid is based upon either the upstream or downstream conditions.
- If the calculated pressure drop (Pin - Pout) is greater than 10% but less than 40% of the inlet pressure, the Darcy-Weisbach method provides acceptable accuracy if the fluid density is based upon the average of the inlet and outlet fluid conditions.
- If the pressure drop in a pipeline (Pin - Pout) is greater than 40% of the inlet pressure, the Darcy-Weisbach method will not give valid results.
NOTE: When checking the magnitude of the pressure drop (i.e. checking to see if the pressure drop is greater than 10% of the pipeline inlet pressure), you should compare it to 10% of the inlet pressure in absolute pressure units. For example, if the pipeline has an inlet pressure of 100 psig, you would first add the atmospheric pressure to this value (100 psig + 14.7 psia), then take 10% of 114.7 psia and compare that to the pipeline pressure drop.
Iterative Analysis Example - manual method
In this article we will be analyzing the example steam distribution system shown below in Figure 1. You can open the steam distribution system.pipe attachment at the bottom of this article in PIPE-FLO if you would like to work along yourself.

Figure 1: Steam Distribution System
The system has an inlet pressure of 150 psig and five subsystems to which it must provide the indicated flow rates. PIPE-FLO will be used to determine the system pressure losses from the main inlet to each subsystem inlet.
The lineup for the example steam distribution system consists of setting the pressure to 150 psig at the system inlet and setting the required subsystem flow demands at nodes A, B, C, D, and, E (the subsystem inlet nodes). This lineup will be used throughout the analysis. Since we will be adjusting the fluid pressure in each pipeline as the analysis proceeds, a fluid zone for each pipeline has been created. As a starting point we will assume constant fluid properties throughout the system, so the fluid properties for each fluid zone in the system are set as Steam at 500°F and 150 psig.
After the initial results are calculated, the nodal pressures are reviewed to determine which pipeline fluid pressures must be adjusted. If a pipeline pressure drop is < 10% of its inlet absolute pressure, the pipeline fluid zone pressure is set equal to the inlet gage pressure of the pipeline. If a pipeline pressure drop is between 10% to 40% of the pipeline inlet pressure, the fluid pressure is set equal to the average of the pipeline endpoint pressures. The table below shows the approximate calculated gage pressures at the nodes after the first calculation.
| INLET | A | B | C | D | E |
| 150 | 134 | 128 | 120 | 94 | 91 |
If you add the atmospheric pressure and calculate the 10% and 40% values, you will come up with the data in the table below:
| INLET | A | B | C | D | E | |
| 10% | 16.5 | 14.9 | 14.3 | 13.5 | 10.9 | 10.6 |
| 40% | 65.9 | 59.5 | 57.1 | 53.9 | 43.5 | 42.3 |
Now let's look at the differential pressures in the pipelines. The table below shows the pipeline dP's.
| PIPE 01 | PIPE 02 | PIPE 03 | PIPE 04 | PIPE 05 |
| 15.8 | 6.1 | 8.7 | 25.4 | 3.3 |
From this data, you can see that PIPE 04 is the only pipeline which has a dP (25.4 psi) greater than 10% of its absolute inlet pressure (10% @ node C = 13.4 psia). So the fluid zone pressure for PIPE 04 should be adjusted to the average of the inlet and outlet gage pressures. (119.4 psig + 94.0 psig)/2 = 106.7 psig. The rest of the pipeline fluid zone pressures should be set to their respective inlet pressures. The table below shows what the fluid zone pressures should be for each of the pipelines for the next iteration:
| PIPE 01 | PIPE 02 | PIPE 03 | PIPE 04 | PIPE 05 |
| 150 | 134 | 128 | 106.7 | 94 |
After the pipeline fluid properties are adjusted the lineup is run again and the pipeline pressures readjusted as necessary. This process is repeated until the pipeline pressure drops have stabilized, that is, until they do not change by a significant amount from one iteration to the next. Note that we will also want to watch for any pipelines that have pressure drops > 40% of their inlet pressures, since using the Darcy-Weisbach method in such cases does not give valid results.
Iterative Analysis Example - "X-Link" method
If you have Microsoft Excel, you can use the X-Link function in conjunction with PIPE-FLO to assist you in the iterative process. First, re-open the PIPE-FLO example without saving any of the changes you made. Then open the steam distribution system.xls attachment at the bottom of this article in Excel. This spreadsheet has been set up to load various data from the PIPE-FLO project including the atmospheric pressure, node pressures, pipeline dPs and fluid zone pressures. It calculates the absolute node pressures and compares them to the pipeline dPs. Finally, it checks the current fluid zone pressures, and if the calculations require that any of them need to be adjusted, it assigns a new fluid zone pressure. Note the "J" column indicates that the fluid zones were all set to 150 psig prior to the first iteration. The "K" column indicates the pressure that the fluid zones need to be adjusted to, and the "L" column performs the assignment. First, we have to program the assignment codes into the "L" column though.
In cell "L-6" type the following bolded code: =pfeassign(I6,"fluid.pressure",K6) Then, after you've entered this code, highlight cell "L-6" and drag it down to "L-10". This will fill the assignment codes for all the pipelines.
To perform the next iteration, simply click the read/write button
The article has been updated successfully.

