Skip to content

feat(optimization): wire up evaluator, problem, and study (M3)#2

Merged
vcaries merged 1 commit into
mainfrom
feat/m3-optimization-layer
May 27, 2026
Merged

feat(optimization): wire up evaluator, problem, and study (M3)#2
vcaries merged 1 commit into
mainfrom
feat/m3-optimization-layer

Conversation

@vcaries

@vcaries vcaries commented May 27, 2026

Copy link
Copy Markdown
Owner

M3 — Optimization layer (pymoo)

What

  • AirfoilEvaluator.evaluate: genome -> params -> geometric prune ->
    XFOIL -> physical constraints -> objectives. Failures (bad genome,
    generator/solver errors) translated to finite sentinel values.
  • AirfoilProblem._evaluate: pymoo Problem adapter, population-wide
    evaluation, constraint-aware.
  • HistoryCallback: properly inherits pymoo Callback, exposes
    best_per_generation() and __len__.
  • OptimizationStudy.run / save_checkpoint / load_checkpoint /
    resume. End-to-end demonstrated on a synthetic L/D objective —
    GA converges to the analytic optimum.

Tests

+12 unit tests (now 117 total). All green:

  • ruff / ruff format / mypy / pytest ✅

Out of scope (next)

  • M4: campaigns layer (parallel runners, persistent ResultStore)
  • M5: visualization (matplotlib plots + GIF/MP4 animation pipeline)

@vcaries vcaries merged commit 616642c into main May 27, 2026
1 of 7 checks passed
@vcaries vcaries deleted the feat/m3-optimization-layer branch May 27, 2026 20:20
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.

2 participants