← All software

Equations of state

Peritheos.

Equations of state, thermodynamic calculations, and a literature-based material catalogue, with Python and Rust interfaces.

Latest stable release0.16.1Release notes

Peritheos brings equations of state and their source information into a common computational framework. It combines pressure–volume–temperature calculations, parameter fitting, and a catalogue of published material records. The numerical core is implemented in Rust and exposed through the Python API.

Models, measurements, and provenance

The library supports room-temperature equations of state such as Birch–Murnaghan, Vinet, and Holzapfel, alongside thermal models including Mie–Grüneisen–Debye, Einstein, and multi-oscillator formulations. It provides evaluation and inversion, thermoelastic derivatives, pressure-scale normalization, and fitting with covariance and uncertainty diagnostics.

Material records retain the original references, parameter provenance, source conditions, and available observations. Published parameters, reconstructed fits, and derived records remain distinguishable. A usable published equation does not imply that the complete original fitting workflow or its uncertainty estimates have been reproduced.

The shared .eosmat format can also hold diffraction structures and observation datasets. Dioptas uses Peritheos for its material library and equation-of-state calculations.

Explore in Peritheos Studio

Peritheos Studio is the browser interface to the library. Search materials and publications, compare equation-of-state curves, inspect parameters and source data, and calculate pressure, volume, or temperature. Calculations run on your device.

Studio and the Python library have separate release cycles. Use Studio for interactive exploration and the library for scripts, notebooks, and reproducible calculation workflows.

Install the library

python -m pip install --upgrade peritheos

Published wheels include the Rust extension, so a matching wheel needs no Rust compiler. Source builds require a Rust toolchain; the documentation describes the supported environments.

A simple room-temperature calculation is:

from peritheos.eos.rt import BM3

eos = BM3(V0=50.0, K0=130.0, K0_prime=4.3)
pressure = eos.pressure(V=40.0)
volume = eos.volume(P=pressure)

Here pressure and bulk modulus are in GPa, and the volume unit is consistent with V0. Thermal model classes have additional unit conventions; use the model documentation when composing an EOS.

The catalogue API provides a separate, consistent interface using pressure in GPa, temperature in K, and conventional unit-cell volume in cubic ångström. See the catalogue guide for choosing records, their source domains, and uncertainty information.

Citation and support

Cite both the software version and the original publications behind the models or material records used in your work. The repository provides software citation information, a release history, and an issue tracker.

Project updates

Notes & releases