[ ]:
import si_units as si
import feos

parameters = feos.Parameters.from_json(
    substances=['methanol', '1-propanol'],
    pure_path='../../parameters/pcsaft/gross2002.json'
)
ideal_gas_parameters = feos.Parameters.from_json(
    substances=['methanol', '1-propanol'],
    pure_path='../../parameters/ideal_gas/poling2000.json'
)
eos = feos.EquationOfState.pcsaft(parameters).dippr(ideal_gas_parameters)

Tp-flash

[ ]:
x1 = 0.4
temperature = 350*si.KELVIN

p_bubble = feos.PhaseEquilibrium.bubble_point(eos, temperature, x1).liquid.pressure()
p_dew = feos.PhaseEquilibrium.dew_point(eos, temperature, x1).vapor.pressure()
print(f"bubble point pressure: {p_bubble/si.BAR:.4} bar")
print(f"   dew point pressure: {p_dew/si.BAR:.4} bar")

feos.PhaseEquilibrium.tp_flash(eos, temperature, 0.8*si.BAR, x1)
   dew point pressure: 0.6356 bar
bubble point pressure: 0.9245 bar

temperature

density

molefracs

phase 1

350.00000 K

28.75751 mol/m³

[0.59847, 0.40153]

phase 2

350.00000 K

14.29164 kmol/m³

[0.28954, 0.71046]

ph-flash

[ ]:
x1 = 0.4
pressure = si.BAR
bubble = feos.PhaseEquilibrium.bubble_point(eos, pressure, x1, 300*si.KELVIN).liquid
dew = feos.PhaseEquilibrium.dew_point(eos, pressure, x1, 300*si.KELVIN).vapor
print(f"bubble point\ttemperature: {bubble.temperature/si.KELVIN:.2f} K\tenthalpy: {bubble.molar_enthalpy()/(si.KILO*si.JOULE/si.MOL):8.4f} kJ/mol")
print(f"   dew point\ttemperature: {dew.temperature/si.KELVIN:.2f} K\tenthalpy: {dew.molar_enthalpy()/(si.KILO*si.JOULE/si.MOL):8.4f} kJ/mol")

feos.PhaseEquilibrium.ph_flash(eos, pressure, 0*si.JOULE/si.MOL, x1, 356*si.KELVIN)
bubble point    temperature: 352.06 K   enthalpy: -36.5900 kJ/mol
   dew point    temperature: 361.09 K   enthalpy:   3.9800 kJ/mol

temperature

density

molefracs

phase 1

360.47941 K

34.58586 mol/m³

[0.42362, 0.57638]

phase 2

360.47941 K

13.28059 kmol/m³

[0.17482, 0.82518]