Skip to main content

FuelLib: A Python library for Group Contribution Method (GCM) calculations of fuel properties

Project description

FuelLib

Language: C++17 DOI Badge

CI Documentation

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

Option 1: Install from PyPI (Recommended)

The easiest way to install FuelLib is via pip:

pip install fuellib

This will make the command-line exporters (fl-export-pele and fl-export-converge) available.

Option 2: Development Installation (For Contributors)

Clone the repository and install in editable mode:

git clone https://github.com/NatLabRockies/FuelLib.git
cd FuelLib
pip install -e '.[dev]'  # Install with development tools (docs, testing, formatting)

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

Optional: Create a Conda Environment

To use a specific conda environment:

conda create --name fuellib-env python numpy pandas scipy matplotlib
conda activate fuellib-env
pip install fuellib

Running the Code

This repository includes multiple tutorials of ways to use FuelLib. We recommend starting with the basic tutorial, tutorials/basic.py, which is documented at [https://NatLabRockies.github.io/FuelLib/tutorials.html#introduction]. The script tutorials/mixtureProperties.py calculates a given mixture's density, viscosity and vapor pressure from GC x GC data. The results are plotted against data from NIST and Edwards (2020).

Command-Line Exporters

After installing FuelLib with pip install fuellib ., you can use the command-line exporters to generate fuel properties for CFD simulations:

  • fl-export-pele: Export fuel properties for PelePhysics simulations
  • fl-export-converge: Export fuel properties for Converge simulations

For example:

fl-export-pele -f posf10264
fl-export-converge -f posf10325

Run fl-export-pele -h or fl-export-converge -h for detailed usage information.

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

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

fuellib-2.1.2a3.tar.gz (54.0 kB view details)

Uploaded Source

Built Distribution

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

fuellib-2.1.2a3-py3-none-any.whl (72.2 kB view details)

Uploaded Python 3

File details

Details for the file fuellib-2.1.2a3.tar.gz.

File metadata

  • Download URL: fuellib-2.1.2a3.tar.gz
  • Upload date:
  • Size: 54.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for fuellib-2.1.2a3.tar.gz
Algorithm Hash digest
SHA256 94e7d84acad7fda2f9b909ebacba36c598ebbfbbadbb8a95f67216daf98c5435
MD5 218a7ca72b420ef45c9ec7b773477468
BLAKE2b-256 2e31c386dfd1e7f897605b95a3d7e3875bd3e11e5e6e5067bd2b0978cc2c2757

See more details on using hashes here.

File details

Details for the file fuellib-2.1.2a3-py3-none-any.whl.

File metadata

  • Download URL: fuellib-2.1.2a3-py3-none-any.whl
  • Upload date:
  • Size: 72.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for fuellib-2.1.2a3-py3-none-any.whl
Algorithm Hash digest
SHA256 31718b6b8f678a05ac404a1e4f2151016406a42329461e97ee49f5abaf862542
MD5 81940c464f7a36b1dd4b48eeed144268
BLAKE2b-256 0c2c2d8ffcc310442f0d1bbde90174b89741d7d3910a5e6d5d556f9e5dbd714e

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