UNIQUAC
UNIQUAC (universal quasichemical) Excess Gibbs free energy model.
\[\frac{G^E}{RT} = \sum_k n_k \ln\frac{\phi_k}{x_k}
+ \frac{z}{2}\sum_k q_k n_k \ln\frac{\theta_k}{\phi_k}
- \sum_k q_k n_k \ln\left(\sum_l \theta_l \tau_{lk} \right)\]
With:
\[x_k = \frac{n_k}{\sum_l n_l}\]
\[\phi_k = \frac{r_k n_k}{\sum_l r_l n_l}\]
\[\theta_k = \frac{q_k n_k}{\sum_l q_l n_l}\]
\[\tau_{lk} = \exp \left[\frac{-\Delta U_{lk}}{R T} \right]\]
\[\frac{-\Delta U_{lk}}{R T} = a_{lk}+\frac{b_{lk}}{T}+c_{lk}\ln T + d_{lk}T +
e_{lk}{T^2}\]
An example of having a mixture of Water-Ethanol-Bezene at 298.15 K with constant \(\frac{\Delta U}{R}\) [K]:
Water |
Ethanol |
Benzene |
|---|---|---|
0 |
526.02 |
309.64 |
−318.06 |
0 |
−91.532 |
1325.1 |
302.57 |
0 |
[1]:
import yaeos
import numpy as np
rs = [0.92, 2.1055, 3.1878]
qs = [1.4, 1.972, 2.4]
# Calculate bij from DUij. We need -DU/R to get bij
bij = [
[0.0, -526.02, -309.64],
[318.06, 0.0, 91.532],
[-1325.1, -302.57, 0.0],
]
model = yaeos.UNIQUAC(qs, rs, bij=bij)
n = [2.0, 2.0, 8.0] # number of moles [mol]
T = 298.15 # Temperature [K]
model.ln_gamma(n, T)
[1]:
array([ 2.18109416, -0.15137624, 0.35449467])
The complete docstring of the UNIQUAC model is the following:
Init signature: yaeos.UNIQUAC(qs, rs, aij=None, bij=None, cij=None, dij=None, eij=None) -> None
Docstring:
UNIQUAC (UNIversal QUAsiChemical) Excess Gibbs free energy model.
Please refer to the `yaeos` user documentation for an in-depth look at the
model's information: https://ipqa-research.github.io/yaeos/page/index.html
Parameters
----------
qs : array_like
Molecule's relative areas :math:`Q_i`
rs : array_like
Molecule's relative volumes :math:`R_i`
aij : array_like
Interaction parameters matrix :math:`a_{ij}` zero matrix if no
provided, by default None
bij : array_like
Interaction parameters matrix :math:`b_{ij}` zero matrix if no
provided, by default None
cij : array_like
Interaction parameters matrix :math:`c_{ij}` zero matrix if no
provided, by default None
dij : array_like
Interaction parameters matrix :math:`d_{ij}` zero matrix if no
provided, by default None
eij : array_like
Interaction parameters matrix :math:`e_{ij}` zero matrix if no
provided, by default None