openflume (Python)
Python API for OpenFLUME, an open-source thermal-fluid network solver for steady and transient analysis of propulsion feed systems, cryogenic lines, and tank pressurization, with real-fluid properties from CoolProp.
pip install openflume # add [numpy,pandas] for array/DataFrame output
No other installation is needed. The solver core is the same TypeScript code as the
web app, bundled into the package and run on a Node.js runtime that pip installs as
a dependency (nodejs-wheel-binaries). It is the same solver, with the same
verification record, not a port.
Quick start
import openflume as of
net = of.load("feed_system.fn") # .fn from the web app, or .json
print(net.validate()) # [] means runnable
result = net.solve() # steady or transient per settings.mode
print(result.converged, result.node("tank")["pressure"]) # SI units: Pa
Start from a bundled example and edit the model as a plain dict:
net = of.example("Tank blowdown")
net.settings["endTime"] = 2.0
net.branch("orifice")["component"]["cd"] = 0.65
tr = net.solve(progress=lambda p: print(f"t = {p['time']:.3f} s", end="\r"))
t, p = tr.times, tr.series("tank", "pressure") # numpy arrays if numpy is installed
df = tr.frame() # pandas: index time, columns (id, quantity)
Parameter sweeps are ordinary Python:
base = of.example("Sanity: orifice hand-calc")
for cd in (0.55, 0.60, 0.65):
net = base.copy()
net.branch("o")["component"]["cd"] = cd
print(cd, net.solve().branch("o")["mdot"])
Fluid properties use the same EOS models as the solver:
lox = of.Fluid.real("Oxygen")
lox.density(2e6, 95.0) # kg/m³
lox.saturation_temperature([1e5, 5e5, 1e6])
of.fluids(curated=True) # CoolProp HEOS catalogue
of.combustion_gas("lox-rp1", pc=7e6, of=2.6) # NASA CEA equilibrium tables
Command line:
openflume validate model.fn
openflume solve model.fn -o result.json
openflume info
Notes
- Units are SI throughout: Pa, K, kg/s, m, m², J/kg.
- Always check
result.converged. The solver returns its best state either way. - Model format.
Network.configis theNetworkConfigdict (schema v2) defined insrc/core/schema.tsand documented in the user manual..fnfiles round-trip losslessly with the web app. - User code. Models can embed JavaScript user components (
componentLibrary). That code runs in the Node process with your user's privileges, so only solve models you trust. - Runtime. One Node process per
Sessionis started on first use and stopped at exit. SetOPENFLUME_NODEto use a specific Node.js 22+ executable. For parallel sweeps, use one process (and therefore one session) per worker, e.g. withconcurrent.futures.ProcessPoolExecutor. Ctrl-C interrupts a running solve.
Full documentation: docs/python.md. License: MIT.
Metadata
Release files for openflume 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| openflume-0.3.1.tar.gz | 4.6 MB | With provenance | Details for openflume-0.3.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| openflume-0.3.1-py3-none-any.whl | Python 3 | none | any | Details for openflume-0.3.1-py3-none-any.whl |
Total release size: 9.2 MB
Release files / openflume-0.3.1.tar.gz
| Download URL | openflume-0.3.1.tar.gz |
|---|---|
| Size | 4.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c34439e6ba67dca27c7cea75bb123198d9ac5d2813b5131e3127a792121d9985
|
|
BLAKE2b-256 checksum How to use checksums |
cce5801110d0fd33b9765b1d5050579a3b9e3882a434fd89f0215fda1710cb4e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.
Transparency logRelease files / openflume-0.3.1-py3-none-any.whl
| Download URL | openflume-0.3.1-py3-none-any.whl |
|---|---|
| Size | 4.6 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ba752590f501cefc1ecb45745157d5875fd4a53789c9e3816116a24ed93bd1cb
|
|
BLAKE2b-256 checksum How to use checksums |
c5e516b5b98e16277fed350432f8d9e5a7a248a9aea72f0c9b400ff8cd224f6c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.
Transparency logSecurity for openflume 0.3.1
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for openflume-0.3.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.
Transparency logA 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.