FLOW_METER_DISCH
This function calculates mass flow rate through a differential-pressure flow meter from geometry, pressure readings, fluid density, and calibration factors. It supports multiple meter types by using the wrapped library’s meter-specific beta-ratio definition.
The governing form is:
m = \left(\frac{\pi (D\beta)^2}{4}\right) C\,\epsilon\,\frac{\sqrt{2\rho(P_1-P_2)}}{\sqrt{1-\beta^4}}
where C is discharge coefficient and \epsilon is expansibility factor. For incompressible flow, \epsilon is typically close to 1.
Excel Usage
=FLOW_METER_DISCH(D, Do, P_one, P_two, rho, C, expansibility, disch_meter_type)
D(float, required): Upstream internal pipe diameter (m)Do(float, required): Meter characteristic diameter - orifice hole, venturi throat, cone end, or wedge height (m)P_one(float, required): Static pressure upstream at pressure tap (Pa)P_two(float, required): Static pressure downstream at pressure tap (Pa)rho(float, required): Density of fluid at P1 (kg/m³)C(float, required): Coefficient of discharge of the meter (-)expansibility(float, optional, default: 1): Expansibility factor (1 for incompressible, <1 for compressible) (-)disch_meter_type(str, optional, default: “ISO 5167 orifice”): Type of differential pressure flow meter
Returns (float): Mass flow rate of fluid through the meter (kg/s)
Example 1: ISO 5167 orifice with air
Inputs:
| D | Do | P_one | P_two | rho | C | expansibility | disch_meter_type |
|---|---|---|---|---|---|---|---|
| 0.0739 | 0.0222 | 100000 | 99000 | 1.1646 | 0.5988 | 0.9975 | ISO 5167 orifice |
Excel formula:
=FLOW_METER_DISCH(0.0739, 0.0222, 100000, 99000, 1.1646, 0.5988, 0.9975, "ISO 5167 orifice")
Expected output:
0.0112039
Example 2: Machined venturi with water
Inputs:
| D | Do | P_one | P_two | rho | C | expansibility | disch_meter_type |
|---|---|---|---|---|---|---|---|
| 0.1 | 0.06 | 150000 | 145000 | 998 | 0.995 | 1 | machined convergent venturi tube |
Excel formula:
=FLOW_METER_DISCH(0.1, 0.06, 150000, 145000, 998, 0.995, 1, "machined convergent venturi tube")
Expected output:
9.52624
Example 3: Cone meter with oil
Inputs:
| D | Do | P_one | P_two | rho | C | disch_meter_type |
|---|---|---|---|---|---|---|
| 0.2 | 0.15 | 300000 | 290000 | 850 | 0.82 | cone meter |
Excel formula:
=FLOW_METER_DISCH(0.2, 0.15, 300000, 290000, 850, 0.82, "cone meter")
Expected output:
51.6774
Example 4: Wedge meter
Inputs:
| D | Do | P_one | P_two | rho | C | disch_meter_type |
|---|---|---|---|---|---|---|
| 0.15 | 0.05 | 100000 | 98000 | 800 | 0.73 | wedge meter |
Excel formula:
=FLOW_METER_DISCH(0.15, 0.05, 100000, 98000, 800, 0.73, "wedge meter")
Expected output:
7.03989
Python Code
Show Code
from fluids.flow_meter import flow_meter_discharge
def flow_meter_disch(D, Do, P_one, P_two, rho, C, expansibility=1, disch_meter_type='ISO 5167 orifice'):
"""
Calculate mass flow rate through a differential pressure flow meter based on measured pressures and meter geometry.
See: https://fluids.readthedocs.io/fluids.flow_meter.html#fluids.flow_meter.flow_meter_discharge
This example function is provided as-is without any representation of accuracy.
Args:
D (float): Upstream internal pipe diameter (m)
Do (float): Meter characteristic diameter - orifice hole, venturi throat, cone end, or wedge height (m)
P_one (float): Static pressure upstream at pressure tap (Pa)
P_two (float): Static pressure downstream at pressure tap (Pa)
rho (float): Density of fluid at P1 (kg/m³)
C (float): Coefficient of discharge of the meter (-)
expansibility (float, optional): Expansibility factor (1 for incompressible, <1 for compressible) (-) Default is 1.
disch_meter_type (str, optional): Type of differential pressure flow meter Valid options: ISO 5167 Orifice, Orifice, Conical Orifice, Eccentric Orifice, Segmental Orifice, Quarter Circle Orifice, ISO 15377 Conical Orifice, ISO 15377 Eccentric Orifice, ISO 15377 Quarter-circle Orifice, Miller Orifice, Miller Conical Orifice, Miller Eccentric Orifice, Miller Segmental Orifice, Miller Quarter Circle Orifice, Hollingshead Orifice, Venturi Nozzle, ISA 1932 Nozzle, Long Radius Nozzle, Machined Convergent Venturi Tube, Rough Welded Convergent Venturi Tube, As Cast Convergent Venturi Tube, Hollingshead Venturi Smooth, Hollingshead Venturi Sharp, Cone Meter, Hollingshead V Cone, Wedge Meter, Hollingshead Wedge, Unspecified Meter. Default is 'ISO 5167 orifice'.
Returns:
float: Mass flow rate of fluid through the meter (kg/s)
"""
try:
if D <= 0:
return "Error: D (upstream diameter) must be positive."
if Do <= 0:
return "Error: Do (meter diameter) must be positive."
result = flow_meter_discharge(
D=D,
Do=Do,
P1=P_one,
P2=P_two,
rho=rho,
C=C,
expansibility=expansibility,
meter_type=disch_meter_type
)
return float(result)
except Exception as e:
return f"Error: {str(e)}"