polykin.flow.prv¤
area_relief_gas ¤
area_relief_gas(
W: float,
P1: float,
P2: float,
T: float,
k: float,
M: float,
Z: float = 1.0,
steam: bool = False,
Kd: float = 0.975,
Kb: float = 1.0,
Kc: float = 1.0,
KSH: float = 1.0,
) -> dict
Calculate the required effective discharge area of a pressure relief device in gas (or vapor) or steam service.
The calculation is done according to the API standard 520.
References
- Sizing, Selection, and Installation of Pressure-relieving Devices in Refineries: Part I—Sizing and Selection, API Standard 520, 8th ed., 2008.
PARAMETER | DESCRIPTION |
---|---|
W
|
Required relieving mass flow rate (kg/h).
TYPE:
|
P1
|
Relieving pressure, absolute (bara).
TYPE:
|
P2
|
Back pressure, absolute (bara).
TYPE:
|
T
|
Absolute relieving temperature of the gas at the valve inlet (K).
TYPE:
|
k
|
Ideal gas specific heat ratio at relieving temperature.
TYPE:
|
M
|
Molar mass of gas (g/mol).
TYPE:
|
Z
|
Compressibility factor of the gas at relieving pressure and temperature.
If a calculated value is not available, use
TYPE:
|
steam
|
Flag for steam service. A special calculation is used for devices in steam service that operate at critical (sonic) flow conditions.
TYPE:
|
Kd
|
Effective discharge coefficient. Use
TYPE:
|
Kb
|
Backpressure correction factor for balanced bellows valves.
TYPE:
|
Kc
|
Combination correction factor for installations with a rupture disk
upstream of the PRV. Use
TYPE:
|
KSH
|
Steam superheat correction factor, equal to 1.0 for saturated steam.
TYPE:
|
RETURNS | DESCRIPTION |
---|---|
dict
|
Dictionary of results, including the critical flow nozzle pressure
|
Examples:
Estimate the required discharge area of a pressure relief valve in gas service, using the API standard 520. The required flow is 24270 kg/h, the relieving pressure is 6.7 bara, the back pressure is 0 barg, the relieving temperature is 348 K, the gas specific heat ratio is 1.11, the gas molar mass is 51 g/mol, and the compressibility factor is 0.9.
>>> from polykin.flow import area_relief_gas
>>> res = area_relief_gas(W=24270, P1=6.7, P2=1.01325,
... T=348, k=1.11, M=51, Z=0.9)
>>> print(f"Effective discharge area: {res['A']:.0f} mm²")
Effective discharge area: 3699 mm²
Source code in src/polykin/flow/prv.py
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
|