Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@
own `_d<degrees>.dat` filename tag instead of the `delta_suffix` one the files were
written under, which spells a minus sign `m` and a decimal point `p`, so
`delta=-10` or `delta=2.5` found no `.dat` and drew nothing.
- `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

Expand All @@ -29,12 +35,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
Expand Down
3 changes: 1 addition & 2 deletions test/airfoil_aero/test_airfoil_aero.jl
Original file line number Diff line number Diff line change
Expand Up @@ -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
Loading