Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
Examples
--------
Example as in [1]_ for ethylbenzene
>>> boiling_critical_relation(347.2, 409.3, 617.1, 36E5)
15209.467273093938
References
----------
.. [1] Reid, Robert C..; Prausnitz, John M.;; Poling, Bruce E.
The Properties of Gases and Liquids. McGraw-Hill Companies, 1987.
'''
Tbr = Tb/Tc
Tr = T/Tc
h = Tbr*log(Pc/101325.)/(1 - Tbr)
return exp(h*(1-1/Tr))*Pc
References
----------
.. [1] Thomson, G. H., K. R. Brobst, and R. W. Hankinson. "An Improved
Correlation for Densities of Compressed Liquids and Liquid Mixtures."
AIChE Journal 28, no. 4 (July 1, 1982): 671-76. doi:10.1002/aic.690280420
'''
a = -9.070217
b = 62.45326
d = -135.1102
f = 4.79594
g = 0.250047
h = 1.14188
j = 0.0861488
k = 0.0344483
tau = 1 - T/Tc
e = exp(f + g*omega + h*omega**2)
C = j + k*omega
B = Pc*(-1 + a*tau**(1/3.) + b*tau**(2/3.) + d*tau + e*tau**(4/3.))
return Vs*(1 - C*log((B + P)/(B + Psat)))
>>> stiel_thodos_dense(T=378.15, MW=44.013, Tc=309.6, Pc=72.4E5,
... Vc=97.4E-6, Zc=0.274, Vm=144E-6, kg=2.34E-2)
0.041245574404863684
References
----------
.. [1] Stiel, Leonard I., and George Thodos. "The Thermal Conductivity of
Nonpolar Substances in the Dense Gaseous and Liquid Regions." AIChE
Journal 10, no. 1 (January 1, 1964): 26-30. doi:10.1002/aic.690100114.
.. [2] Reid, Robert C.; Prausnitz, John M.; Poling, Bruce E.
Properties of Gases and Liquids. McGraw-Hill Companies, 1987.
'''
gamma = 210*(Tc*MW**3./(Pc/1E5)**4)**(1/6.)
rhor = Vc/Vm
if rhor < 0.5:
term = 1.22E-2*(exp(0.535*rhor) - 1.)
elif rhor < 2:
term = 1.14E-2*(exp(0.67*rhor) - 1.069)
else:
# Technically only up to 2.8
term = 2.60E-3*(exp(1.155*rhor) + 2.016)
diff = term/Zc**5/gamma
kg = kg + diff
return kg
AIChE Journal 24, no. 6 (November 1, 1978): 1127-31.
doi:10.1002/aic.690240630
'''
Tr = T/Tc
if Tr <= 0.98:
lnU0 = 1.39644 - 24.076*Tr + 102.615*Tr**2 - 255.719*Tr**3 \
+ 355.805*Tr**4 - 256.671*Tr**5 + 75.1088*Tr**6
lnU1 = 13.4412 - 135.7437*Tr + 533.380*Tr**2-1091.453*Tr**3 \
+ 1231.43*Tr**4 - 728.227*Tr**5 + 176.737*Tr**6
elif Tr > 1:
raise Exception('Critical phase, correlation does not apply')
else:
lnU0 = Bhirud_normal_lnU0_interp(Tr)
lnU1 = Bhirud_normal_lnU1_interp(Tr)
Unonpolar = exp(lnU0 + omega*lnU1)
Vm = Unonpolar*R*T/Pc
return Vm
raise Exception('Only `PR` and `SRK` are accepted as method')
if not full:
alpha0 = Tr**(N0*(M0-1.))*exp(L0*(1.-Tr**(N0*M0)))
alpha1 = Tr**(N1*(M1-1.))*exp(L1*(1.-Tr**(N1*M1)))
alpha = alpha0 + omega*(alpha1 - alpha0)
return a*alpha
else:
if quick:
x0 = T/Tc
x1 = M0 - 1
x2 = N0*x1
x3 = x0**x2
x4 = M0*N0
x5 = x0**x4
x6 = exp(-L0*(x5 - 1.))
x7 = x3*x6
x8 = M1 - 1.
x9 = N1*x8
x10 = x0**x9
x11 = M1*N1
x12 = x0**x11
x13 = x2*x7
x14 = L0*M0*N0*x3*x5*x6
x15 = x13 - x14
x16 = exp(-L1*(x12 - 1))
x17 = -L1*M1*N1*x10*x12*x16 + x10*x16*x9 - x13 + x14
x18 = N0*N0
x19 = x18*x3*x6
x20 = x1**2*x19
x21 = M0**2
x22 = L0*x18*x3*x5*x6
([dP_dT, dP_dV, dV_dT, dV_dP, dT_dV, dT_dP],
[d2P_dT2, d2P_dV2, d2V_dT2, d2V_dP2, d2T_dV2, d2T_dP2],
[d2V_dPdT, d2P_dTdV, d2T_dPdV],
[H_dep, S_dep, Cv_dep]) = self.derivatives_and_departures(T, P, V, b, delta, epsilon, a_alpha, da_alpha_dT, d2a_alpha_dT2, quick=quick)
beta = dV_dT/V # isobaric_expansion(V, dV_dT)
kappa = -dV_dP/V # isothermal_compressibility(V, dV_dP)
Cp_m_Cv = -T*dP_dT**2/dP_dV # Cp_minus_Cv(T, dP_dT, dP_dV)
Cp_dep = Cp_m_Cv + Cv_dep - R
V_dep = (V - R*T/P)
U_dep = H_dep - P*V_dep
G_dep = H_dep - T*S_dep
A_dep = U_dep - T*S_dep
fugacity = P*exp(G_dep/(R*T))
phi = fugacity/P
PIP = V*(d2P_dTdV/dP_dT - d2P_dV2/dP_dV) # phase_identification_parameter(V, dP_dT, dP_dV, d2P_dV2, d2P_dTdV)
phase = 'l' if PIP > 1 else 'g' # phase_identification_parameter_phase(PIP)
if phase == 'l':
self.beta_l, self.kappa_l = beta, kappa
self.PIP_l, self.Cp_minus_Cv_l = PIP, Cp_m_Cv
self.dP_dT_l, self.dP_dV_l, self.dV_dT_l = dP_dT, dP_dV, dV_dT
self.dV_dP_l, self.dT_dV_l, self.dT_dP_l = dV_dP, dT_dV, dT_dP
self.d2P_dT2_l, self.d2P_dV2_l = d2P_dT2, d2P_dV2
self.d2V_dT2_l, self.d2V_dP2_l = d2V_dT2, d2V_dP2
self.d2T_dV2_l, self.d2T_dP2_l = d2T_dV2, d2T_dP2
.. [1] Laštovka, Václav, Michal Fulem, Mildred Becerra, and John M. Shaw.
"A Similarity Variable for Estimating the Heat Capacity of Solid Organic
Compounds: Part II. Application: Heat Capacity Calculation for
Ill-Defined Organic Solids." Fluid Phase Equilibria 268, no. 1-2
(June 25, 2008): 134-41. doi:10.1016/j.fluid.2008.03.018.
'''
A1 = 0.013183
A2 = 0.249381
theta = 151.8675
C1 = 0.026526
C2 = -0.024942
D1 = 0.000025
D2 = -0.000123
sim2 = similarity_variable*similarity_variable
exp_theta_T = exp(theta/T)
return (-3000.*R*similarity_variable*(A1 + A2*similarity_variable)*log(exp_theta_T - 1.)
+ T**2*(500.*D1*similarity_variable + 500.*D2*sim2)
+ T*(1000.*C1*similarity_variable + 1000.*C2*sim2)
+ (3000.*A1*R*similarity_variable*theta
+ 3000.*A2*R*sim2*theta)/(T*exp_theta_T - T)
+ (3000.*A1*R*similarity_variable*theta
+ 3000.*A2*R*sim2*theta)/T)
13278.878504306222
References
----------
.. [1] Ambrose, D., and J. Walton. "Vapour Pressures up to Their Critical
Temperatures of Normal Alkanes and 1-Alkanols." Pure and Applied
Chemistry 61, no. 8 (1989): 1395-1403. doi:10.1351/pac198961081395.
.. [2] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition.
New York: McGraw-Hill Professional, 2000.
'''
Tr = T/Tc
tau = 1 - T/Tc
f0 = (-5.97616*tau + 1.29874*tau**1.5 - 0.60394*tau**2.5 - 1.06841*tau**5)/Tr
f1 = (-5.03365*tau + 1.11505*tau**1.5 - 5.41217*tau**2.5 - 7.46628*tau**5)/Tr
f2 = (-0.64771*tau + 2.41539*tau**1.5 - 4.26979*tau**2.5 + 3.25259*tau**5)/Tr
return Pc*exp(f0 + omega*f1 + omega**2*f2)
Examples
--------
>>> d = _Laliberte_Density_ParametersDict['7647-14-5']
>>> Laliberte_density_i(273.15+0, 1-0.0037838838, d["C0"], d["C1"], d["C2"], d["C3"], d["C4"])
3761.8917585699983
References
----------
.. [1] Laliberte, Marc. "A Model for Calculating the Heat Capacity of
Aqueous Solutions, with Updated Density and Viscosity Data." Journal of
Chemical & Engineering Data 54, no. 6 (June 11, 2009): 1725-60.
doi:10.1021/je8008123
'''
t = T - 273.15
return ((c0*(1 - w_w)+c1)*exp(1E-6*(t + c4)**2))/((1 - w_w) + c2 + c3*t)