|
1 | 1 | ## VortexStepMethod [Unreleased] |
| 2 | + |
| 3 | +### Breaking Changes |
| 4 | + |
| 5 | +#### Unified Wing type |
| 6 | +- `Wing` and `RamAirWing` merged into a single `Wing` struct |
| 7 | +- `RamAirWing` constructor replaced by `ObjWing` (returns a `Wing` |
| 8 | + with OBJ-specific fields populated) |
| 9 | +- Renamed `ram_geometry.jl` → `obj_geometry.jl` |
| 10 | + |
| 11 | +#### Unrefined sections replace panel grouping |
| 12 | +- `n_groups` replaced by `n_unrefined_sections` in `Wing`, |
| 13 | + `WingSettings`, and `SolverSettings` |
| 14 | +- `PanelGroupingMethod` enum removed |
| 15 | +- Each refined panel maps back to its unrefined section via |
| 16 | + `refined_panel_mapping` |
| 17 | +- `n_groups` and `grouping_method` in YAML settings files emit a |
| 18 | + deprecation warning and are ignored |
| 19 | + |
| 20 | +#### Renamed VSMSolution fields (`_array` → `_dist`) |
| 21 | +- `panel_width_array` → `width_dist` |
| 22 | +- `alpha_array` → `alpha_dist` |
| 23 | +- `cl_array` → `cl_dist`, `cd_array` → `cd_dist`, |
| 24 | + `cm_array` → `cm_dist` |
| 25 | +- `panel_lift` → `lift_dist`, `panel_drag` → `drag_dist` |
| 26 | +- `panel_moment` → `panel_moment_dist` |
| 27 | +- `group_moment_dist` → `moment_unrefined_dist` |
| 28 | +- Type parameter `Solver{P,G}` / `VSMSolution{P,G}` changed to |
| 29 | + `Solver{P,U}` / `VSMSolution{P,U}` (U = unrefined sections) |
| 30 | + |
| 31 | +#### Mesh refinement separated from reinit |
| 32 | +- `reinit!` no longer re-refines the mesh; it only updates panel |
| 33 | + properties from existing `refined_sections` |
| 34 | +- New `refine!` function handles mesh refinement explicitly |
| 35 | + |
2 | 36 | ### Changed |
3 | | -- Unified `Wing` and `RamAirWing` into single `Wing` type (`RamAirWing` now alias for `ObjWing`) |
4 | | -- Renamed `ram_geometry.jl` to `obj_geometry.jl` |
5 | | -- Wing geometry uses unrefined sections with automatic panel-to-section mapping |
6 | | -- Consistent naming: variables ending in `_dist` are per-panel, `_unrefined_dist` per unrefined section |
7 | | -- `VSMSolution` field names: `panel_width_array` → `width_dist`, `alpha_array` → `alpha_dist`, etc. |
8 | | -- Enhanced Makie extension with `plot_combined_analysis` for combined plotting |
| 37 | +- Consistent naming convention: `_dist` = per-panel, |
| 38 | + `_unrefined_dist` = per-unrefined-section |
| 39 | +- `correct_aoa` solver setting added (default `false`) |
| 40 | +- `alpha_geometric` is now the angle between apparent wind and chord |
| 41 | +- Panel `width` calculation uses sum instead of average |
| 42 | +- `src/plotting.jl` removed; all plotting moved to Makie and |
| 43 | + ControlPlots extensions |
| 44 | +- `TestEnv` no longer required as a global dependency |
9 | 45 |
|
10 | 46 | ### Added |
11 | | -- `n_unrefined_sections` field in `Wing` for tracking pre-refinement sections |
| 47 | +- `n_unrefined_sections` field in `Wing` for tracking |
| 48 | + pre-refinement sections |
12 | 49 | - `refined_panel_mapping` for automatic panel-to-section association |
13 | | -- Unrefined distribution fields in `VSMSolution`: `cl_unrefined_dist`, `cd_unrefined_dist`, `cm_unrefined_dist`, `alpha_unrefined_dist`, `moment_unrefined_dist` |
14 | | -- `PanelDistribution.NONE` for wings already refined |
15 | | -- Kwarg `sort_sections` for section ordering |
16 | | -- YAML wing deformation tests |
17 | | -- Unrefined distribution tests |
| 50 | +- Unrefined distribution fields in `VSMSolution`: |
| 51 | + `cl_unrefined_dist`, `cd_unrefined_dist`, `cm_unrefined_dist`, |
| 52 | + `alpha_unrefined_dist`, `moment_unrefined_dist`, |
| 53 | + `width_unrefined_dist` |
| 54 | +- `alpha_geometric_dist` field in `VSMSolution` |
| 55 | +- `unrefined_deform!` for applying twist and TE deflection to |
| 56 | + unrefined sections; `non_deformed_sections` preserved for |
| 57 | + reset/re-deformation |
| 58 | +- `refine!` function for explicit mesh refinement |
| 59 | +- `plot_combined_analysis` in the Makie extension |
| 60 | +- Literature comparison plotting in the Makie extension |
| 61 | +- `obj_file` and `dat_file` fields in `WingSettings` |
| 62 | +- `sort_sections` kwarg for section ordering control |
| 63 | +- Separate `test/Project.toml` and `examples/Project.toml` |
| 64 | +- New tests: `test_unrefined_dist.jl`, |
| 65 | + `test_refinement_validation.jl`, `test_yaml_wing_deformation.jl` |
18 | 66 |
|
19 | 67 | ### Removed |
20 | | -- Panel grouping (replaced with unrefined section mapping) |
21 | | -- `PanelGroupingMethod` enum (deprecated, grouping automatic via mapping) |
22 | | -- `n_groups` and `grouping_method` from settings files and structs |
23 | | -- `n_groups` field from `WingSettings` and `SolverSettings` |
| 68 | +- `RamAirWing` type (use `ObjWing` or `Wing` directly) |
| 69 | +- `PanelGroupingMethod` enum |
| 70 | +- `n_groups` from `WingSettings`, `SolverSettings`, and YAML files |
| 71 | +- `src/plotting.jl` (920 lines moved to extensions) |
24 | 72 |
|
25 | 73 | ## VortexStepMethod v2.3.0 2025-10-16 |
26 | 74 | ### Added |
|
0 commit comments