Skip to content

polykin.properties.pvt¤

VL_Rackett ¤

VL_Rackett(
    T: float,
    Tc: float,
    Pc: float,
    ZRA: float | None = None,
    w: float | None = None,
) -> float

Calculate the saturated liquid molar volume of a pure component using the Rackett equation.

\[ v^L = \frac{R T_c}{P_c} Z_{RA}^{1 + (1-T_r)^{2/7}} \]

where \(T_c\) is the critical temperature, \(P_c\) is the critical pressure, \(T_r=T/T_c\) is the reduced temperature, and \(Z_{RA}\) is the Rackett compressibility factor.

References

  • RC Reid, JM Prausniz, and BE Poling. The properties of gases & liquids 4th edition, 1986, p. 67.
PARAMETER DESCRIPTION
T

Temperature (K).

TYPE: float

Tc

Critical temperature (K).

TYPE: float

Pc

Critical pressure (Pa).

TYPE: float

ZRA

Rackett compressibility factor. If provided, it will be used.

TYPE: float | None DEFAULT: None

w

Acentric factor. If provided, it will be used to estimate ZRA.

TYPE: float | None DEFAULT: None

RETURNS DESCRIPTION
float

Saturated liquid molar volume (m³/mol).

Examples:

Estimate the molar saturated liquid volume of butadiene at 350 K.

>>> from polykin.properties.pvt import VL_Rackett
>>> vL = VL_Rackett(350.0, 425.0, 43.3e5, w=0.195)
>>> print(f"{vL:.2e} m³/mol")
1.01e-04 m³/mol
Source code in src/polykin/properties/pvt/volume.py
 8
 9
10
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
def VL_Rackett(
    T: float,
    Tc: float,
    Pc: float,
    ZRA: float | None = None,
    w: float | None = None
) -> float:
    r"""Calculate the saturated liquid molar volume of a pure component using
    the Rackett equation.

    $$ v^L = \frac{R T_c}{P_c} Z_{RA}^{1 + (1-T_r)^{2/7}} $$

    where $T_c$ is the critical temperature, $P_c$ is the critical pressure,
    $T_r=T/T_c$ is the reduced temperature, and $Z_{RA}$ is the Rackett
    compressibility factor.

    **References**

    *   RC Reid, JM Prausniz, and BE Poling. The properties of gases & liquids
        4th edition, 1986, p. 67.

    Parameters
    ----------
    T : float
       Temperature (K).
    Tc : float
        Critical temperature (K).
    Pc : float
        Critical pressure (Pa).
    ZRA : float | None
        Rackett compressibility factor. If provided, it will be used. 
    w : float | None
        Acentric factor. If provided, it will be used to estimate `ZRA`.

    Returns
    -------
    float
        Saturated liquid molar volume (m³/mol).

    Examples
    --------
    Estimate the molar saturated liquid volume of butadiene at 350 K.
    >>> from polykin.properties.pvt import VL_Rackett
    >>> vL = VL_Rackett(350.0, 425.0, 43.3e5, w=0.195)
    >>> print(f"{vL:.2e} m³/mol")
    1.01e-04 m³/mol
    """
    if (ZRA is None) == (w is None):
        raise ValueError("Provide exactly one of `ZRA` or `w`.")

    if ZRA is None and w is not None:
        ZRA = 0.29056 - 0.08775*w

    Tr = T/Tc
    return (R*Tc/Pc)*ZRA**(1 + (1 - Tr)**(2/7))