Skip to main content

Lightweight utility for computing flow states

Project description

flow_state

Compressible flow state calculations for Python.

Test codecov PyPI Docs Webapp License Python Ruff

Install

pip install flow-state-calculator

Quick Start

from flow_state import solve

# From Mach and altitude
state = solve(mach=2.0, altitude=10000)

# From Mach and stagnation conditions (wind tunnel)
state = solve(mach=6, pres_stag=(140, "psi"), temp_stag=420)

# From Mach and target unit Reynolds number
state = solve(mach=5.3, re1=12.8e6)

# Access results
print(state)  # Full summary
print(state.pres, state.temp, state.re1)

Features

  • Smart solver: Automatically selects the right equations based on your inputs
  • Unit support: Use SI or provide tuples like (30000, "ft"), (140, "psi")
  • Atmosphere models: US Standard Atmosphere 1976 and CIRA-86
  • Gas models: Perfect gas (air, nitrogen, custom)
  • Transport: Sutherland viscosity law
  • Output: JSON, TOML, or legacy .dat format

CLI

# Create a config template
flow-state init

# Edit flow_config.toml, then solve
flow-state solve

Atmosphere Models

from flow_state import solve, atmosphere

# Default: US Standard Atmosphere 1976
state = solve(mach=2, altitude=10000)

# CIRA-86 with latitude and month
state = solve(mach=2, altitude=10000, atm=atmosphere.CIRA86(latitude=70, month=1))

Documentation

Full documentation: https://uahypersonics.github.io/flow_state

Citation

If you use flow_state in your research, please cite it:

@software{flow_state,
  author = {Hader, Christoph},
  title = {flow\_state: Compressible Flow State Calculations},
  url = {https://github.com/uahypersonics/flow_state},
  year = {2026}
}

Code Style

This project follows established Python community conventions so that contributors can focus on the physics rather than inventing formatting rules.

Convention What it covers Reference
PEP 8 Code formatting, naming, whitespace Python standard style guide
PEP 257 Docstring structure (triple-quoted, imperative mood) Python standard docstring conventions
numpydoc Docstring sections (Parameters, Returns, Attributes) NumPy/SciPy docstring standard — the norm for scientific Python
Ruff Automated linting and formatting Enforces PEP 8 compliance automatically
typing / TYPE_CHECKING Type hints for IDE support and static analysis Python standard library

Releasing

This project uses Semantic Versioning (vMAJOR.MINOR.PATCH):

  • MAJOR (v1.0.0, v2.0.0): Breaking API changes
  • MINOR (v0.3.0, v0.4.0): New features, backward-compatible
  • PATCH (v0.3.1, v0.3.2): Bug fixes, minor corrections

To publish a new version to PyPI:

  1. Update the version in src/flow_state/_version.py
  2. Regenerate the API architecture diagram:
    pydeps src/flow_state --noshow --max-bacon=4 --cluster -o docs/assets/architecture.svg
    
  3. Commit and push to main
  4. Tag and push:
    git tag vMAJOR.MINOR.PATCH
    git push origin vMAJOR.MINOR.PATCH
    

The GitHub Actions workflow will automatically build and publish to PyPI via Trusted Publishing.

Contributors

chader2811
chader2811

💻 📖 🎨 🤔 🚧 🔣 ⚠️ 💡 🚇

Contributions are welcome: code, documentation, verification data, and bug reports. See the contribution types recognized by this project.

License

BSD-3-Clause. See LICENSE for details.

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

flow_state_calculator-0.4.0.tar.gz (56.4 kB view details)

Uploaded Source

Built Distribution

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

flow_state_calculator-0.4.0-py3-none-any.whl (49.8 kB view details)

Uploaded Python 3

File details

Details for the file flow_state_calculator-0.4.0.tar.gz.

File metadata

  • Download URL: flow_state_calculator-0.4.0.tar.gz
  • Upload date:
  • Size: 56.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for flow_state_calculator-0.4.0.tar.gz
Algorithm Hash digest
SHA256 8cb94771011e9f218087c104e53131cc744de127b8e8ba1c4a95aff4d4fed6c2
MD5 eab2955ffb59b55e747c4a42b995a2ed
BLAKE2b-256 b62e006082f68800c8641bfc3f712708fd120e09b6bed91651a9b0729862e6e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for flow_state_calculator-0.4.0.tar.gz:

Publisher: publish.yml on uahypersonics/flow_state

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flow_state_calculator-0.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for flow_state_calculator-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c24d72dc1c6ba69a844fb1aa19c184bf9988026b76ee0da263dd0bb1da27b092
MD5 d74ce6fba70f378d3a4d58f43c472267
BLAKE2b-256 94b0d5bc18fe229760a73e23b4d9b2b1a3fc4845f3c1f968f341e58a60712f15

See more details on using hashes here.

Provenance

The following attestation bundles were made for flow_state_calculator-0.4.0-py3-none-any.whl:

Publisher: publish.yml on uahypersonics/flow_state

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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