Skip to content

polykin.properties.diffusion¤

DL_Hayduk_Minhas ¤

DL_Hayduk_Minhas(
    T: float,
    method: Literal["paraffin", "aqueous"],
    MA: float,
    rhoA: float,
    viscB: float,
) -> float

Estimate the infinite-dilution coefficient of a solute A in a liquid solvent B, \(D^0_{AB}\), using the Hayduk-Minhas method.

References

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

Temperature. Unit = K.

TYPE: float

method

Method selection. Chose 'paraffin' for normal paraffin solutions and 'aqueous' for solutes in aqueous solutions.

TYPE: Literal['paraffin', 'aqueous']

MA

Molar mass of solute A. Unit = kg/mol.

TYPE: float

rhoA

Density of solute A at the normal boiling point. Unit = kg/m³.

TYPE: float

viscB

Viscostity of solvent B. Unit = Pa.s.

TYPE: float

RETURNS DESCRIPTION
float

Diffusion coefficient of A in B at infinite dilution. Unit = m²/s.

See also

Examples:

Estimate the diffusion coefficient of vinyl chloride through liquid water.

>>> from polykin.properties.diffusion import DL_Hayduk_Minhas
>>> D = DL_Hayduk_Minhas(
...     T=298.,           # temperature
...     method='aqueous', # equation for aqueous solutions
...     MA=62.5e-3,       # molar mass of vinyl chloride
...     rhoA=910.,        # density of vinyl chloride at the boiling point
...     viscB=0.89e-3     # viscosity of water at solution temperature
...     )
>>> print(f"{D:.2e} m²/s")
1.26e-09 m²/s
Source code in src/polykin/properties/diffusion/liquid.py
 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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
def DL_Hayduk_Minhas(T: float,
                     method: Literal['paraffin', 'aqueous'],
                     MA: float,
                     rhoA: float,
                     viscB: float,
                     ) -> float:
    r"""Estimate the infinite-dilution coefficient of a solute A in a liquid
    solvent B, $D^0_{AB}$, using the Hayduk-Minhas method.

    **References**

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

    Parameters
    ----------
    T : float
        Temperature. Unit = K.
    method : Literal['paraffin', 'aqueous']
        Method selection. Chose `'paraffin'` for normal paraffin solutions and
        `'aqueous'` for solutes in aqueous solutions.
    MA : float
        Molar mass of solute A. Unit = kg/mol.
    rhoA : float
        Density of solute A at the normal boiling point. Unit = kg/m³.
    viscB : float
        Viscostity of solvent B. Unit = Pa.s.

    Returns
    -------
    float
        Diffusion coefficient of A in B at infinite dilution. Unit = m²/s.

    See also
    --------
    * [`DL_Wilke_Chang`](DL_Wilke_Chang.md): alternative method.

    Examples
    --------
    Estimate the diffusion coefficient of vinyl chloride through liquid water.

    >>> from polykin.properties.diffusion import DL_Hayduk_Minhas
    >>> D = DL_Hayduk_Minhas(
    ...     T=298.,           # temperature
    ...     method='aqueous', # equation for aqueous solutions
    ...     MA=62.5e-3,       # molar mass of vinyl chloride
    ...     rhoA=910.,        # density of vinyl chloride at the boiling point
    ...     viscB=0.89e-3     # viscosity of water at solution temperature
    ...     )
    >>> print(f"{D:.2e} m²/s")
    1.26e-09 m²/s
    """
    VA = 1e6*MA/rhoA

    if method == 'paraffin':
        epsilon = 10.2/VA - 0.791
        DAB0 = 13.3e-12*T**1.47*(viscB*1e3)**epsilon/VA**0.71
    elif method == 'aqueous':
        epsilon = 9.58/VA - 1.12
        DAB0 = 1.25e-12*(VA**-0.19 - 0.292)*T**1.52*(viscB*1e3)**epsilon
    else:
        raise ValueError(f"Invalid `method` input: {method}")

    return DAB0