Easy access to thermodynamic fluid properties as a function of temperature and
pressure. Comes with a minimal command-line interface for quick inspection.
Provides class FluidProperties()
useful for working out dataseries in your
own scripts.
- Github: https://github.com/Dennis-van-Gils/python-fluidprop
- PyPI: https://pypi.org/project/fluidprop
Installation:
pip install fluidprop
or if you're on macOS or Linux, try:
pip3 install fluidprop
Science advances every year and with it the accuracy of tabulated/parametrized fluid properties. Don't reinvent the wheel by coding your own equation-of-state models from the literature. Or copy-pasting possibly outdated values from the internet.
Thermodynamic properties are provided by CoolProp, the open-source alternative to NIST refprop, with most of the calculations relying on the same equation-of-state (EOS) models as refprop.
You can run this module from the terminal with:
python -m fluidprop
or if you're on macOS or Linux, try:
python3 -m fluidprop
It will show a minimal command-line interface which guides the user to enter a fluid, temperature and pressure. It will print out its thermodynamic properties as a table to the terminal.
BONUS for the Rayleigh-Bénard convection community. Running:
python -m rbc
will show a command-line interface acting as a 'pocket calculator' to calculate the Rayleigh and other numbers based on the user input.
Example output of fluidprop:
https://github.com/Dennis-van-Gils/python-fluidprop Thermodynamic properties by CoolProp v6.6.0 http://pubs.acs.org/doi/abs/10.1021/ie4033999 All known fluids: 0 | 1-Butene 41 | MD4M 82 | R1233zd(E) 1 | Acetone 42 | MDM 83 | R1234yf 2 | Air 43 | Methane 84 | R1234ze(E) 3 | Ammonia 44 | Methanol 85 | R1234ze(Z) 4 | Argon 45 | MethylLinoleate 86 | R124 5 | Benzene 46 | MethylLinolenate 87 | R1243zf 6 | CarbonDioxide 47 | MethylOleate 88 | R125 7 | CarbonMonoxide 48 | MethylPalmitate 89 | R13 8 | CarbonylSulfide 49 | MethylStearate 90 | R134a 9 | cis-2-Butene 50 | MM 91 | R13I1 10 | CycloHexane 51 | n-Butane 92 | R14 11 | Cyclopentane 52 | n-Decane 93 | R141b 12 | CycloPropane 53 | n-Dodecane 94 | R142b 13 | D4 54 | n-Heptane 95 | R143a 14 | D5 55 | n-Hexane 96 | R152A 15 | D6 56 | n-Nonane 97 | R161 16 | Deuterium 57 | n-Octane 98 | R21 17 | Dichloroethane 58 | n-Pentane 99 | R218 18 | DiethylEther 59 | n-Propane 100 | R22 19 | DimethylCarbonate 60 | n-Undecane 101 | R227EA 20 | DimethylEther 61 | Neon 102 | R23 21 | Ethane 62 | Neopentane 103 | R236EA 22 | Ethanol 63 | Nitrogen 104 | R236FA 23 | EthylBenzene 64 | NitrousOxide 105 | R245ca 24 | Ethylene 65 | Novec649 106 | R245fa 25 | EthyleneOxide 66 | o-Xylene 107 | R32 26 | Fluorine 67 | OrthoDeuterium 108 | R365MFC 27 | HeavyWater 68 | OrthoHydrogen 109 | R40 28 | Helium 69 | Oxygen 110 | R404A 29 | HFE143m 70 | p-Xylene 111 | R407C 30 | Hydrogen 71 | ParaDeuterium 112 | R41 31 | HydrogenChloride 72 | ParaHydrogen 113 | R410A 32 | HydrogenSulfide 73 | Propylene 114 | R507A 33 | IsoButane 74 | Propyne 115 | RC318 34 | IsoButene 75 | R11 116 | SES36 35 | Isohexane 76 | R113 117 | SulfurDioxide 36 | Isopentane 77 | R114 118 | SulfurHexafluoride 37 | Krypton 78 | R115 119 | Toluene 38 | m-Xylene 79 | R116 120 | trans-2-Butene 39 | MD2M 80 | R12 121 | Water 40 | MD3M 81 | R123 122 | Xenon Enter fluid number: 121 Enter temperature | T ['C] : 20 Enter pressure | P [bar] : a Enter pressure | P [atm] : 1 ------------------------------------------------------------ Liquid: Water (H₂O) @ Temperature | T = 20.000 'C = 293.150 K @ Pressure | P = 1.013 bar ------------------------------------------------------------ Molecular weight | MW = 18.01527 g/mol Density | rho = 9.982e+02 kg/m^3 Kinematic viscosity | nu = 1.003e-06 m^2/s Dynamic viscosity | eta = 1.002e-03 kg/(m s) Thermal exp. coeff. | alpha = 2.068e-04 1/K Thermal diffusivity | kappa = 1.432e-07 m^2/s Thermal conductivity | lambda_ = 5.980e-01 W/(m K) Isobaric heat capac. | Cp = 4.184e+03 J/(kg K) Isochoric heat capac. | Cv = 4.157e+03 J/(kg K) Isothermal compress. | comp = 4.589e-10 1/Pa Prandtl | Pr = 7.008 ------------------------------------------------------------
When asked to enter the temperature in ['C]
, you can once enter a single
character instead to change the input unit to:
k | [K] Kelvin K - 273.15 'C f | ['F] Degrees Fahrenheit ('F - 32) * 5 / 9 'C
When asked to enter the pressure in [bar]
, you can once enter a single
character instead to change the input unit to:
a | [atm] Atmosphere = 1.01325 bar m | [mmHg] Millimeter mercury ≈ 1 atm / 760 p | [psi] Pounds per square inch = 1 / 14.504 bar t | [torr] Torr = 1 atm / 760
This class evaluates thermodynamic fluid properties of the given fluid at the
given temperature(s) in ['C]
and pressure(s) in [bar]
. The results are
stored as properties to this class as numpy.ndarray
arrays. Useful for
working out dataseries.
Example:
from fluidprop import FluidProperties
fluid = FluidProperties("Water", 20, 1)
print(fluid.rho) # [998.2065435]
fluid = FluidProperties("Water", [20, 21, 22], 1)
print(fluid.rho) # [998.2065435 997.99487638 997.77288644]
List of stored properties:
coolprop_name (str): CoolProp name of the fluid. formula (str): Chemical formula of the fluid. MW (float) : Molecular weight [kg/mol] T (ndarray): Evaluated temperature [K] P (ndarray): Evaluated pressure [Pa] rho (ndarray): Density [kg/m^3] nu (ndarray): Kinematic viscosity [m^2/s] eta (ndarray): Dynamic/shear viscosity [kg/(m s)] alpha (ndarray): Thermal expansion coefficient [1/K] kappa (ndarray): Thermal diffusivity [m^2/s] lambda_ (ndarray): Thermal conductivity [W/(m K)] Cp (ndarray): Isobaric heat capacity [J/(kg K)] Cv (ndarray): Isochoric heat capacity [J/(kg K)] comp (ndarray): Isothermal compressibility [1/Pa] Pr (ndarray): Prandtl number [-]
Dennis van Gils, 13-05-2024