From 5a4b7ec3e85dd739beec6987eb1d38235a38b8af Mon Sep 17 00:00:00 2001 From: 1-Bort-1 <323661610+1-Bort-1@users.noreply.github.com> Date: Sat, 12 Sep 2026 13:01:39 +0200 Subject: [PATCH 1/2] Move the contour-fit entry under Unreleased v5.1.0 was cut while this branch was open, so the merge left the entry inside a released section. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_011SsYFmCTCdHi4sygUaabfs --- CHANGELOG.md | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a3c6cb1..4c77d485 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## Unreleased + +### Fixed + +- `generate_airfoils` fits the contour it is handed rather than shrink-wrapping it a + second time. Both adapters wrap before they call, with the `wrap_method` their + settings name, so the second wrap discarded that setting and degenerated the Kulfan + fit: on the SK100's 45 mesh sections nine came out with `.dat` coordinates at 1e2 to + 1e4 instead of 0..1, and any consumer mapping the mesh onto a structure rejected the + geometry. + ## VortexStepMethod v5.1.0 2026-09-11 ### Added @@ -19,12 +30,6 @@ ### Fixed -- `generate_airfoils` fits the contour it is handed rather than shrink-wrapping it a - second time. Both adapters wrap before they call, with the `wrap_method` their - settings name, so the second wrap discarded that setting and degenerated the Kulfan - fit: on the SK100's 45 mesh sections nine came out with `.dat` coordinates at 1e2 to - 1e4 instead of 0..1, and any consumer mapping the mesh onto a structure rejected the - geometry. - The `NONLIN` solver backtracks along each Newton step instead of always taking it whole, so it converges past stall where the full step used to cycle: on the `test/solver/solver_test_wing.yaml` wing at 26.6° it stopped 3.6% below `LOOP`'s From a82082632ba60e913eeb695dbcaf93f0443ce1c6 Mon Sep 17 00:00:00 2001 From: 1-Bort-1 <323661610+1-Bort-1@users.noreply.github.com> Date: Sat, 12 Sep 2026 13:03:40 +0200 Subject: [PATCH 2/2] Say the wrap inflation in one line Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_011SsYFmCTCdHi4sygUaabfs --- test/airfoil_aero/test_airfoil_aero.jl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/airfoil_aero/test_airfoil_aero.jl b/test/airfoil_aero/test_airfoil_aero.jl index 70399ce8..cd09c3f5 100644 --- a/test/airfoil_aero/test_airfoil_aero.jl +++ b/test/airfoil_aero/test_airfoil_aero.jl @@ -283,8 +283,7 @@ end aero_solver=NeuralFoilSolver(model_size="medium"), verbose=false) @test ok == [1] _, written_y = read_dat_coords(joinpath(out, "airfoils", "1.dat")) - # A second shrink wrap inflates the section by its own clearance, 0.006, which is - # three orders of magnitude above the resampling error this tolerance allows. + # A second shrink wrap inflates the section by its clearance, 0.006 — 60x this bound. @test maximum(abs, collect(extrema(written_y)) .- collect(extrema(fitted_y))) < 1e-4 end