Releases: OpenSourceAWE/VortexStepMethod.jl
Releases · OpenSourceAWE/VortexStepMethod.jl
v2.1.0
VortexStepMethod v2.1.0
Changed
1. Core New Functionality: YAML Geometry Support
- New file:
yaml_geometry.jl
(290+ lines) — Complete YAML-based wing geometry loading. - New structs:
WingSectionData
,WingAirfoilData
,WingAirfoilInfo
(with@with_kw
macros). - New function:
load_polar_data()
— Robust CSV polar data loading with error handling. - New constructors:
Wing(geometry_file::String)
— Create wings from YAML files.Wing(settings::VSMSettings)
— Create wings from settings.
2. Enhanced Settings System
- Renamed
vs()
toVSMSettings()
constructor. - Added convenience
Solver(body_aero, settings)
constructor. - Improved settings structure and validation.
3. Comprehensive Test Infrastructure
- Split tests: Reorganized from monolithic files to modular structure (
test/module_name/test_*.jl
). - New test module:
yaml_geometry
withtest_load_polar_data.jl
andtest_wing_constructor.jl
. - Test utilities:
test_data_utils.jl
with shared helper functions. - Test data: Extensive YAML and CSV test files in
data
.
4. Data and Examples
- New data sets: Complete
TUDELFT_V3_KITE
with CFD polars and literature results. - Enhanced examples: Updated examples to use YAML geometry (e.g.,
pyramid_model.jl
,V3_kite.jl
). - Real-world configs: Production-ready YAML geometry files for various kite configurations.
5. Core Module Improvements
- Path handling: Robust file path resolution for relative/absolute paths.
- Error handling: Comprehensive validation and graceful fallback to INVISCID mode.
- Memory management: Improved file I/O and cleanup in tests.
- Documentation: Added comprehensive docstrings and examples.
Merged pull requests:
Closed issues:
- VSM predicts NANs for ram-geometry at low angles of attack? Is this a convergence issue? (#182)
- Create a 'load_geometry_from_yaml` function for VortexStepMethod.jl, and run on a simple straight wing (#184)
- Create a 'load_geometry_from_yaml` function for VortexStepMethod.jl, and run on a simple wing (#185)
- Run V3 Kite does not produce correct result (#189)
v2.0.0
VortexStepMethod v2.0.0
Changed
- bump Interpolations to 0.16
- breaking: rename
init!
toreinit!
Merged pull requests:
Closed issues:
- Use AutoFiniteDifferences with factor keyword to deal with noise (#177)
v1.2.6
v1.2.5
VortexStepMethod v1.2.5
Changed
- suppress
@info
messages when creating a RamAirWing - improve examples
ram_air_kite.jl
andbench.jl
v1.2.4
VortexStepMethod v1.2.4
Changed
- implement export of
solve
andsolve!
correctly - do not export
menu()
because KiteUtils exports it - the polars of the ram air kite are now saved in
.csv
files - update CI.yml
Merged pull requests:
Closed issues:
v1.2.3
VortexStepMethod v1.2.3
Changed
- expose the angle of attack
alpha_array
in theVSMSolution
Merged pull requests:
Closed issues:
- Add NeuralFoil as an extension to the package (#160)
v1.2.2
VortexStepMethod v1.2.2
Added
- the parameter
prn
to the constructorRamAirWing
which allows it suppress info messages
Closed issues:
- Release version 1.2.1 (#163)
v1.2.1
VortexStepMethod v1.2.1
Added
- Add back
bench2.jl
and rename it tobench_solve.jl
Removed
- Remove problematic parallel Xfoil computing and use single thread instead
Merged pull requests:
- Add rotation and translation from cad to body frame field to wing (#149) (@1-Bart-1)
- Improve linearize test (#151) (@1-Bart-1)
- Add bench_solve.jl (#152) (@ufechner7)
- Add VSMSettings struct and equivalent yaml file (#156) (@ufechner7)
- Remove parallelized polar computation (#162) (@1-Bart-1)
Closed issues:
v1.2.0
VortexStepMethod v1.2.0
Changed
- The fields that had as type a
Matrix of size Px1
have now the typeVector
- Many new fields of the type
VSMSolution
documented init!(body_aero)
is now a public function
Added
- Added the option to use nonlinear solve to calculate the gamma distribution
- New page
Tips and tricks
added to the documentation - Fast and modular linearization added around an operating point
Merged pull requests:
- Improve init!(body_aero) performance (#139) (@1-Bart-1)
- Add linearization feature (#140) (@1-Bart-1)
- Refactoring: add underscore to private fields (#142) (@ufechner7)
Closed issues:
v1.1.2
VortexStepMethod v1.1.2
Added
- The function
install_examples()
which allows to easily install the examples without usinggit
- The function
solve!
returns a struct now. The functionsolve
that returns a dict is still available. - The moment coefficients distribution in
solve!
- The script
install
to thebin
folder for users who checked out this git repository - The script
bench2.jl
was added for allocation testing of thesolve!
function
Changed
- Read the y-coordinates in the correct direction from the
ram_air_kite_body.obj
file - In the
menu.jl
, changedhelp
tohelp_me
. It works better now, no more warnings on Linux, it should also work on MacOS now - The coordinate frames of the panels now use the same convention as the kite body frame
- The page "Glossary" of the documentation is quite complete now
- The center of mass field of the
RamAirWing
is removed, and the geometry is created such that[0, 0, 0]
is the center of mass - The enumeration
WingType
was added and replaces the symbols, used before - The allocations of the function
solve!
where reduced by a factor of 11 to 85 allocations align_to_principal
option added toRamAirWing
deform!
by a distribution instead of just a left and right angle
Fixed
- The function
calculate_circulation_distribution_elliptical_wing()
was never called - Fix the calculation of force coefficients in
solve!
- The continues integration scripts (CI.yml) use now separate runs for the test coverage and for the allocation tests.
Merged pull requests:
- Make the coordinate frames of the panels use the same convention as the kite body frame (#92) (@1-Bart-1)
- Add installer for examples (#101) (@ufechner7)
- fix coordinate frames (#104) (@1-Bart-1)
- KiteWing should be centered at center of mass (#108) (@1-Bart-1)
- Fix moment and force coefficients (#110) (@1-Bart-1)
- Add Aqua.jl for quality assurance (#112) (@ufechner7)
- Make pdflatex optional (#114) (@ufechner7)
- Plot polars (#115) (@1-Bart-1)
- Update glossary (#117) (@ufechner7)
- Do not use LaTeX for CI (#118) (@ufechner7)
- Add CONTRIBUTING.md (#121) (@ufechner7)
- Change alpha beta to theta delta (#122) (@1-Bart-1)
- Deform with distribution instead of left and right angle (#123) (@1-Bart-1)
- Add deform! test (#124) (@1-Bart-1)
- Reduce allocation (#126) (@ufechner7)
- Add center of mass field to RamWing (#128) (@1-Bart-1)
- Rm bin (#129) (@1-Bart-1)
- Refactoring, one bugfix (#130) (@ufechner7)
- Add an option to align body frame with principal axes (#134) (@1-Bart-1)
Closed issues:
- Plotting should also work without LaTeX installed (#36)
- Create functions or example scripts that plot the bin files (#51)
- Test this package on Windows (#80)
- Corrected polars for LEI model (#83)
- Local panel axes should follow the same principles as body axes (z up, y spanwise, x from le to te) (#91)
- Add function to install examples (#99)
- Register and release 1.1.1 (#100)
- Add Documentation on symbols and greek letters (#102)
- Rename KiteWing to RamAirWing (#111)
- Use theta for geometric twist angle and delta for trailing edge deflection angle (#116)
- Add contribution guidelines (#119)
- Remove even more solve! allocations (#125)