diff --git a/changelog.md b/changelog.md index 6439956..fa118a1 100644 --- a/changelog.md +++ b/changelog.md @@ -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`**. @@ -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). @@ -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). @@ -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** @@ -98,8 +93,6 @@ 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. @@ -107,16 +100,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - 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: @@ -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 +- 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.