Skip to content

Add neuralfoil and automatic conversion from obj to yaml#249

Open
1-Bart-1 wants to merge 106 commits into
mainfrom
neuralfoil
Open

Add neuralfoil and automatic conversion from obj to yaml#249
1-Bart-1 wants to merge 106 commits into
mainfrom
neuralfoil

Conversation

@1-Bart-1

@1-Bart-1 1-Bart-1 commented Jul 1, 2026

Copy link
Copy Markdown
Member

No description provided.

1-Bart-1 and others added 4 commits July 1, 2026 14:01
- neuralfoil: kulfan/neuralfoil symbols now from AirfoilAero.
- polars: create_polars from AirfoilAero (read_aero_matrix stays core).
- wing_geometry: LEI (t,camber) test rewritten to POLY with coeffs from
  AirfoilAero.lei_poly_coeffs; asserts refinement interpolates the coeff vectors.

The 6 ObjWing-based tests are not repointed: ObjWing built an obj+single-foil
XFoil POLAR_MATRICES wing, a converter workflow ObjAdapter does not yet rebuild
(obj_to_yaml does per-section NeuralFoil instead). Needs a decision.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Core YAML loader gains POLAR_MATRICES support: wing_airfoils info_dict may carry
cl_file_path/cd_file_path/cm_file_path; load_matrix_polar_data reads the three
(alpha x delta) matrices via read_aero_matrix. ObjAdapter.obj_to_matrix_yaml
slices the mesh for LE/TE (perpendicular_sections), generates one shared airfoil's
cl/cd/cm matrices via AirfoilAero.create_polars, and writes the geometry YAML -
the convert-then-load replacement for the dropped live ObjWing. Removed tic/toc
(Timers) from create_polars.

Validated: obj+foil -> yaml -> Wing(yaml) loads POLAR_MATRICES and solves.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add ram_air_matrix_wing() test helper (obj_to_matrix_yaml -> Wing(yaml)) and
repoint wake/forwarddiff/results/refinement_validation/plotting to it.
kite_geometry: imports split (mesh utils from ObjAdapter, aero_matrix from core);
the three ObjWing-internal testsets (radius/gamma_tip/UNCHANGED/obj deform!) are
skipped with a redesign TODO since that behavior was intentionally dropped.

Numerics of the converted-wing tests still need a full test-env run to confirm
(assertions may need tolerance updates).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ups green

Verified in the test env: wing_geometry 295/295 (POLY), neuralfoil+polars 27/27
(AirfoilAero), refinement_validation+wake+results+forwarddiff 55/55 (obj+foil ->
POLAR_MATRICES -> Wing converter replacement, incl. ForwardDiff).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1-Bart-1 and others added 4 commits July 1, 2026 16:33
…d polars

- Move neuralfoil/kulfan cross-validation test to lib/AirfoilAero/test/runtests.jl
  with its own fixture (test/data/test_airfoil.dat = the former midspan foil coords,
  keeping the hardcoded aerosandbox/neuralfoil reference values valid). AirfoilAero
  gains [extras]/[targets] so it tests independently (SciML monorepo style).
- Remove the kite midspan foil.dat + generated cl/cd/cm foil polars from data/
  (regenerated from the .obj); gitignore them.
- Remove neuralfoil_benchmark.jl + neuralfoil_polars.jl examples.
- Condense multiline inline comments in the yaml loader.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@codecov

codecov Bot commented Jul 10, 2026

Copy link
Copy Markdown

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