# Safety/relief valve sizing (fluids.safety_valve)¶

fluids.safety_valve.API520_round_size(A)[source]

Rounds up the area from an API 520 calculation to an API526 standard valve area. The returned area is always larger or equal to the input area.

Parameters: A : float Minimum discharge area [m^2] area : float Actual discharge area [m^2]

Notes

To obtain the letter designation of an input area, lookup the area with the following:

API526_letters[API526_A.index(area)]

An exception is raised if the required relief area is larger than any of the API 526 sizes.

References

 [R965974] (1, 2) API Standard 526.

Examples

From [R965974], checked with many points on Table 8.

>>> API520_round_size(1E-4)
0.00012645136
>>> API526_letters[API526_A.index(API520_round_size(1E-4))]
'E'
fluids.safety_valve.API520_C(k)[source]

Calculates coefficient C for use in API 520 critical flow relief valve sizing.

$C = 0.03948\sqrt{k\left(\frac{2}{k+1}\right)^\frac{k+1}{k-1}}$
Parameters: k : float Isentropic coefficient or ideal gas heat capacity ratio [-] C : float Coefficient C [-]

Notes

If C cannot be established, assume a coefficient of 0.0239, the highest value possible for C.

Although not dimensional, C varies with the units used.

If k is exactly equal to 1, the expression is undefined, and the formula must be simplified as follows from an application of L’Hopital’s rule.

$C = 0.03948\sqrt{\frac{1}{e}}$

References

 [R966975] (1, 2) API Standard 520, Part 1 - Sizing and Selection.

Examples

From [R966975], checked with many points on Table 8.

>>> API520_C(1.35)
0.02669419967057233
fluids.safety_valve.API520_F2(k, P1, P2)[source]

Calculates coefficient F2 for subcritical flow for use in API 520 subcritical flow relief valve sizing.

\begin{align}\begin{aligned}F_2 = \sqrt{\left(\frac{k}{k-1}\right)r^\frac{2}{k} \left[\frac{1-r^\frac{k-1}{k}}{1-r}\right]}\\r = \frac{P_2}{P_1}\end{aligned}\end{align}
Parameters: k : float Isentropic coefficient or ideal gas heat capacity ratio [-] P1 : float Upstream relieving pressure; the set pressure plus the allowable overpressure, plus atmospheric pressure, [Pa] P2 : float Built-up backpressure; the increase in pressure during flow at the outlet of a pressure-relief device after it opens, [Pa] F2 : float Subcritical flow coefficient F2 [-]

Notes

F2 is completely dimensionless.

References

 [R967976] (1, 2) API Standard 520, Part 1 - Sizing and Selection.

Examples

From [R967976] example 2, matches.

>>> API520_F2(1.8, 1E6, 7E5)
0.8600724121105563
fluids.safety_valve.API520_Kv(Re)[source]

Calculates correction due to viscosity for liquid flow for use in API 520 relief valve sizing.

$K_v = \left(0.9935 + \frac{2.878}{Re^{0.5}} + \frac{342.75} {Re^{1.5}}\right)^{-1}$
Parameters: Re : float Reynolds number for flow out the valve [-] Kv : float Correction due to viscosity [-]

Notes

Reynolds number in the standard is defined as follows, with Q in L/min, G1 as specific gravity, mu in centipoise, and area in mm^2:

$Re = \frac{Q(18800G_1)}{\mu \sqrt{A}}$

It is unclear how this expression was derived with a constant of 18800; the following code demonstrates what the constant should be:

>>> from scipy.constants import *
>>> liter/minute*1000./(0.001*(milli**2)**0.5)
16666.666666666668

References

 [R968977] (1, 2) API Standard 520, Part 1 - Sizing and Selection.

Examples

From [R968977], checked with example 5.

>>> API520_Kv(100)
0.6157445891444229
fluids.safety_valve.API520_N(P1)[source]

Calculates correction due to steam pressure for steam flow for use in API 520 relief valve sizing.

$K_N = \frac{0.02764P_1-1000}{0.03324P_1-1061}$
Parameters: P1 : float Upstream relieving pressure; the set pressure plus the allowable overpressure, plus atmospheric pressure, [Pa] KN : float Correction due to steam temperature [-]

Notes

Although not dimensional, KN varies with the units used.

For temperatures above 922 K or 22057 kPa, KN is not defined.

Internally, units of kPa are used to match the equation in the standard.

References

 [R969978] API Standard 520, Part 1 - Sizing and Selection.

Examples

Custom example:

>>> API520_N(1774700)
0.9490406958152466
fluids.safety_valve.API520_SH(T1, P1)[source]

Calculates correction due to steam superheat for steam flow for use in API 520 relief valve sizing. 2D interpolation among a table with 28 pressures and 10 temperatures is performed.

Parameters: T1 : float Temperature of the fluid entering the valve [K] P1 : float Upstream relieving pressure; the set pressure plus the allowable overpressure, plus atmospheric pressure, [Pa] KSH : float Correction due to steam superheat [-]

Notes

For P above 20679 kPag, use the critical flow model. Superheat cannot be above 649 degrees Celcius. If T1 is above 149 degrees Celcius, returns 1.

References

 [R970979] API Standard 520, Part 1 - Sizing and Selection.

Examples

Custom example from table 9:

>>> API520_SH(593+273.15, 1066.325E3)
0.7201800000000002
fluids.safety_valve.API520_B(Pset, Pback, overpressure=0.1)[source]

Calculates capacity correction due to backpressure on balanced spring-loaded PRVs in vapor service. For pilot operated valves, this is always 1. Applicable up to 50% of the percent gauge backpressure, For use in API 520 relief valve sizing. 1D interpolation among a table with 53 backpressures is performed.

Parameters: Pset : float Set pressure for relief [Pa] Pback : float Backpressure, [Pa] overpressure : float, optional The maximum fraction overpressure; one of 0.1, 0.16, or 0.21, [] Kb : float Correction due to vapor backpressure [-]

Notes

If the calculated gauge backpressure is less than 30%, 38%, or 50% for overpressures of 0.1, 0.16, or 0.21, a value of 1 is returned.

Percent gauge backpressure must be under 50%.

References

 [R971980] API Standard 520, Part 1 - Sizing and Selection.

Examples

Custom examples from figure 30:

>>> API520_B(1E6, 5E5)
0.7929945420944432
fluids.safety_valve.API520_W(Pset, Pback)[source]

Calculates capacity correction due to backpressure on balanced spring-loaded PRVs in liquid service. For pilot operated valves, this is always 1. Applicable up to 50% of the percent gauge backpressure, For use in API 520 relief valve sizing. 1D interpolation among a table with 53 backpressures is performed.

Parameters: Pset : float Set pressure for relief [Pa] Pback : float Backpressure, [Pa] KW : float Correction due to liquid backpressure [-]

Notes

If the calculated gauge backpressure is less than 15%, a value of 1 is returned.

References

 [R972981] API Standard 520, Part 1 - Sizing and Selection.

Examples

Custom example from figure 31:

>>> API520_W(1E6, 3E5) # 22% overpressure
0.9511471848008564
fluids.safety_valve.API520_A_g(m, T, Z, MW, k, P1, P2=101325, Kd=0.975, Kb=1, Kc=1)[source]

Calculates required relief valve area for an API 520 valve passing a gas or a vapor, at either critical or sub-critical flow.

For Critical flow:

$A = \frac{m}{CK_dP_1K_bK_c}\sqrt{\frac{TZ}{M}}$

For sub-critical flow:

$A = \frac{17.9m}{F_2K_dK_c}\sqrt{\frac{TZ}{MP_1(P_1-P_2)}}$
Parameters: m : float Mass flow rate of vapor through the valve, [kg/s] T : float Temperature of vapor entering the valve, [K] Z : float Compressibility factor of the vapor, [-] MW : float Molecular weight of the vapor, [g/mol] k : float Isentropic coefficient or ideal gas heat capacity ratio [-] P1 : float Upstream relieving pressure; the set pressure plus the allowable overpressure, plus atmospheric pressure, [Pa] P2 : float, optional Built-up backpressure; the increase in pressure during flow at the outlet of a pressure-relief device after it opens, [Pa] Kd : float, optional The effective coefficient of discharge, from the manufacturer or for preliminary sizing, using 0.975 normally or 0.62 when used with a rupture disc as described in [R973982], [] Kb : float, optional Correction due to vapor backpressure [-] Kc : float, optional Combination correction factor for installation with a ruture disk upstream of the PRV, [] A : float Minimum area for relief valve according to [R973982], [m^2]

Notes

Units are interlally kg/hr, kPa, and mm^2 to match [R973982].

References

 [R973982] (1, 2, 3, 4, 5, 6) API Standard 520, Part 1 - Sizing and Selection.

Examples

Example 1 from [R973982] for critical flow, matches:

>>> API520_A_g(m=24270/3600., T=348., Z=0.90, MW=51., k=1.11, P1=670E3, Kb=1, Kc=1)
0.0036990460646834414

Example 2 from [R973982] for sub-critical flow, matches:

>>> API520_A_g(m=24270/3600., T=348., Z=0.90, MW=51., k=1.11, P1=670E3, P2=532E3, Kd=0.975, Kb=1, Kc=1)
0.004248358775943481
fluids.safety_valve.API520_A_steam(m, T, P1, Kd=0.975, Kb=1, Kc=1)[source]

Calculates required relief valve area for an API 520 valve passing a steam, at either saturation or superheat but not partially condensed.

$A = \frac{190.5m}{P_1 K_d K_b K_c K_N K_{SH}}$
Parameters: m : float Mass flow rate of steam through the valve, [kg/s] T : float Temperature of steam entering the valve, [K] P1 : float Upstream relieving pressure; the set pressure plus the allowable overpressure, plus atmospheric pressure, [Pa] Kd : float, optional The effective coefficient of discharge, from the manufacturer or for preliminary sizing, using 0.975 normally or 0.62 when used with a rupture disc as described in [R974983], [] Kb : float, optional Correction due to vapor backpressure [-] Kc : float, optional Combination correction factor for installation with a rupture disk upstream of the PRV, [] A : float Minimum area for relief valve according to [R974983], [m^2]

Notes

Units are interlally kg/hr, kPa, and mm^2 to match [R974983]. With the provided temperature and pressure, the KN coefficient is calculated with the function API520_N; as is the superheat correction KSH, with the function API520_SH.

References

 [R974983] (1, 2, 3, 4, 5) API Standard 520, Part 1 - Sizing and Selection.

Examples

Example 4 from [R974983], matches:

>>> API520_A_steam(m=69615/3600., T=592.5, P1=12236E3, Kd=0.975, Kb=1, Kc=1)
0.0011034712423692733