Skip to content

polykin.flow.prv¤

area_relief_2phase_subcooled ¤

area_relief_2phase_subcooled(
    Q: float,
    P1: float,
    P2: float,
    Ps: float,
    rho1: float,
    rho9: float,
    Kd: float = 0.65,
    Kb: float = 1.0,
    Kc: float = 1.0,
    Kv: float = 1.0,
) -> PRVResult

Calculate the required effective discharge area of a pressure relief device for subcooled liquid flow using the omega method.

The calculation is done according to the API standard 520, Appendix C.2.3.

This method can also be used for liquids that are saturated as they enter the relief device, but no condensable vapor or noncondensable gas should be present at the inlet.

References

  • Sizing, Selection, and Installation of Pressure-relieving Devices in Refineries: Part I—Sizing and Selection, API Standard 520, 10th ed., 2020.
PARAMETER DESCRIPTION
Q

Required relieving volume flow rate (L/min).

TYPE: float

P1

Upstream relieving pressure, absolute (bara).

TYPE: float

P2

Downstream back pressure, absolute (bara).

TYPE: float

Ps

Saturation (bubble) pressure at upstream relieving temperature (bara).

TYPE: float

rho1

Liquid density at upstream relieving conditions (m³/kg).

TYPE: float

rho9

Overall density evaluated at 90% of the saturation pressure Ps (m³/kg). The flash calculation should be carried out isentropically, but an isenthalpic (adiabatic) flash is sufficient for low-vapor-content mixtures far from the thermodynamic critical point.

TYPE: float

Kd

Effective discharge coefficient. For a preliminary size estimation, use Kd=0.65 for subcooled liquids, and Kd=0.85 for saturated liquids.

TYPE: float DEFAULT: 0.65

Kb

Backpressure correction factor for balanced bellows valves. The value can be obtained from the manufacturer or estimated with the help of Figure C.3 of the API standard 520.

TYPE: float DEFAULT: 1.0

Kc

Combination correction factor for installations with a rupture disk upstream of the PRV. Use Kc=1.0 if there is no rupture disk, and Kc=0.9 if there is a rupture disk.

TYPE: float DEFAULT: 1.0

Kv

Viscosity correction factor. Use Kv=1.0 if the liquid phase has a viscosity less or equal than 0.1 Pa·s.

TYPE: float DEFAULT: 1.0

RETURNS DESCRIPTION
PRVResult

Dataclass containing the results of the calculation.

Examples:

Estimate the required discharge area of a pressure relief device handling a subcooled liquid, according to the API standard 520. The required flow is 378.5 L/min, the upstream relieving pressure is 20.733 bara, the downstream back pressure is 1.703 bara, the saturation pressure at the relieving temperature is 7.419 bara, the density of the liquid is 511.3 kg/m³ and the density of the two-phase mixture evaluated at 90% of the saturation pressure is 262.7 kg/m³.

>>> from polykin.flow import area_relief_2phase_subcooled
>>> area_relief_2phase_subcooled(Q=378.5, P1=20.733, P2=1.703, Ps=7.419, 
...                              rho1=511.3, rho9=262.7)
PRVResult(Pcf=nan bara, critical_flow=True, A=1.35e+02 mm²)
Source code in src/polykin/flow/prv.py
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
def area_relief_2phase_subcooled(Q: float,
                                 P1: float,
                                 P2: float,
                                 Ps: float,
                                 rho1: float,
                                 rho9: float,
                                 Kd: float = 0.65,
                                 Kb: float = 1.0,
                                 Kc: float = 1.0,
                                 Kv: float = 1.0
                                 ) -> PRVResult:
    r"""Calculate the required effective discharge area of a pressure relief
    device for subcooled liquid flow using the omega method.

    The calculation is done according to the API standard 520, Appendix C.2.3.

    This method can also be used for liquids that are saturated as they enter
    the relief device, but no condensable vapor or noncondensable gas should be
    present at the inlet.

    **References**

    * Sizing, Selection, and Installation of Pressure-relieving Devices in
      Refineries: Part I—Sizing and Selection, API Standard 520, 10th ed., 2020.

    Parameters
    ----------
    Q : float
        Required relieving volume flow rate (L/min).
    P1 : float
        Upstream relieving pressure, absolute (bara).
    P2 : float
        Downstream back pressure, absolute (bara).
    Ps : float
        Saturation (bubble) pressure at upstream relieving temperature (bara).
    rho1 : float
        Liquid density at upstream relieving conditions (m³/kg).
    rho9 : float
        Overall density evaluated at 90% of the saturation pressure `Ps` (m³/kg). 
        The flash calculation should be carried out isentropically, but an 
        isenthalpic (adiabatic) flash is sufficient for low-vapor-content mixtures
        far from the thermodynamic critical point.
    Kd : float
        Effective discharge coefficient. For a preliminary size estimation, use
        `Kd=0.65` for subcooled liquids, and `Kd=0.85` for saturated liquids.
    Kb : float
        Backpressure correction factor for balanced bellows valves. The value
        can be obtained from the manufacturer or estimated with the help of 
        Figure C.3 of the API standard 520.
    Kc : float
        Combination correction factor for installations with a rupture disk
        upstream of the PRV. Use `Kc=1.0` if there is no rupture disk, and
        `Kc=0.9` if there is a rupture disk.
    Kv : float
        Viscosity correction factor. Use `Kv=1.0` if the liquid phase has a
        viscosity less or equal than 0.1 Pa·s.

    Returns
    -------
    PRVResult
        Dataclass containing the results of the calculation.

    Examples
    --------
    Estimate the required discharge area of a pressure relief device handling a
    subcooled liquid, according to the API standard 520. The required flow is
    378.5 L/min, the upstream relieving pressure is 20.733 bara, the downstream
    back pressure is 1.703 bara, the saturation pressure at the relieving 
    temperature is 7.419 bara, the density of the liquid is 511.3 kg/m³ and the
    density of the two-phase mixture evaluated at 90% of the saturation pressure
    is 262.7 kg/m³.
    >>> from polykin.flow import area_relief_2phase_subcooled
    >>> area_relief_2phase_subcooled(Q=378.5, P1=20.733, P2=1.703, Ps=7.419, 
    ...                              rho1=511.3, rho9=262.7)
    PRVResult(Pcf=nan bara, critical_flow=True, A=1.35e+02 mm²)
    """

    # Convert pressures from bar to Pa
    P1 *= 1e5
    P2 *= 1e5
    Ps *= 1e5

    # Omega parameter for saturated liquid
    ws = 9*(rho1/rho9 - 1)

    # Transition saturation pressure ratio
    ηst = 2*ws/(1 + 2*ws)

    # High/low subcooling region
    ηs = Ps/P1
    ηa = P2/P1
    high_subcooling = (ηs < ηst)

    # Mass flux (kg/s.m²)
    if high_subcooling:
        critical_flow = (P2 <= Ps)
        P = Ps if critical_flow else P2
        Pcf = nan
        G = 1.414*sqrt(rho1*(P1 - P))
    else:
        ηc_ = ηs*(2*ws/(2*ws - 1))*(1 - sqrt(1 - 1/ηs*((2*ws - 1)/(2*ws))))
        ηc = ηc_ if ηs > ηst else ηs
        Pcf = P1 * ηc
        critical_flow = (P2 <= Pcf)
        η = ηc if critical_flow else ηa
        G = sqrt(2*(1 - ηs) + 2*(ws*ηs*log(ηs/η) - (ws - 1)*(ηs - η))) * \
            sqrt(P1*rho1)/(ws*(ηs/η - 1) + 1)

    # Area (mm²)
    A = 16.67*Q*rho1/(Kd*Kb*Kc*Kv*G)

    return PRVResult(Pcf/1e5, critical_flow, A)