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.3.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.3-py3-none-any.whl (50.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: flow_state_calculator-0.4.3.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.3.tar.gz
Algorithm Hash digest
SHA256 7c9b5df1e94a54311ef0dba913440c3ca89e6928b6ea44b544a3d25b0e840fd4
MD5 6c32498f07b789d995431e09ddb9ac31
BLAKE2b-256 9ffb7177a94b8b48b651cf02d02ed598980b3a2d157c43789ac7d5e432bdf34b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for flow_state_calculator-0.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 02620de6daf02f5b2b720d9ea68dc41155539cbf133314b9c4230b13be274c22
MD5 1ac0c838333666ea10a9c3dd2cdff232
BLAKE2b-256 e49e140fc28aede9af7d8f0c77560548f95888ae79a5985093eaf6d55284ffa2

See more details on using hashes here.

Provenance

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