Recent Releases of VortexStepMethod
VortexStepMethod - 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_kwmacros). - 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_geometrywithtest_load_polar_data.jlandtest_wing_constructor.jl. - Test utilities:
test_data_utils.jlwith shared helper functions. - Test data: Extensive YAML and CSV test files in
data.
4. Data and Examples
- New data sets: Complete
TUDELFT_V3_KITEwith 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: - Add a geometry from yaml constructor for Wing (#186) (@1-Bart-1)
Closed issues: - VSM predicts NANs for ram-geometry at low angles of attack? Is this a convergence issue? (#182) - Create a 'loadgeometryfromyaml` function for VortexStepMethod.jl, and run on a simple straight wing (#184) - Create a 'loadgeometryfromyaml` function for VortexStepMethod.jl, and run on a simple wing (#185) - Run V3 Kite does not produce correct result (#189)
- Julia
Published by github-actions[bot] 7 months ago
VortexStepMethod - v2.0.0
VortexStepMethod v2.0.0
Changed
- bump Interpolations to 0.16
- breaking: rename
init!toreinit!
Merged pull requests: - Rename init! to reinit! (#180) (@1-Bart-1)
Closed issues: - Use AutoFiniteDifferences with factor keyword to deal with noise (#177)
- Julia
Published by github-actions[bot] 8 months ago
VortexStepMethod - v1.2.6
VortexStepMethod v1.2.6
Changed
- update NonlinearSolve.jl
- Julia
Published by github-actions[bot] 10 months ago
VortexStepMethod - v1.2.5
VortexStepMethod v1.2.5
Changed
- suppress
@infomessages when creating a RamAirWing - improve examples
ram_air_kite.jlandbench.jl
- Julia
Published by github-actions[bot] 11 months ago
VortexStepMethod - v1.2.4
VortexStepMethod v1.2.4
Changed
- implement export of
solveandsolve!correctly - do not export
menu()because KiteUtils exports it - the polars of the ram air kite are now saved in
.csvfiles - update CI.yml
Merged pull requests: - Use csv instead of bin for 2d polars (#171) (@1-Bart-1)
Closed issues: - Use csv for polar files (#159) - Release version 1.2.3 (#168) - Precompilation fails if polar data was created with newer Julia version (#170)
- Julia
Published by github-actions[bot] 11 months ago
VortexStepMethod - v1.2.3
VortexStepMethod v1.2.3
Changed
- expose the angle of attack
alpha_arrayin theVSMSolution
Merged pull requests: - Expose alpha corrected (angle of attack of each panel) (#167) (@1-Bart-1)
Closed issues: - Add NeuralFoil as an extension to the package (#160)
- Julia
Published by github-actions[bot] 11 months ago
VortexStepMethod - v1.2.2
VortexStepMethod v1.2.2
Added
- the parameter
prnto the constructorRamAirWingwhich allows it suppress info messages
Closed issues: - Release version 1.2.1 (#163)
- Julia
Published by github-actions[bot] 11 months ago
VortexStepMethod - v1.2.1
VortexStepMethod v1.2.1
Added
- Add back
bench2.jland 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: - Add VSMSettings struct (#84) - Release v.1.2.0 (#148) - Add back bench2.jl and rename it to bench_solve.jl (#150) - Remove problematic parallel Xfoil computing (#161)
- Julia
Published by github-actions[bot] 11 months ago
VortexStepMethod - v1.2.0
VortexStepMethod v1.2.0
Changed
- The fields that had as type a
Matrix of size Px1have now the typeVector - Many new fields of the type
VSMSolutiondocumented 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 tricksadded 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: - Refactoring, part II (#62) - Use nonlinear solver in gammaloop (#72) - Rotate the RamAirKite geometry such that the kite body frame aligns with the principal axes (#132) - Register and Release v1.1.2 (#135) - Linearize model (#136) - Add to docs that init!(bodyaero) is very fast (#141)
- Julia
Published by github-actions[bot] 11 months ago
VortexStepMethod - 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 functionsolvethat returns a dict is still available. - The moment coefficients distribution in
solve! - The script
installto thebinfolder for users who checked out this git repository - The script
bench2.jlwas added for allocation testing of thesolve!function ### Changed - Read the y-coordinates in the correct direction from the
ram_air_kite_body.objfile - In the
menu.jl, changedhelptohelp_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
RamAirWingis removed, and the geometry is created such that[0, 0, 0]is the center of mass - The enumeration
WingTypewas 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_principaloption added toRamAirWingdeform!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)
- Julia
Published by github-actions[bot] 11 months ago
VortexStepMethod - v1.1.1
VortexStepMethod v1.1.1
Fixed
- Fix a relative file path bug
- Julia
Published by github-actions[bot] 12 months ago
VortexStepMethod - v1.1.0
VortexStepMethod v1.1.0
Added
- Dynamically deform the KiteWing by twisting the left side and right side, and deforming the trailing edges using deform!
- Set turn rate
omega = [omega_x, omega_y, omega_z]in kite body frame using set_va! - Add moment coefficient calculations around specified point to
solve - Add moment distribution of the moment around the local panel y-axes around user-defined points on the panels to
solve! - Add function
solve!()which returns aVSMSolutionstruct - Add the option to remove the NaNs in
aero_datavectors or matrices using theremove_nankeyword in theWingandKiteWingconstructors ### Changed - Add origin argument to
BodyAerodynamicsconstructor - Improve documentation
Merged pull requests: - Update docstring of Solver, use @withkw (#81) (@ufechner7) - Refactor Section, use @withkw; refactor Wing (#82) (@ufechner7) - add type AeroData (#86) (@ufechner7) - Add solve!(res::Results, ...) (#88) (@ufechner7) - Add trailing edge angle beta and deform (#89) (@1-Bart-1) - Moment distribution (#95) (@1-Bart-1) - Add origin parameter to BodyAerodynamics constructor (#96) (@1-Bart-1) - Add the option to remove nans (#98) (@1-Bart-1)
Closed issues: - Register and release version 1.0.1 (#13) - Dynamically change segments. (#19) - Don't assume constant radius on KiteWing creation (#42) - Add origin argument to Wing and KiteWing constructor (#66) - Write announcement for the new package, version 1.0.1 (#68) - Add type AeroData (#85) - Add a Results struct (#87) - Add moment distribution around user-defined point (#90) - Remove NaNs from XFoil polar matrices so the solver doesn't crash (#97)
- Julia
Published by github-actions[bot] 12 months ago
VortexStepMethod - v1.0.1
VortexStepMethod v1.0.1
Changes
- memory allocations where significantly reduced
- a menu (examples/menu.jl) for running the examples was added
- plotting was moved to an extension
- added improved online documentation
- Julia
Published by github-actions[bot] 12 months ago
VortexStepMethod - v1.0.0
VortexStepMethod v1.0.0
Initial release
Merged pull requests: - add CI.yml (#4) (@ufechner7) - Add types MVec3, PosVector, VelVector (#9) (@ufechner7) - replace Plots with ControlPlots (#11) (@ufechner7) - Read .obj file to create Wing object (#12) (@1-Bart-1) - CompatHelper: add new compat entry for Colors at version 0.13, (keep existing compat) (#21) (@github-actions[bot]) - CompatHelper: add new compat entry for LaTeXStrings at version 1, (keep existing compat) (#22) (@github-actions[bot]) - CompatHelper: add new compat entry for BenchmarkTools at version 1, (keep existing compat) (#23) (@github-actions[bot]) - CompatHelper: add new compat entry for DelimitedFiles at version 1, (keep existing compat) (#24) (@github-actions[bot]) - CompatHelper: add new compat entry for Statistics at version 1, (keep existing compat) (#25) (@github-actions[bot]) - CompatHelper: add new compat entry for Plots at version 1, (keep existing compat) (#26) (@github-actions[bot]) - CompatHelper: add new compat entry for StaticArrays at version 1, (keep existing compat) (#27) (@github-actions[bot]) - CompatHelper: add new compat entry for Measures at version 0.3, (keep existing compat) (#28) (@github-actions[bot]) - fix zero fx fy fz (#31) (@1-Bart-1) - CompatHelper: add new compat entry for NonlinearSolve at version 4, (keep existing compat) (#32) (@github-actions[bot]) - CompatHelper: add new compat entry for Interpolations at version 0.15, (keep existing compat) (#33) (@github-actions[bot]) - remove dead code (#37) (@ufechner7) - add NEWS.md (#38) (@ufechner7) - add Uwe and Bart to CITATIONS.cff (#39) (@ufechner7) - Add test for second plot (#40) (@ufechner7) - Fix example stall_model (#41) (@ufechner7) - Feat/xfoil (#43) (@1-Bart-1) - reduce allocations more (#44) (@1-Bart-1) - Add Documenter docu (#46) (@ufechner7) - Start documenting the structs and types (#50) (@ufechner7) - CompatHelper: add new compat entry for Timers at version 0.1, (keep existing compat) (#57) (@github-actions[bot]) - Replace all Int with Int64 in structs (#58) (@ufechner7) - Use MVec3 in structs as much as possilbe (#59) (@ufechner7) - Add moment coefficients and moments (#64) (@1-Bart-1) - Add the turnrate vector omega (#65) (@1-Bart-1) - Remove interpolation allocation (#67) (@1-Bart-1) - use enum for parameter "model" (#70) (@ufechner7) - add enum PanelDistribution (#71) (@ufechner7)
Closed issues: - Implement CI workflow for the tests (#1) - Replace Plots.jl with ControlPlots.jl (#3) - Refactor code (#5) - Cut down on allocations (#6) - Add description and keywords to project (#8) - kite.obj as input (#10) - The aggregate forces Fx, Fy and Fz are not calculated (#14) - CI: enable code coverage (#15) - Add Bart and Uwe to .CFF file (#16) - Add moment coefficient calculations around specified point (#17) - Improve test coverage (#18) - CI: Make CompatHelpers work (#20) - Automatically generate polardata from 2dfoilprofile.dat using XFoil.jl (#30) - Remove dead code (#35) - Delete the experimental functions calculateartificial_damping() (#45) - Add rotational velocities (#49) - Document the reference frame(s) that are used (#52) - Make more packages a test dependency (#54)
- Julia
Published by github-actions[bot] 12 months ago