Skip to content

polykin.properties.viscosity¤

MUVMX2_Herning_Zipperer ¤

MUVMX2_Herning_Zipperer(
    y: FloatVectorLike,
    mu: FloatVectorLike,
    M: FloatVectorLike,
) -> float

Calculate the viscosity of a gas mixture from the viscosities of the pure components using the mixing rule of Wilke with the approximation of Herning and Zipperer.

\[ \mu_m = \frac{\displaystyle \sum_{i=1}^N y_i M_i^{1/2} \mu_i} {\displaystyle \sum_{i=1}^N y_i M_i^{1/2}} \]

Note

In this equation, the units of mole fraction \(y_i\) and molar mass \(M_i\) are arbitrary, as they cancel out when considering the ratio of the numerator to the denominator.

References

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

Mole fractions of all components. Unit = Any.

TYPE: FloatVectorLike

mu

Viscosities of all components, \(\mu\). Unit = Any.

TYPE: FloatVectorLike

M

Molar masses of all components. Unit = Any.

TYPE: FloatVectorLike

RETURNS DESCRIPTION
float

Mixture viscosity, \(\mu_m\). Unit = [mu].

Examples:

Estimate the viscosity of a 50 mol% ethylene/1-butene gas mixture at 120°C and 1 bar.

>>> from polykin.properties.viscosity import MUVMX2_Herning_Zipperer
>>> y = [0.5, 0.5]
>>> mu = [130e-7, 100e-7] # Pa.s, from literature
>>> M = [28.e-3, 56.e-3]  # kg/mol
>>> mu_mix = MUVMX2_Herning_Zipperer(y, mu, M)
>>> print(f"{mu_mix:.2e} Pa·s")
1.12e-05 Pa·s
Source code in src/polykin/properties/viscosity/vapor.py
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
def MUVMX2_Herning_Zipperer(y: FloatVectorLike,
                            mu: FloatVectorLike,
                            M: FloatVectorLike
                            ) -> float:
    r"""Calculate the viscosity of a gas mixture from the viscosities of the
    pure components using the mixing rule of Wilke with the approximation of
    Herning and Zipperer.

    $$ \mu_m = \frac{\displaystyle \sum_{i=1}^N y_i M_i^{1/2} \mu_i}
                    {\displaystyle \sum_{i=1}^N y_i M_i^{1/2}} $$

    !!! note

        In this equation, the units of mole fraction $y_i$ and molar mass
        $M_i$ are arbitrary, as they cancel out when considering the ratio of
        the numerator to the denominator.

    **References**

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

    Parameters
    ----------
    y : FloatVectorLike
        Mole fractions of all components. Unit = Any.
    mu : FloatVectorLike
        Viscosities of all components, $\mu$. Unit = Any.
    M : FloatVectorLike
        Molar masses of all components. Unit = Any.

    Returns
    -------
    float
        Mixture viscosity, $\mu_m$. Unit = [mu].

    Examples
    --------
    Estimate the viscosity of a 50 mol% ethylene/1-butene gas mixture at 120°C
    and 1 bar.
    >>> from polykin.properties.viscosity import MUVMX2_Herning_Zipperer
    >>> y = [0.5, 0.5]
    >>> mu = [130e-7, 100e-7] # Pa.s, from literature
    >>> M = [28.e-3, 56.e-3]  # kg/mol
    >>> mu_mix = MUVMX2_Herning_Zipperer(y, mu, M)
    >>> print(f"{mu_mix:.2e} Pa·s")
    1.12e-05 Pa·s
    """
    y = np.asarray(y)
    mu = np.asarray(mu)
    M = np.asarray(M)

    a = y*sqrt(M)
    a /= a.sum()
    return dot(a, mu)