Skip to main content

FuelLib

PyPI - Version PyPI - Status PyPI - Python Version

GitHub Release CI Documentation

DOI Badge GitHub License

Overview

FuelLib (SWR-25-26) utilizes the tables and functions of the Group Contribution Method (GCM) as proposed by Constantinou and Gani (1994) and Constantinou, Gani and O'Connel (1995), with additional physical properties discussed in Govindaraju & Ihme (2016). The code is based on Pavan B. Govindaraju's Matlab implementation of the GCM, and has been expanded to include additional thermodynamic properties and mixture properties. The fuel library contains gas chromatography (GC x GC) data for a variety of fuels ranging from simple single component fuels to complex jet fuels. The GC x GC data for POSF jet fuels comes from Edwards (2020).

Citing this Work

If you use FuelLib in your research, please cite the following software record:

Montgomery, David, Appukuttan, Sreejith, Yellapantula, Shashank, Perry, Bruce, and Binswanger, Adam. FuelLib (Fuel Library) [SWR-25-26]. Computer Software. https://github.com/NatLabRockies/FuelLib. USDOE Office of Energy Efficiency and Renewable Energy (EERE), Office of Sustainable Transportation. Vehicle Technologies Office (VTO). 27 Feb. 2025. Web. doi:10.11578/dc.20250317.1.

Installation

The easiest way to install FuelLib is via pip from pypi.org/project/fuellib:

pip install fuellib

For better dependency isolation, it is recommended to create a conda environment. For example:

Using Conda

conda create --name fuellib-env python
conda activate fuellib-env
pip install fuellib

Option 2: Development Installation (For Contributors)

Clone the repository and install in editable mode:

git clone https://github.com/NatLabRockies/FuelLib.git
cd FuelLib

uv is the recommended way to set up a FuelLib development environment: it creates and manages a virtual environment for you and installs dependencies much faster than pip.

uv venv
uv pip install -e '.[dev]'  # Install with development tools (docs, testing, formatting)

Run uv lock to regenerate uv.lock after changing dependencies in pyproject.toml, keeping installs reproducible across machines.

Install Development Dependencies (Conda)

conda create --name fuellib-dev-env python
conda activate fuellib-dev-env
conda install -c conda-forge rust
pip install -e '.[dev]'  # Install with development tools (docs, testing, formatting)

Note: Building grimp (a dependency of import-linter) requires a Rust toolchain. On macOS you may need to run brew install rust.

See the Contributing page for more detailed setup instructions and contribution guidelines.

Library Usage

This repository includes tutorials of ways to use FuelLib. We recommend starting with the basic tutorial, tutorials/basic.py, which is documented at natlabrockies.github.io/FuelLib/tutorials-basic.html.

Command-Line Tools

After installing FuelLib using one of the methods above, you have access to several command-line tools for plotting, unit conversion, and exporting fuel data. A comprehensive list is provided in the documentation at https://natlabrockies.github.io/FuelLib/tutorials-cli.html.

Contributing

New contributions are always welcome! For detailed contribution guidelines, installation instructions, and development setup, see the Contributing page in the documentation.

Quick start:

  1. Fork the main repository
  2. Create a newFeature branch that contains your changes
  3. Update the sphinx documentation in newFeature
  4. Install development dependencies: uv venv && uv pip install -e '.[dev]' (or pip install -e '.[dev]')
  5. Format the source code files using the provided CLI command: fl-format
  6. Run tests and build documentation locally to verify your changes
  7. Open a Pull Request (PR) from newFeature on your fork to branch main FuelLib repository.

Sphinx Documentation

This repository uses Sphinx to generate documentation.

To build the documentation, first install FuelLib with development support:

pip install -e ".[dev]"

Then use the provided CLI command:

fl-build-docs

The HTML documentation will be generated in docs/_build/html/. Open docs/_build/html/index.html in your web browser to view it.

Metadata

Release files for fuellib 3.0.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fuellib 3.0.7
File Size Uploaded Provenance
fuellib-3.0.7.tar.gz 66.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for fuellib 3.0.7
File Interpreter ABI Platform
fuellib-3.0.7-py3-none-any.whl Python 3 none any Details

Total release size: 132.1 kB

Release files / fuellib-3.0.7.tar.gz

Download URL fuellib-3.0.7.tar.gz
Size 66.9 kB
Tags Source
SHA-256 checksum
How to use checksums
843170de4d8c23c92b1b9a9183cc9fd31dffc3cdc0ac70cf2f61b658017a75ae
BLAKE2b-256 checksum
How to use checksums
14bfcf64e0a36e49dd9758a498d726f4a31e9b5bae527ebffd5044bd7692d219
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / fuellib-3.0.7-py3-none-any.whl

Download URL fuellib-3.0.7-py3-none-any.whl
Size 65.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e6d98ea8f83e68fac118c8e0d40e7e6973dca1e28a5700d1f3017faa683fb087
BLAKE2b-256 checksum
How to use checksums
984feadae9f265d7e533ed8aa9024d4a22d17b775c044ca5eb512f0421ab3164
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Security for fuellib 3.0.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page