Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/fedebenelli/pyforfluids

PyForFluids: Fluids Properties Based on Equations of State
https://github.com/fedebenelli/pyforfluids

equation-of-state fluids thermodynamics

Last synced: 24 days ago
JSON representation

PyForFluids: Fluids Properties Based on Equations of State

Awesome Lists containing this project

README

        

# Warning
This project is no longer under development, we are migrating all to [yaeos](https://github.com/ipqa-research/yaeos)

# PyForFluids
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/fedebenelli/PyForFluids/dev?labpath=https%3A%2F%2Fgithub.com%2Ffedebenelli%2FPyForFluids%2Fblob%2Fdev%2Fdocs%2Fsource%2Ftutorial.ipynb)






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:
- GERG-2008 [Paper link](https://pubs.acs.org/doi/10.1021/je300655b)

- 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:

```sh
pip install pyforfluids
```

Make sure to check the requirements first!

### Requirements
Be sure to install `numpy`and a fortran compiler previously, since both are
needed for the compilation of `Fortran` code.

#### NumPy
```sh
pip install numpy
```

#### Fortran Compiler

##### Linux
- **Debian-based** (Debian, Ubuntu, Mint,...)

```sh
sudo apt install gfortran
```

- **Arch-based** (Arch, Manjaro, Garuda, ...)

```sh
sudo pacman -S gfortran
```

##### Windows
We recommended using the Windows Subsystem for Linux
[WSL](https://www.windowscentral.com/install-windows-subsystem-linux-windows-10)

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

##### MacOS

```sh
brew install gfortran
```

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