FLOW_METER_DISCH

Overview

Calculate mass flow rate through a differential pressure flow meter based on measured pressures and meter geometry.

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)

Examples

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:

Result
0.0112

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:

Result
9.5262

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:

Result
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:

Result
7.0399

Python Code

import micropip
await micropip.install(["fluids"])
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, Venturi Nozzle, ISA 1932 Nozzle, Long Radius Nozzle, Machined Convergent Venturi Tube, Rough Welded Convergent Venturi Tube, As Cast Convergent Venturi Tube, Cone Meter, Wedge Meter. Default is 'ISO 5167 orifice'.

    Returns:
        float: Mass flow rate of fluid through the meter (kg/s)
    """
    if D <= 0:
        return "Error: D (upstream diameter) must be positive."
    if Do <= 0:
        return "Error: Do (meter diameter) must be positive."
    try:
        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)}"

Online Calculator