Skip to content

polykin.properties.diffusion¤

DVMX ¤

DVMX(x: FloatVectorLike, D: FloatVectorLike) -> float

Estimate the diffusion coefficient of a dilute component \(i\) in a homogeneous gas mixture.

\[ D_{im} = \sum_{j, j\neq i} x_j \left( \sum_{j, j\neq i} \frac{x_j}{D_{ij}} \right)^{-1} \]
PARAMETER DESCRIPTION
x

Mole fractions of all mixture components except \(i\). There is no need to (re)normalize the vector. Unit = mol/mol.

TYPE: FloatVectorLike

D

Binary diffusion coefficient of \(i\) in each mixture component \(j\). Unit = m²/s.

TYPE: FloatVectorLike

RETURNS DESCRIPTION
float

Pseudo-binary diffusion coefficient. Unit = m²/s.

Source code in src/polykin/properties/diffusion/vapor.py
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
def DVMX(x: FloatVectorLike, D: FloatVectorLike) -> float:
    r"""Estimate the diffusion coefficient of a dilute component $i$ in a
    homogeneous gas mixture.

    $$ D_{im} = \sum_{j, j\neq i} x_j \left( \sum_{j, j\neq i} \frac{x_j}{D_{ij}} \right)^{-1} $$

    Parameters
    ----------
    x : FloatVectorLike
        Mole fractions of all mixture components except $i$. There is no need
        to (re)normalize the vector. Unit = mol/mol.
    D : FloatVectorLike
        Binary diffusion coefficient of $i$ in each mixture component $j$.
        Unit = m²/s.

    Returns
    -------
    float
        Pseudo-binary diffusion coefficient. Unit = m²/s.
    """
    x = np.asarray(x)
    D = np.asarray(D)
    return np.sum(x)/np.sum(x/D)