lib.EoS.Grayson_Streed module

class lib.EoS.Grayson_Streed.Grayson_Streed(T, P, mezcla, **kwargs)[source]

Bases: EoS

Hybrid model for vapor-liquid equilibria in hydrocarbon mixtures using three diferent parameters, given in [1].

\[K_i = \frac{\nu_i^o\gamma_i}{\Phi_i^V}\]

The fugacity coefficient of pure liquid is calculate4d with a Curl-Pitzer corresponding state correlation:

\[\begin{split}\begin{array}[t]{l} \log{\nu_i^o} = \log{\nu_i^{(0)}} + \omega\log{\nu_i^{(1)}}\\ \log{\nu_i^{(0)}} = A_0 + \frac{A_1}{T_r} + A_2T_r + A_3T_r^2 + A_4T_r^3 + \left(A_5+A_6T_r+A_7T_r^2\right)P_r + \left(A_8+A_9T_r\right)P_r^2 - \log{P_r}\\ \log{\nu_i^{(1)}} = B_1 + B_1T_r-\frac{B_3}{T_r} + B_4T_r^3 - B_5\left(P_r-0.6\right)\\ \end{array}\end{split}\]

The modified parameters of correlation are given in [2]

Liquid solution are considered regualar solutions, and the liquid activity coefficient are calculated using the Scatchard-Hildebrand correlation:

\[\begin{split}\begin{array}[t]{l} \ln{\gamma_i} = \frac{V_i\left(\delta_i-\bar{\delta}\right)^2}{RT}\\ \bar{\delta} = \frac{\sum_i{x_iV_i\delta_i}}{\sum_j{x_jV_j}}\\ \end{array}\end{split}\]

Optionally can use the Flory-Huggins extension as is given in [3]:

\[\begin{split}\begin{array}[t]{l} \ln{\gamma_i} = \frac{V_i\left(\delta_i-\bar{\delta}\right)^2}{RT} + \ln{\Theta_i} + 1 - \Theta_i\\ \Theta_i = \frac{V_i}{\sum_i{x_iV_i}}\\ \end{array}\end{split}\]

The fugacity coefficient of vapor is calculated using the Redlich-Kwong cubic equation of state.

This model is applicable to systems of non-polar hydrocarbons, for vapor- liquid equilibrium. It’s use the value of gas density from Redlich-Kwong equation, but don’t support the liquid density or the enthalpy calculation.

Parameters:
floryboolean

Use the Flory-Huggins extension to regular solutions

Examples

Example 7.2 from [4], pag 279, liquid-vapor flash equilibrium of a mixture of hydrogen, methane, benzene and toluene.

>>> from lib.corriente import Mezcla
>>> from lib import unidades
>>> zi = [0.31767, 0.58942, 0.07147, 0.02144]
>>> mix = Mezcla(2, ids=[1, 2, 40, 41], caudalUnitarioMolar=zi)
>>> P = unidades.Pressure(485, "psi")
>>> T = unidades.Temperature(100, "F")
>>> eq = Grayson_Streed(T, P, mix, flory=0)
>>> "β = %0.4f" % eq.x
'β = 0.9106'
>>> "xi = %0.4f %0.4f %0.4f %0.4f" % tuple(eq.xi)
'xi = 0.0043 0.0576 0.7096 0.2286'
>>> "yi = %0.4f %0.4f %0.4f %0.4f" % tuple(eq.yi)
'yi = 0.3485 0.6417 0.0088 0.0011'
__init__(T, P, mezcla, **kwargs)[source]
_nio(T, P)[source]

Liquid fugacity coefficient

_gi(xi, T)[source]

Liquid activity coefficient

_fug(xi, yi, T, P)[source]

Each child class with liquid-vapor equilibrium support must define this procedure to do the flash iteration, it return fugacity coefficient for both phases

_Z(xi, T, P)[source]

References