mirror of
https://github.com/CoolProp/CoolProp.git
synced 2026-01-12 23:48:22 -05:00
93 lines
3.3 KiB
Python
93 lines
3.3 KiB
Python
|
|
from __future__ import print_function, division, absolute_import
|
|
|
|
from CoolProp import AbstractState
|
|
|
|
#fluid = "R407C"
|
|
#fluid = "R32[0.381109419953993]&R125[0.179558888662016]&R134A[0.439331691383991]"
|
|
#fluid = "R32[0.40]&R125[0.15]&R134A[0.45]"
|
|
|
|
fluids = ["R32", "R125", "R134a"]
|
|
moles = [0.381109419953993, 0.179558888662016, 0.439331691383991]
|
|
|
|
for backend in ["HEOS", "REFPROP"]:
|
|
state = AbstractState(backend, '&'.join(fluids))
|
|
state.set_mole_fractions(moles)
|
|
print(state.get_mole_fractions())
|
|
print(state.get_mass_fractions())
|
|
try:
|
|
print("Normal routines")
|
|
print(state.T_critical())
|
|
print(state.p_critical())
|
|
print(True)
|
|
except:
|
|
try:
|
|
print("Routine for all points")
|
|
states = state.all_critical_points()
|
|
for crit_state in states:
|
|
print(crit_state.T)
|
|
print(crit_state.p)
|
|
print(crit_state.stable)
|
|
except:
|
|
print("All failed")
|
|
|
|
print("\n-----------------\n")
|
|
|
|
# import numpy as np
|
|
# import CoolProp
|
|
# from CoolProp.CoolProp import PyCriticalState
|
|
# def get_critical_point(state):
|
|
# crit_state = PyCriticalState()
|
|
# crit_state.T = np.nan
|
|
# crit_state.p = np.nan
|
|
# crit_state.rhomolar = np.nan
|
|
# crit_state.stable = False
|
|
# try:
|
|
# crit_state.T = state.T_critical()
|
|
# crit_state.p = state.p_critical()
|
|
# crit_state.rhomolar = state.rhomolar_critical()
|
|
# crit_state.stable = True
|
|
# except:
|
|
# try:
|
|
# for crit_state_tmp in state.all_critical_points():
|
|
# if crit_state_tmp.stable and (crit_state_tmp.T > crit_state.T or not np.isfinite(crit_state.T)):
|
|
# crit_state.T = crit_state_tmp.T
|
|
# crit_state.p = crit_state_tmp.p
|
|
# crit_state.rhomolar = crit_state_tmp.rhomolar
|
|
# crit_state.stable = crit_state_tmp.stable
|
|
# except:
|
|
# raise ValueError("Could not calculate the critical point data.")
|
|
# new_state = AbstractState(state.backend_name(), '&'.join(state.fluid_names()))
|
|
# masses = state.get_mass_fractions()
|
|
# if len(masses)>1:
|
|
# new_state.set_mass_fractions(masses) # Uses mass fraction to work with incompressibles
|
|
# if np.isfinite(crit_state.p) and np.isfinite(crit_state.T):
|
|
# new_state.specify_phase(CoolProp.iphase_critical_point)
|
|
# new_state.update(CoolProp.PT_INPUTS, crit_state.p, crit_state.T)
|
|
# #new_state.update(CoolProp.DmolarT_INPUTS, crit_state.rhomolar, crit_state.T)
|
|
# return new_state
|
|
# raise ValueError("Could not calculate the critical point data.")
|
|
|
|
from CoolProp.Plots.Common import process_fluid_state, get_critical_point
|
|
state = process_fluid_state("HEOS::R32[0.381109419953993]&R125[0.179558888662016]&R134A[0.439331691383991]")
|
|
cstate = get_critical_point(state)
|
|
print(cstate.T())
|
|
|
|
|
|
import matplotlib.pyplot as plt
|
|
from CoolProp.Plots import PropertyPlot
|
|
|
|
fluid = "R407C"
|
|
fluid = "R32[0.381109419953993]&R125[0.179558888662016]&R134A[0.439331691383991]"
|
|
#fluid = "R32[0.40]&R125[0.15]&R134A[0.45]"
|
|
|
|
plot_RP = PropertyPlot("REFPROP::" + fluid, 'PH', unit_system='EUR', tp_limits='ACHP')
|
|
plot_RP.calc_isolines()
|
|
plot_RP.draw()
|
|
|
|
plot_CP = PropertyPlot("HEOS::" + fluid, 'PH', unit_system='EUR', tp_limits='ACHP')
|
|
plot_CP.calc_isolines()
|
|
plot_CP.draw()
|
|
|
|
plt.show(block=True)
|