This release is a pre-release and may not be stable for production use.
AeroFlowSim
Mission
AeroFlowSim is a free, open-source CFD software for nozzle aerodynamics and propulsion, with a built-in GUI. Anyone - students, CubeSat teams, researchers, engineers - can set up, mesh, solve and analyse their own cases in one install, and trust the results, because the software checks its own validity and is validated against published benchmarks. Others can extend it, and publish work done with it.
Release claim: "A GUI-first, open-source CFD solver for nozzle and propulsion aerodynamics, with built-in validity checks and published validation."
Status
2D alpha, version 0.2.0a1 (pre-release). Inputs, file formats and results may still change between versions.
Installers for Windows, macOS (Apple silicon and Intel) and Linux (AppImage): see the GitHub releases; or pip install aeroflowsim, or install from source (below). User guide: docs/user_guide.md.
What works now
| Template | Physics | Validated against |
|---|---|---|
nozzle_axi |
2D axisymmetric Euler flow through a converging-diverging nozzle (conical, rounded throat, or CSV wall); thrust, Isp, Cf, Cd | quasi-1D theory; Back, Massier and Gier (1964) measured wall pressures |
external_2d |
2D / axisymmetric Euler flow round a body (wedge, diamond, NACA 4-digit, cylinder, cone, coordinates file); Cl, Cd, Cm, Cp | oblique shocks, shock-expansion theory, Taylor-Maccoll cones, Billig stand-off, Vassberg and Jameson (2010) NACA 0012 |
geometry_2d |
your own 2D geometry from the geometry workspace, internal or external flow | Prandtl-Meyer expansion |
sod_shock_tube, quasi1d_nozzle, demo_heat1d |
1D / quasi-1D | exact Riemann solution, isentropic and normal-shock theory |
- Verification: Method of Manufactured Solutions shows second order (1.98-2.02) on quads, distorted quads, triangles and mixed meshes, planar and axisymmetric; GCI tool for mesh studies.
- Desktop GUI (Qt + VTK): Geometry -> Mesh -> Setup -> Run -> Results with a workflow strip, projects, undo/redo, units, light/dark theme; CAD-like 2D geometry workspace.
- Post-processing at Fluent level: contours, contour lines, vectors, streamlines, mirror and 3D revolved views, linked views, surfaces, integrals, flux balance, forces, report definitions as live monitors and convergence criteria, XY plots with reference data, snapshots and differences, custom field functions, exports (CSV, VTU, Tecplot), automatic HTML/PDF report.
- Validity checks after every run; validation report validation/report.md (quick set on every push, full set weekly).
- Command line and scripting with the same engine as the GUI (
python -m aeroflowsim run | report | export | snapshot,aeroflowsim.post). - Equations and methods: docs/theory_manual.md; tutorials in docs/tutorials.
Install
You need Python 3.13 and Git. In a terminal (PowerShell on Windows), from the project folder:
python -m venv .venv
Activate the virtual environment (Windows; on Linux/macOS use source .venv/bin/activate):
.venv\Scripts\activate
Install AeroFlowSim and its dependencies (-e = "editable": your edits take effect at once):
python -m pip install -e .
This also installs Gmsh (meshes and the geometry workspace's CAD kernel, OpenCASCADE) and ezdxf
(DXF files). The old command python -m pip install -e ".[mesh]" still works.
requirements.txt lists the exact versions used during development
(python -m pip install -r requirements.txt).
Start the GUI
python -m streamlit run app.py
Your browser opens the app at http://localhost:8501. For privacy, .streamlit/config.toml makes
the GUI reachable only from your own computer (nobody else on your network can open it or run
cases on it) and turns off Streamlit's usage statistics. Choose a case in the sidebar, set the inputs in Setup, build the
mesh in Mesh, press Run, and look at the plots, key numbers and Validity checks in Results.
Command line and scripts
python -m aeroflowsim list
python -m aeroflowsim run cases/quasi1d_nozzle
python -m aeroflowsim run cases/quasi1d_nozzle --set p_back=250000 --set n_cells=400
Results (CSV, YAML summary, PNG plots) are written to results/<case_name>/.
From a Python script:
import aeroflowsim
out = aeroflowsim.run_case("cases/quasi1d_nozzle", {"p_back": 2.5e5, "max_iter": 30000})
print(out.result.key_numbers["x_shock"]) # (value, unit)
for check in out.checks:
print(check.level, check.message)
Tests and validation
Fast tests (a few minutes):
python -m pytest
Validation tests (slow: complete cases compared with published reference values):
python -m pytest -m validation
Run all validation cases and write validation/report.md (pass/fail table):
python validation/run_all.py
Tests run automatically on GitHub (Windows, Ubuntu and macOS) for every push and pull request
(.github/workflows/tests.yml).
Roadmap
- Phase 1 - 2D foundations and supersonic: project foundations (done: 0.1); face-based mesh format and structured nozzle meshes with VTK export; Gmsh 2D meshing and a shape library (nozzles, intakes, airfoils, nose cones, blunt bodies); gas library; 2D and axisymmetric Euler solver with thrust/Isp/Cf and Cp/Cl/Cd/Cm; validation (wedge, diamond airfoil, cone, cylinder bow shock, Back-Massier-Gier nozzle, NACA 0012).
- Phase 2 - speed and all speeds: Numba acceleration; low-Mach preconditioning.
- Phase 3 - 3D: 3D Gmsh meshes and STEP import; 3D Euler solver with ParaView export.
- Phase 4 - viscous: laminar Navier-Stokes, Spalart-Allmaras, k-omega SST; wall heat flux.
- Phase 5 - advanced and release: high-temperature gas, GPU speed-up, GCI mesh-independence tool, documentation and theory manual, GitHub release, Zenodo DOI, JOSS paper.
Contributing
New cases, shapes and gases are welcome - see CONTRIBUTING.md.
Licence
AeroFlowSim is free software: you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version (GPL-3.0-or-later). See LICENSE.
It is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY.
How to cite
If you use AeroFlowSim in your work, please cite it (details in CITATION.cff; GitHub shows a "Cite this repository" button for it). A DOI will follow with the first release.
Mehta, D. (2026). AeroFlowSim (version 0.1.0.dev0) [Computer software].
Metadata
Release files for aeroflowsim 0.2.0a3
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 |
|---|---|---|---|---|
| aeroflowsim-0.2.0a3.tar.gz | 4.0 MB | With provenance | Details for aeroflowsim-0.2.0a3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| aeroflowsim-0.2.0a3-py3-none-any.whl | Python 3 | none | any | Details for aeroflowsim-0.2.0a3-py3-none-any.whl |
Total release size: 8.0 MB
Release files / aeroflowsim-0.2.0a3.tar.gz
| Download URL | aeroflowsim-0.2.0a3.tar.gz |
|---|---|
| Size | 4.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4463bf44ac2a6b5f4548e4fb4304f1d3f5b36fdd690a3df4e08492e5e305c3b3
|
|
BLAKE2b-256 checksum How to use checksums |
8941e11acf8b2a20e2af713b471865da3268cb834b5a004c6812832e559d6139
|
| 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 Oct 31, 2026.
Transparency logRelease files / aeroflowsim-0.2.0a3-py3-none-any.whl
| Download URL | aeroflowsim-0.2.0a3-py3-none-any.whl |
|---|---|
| Size | 4.0 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4ccee2de03cab4371a8b9896e73c8f3eb084c4663c31b656b0de0865129567ee
|
|
BLAKE2b-256 checksum How to use checksums |
d7d4d4de632493c5cd4817a6abaf1e7022557812f7635206ebe2288e7c9e14a5
|
| 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 Oct 31, 2026.
Transparency logSecurity for aeroflowsim 0.2.0a3
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 aeroflowsim-0.2.0a3.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 Oct 31, 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.