Skip to content
Merged
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
93 changes: 73 additions & 20 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).

## 2025-09-22
## [1.1.0] - 2025-09-26

### ⚠️ Breaking Changes
- **Class rename:** `WingAerodynamics` → **`BodyAerodynamics`**.
Expand All @@ -17,8 +17,6 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
- Removed options/attributes: **`using_previous gamma`**, **`min_relaxation_error`**, **`is_new_vector_definition`**.
- **Stall model refactor:** Simonet-related stall logic moved out of `Solver` into **`solver_functions`** and a dedicated *stall* branch.

---

### Added
- **AirfoilAerodynamics framework**
- New base class **`AirfoilAerodynamics`** (parent for all airfoil types).
Expand All @@ -38,6 +36,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
- Improved **convergence plotting** utilities.
- New **sensitivity analysis** examples & script (`sensitivity_analysis.py`).
- Updated **tutorials** (usage, sensitivity, convergence workflows).
- Interactive **Plotly** visualization environment.
- **Moment** calculations + plotting (incl. user-defined reference point).
- **Panel polar investigation** function.

- **Solver & VSM pipeline**
- `Solver` gains **artificial viscosity** (property + setter).
Expand All @@ -55,23 +56,17 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
- **Validation & examples**
- Added **elliptical wing planform** test (Simonet ch. 4.1).
- Added **rectangular wing** test.
- **NeuralFoil** integration for cross-checking polars.
- Git now **ignores** `results/`.

- **(From develop) Extra analysis tools**
- Interactive **Plotly** visualization environment.
- **Moment** calculations + plotting (incl. user-defined reference point).
- **Panel polar investigation** function.
- **NeuralFoil** integration for cross-checking polars.
- **Bridle line forces**:
- Support for inputs like:
- `bridle_line1 = [p1, p2, diameter]` where `p1 = [x, y, z]`
- `bridle_lines = [bridle_line1, bridle_line2, ...]`
- **Bridle line forces**
- Support for inputs like:
- `bridle_line1 = [p1, p2, diameter]` where `p1 = [x, y, z]`
- `bridle_lines = [bridle_line1, bridle_line2, ...]`
- `BodyAerodynamics` API sugar:
- `instantiate_body_aerodynamics` function
- `BodyAerodynamics.from_file(...)`

---

### Changed
- **Polars & plotting**
- `plotting.py::generate_3D_polar_data` now passes a **gamma distribution**
Expand All @@ -98,25 +93,19 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
- **Polar engineering**
- Updated to use **Surfplan** profiles; adjusted `POLAR` behavior and tests.

---

### Fixed
- Polar data **input robustness** and format handling.
- **Reference point** handling in moment computations.
- Multiple failing tests in **Panel**.
- Plot output issues (including prior formatting issues, e.g. #85).
- Numerous **docstring** and minor consistency fixes.

---

### Removed
- `min_relaxation_error` and `is_new_vector_definition` fields.
- `using_previous gamma` option (gamma initialization is now explicit/controlled).
- Consolidated/moved **stall models** into dedicated modules/branch.
- Extracted **polar_engineering** work to its own branch.

---

### Migration Notes
- **Imports / classes**
- Replace:
Expand Down Expand Up @@ -228,3 +217,67 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
- Eliminated unnecessary attributes from WingAerodynamics and cleaned out redundant code sections.
- Removed legacy code and virtual environment folders from the project directory.
- Cleared outdated TODOs and extraneous comments to streamline the codebase.

## [1.0.0] - 2024-09-29

### Added
Copy link

Copilot AI Sep 26, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove the trailing space after 'Added'.

Suggested change
### Added
### Added

Copilot uses AI. Check for mistakes.
- Refactored code to object oriented.
- Introduced the main VSM (Vortex Step Method) parent class.
- Added a dedicated Panel Properties class.
- Set up an initial Horseshoe class and later introduced child classes.
- Defined global functions supporting each of the classes.
- Added a Filaments class and a Wake class.
- Introduced an Abstract class for 2D infinite filaments.
- **Solver & Geometry Enhancements:**
- Re-structured the code skeleton and overhauled the solver with all necessary methods.
- Added new functions to support curved wing, swept wing, and elliptical wing geometries.
- Implemented a calculate_results function based on earlier thesis code and refined it.
- **Visualization and Plotting:**
- Added functions for plotting wing geometry, distributions, and polar plots.
- Updated examples (e.g., rectangular wing case, V3 example folder with CFD/WindTunne interfaces).
- **Testing & Documentation:**
- Integrated initial pytests across modules (Panel, Filaments, etc.), coverage 66%
- Populated configuration files like `citation.cff`, `.gitignore`, and `pyproject.toml` for improved packaging.
- Added user instructions, docstrings for each function, and updated tutorial content.
- **Performance Optimizations:**
- Introduced significant speed improvements by refactoring loops (e.g., removing nested loops and moving functions outside loops) and optimizing AIC matrix computations (#50).
- **Additional Functionalities:**
- Added a yaw rate implementation with an accompanying V3 kite example.
- Implemented polar data interpolation for sections with different datasets.

### Changed
- **Code Refactoring:**
- Renamed and refactored class names and variable identifiers across VSM, Panel, and WingAerodynamics.
- Removed redundant properties from WingAerodynamics, now accessing values directly from the Panel.
- **Solver & Algorithm Improvements:**
- Updated the global functions and solver structure to improve convergence and reliability.
- Refined the handling of gamma distributions, reference system definitions, and spacing (including cosine van Garrel spacing for elliptical wings, #24).
- Revised the induced_velocity function for better accuracy (#21).
- **Documentation & User Interface:**
- Enhanced the README with additional images, detailed tutorial updates, and more user-friendly instructions.
- Improved code comments and added TODO markers to guide future development.
- **Robustness & Configuration:**
- Made the code robust against unordered or right-to-left section inputs.
- Removed hardcoded values and replaced them with parameterized configurations.

### Fixed
- **Bug Resolutions:**
- Fixed various issues in solver functionality, geometry processing, and test cases.
- Corrected the induced_velocity function and core-radius handling in pytests (#21).
- Adjusted the narrow angle-of-attack (aoa) range in aerodynamic data inputs (#42).
- Resolved alignment issues in V3 comparisons and output formatting.
- Fixed bugs in the stall model (ensuring the stall angle is calculated per plate) and revised related test scripts (#29, #68).
- Addressed wake modeling issues and enhanced logging for error tracking.
- **Testing and Stability:**
- Resolved discrepancies in AIC matrix calculations and convergence tests.
- Fixed issues with PDF/PNG outputs in test scripts (#61).
- **Performance Corrections:**
- Eliminated redundant calculations and optimized nested loops to achieve faster runtime.
- Resolved pytesting issues related to numba and streamlined optimization routines.

### Removed
- **Deprecated and Redundant Code:**
- Removed the older Horseshoe class in favor of the new implementation.
- Eliminated unnecessary attributes from WingAerodynamics and cleaned out redundant code sections.
- Removed legacy code and virtual environment folders from the project directory.
- Cleared outdated TODOs and extraneous comments to streamline the codebase.
Loading