Skip to content

Extension plan: applications built on the solver

Written 2026-09-24. This page lists applications that could be built from what aeolus1d already has. It is a menu of ideas, not a commitment. It owns one question: what else could this code base become? Product features and their order stay in the roadmap, and position stays in STATUS.md. An idea moves from here to the roadmap when someone decides to build it.

None of the effort notes below are measured. They say which parts already exist and which do not, so the first step is visible.

What there is to build on

Area In the tree
Gas dynamics 1D pipes (first order, MUSCL, MP5), plenum, EHR, Corberán and passthrough junctions, BCs of every common kind, quasi-1D area change
Thermodynamics ideal gas, per-cell γ, Redlich-Kwong, Peng-Robinson and tabulated real gas
Chemistry species transport, kinetics and mechanisms, equilibrium, fuels (fuels.py)
Engine slider-crank cylinders, Wiebe / SI / diesel combustion, valves, injectors, turbochargers on shafts
Aftertreatment DOC, DPF (soot, regen, ash), SCR with urea, TWC
Heat gas pipe to wall to coolant, standalone dynamic walls
Acoustics Helmholtz resonators, eigenmodes, transmission loss (analysis/acoustics*.py), WAV export (audio.py)
Vehicle drive cycles, vehicle and driveline, hybrid, battery model, energy management
Studies optimizer, DOE, UQ, sensitivity, surrogates
Integration FMU export (fmi.py), Cruise M / GT-Suite / Boost / WAVE importers, field inventory, connection handshake
GUI canvas editor, run and live plots, network view, BC and connection views

Engines and vehicles

Draw chambers, perforated pipes and resonators on the canvas, then see the transmission loss and hear the result as a WAV. The optimizer trades noise against back pressure. - Reuses: Helmholtz and EHR components, analysis/acoustics*.py, audio.py, optimize.py, the GUI plot dock. - Missing: a muffler-element palette (perforates, baffles), a transmission-loss view in the GUI, and a noise-vs-back-pressure objective. - First step: a bundled two-chamber muffler example with a transmission-loss test.

Run a legal drive cycle through engine, turbo and aftertreatment, and report grams per km for each pollutant against a named limit. - Reuses: drive_cycles.py, vehicle.py, the quasi-steady driver, DOC/DPF/SCR/TWC, nox_post.py, examples 76_wltp_lite_dpf and 85_vehicle_drive_cycle. - Missing: a limits table per standard, a cumulative-mass report and a pass/fail summary page. - First step: a cumulative tailpipe-mass report on 76_wltp_lite_dpf.

3. Alternative-fuel engine lab

Compare hydrogen, ammonia and conventional fuel in one engine on power, efficiency, NOx and ammonia slip. - Reuses: fuels.py, chemistry mechanisms (cantera_h2_air.yaml), species transport, SCR, the connection handshake (which catches a species dropped between parts). - Missing: a side-by-side study runner and validated combustion settings per fuel. - First step: one engine case run on two fuels, with a comparison table.

Beyond automotive (the same physics)

4. Gas pipeline network tool

Model line pack, compressor stations and the pressure surge when a valve closes, in natural gas or hydrogen. - Reuses: real-gas pipes, junctions, BCs, the quasi-steady driver for slow transients. - Missing: long-pipe friction and elevation terms at pipeline scale, a compressor-station component, and km-scale meshing guidance. - First step: a single long real-gas pipe with a valve closure, checked against a textbook surge.

5. Hydrogen refuelling station

Model a high-pressure fill from storage to a vehicle tank, including how hot the tank gets. - Reuses: real-gas equations, plenums as tanks, valve BCs, heat links. - Missing: a tank-wall heat model tuned for fills, and a fill-protocol controller. - First step: a storage → valve → tank example with the tank temperature plotted.

6. Ventilation, HVAC and tunnel ducts

Balance airflow in a duct network, with fans as boundaries, plenums as rooms, and heat exchange at the walls. - Reuses: pipes, plenums, heat links, the quasi-steady driver. - Missing: a fan-curve BC, and duct fittings (bends, dampers) as loss elements. - First step: a fan-curve BC and a three-room example.

7. Pneumatic systems

Air brakes, air tools and tube networks, where the timing of pressure waves matters. - Reuses: pipes, plenums, valve BCs, controllers. - Missing: actuator (piston-cylinder) components with a load. - First step: a brake-line example measuring the delay from valve to chamber.

8. Wind-instrument and organ-pipe synthesizer

Play a 1D trumpet or organ pipe and listen to it. - Reuses: pipes, resonators, eigenmodes, audio.py. - Missing: a lip or reed excitation model at the mouthpiece. - First step: an organ pipe driven by a pressure source, exported to WAV.

Tools built on the solver

9. Digital twin and HIL-lite

Export an engine or aftertreatment model as an FMU and drive it from a controller test bench. - Reuses: fmi.py, interop/fmu.py, controllers. - Missing: a real-time pacing mode and a worked controller example. - First step: export 39_4cyl_engine_turbo_scr and step it from a Python co-simulation loop.

10. Surrogate "what-if" sliders

Train a fast model on DOE runs, and give instant answers from sliders in the GUI. - Reuses: doe.py, surrogates.py, uq.py, sensitivity.py. - Missing: a GUI panel that trains and queries the surrogate. - First step: a surrogate of back pressure against two muffler dimensions (pairs with idea 1).

11. Model-migration checker

Import a vendor model, run it, and give a checklist of what did not carry over. - Reuses: the importers, the field inventory (aeolus1d fields), the connection handshake (aeolus1d handshake). - Missing: one combined report that joins the two, with a pass/fail per item. - First step: a aeolus1d migrate-check FILE command that runs both and prints one report.

Recommendation

Start with 1 or 2. They lean on the most finished parts (acoustics, aftertreatment, the optimizer, the GUI plots) and give a visible result fastest. 11 is the cheapest, since both halves already exist.