Skip to content

PyForFluids: Fluids Properties Based on Equations of State

License

Notifications You must be signed in to change notification settings

fedebenelli/PyForFluids

Repository files navigation

Warning

This project is no longer under development, we are migrating all to yaeos

PyForFluids

Binder Documentation Status

PyForFluids (Python-Fortran-Fluids) is a Python package focused in the calculation of Fluid properties based on Ecuations of State (EoS). It provides a simple interface to work from Python but also exploits the high performance Fortran code for the more heavy calculations.

It’s designed with modularity in mind, in a way that new thermodyinamic models are easy to add, they even can be written either in Python or Fortran.

  • Multifluid equations:

  • Cubic EoS:

    • PengRobinson
    • SoaveRedlichKwong
    • Mixing Rules:
      • Quadratic (Classic Van der Waals)
      • Constant $k_{ij}$ and $l_{ij}$

Available properties

  • Reduced Temperature and Density
  • Ideal Helmholtz Energy (Ao)
  • Residual Helmholtz Energy (Ar)
  • Compresibility Factor (Z)
  • Isochoric Heat (Cv)
  • Isobaric Heat (Cp)
  • Speed of sound (w)
  • Isothermal throttling coefficent (δ)
  • Pressure derivatives:
    • Temperature
    • Density
    • Volume
  • Pressure (P)
  • Entropy (S)
  • Gibbs Free Energy (G)
  • Enthalpy (H)
  • Joule-Thompson coefficent
  • Isoentropic exponent
  • Virial Terms:
    • B
    • C

Motivation

While nowadays there are a lot of tools for calculation of thermodynamic properties of fluids, most of them either are hard to mantain and don't have an integrated testing system or are embeded to other softwares (as spredsheat software) limiting the things that can be done to that enviroment.

PyForFluids aims to be a tool:

  • With high performance, since most of it's calculations are done in Fortran
  • Easy to scale due to it's modular design using the power of Python objects.
  • Continuosly tested (at every push)to spot any problems as soon as possible.

Instalation

For installing PyForFluids you just need to:

pip install pyforfluids

Make sure to check the requirements first!

Requirements

Be sure to install numpyand a fortran compiler previously, since both are needed for the compilation of Fortran code.

NumPy

pip install numpy

Fortran Compiler

Linux
  • Debian-based (Debian, Ubuntu, Mint,...)
sudo apt install gfortran
  • Arch-based (Arch, Manjaro, Garuda, ...)
sudo pacman -S gfortran
Windows

We recommended using the Windows Subsystem for Linux WSL

If WSL ain't being used, the native Windows wheels will be download instead, so no need to worry!

MacOS
brew install gfortran

Authors

Federico E. Benelli ([email protected]); M. Candelaria Arpajou