Skip to main content

A Library for Thermodynamics using Cubic & Associative contributions written in Rust.

Project description

Welcome to ℜeos

docs

eos is a thermodynamic library written in Rust with a Python interface. It provides tools for calculating thermodynamic properties and phase equilibria.

import numpy as np
from reos.cpa import CPAParameters, CPAPureRecord
from reos.eos import EquationOfState
from reos.state import State

parameters = CPAParameters.from_records([ 
    CPAPureRecord.new(
        name = "water",
        molar_weight = 18.01528,
        a0 = 0.12277,
        b = 0.014515e-3,
        c1 = 0.67359,
        tc = 647.29,
        epsilon = 166.55e2,
        kappa = 0.0692,
        na = 2,
        nb = 2
    )
])

# or  CPAParameters.from_json(["water"], "./parameters/cpa/kontogeorgis2006.json")

eos = EquationOfState.scpa(parameters)

t = 298.15
p = 1e5
x = np.array([1.0])

s = State.tpx(eos, t, p, x) 

print(s)

X = eos.unbonded_sites_fraction(t, s.density, x)

print(f"Unbonded sites fraction = {X}")
State(t = 298.150 K, p = 100000.000000 Pa, ρ = 55784.919890 mol/m³)
Unbonded sites fraction = [0.07825138 0.07825138]

Models

Model Description
CPA Cubic Plus Association (srk, pr76, pr78)
cubic Soave-Redlich-Kwong, Peng-Robinson 1976, Peng-Robinson 1978

Each model implement its analytical expressions of derived properties of Helmholtz potential.

Installation

Python

From pip

pip install reos

From source

You must have rust compiler and maturin/PyO3 installed.

To install the python package in your machine (such pip install -e .) and use the optimized version of the package:

cd pyreos
maturin develop --release 

To build the the python wheel, just use

maturin build --release 

Project layout

Repository

├── crates
├── parameters
├── pyreos
├── pyreos-dev
└── pyreos-examples
  • crates: Contains reos, which is the Rust package that implement all the core functionalites
  • pyreos: Rust package that create the Python interface from reos
  • pyreos-dev: Directory used to test functionalites of reos in Python
  • pyreos-examples: Python examples of how to use reos

Python package

  • reos.eos: Enables the creation and manipulation of equations of state with different models.
  • reos.state: Provides tools for working with thermodynamic states, including property calculations and phase equilibria.
  • reos.{model_name}: Each current model has its own submodule with its name, which contains the pure model record, the binary model record and the parameters objects .

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reos-0.1.0.tar.gz (55.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reos-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl (576.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

File details

Details for the file reos-0.1.0.tar.gz.

File metadata

  • Download URL: reos-0.1.0.tar.gz
  • Upload date:
  • Size: 55.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for reos-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8bb12571a86d16666717fc9ac294bcaa10d73fc808962c32a685f33b09739c98
MD5 54537bc486e82a7cd6f1a6663a0608ef
BLAKE2b-256 33bb14d05ab08f58bc139458431de99e217072b5752b39b396e806399c0f3e25

See more details on using hashes here.

File details

Details for the file reos-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for reos-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 adada2842eda337da465a966b59675a9e72b706c8759a9bf162bd2ddaa6ed09f
MD5 76b05205380ff42a376e5b38d3592c5b
BLAKE2b-256 ce9b33765345b26e05ba086211369abd5687fbb3981cf56a1c66967a2a5e3f05

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page