Project Roadmap
This issue tracks the overall plan for getting the horn simulation pipeline from its current state (scaffolding works, physics don't) to a working tool that produces meaningful acoustic simulation results.
Current State
The pipeline has good scaffolding — containerised packages, Nextflow orchestration, CI/CD, parallel frequency bands — but the physics are non-functional:
- BEM coupling (
bempp.x.dolfinx) has never existed in any pip release
- SPL metric is an L2 norm over the full volume (physically meaningless)
- Only conical horn geometry is implemented (spec calls for 4 profiles)
- Analysis is limited to a single SPL-vs-frequency plot
mesh_size is never forwarded to the solver
- Groovy integer division silently drops frequency samples
Phase 1: Correctness — FEM-only pipeline producing real results
Goal: Fix the bugs that make the current pipeline output meaningless. After this phase, running the pipeline with a conical horn should produce physically plausible SPL data.
Phase 2: BEM Research — determine if hybrid FEM-BEM is viable
Goal: Answer the question: can we get exterior radiation modelling working? This runs in parallel with Phase 3.
Phase 3: Features — horn profiles, analysis, driver DB
Goal: Expand the pipeline from "one conical horn with one plot" to the feature set described in the spec. Can start once Phase 1 is done.
Phase 4: Cleanup and polish
Goal: Pay down tech debt. Can be done opportunistically alongside other phases.
Phase 5: Full FEM-BEM coupling
Goal: Implement the "gold standard" hybrid FEM-BEM simulation from the design spec. Depends entirely on the outcome of #39.
Recommended execution order
Phase 1 (correctness)
|
+---> Phase 2 (BEM spike) -----> Phase 5 (if viable)
| |
+---> Phase 3 (features) <------ inform from spike
|
+---> Phase 4 (cleanup, anytime)
Phase 1 is the critical path. Phase 2 and 3 can run in parallel once Phase 1 is done. Phase 4 is background work.
Project Roadmap
This issue tracks the overall plan for getting the horn simulation pipeline from its current state (scaffolding works, physics don't) to a working tool that produces meaningful acoustic simulation results.
Current State
The pipeline has good scaffolding — containerised packages, Nextflow orchestration, CI/CD, parallel frequency bands — but the physics are non-functional:
bempp.x.dolfinx) has never existed in any pip releasemesh_sizeis never forwarded to the solverPhase 1: Correctness — FEM-only pipeline producing real results
Goal: Fix the bugs that make the current pipeline output meaningless. After this phase, running the pipeline with a conical horn should produce physically plausible SPL data.
params.mesh_sizefrommain.nfto the solver CLImax_freq_mesh→ element size < λ/6)output_dirvsoutput_file)Phase 2: BEM Research — determine if hybrid FEM-BEM is viable
Goal: Answer the question: can we get exterior radiation modelling working? This runs in parallel with Phase 3.
run_simulationnf-test (needs real STEP fixture from geometry stage)Phase 3: Features — horn profiles, analysis, driver DB
Goal: Expand the pipeline from "one conical horn with one plot" to the feature set described in the spec. Can start once Phase 1 is done.
get_driver_params.py(references non-existentdrivers.json)assert True)Phase 4: Cleanup and polish
Goal: Pay down tech debt. Can be done opportunistically alongside other phases.
solver_runner.pyhorn-coreshared data model (currently unused)horn-core__init__.pyexport its data structuresdolfinxandgmshtohorn-solverpyproject.tomlpython3.10paths in Dockerfiles*.egg-infodirectorieshorn-bem-solverpackageparams.test_outdirfrommain.nfplt.close()memory leak in plottercompare_hornsas a pyproject.toml script entry pointPhase 5: Full FEM-BEM coupling
Goal: Implement the "gold standard" hybrid FEM-BEM simulation from the design spec. Depends entirely on the outcome of #39.
Recommended execution order
Phase 1 is the critical path. Phase 2 and 3 can run in parallel once Phase 1 is done. Phase 4 is background work.