Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

AeroFlowSim

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.

Mach number in the N2 nozzle

3D revolved view NACA 0012 at Mach 0.8

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)

Source distribution for aeroflowsim 0.2.0a3
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)

Table of built distributions (wheels) for aeroflowsim 0.2.0a3
File Interpreter ABI Platform Actions
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 log

Release 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 log

Security 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.

Select from 2 files

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 log

A 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.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page