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. Regenerate the API architecture diagram:
    pydeps src/flow_state --noshow --max-bacon=4 --cluster -o docs/assets/architecture.svg
    
  2. Commit and push to main
  3. 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.2.tar.gz (562.0 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.2-py3-none-any.whl (50.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: flow_state_calculator-0.4.2.tar.gz
  • Upload date:
  • Size: 562.0 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.2.tar.gz
Algorithm Hash digest
SHA256 7115e7749108026f2bdc35b80ef19568ed41cb734dabd78f7e801c29a317a8fd
MD5 fabce2a66bcff4072027242e91f712d4
BLAKE2b-256 1a27012432dc2adf876455500725f911885e01b6941b1390a192e794dcffaec9

See more details on using hashes here.

Provenance

The following attestation bundles were made for flow_state_calculator-0.4.2.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.2-py3-none-any.whl.

File metadata

File hashes

Hashes for flow_state_calculator-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b6e2aa37937225f7d183c12caa677fc6c22d8d4dfa7f7679c306b9a384cdabdb
MD5 84f4d6667e641e008b89dc802ec1c80f
BLAKE2b-256 b12726c00905c434e9a46ef8414fc1a8914ab7efdd59c551bb054e369fcce808

See more details on using hashes here.

Provenance

The following attestation bundles were made for flow_state_calculator-0.4.2-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