Skip to content
Merged
Show file tree
Hide file tree
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
21 changes: 20 additions & 1 deletion .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,11 @@ jobs:
with:
version: ${{ matrix.version }}
arch: ${{ matrix.arch }}
- name: Install display dependencies for GLMakie
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y xvfb libgl1-mesa-dri
- uses: actions/cache@v5
env:
cache-name: cache-artifacts
Expand All @@ -61,6 +66,7 @@ jobs:
BUILD_IS_PRODUCTION_BUILD: ${{ matrix.build_is_production_build }}
with:
coverage: false
prefix: ${{ runner.os == 'Linux' && 'xvfb-run -a' || '' }}
test-with-code-coverage:
name: Julia ${{ matrix.julia_version }} - ${{ matrix.os }} - ${{ matrix.julia_arch }} - with code coverage
timeout-minutes: 30
Expand All @@ -81,11 +87,17 @@ jobs:
with:
arch: ${{ matrix.julia_arch }}
version: ${{ matrix.julia_version }}
- name: Install display dependencies for GLMakie
run: |
sudo apt-get update
sudo apt-get install -y xvfb libgl1-mesa-dri
- uses: julia-actions/cache@v2
- uses: julia-actions/julia-buildpkg@v1
- uses: julia-actions/julia-runtest@v1
env:
BUILD_IS_PRODUCTION_BUILD: false
with:
prefix: xvfb-run -a
- uses: julia-actions/julia-processcoverage@v1
- uses: codecov/codecov-action@v6
with:
Expand All @@ -101,7 +113,14 @@ jobs:
- uses: julia-actions/setup-julia@v3
- uses: julia-actions/cache@v2
- uses: julia-actions/julia-buildpkg@v1


- name: Start virtual display for GLMakie
run: |
sudo apt-get update
sudo apt-get install -y xvfb libgl1-mesa-dri
Xvfb :99 -screen 0 1024x768x24 &
echo "DISPLAY=:99" >> "$GITHUB_ENV"

- uses: julia-actions/julia-docdeploy@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/setup-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,6 @@ jobs:
version: '1'
- uses: julia-actions/cache@v2
- name: Install xvfb for headless GLMakie
run: sudo apt-get update && sudo apt-get install -y xvfb
run: sudo apt-get update && sudo apt-get install -y xvfb libgl1-mesa-dri
- name: Run setup tests
run: bash test/test_setup.sh
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@
instead of the old `ObjWing` pipeline (XFoil + single `.dat` file);
`ObjWing` is kept as a shim that accepts but ignores `dat_path`
- `Section` and `add_section!` accept an optional `cp_data` argument
- plotting is now Makie-only; the `VortexStepMethodMakieExt` extension loads once a
Makie backend and [`MakieControlPlots`](https://github.com/OpenSourceAWE/MakieControlPlots.jl)
are available, and `plot_section_polars` is rendered through `MakieControlPlots`

### Removed
- `ObjWing` as a standalone pipeline (replaced by `ObjAdapter`); the name is
Expand All @@ -43,6 +46,11 @@
- `PanelGroupingMethod` enum (already removed in v3.0.0 — stale docs entry cleaned up)
- ControlPlots test run removed from CI (`plot-controlplots` arg) due to
a `libraqm`/HarfBuzz symbol conflict in the GitHub Actions environment
- the `ControlPlots` plotting extension, `examples_cp/`, and the `PythonCall`/Matplotlib
setup (`bin/install_controlplots`, CondaPkg `LocalPreferences` defaults)
- the `PlotBackend`/`MakieBackend`/`ControlPlotsBackend` types and `set_plot_backend!`;
plotting works as soon as a Makie backend and `MakieControlPlots` are loaded
- the never-implemented `plot_circulation_distribution`

## VortexStepMethod v3.3.6 2026-06-13

Expand Down
2 changes: 1 addition & 1 deletion Manifest-v1.11.toml.default
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

julia_version = "1.11.9"
manifest_format = "2.0"
project_hash = "05293bd6fd6fa250061021968d5e2c89f35da00a"
project_hash = "6d819b6b32f1312b2d31d1cba26887098fe3abd1"

[[deps.ADTypes]]
git-tree-sha1 = "ec6be48a85c93d995563b84bff8a86bc98df45ce"
Expand Down
103 changes: 15 additions & 88 deletions Manifest-v1.12.toml.default
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

julia_version = "1.12.6"
manifest_format = "2.0"
project_hash = "d83aedaeaccf6702392f905f22f5c353214715d9"
project_hash = "30adb65bf2e48d1c0cd0a19da51c375ecdec07ec"

[[deps.ADTypes]]
git-tree-sha1 = "ec6be48a85c93d995563b84bff8a86bc98df45ce"
Expand Down Expand Up @@ -358,18 +358,6 @@ git-tree-sha1 = "21d088c496ea22914fe80906eb5bce65755e5ec8"
uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb"
version = "2.5.1"

[[deps.Conda]]
deps = ["Downloads", "JSON", "VersionParsing"]
git-tree-sha1 = "8f06b0cfa4c514c7b9546756dbae91fcfbc92dc9"
uuid = "8f4d0f93-b110-5947-807f-2305c1781a2d"
version = "1.10.3"

[[deps.CondaPkg]]
deps = ["JSON", "Markdown", "MicroMamba", "Pidfile", "Pkg", "Preferences", "Scratch", "TOML", "pixi_jll"]
git-tree-sha1 = "2b1afb8ae65a0758795b00adafb37f97e67ef0e9"
uuid = "992eb4ea-22a4-4c89-a5bb-47a3300528ab"
version = "0.2.36"

[[deps.ConstructionBase]]
git-tree-sha1 = "b4b092499347b18a015186eae3042f72267106cb"
uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9"
Expand All @@ -386,18 +374,6 @@ git-tree-sha1 = "439e35b0b36e2e5881738abc8857bd92ad6ff9a8"
uuid = "d38c429a-6771-53c6-b99e-75d170b6e991"
version = "0.6.3"

[[deps.ControlPlots]]
deps = ["JLD2", "LaTeXStrings", "Pkg", "Printf", "PyPlot", "StaticArraysCore"]
git-tree-sha1 = "fb1cf8d1213c9f2908f8682f58f7ec252f6cc171"
uuid = "23c2ee80-7a9e-4350-b264-8e670f12517c"
version = "0.2.15"

[deps.ControlPlots.extensions]
ControlPlotsExt = "ControlSystemsBase"

[deps.ControlPlots.weakdeps]
ControlSystemsBase = "aaaaaaaa-a6ca-5380-bf3e-84a91bcd477e"

[[deps.CoreMath]]
deps = ["CoreMath_jll"]
git-tree-sha1 = "8c0480f92b1b1796239156a1b9b1bfb1b39499b4"
Expand Down Expand Up @@ -1409,6 +1385,18 @@ version = "0.24.10"
[deps.Makie.weakdeps]
DynamicQuantities = "06fc5a27-2a28-4c7c-a15d-362465fb6821"

[[deps.MakieControlPlots]]
deps = ["CairoMakie", "GLMakie", "GridLayoutBase", "JLD2", "LaTeXStrings", "Makie", "Pkg", "PrecompileTools", "Printf", "StaticArraysCore"]
git-tree-sha1 = "3f5e12bb0d1cd071758cd0c2a9058ddf3d2a6a31"
uuid = "6d616b69-6563-4f6e-8472-6f6c706c6f74"
version = "0.1.7"

[deps.MakieControlPlots.extensions]
MakieControlPlotsControlSystemsBaseExt = "ControlSystemsBase"

[deps.MakieControlPlots.weakdeps]
ControlSystemsBase = "aaaaaaaa-a6ca-5380-bf3e-84a91bcd477e"

[[deps.MappedArrays]]
git-tree-sha1 = "0ee4497a4e80dbd29c058fcee6493f5219556f40"
uuid = "dbb5928d-eab1-5f90-85c2-b9b0edb7c900"
Expand Down Expand Up @@ -1464,12 +1452,6 @@ git-tree-sha1 = "c009236e222df68e554c7ce5c720e4a33cc0c23f"
uuid = "7269a6da-0436-5bbc-96c2-40638cbb6118"
version = "0.5.3"

[[deps.MicroMamba]]
deps = ["Pkg", "Scratch", "micromamba_jll"]
git-tree-sha1 = "535656ce55266bfed0575cd051acc4f36dc869a0"
uuid = "0b3b1443-0f03-428d-bdfb-f27f9c1191ea"
version = "0.1.15"

[[deps.Missings]]
deps = ["DataAPI"]
git-tree-sha1 = "ec4f7fbeab05d7747bdf98eb74d130a2a2ed298d"
Expand Down Expand Up @@ -1748,12 +1730,6 @@ git-tree-sha1 = "32a4e09c5f29402573d673901778a0e03b0807b9"
uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
version = "2.8.6"

[[deps.Pidfile]]
deps = ["FileWatching", "Test"]
git-tree-sha1 = "2d8aaf8ee10df53d0dfb9b8ee44ae7c04ced2b03"
uuid = "fa939f87-e72e-5be4-a000-7fc836dbe307"
version = "1.3.0"

[[deps.Pixman_jll]]
deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"]
git-tree-sha1 = "e4a6721aa89e62e5d4217c0b21bd714263779dda"
Expand Down Expand Up @@ -1873,32 +1849,6 @@ weakdeps = ["ForwardDiff"]
[deps.PureKLU.extensions]
PureKLUForwardDiffExt = "ForwardDiff"

[[deps.PyCall]]
deps = ["Conda", "Dates", "Libdl", "LinearAlgebra", "MacroTools", "Serialization", "VersionParsing"]
git-tree-sha1 = "9816a3826b0ebf49ab4926e2b18842ad8b5c8f04"
uuid = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0"
version = "1.96.4"

[[deps.PyPlot]]
deps = ["Colors", "LaTeXStrings", "PyCall", "Sockets", "Test", "VersionParsing"]
git-tree-sha1 = "d2c2b8627bbada1ba00af2951946fb8ce6012c05"
uuid = "d330b81b-6aea-500a-939a-2ce795aea3ee"
version = "2.11.6"

[[deps.PythonCall]]
deps = ["CondaPkg", "Dates", "Libdl", "MacroTools", "Markdown", "Preferences", "Serialization", "Tables", "UnsafePointers"]
git-tree-sha1 = "2b67e030054dd9438a00e3d7f59927e839b00569"
uuid = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d"
version = "0.9.35"

[deps.PythonCall.extensions]
CategoricalArraysExt = "CategoricalArrays"
PyCallExt = "PyCall"

[deps.PythonCall.weakdeps]
CategoricalArrays = "324d7699-5711-5eae-9e2f-1d82baa6b597"
PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0"

[[deps.QOI]]
deps = ["ColorTypes", "FileIO", "FixedPointNumbers"]
git-tree-sha1 = "472daaa816895cb7aee81658d4e7aec901fa1106"
Expand Down Expand Up @@ -2536,26 +2486,15 @@ version = "1.28.0"
NaNMath = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3"
Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7"

[[deps.UnsafePointers]]
git-tree-sha1 = "c81331b3b2e60a982be57c046ec91f599ede674a"
uuid = "e17b2a0c-0bdf-430a-bd0c-3a23cae4ff39"
version = "1.0.0"

[[deps.VersionParsing]]
git-tree-sha1 = "58d6e80b4ee071f5efd07fda82cb9fbe17200868"
uuid = "81def892-9a0e-5fdd-b105-ffc91e053289"
version = "1.3.0"

[[deps.VortexStepMethod]]
deps = ["Colors", "DefaultApplication", "DelimitedFiles", "DifferentiationInterface", "FiniteDiff", "ForwardDiff", "Interpolations", "LaTeXStrings", "LinearAlgebra", "Logging", "Measures", "NPZ", "NonlinearSolve", "Parameters", "Pkg", "PreallocationTools", "PrecompileTools", "Printf", "RecursiveArrayTools", "SciMLBase", "Serialization", "StaticArrays", "Statistics", "StructMapping", "Timers", "Xfoil", "YAML"]
path = "."
uuid = "ed3cd733-9f0f-46a9-93e0-89b8d4998dd9"
version = "3.3.6"
weakdeps = ["ControlPlots", "Makie", "PythonCall"]
weakdeps = ["Makie", "MakieControlPlots"]

[deps.VortexStepMethod.extensions]
VortexStepMethodControlPlotsExt = ["ControlPlots", "PythonCall"]
VortexStepMethodMakieExt = "Makie"
VortexStepMethodMakieExt = ["Makie", "MakieControlPlots"]

[[deps.Wayland_jll]]
deps = ["Artifacts", "EpollShim_jll", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll"]
Expand Down Expand Up @@ -2788,12 +2727,6 @@ git-tree-sha1 = "4e4282c4d846e11dce56d74fa8040130b7a95cb3"
uuid = "c5f90fcd-3b7e-5836-afba-fc50a0988cb2"
version = "1.6.0+0"

[[deps.micromamba_jll]]
deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl"]
git-tree-sha1 = "717df6f6892af4ee13279a73aa58474e58a88667"
uuid = "f8abcde7-e9b7-5caa-b8af-a437887ae8e4"
version = "2.3.1+0"

[[deps.nghttp2_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d"
Expand All @@ -2810,12 +2743,6 @@ deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"]
uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0"
version = "17.7.0+0"

[[deps.pixi_jll]]
deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl"]
git-tree-sha1 = "3667b0931a7fe50f0a5554c61af00e5640019e21"
uuid = "4d7b5844-a134-5dcd-ac86-c8f19cd51bed"
version = "0.63.2+0"

[[deps.x264_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "14cc7083fc6dff3cc44f2bc435ee96d06ed79aa7"
Expand Down
11 changes: 4 additions & 7 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ authors = ["1-Bart-1 <bart@vandelint.net>", "Oriol Cayon and contributors"]
version = "3.3.6"

[workspace]
projects = ["examples", "examples_cp", "docs", "test"]
projects = ["examples", "docs", "test"]

[deps]
Colors = "5ae59095-9a9b-59fe-a467-6f913c188581"
Expand Down Expand Up @@ -36,17 +36,14 @@ Xfoil = "19641d66-a62d-11e8-2441-8f57a969a9c4"
YAML = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6"

[weakdeps]
ControlPlots = "23c2ee80-7a9e-4350-b264-8e670f12517c"
Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a"
PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d"
MakieControlPlots = "6d616b69-6563-4f6e-8472-6f6c706c6f74"

[extensions]
VortexStepMethodControlPlotsExt = ["ControlPlots", "PythonCall"]
VortexStepMethodMakieExt = "Makie"
VortexStepMethodMakieExt = ["Makie", "MakieControlPlots"]

[compat]
Colors = "0.13"
ControlPlots = "0.2.5, 0.3"
DefaultApplication = "1"
DelimitedFiles = "1"
DifferentiationInterface = "0.7.4"
Expand All @@ -57,14 +54,14 @@ LaTeXStrings = "1"
LinearAlgebra = "1"
Logging = "1"
Makie = "0.24.6"
MakieControlPlots = "0.1.5"
Measures = "0.3"
NPZ = "0.4"
NonlinearSolve = "4.8.0"
Parameters = "0.12"
Pkg = "1"
Printf = "1"
PreallocationTools = "1.1.2"
PythonCall = "0.9"
PrecompileTools = "1.2.1"
RecursiveArrayTools = "3, 4"
SciMLBase = "2, 3"
Expand Down
18 changes: 1 addition & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,7 @@ Example output is shown in the figure below, where the aerodynamic predictions o

## Installation
Install [Julia 1.10](https://ufechner7.github.io/2024/08/09/installing-julia-with-juliaup.html) or later,
if you haven't already. On Linux, make sure that Python3 and Matplotlib are installed:
```
sudo apt install python3-matplotlib
```
Furthermore, the package `ControlPlots` must be installed globally:
```
julia -e 'using Pkg; Pkg.add("ControlPlots")'
```
if you haven't already.

Before installing this software it is suggested to create a new project, for
example like this:
Expand Down Expand Up @@ -62,10 +55,6 @@ julia> using VortexStepMethod
julia> VortexStepMethod.install_examples()
julia> include("examples/menu.jl")
```
or, for using the ControlPlots library (faster time-to-first-plot):
```
include("examples_cp/menu_cp.jl")
```

## Running the examples as developer
If you have git installed, check out this repo because it makes it easier to understand the code:
Expand All @@ -88,11 +77,6 @@ Then you can display a menu with the available examples using the GLMakie librar
```julia
menu()
```
or using the ControlPlots library (faster time-to-first-plot):
```julia
menu_cp()
```


To browse the code, it is suggested to use [VSCode](https://code.visualstudio.com/) with the Julia plugin.

Expand Down
Loading
Loading