Skip to content

feat: add tractrix, OS, Le Cléac'h, and CD horn profiles - #72

Merged
timini merged 1 commit into
mainfrom
feat/add-four-horn-profiles
Mar 1, 2026
Merged

feat: add tractrix, OS, Le Cléac'h, and CD horn profiles#72
timini merged 1 commit into
mainfrom
feat/add-four-horn-profiles

Conversation

@timini

@timini timini commented Mar 1, 2026

Copy link
Copy Markdown
Owner

Summary

  • Adds 4 new horn flare profiles: tractrix, oblate spheroidal (OS), Le Cléac'h, and constant directivity (CD)
  • Expands the design space from 3 to 7 profiles across auto/fullauto pipelines
  • Each profile has STEP geometry generation, 3D rendering, plot styling, and HTML badge colours

Changes across 13 files

Area Files What
Enum parameters.py 4 new FlareProfile variants
Generator generator.py 4 new create_*_horn() functions + dispatch
Renderer horn_render.py 4 vectorised numpy branches in _radius_profile()
Styling plot_theme.py, html_report.py, single_report.py Colours, linestyles, badge bg/fg
Defaults candidates.py, geometry_designer.py DEFAULT_PROFILES expanded to 7
Pipeline main.nf Profile channels updated for auto + render
Tests 4 test files Smoke tests, volume validation, endpoint checks, grid size assertions

Profile math

Profile Character Formula
Tractrix Rapid initial expansion Scaled parametric tractrix curve
OS (Geddes) Smooth wavefront matching r(z) = sqrt(r_t² + (z·tan θ)²)
Le Cléac'h Aggressive mouth flare Clipped tractrix with a = r_mouth
CD Even coverage angle 30% exponential throat → conical body

Test plan

  • 119 core + analysis tests pass
  • 17 geometry tests pass (smoke, volume, throat/mouth area, dispatch)
  • All 7 STEP geometries generate successfully in auto pipeline
  • All 7 3D renders kick off in auto pipeline

🤖 Generated with Claude Code

Expand the design space from 3 to 7 flare profiles for richer
mid-horn and hi-fi exploration in auto/fullauto pipelines.

- Tractrix: rapid initial expansion, minimal throat reflections
- Oblate Spheroidal (Geddes): smooth wavefront matching
- Le Cléac'h: aggressive mouth flare for impedance matching
- Constant Directivity: exponential throat + conical body compound

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@timini
timini merged commit b19eed5 into main Mar 1, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant