Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
225 commits
Select commit Hold shift + click to select a range
c1e158f
Add NPZ and Printf
ufechner7 Jun 22, 2025
40c53a4
Three more functions translated
ufechner7 Jun 22, 2025
d630ec5
Update settings.yaml
ufechner7 Jun 22, 2025
4d9cd47
Add first test
ufechner7 Jun 22, 2025
7e846fc
Fix typo
ufechner7 Jun 22, 2025
a49e4e0
Cleanup
ufechner7 Jun 22, 2025
e6408d0
One more test
ufechner7 Jun 22, 2025
bd3d818
Use tmp dir for testing
ufechner7 Jun 22, 2025
2fb1f1e
One more function tested
ufechner7 Jun 22, 2025
45db23d
Fix compat
ufechner7 Jun 22, 2025
b1abedb
One more test
ufechner7 Jun 22, 2025
69deb56
Add file to .gitignore
ufechner7 Jun 22, 2025
8109bab
Add function createGrid
ufechner7 Jun 22, 2025
ca93e0d
Add ControlPlots
ufechner7 Jun 22, 2025
d03040d
Add example show_grid.jl
ufechner7 Jun 22, 2025
d922293
Add FFTW, LinearAlgebra, Random and Statistics
ufechner7 Jun 22, 2025
8bf1cfc
Add function CreateWindField
ufechner7 Jun 22, 2025
9c3d856
Fix compat
ufechner7 Jun 22, 2025
3abd56a
Add param set to constructor of AtmosphericModel
ufechner7 Jun 22, 2025
87a387b
Add function addWindSpeed
ufechner7 Jun 22, 2025
65d9e19
Cleanup
ufechner7 Jun 22, 2025
68033bf
Update Project.toml
ufechner7 Jun 22, 2025
1386f2d
Cleanup
ufechner7 Jun 22, 2025
d7a283c
Add example create_windfield.jl
ufechner7 Jun 30, 2025
5c81eb5
Export WindField and create_windfield
ufechner7 Jun 30, 2025
1165163
Refactoring
ufechner7 Jun 30, 2025
e181b8f
Cleanup
ufechner7 Jun 30, 2025
bab7c77
Export new_windfield
ufechner7 Jun 30, 2025
114d20d
Change signature of createGrid
ufechner7 Jun 30, 2025
e3b8ff2
Refactoring
ufechner7 Jun 30, 2025
c0af7c2
Some progress
ufechner7 Jun 30, 2025
c99dc3b
Add windfield.py as reference
ufechner7 Jun 30, 2025
0462fdd
Update comment
ufechner7 Jul 1, 2025
85751a9
Fix typos
ufechner7 Jul 1, 2025
ec650bd
Add MeshGrid
ufechner7 Jul 1, 2025
fc7156d
Use MeshGrid
ufechner7 Jul 1, 2025
c2aaa89
Update create_windfield
ufechner7 Jul 1, 2025
873a736
Print shape
ufechner7 Jul 1, 2025
2632009
comment failing code
ufechner7 Jul 1, 2025
2c60c73
Add mwe_01.jl
ufechner7 Jul 1, 2025
a99abce
mwe_01.jl working now
ufechner7 Jul 1, 2025
e67402d
Cleanup
ufechner7 Jul 1, 2025
1763b8b
Cleanup
ufechner7 Jul 1, 2025
e980831
Update mwe_01.jl
ufechner7 Jul 1, 2025
786b18a
Add mwe_01.py
ufechner7 Jul 1, 2025
befe297
Update mwe_01.py
ufechner7 Jul 1, 2025
0ab7e9a
Now working
ufechner7 Jul 1, 2025
32783b6
Some progress
ufechner7 Jul 1, 2025
03273e9
Some progress
ufechner7 Jul 1, 2025
5cbc4ba
create_windfield() works
ufechner7 Jul 1, 2025
2a27648
Add example load_windfield.jl
ufechner7 Jul 1, 2025
c547b94
Export load_wind_field
ufechner7 Jul 1, 2025
a661bf1
load_windfield.jl working
ufechner7 Jul 1, 2025
5482bec
WindField constructor works
ufechner7 Jul 1, 2025
fe52ecb
Add properties
ufechner7 Jul 1, 2025
eae8fc0
Cleanup
ufechner7 Jul 1, 2025
809d696
Cleanup
ufechner7 Jul 1, 2025
b18c94b
Add files to .gitignore
ufechner7 Jul 1, 2025
aa4bc9b
Update examples
ufechner7 Jul 1, 2025
5b37f22
Remove global variable, add new_windfields()
ufechner7 Jul 1, 2025
837441a
Add plot_windfields.jl
ufechner7 Jul 1, 2025
67c437a
Cleanup
ufechner7 Jul 1, 2025
b23c0a1
Add example get_wind.jl
ufechner7 Jul 1, 2025
015613d
Example get_wind works
ufechner7 Jul 1, 2025
ab6f535
Make load_windfield() private
ufechner7 Jul 1, 2025
e102cc0
Make create_windfield private
ufechner7 Jul 1, 2025
2e7946c
Don't save
ufechner7 Jul 1, 2025
27290af
Add z_min and z_max
ufechner7 Jul 1, 2025
f4492ad
Add quiver.jl
ufechner7 Jul 2, 2025
48f4c73
Simplify example
ufechner7 Jul 2, 2025
c47fb9d
Add show_2d_field.jl
ufechner7 Jul 2, 2025
483b72a
Improve example
ufechner7 Jul 2, 2025
26eef89
Some progress
ufechner7 Jul 2, 2025
b2e7d28
Add GLMakie
ufechner7 Jul 3, 2025
256d4dd
Add plot_windfield.jl
ufechner7 Jul 3, 2025
024eeb8
GUI works
ufechner7 Jul 3, 2025
f77de1d
Some progress
ufechner7 Jul 3, 2025
04f0b98
Improve examples
ufechner7 Jul 3, 2025
596df8f
Improve example
ufechner7 Jul 3, 2025
63ddf42
Add some caching
ufechner7 Jul 3, 2025
de8a4ab
Cleanup
ufechner7 Jul 3, 2025
4f51693
Add mwe_02
ufechner7 Jul 3, 2025
f0d7a39
Update mwe
ufechner7 Jul 3, 2025
fb45911
Some improvements
ufechner7 Jul 3, 2025
25f7180
6 m/s at reference height
ufechner7 Jul 3, 2025
e75855f
Cleanup
ufechner7 Jul 3, 2025
bbcdc23
Add wind components
ufechner7 Jul 3, 2025
2c0b221
Add legend
ufechner7 Jul 3, 2025
364f183
Add I
ufechner7 Jul 3, 2025
f955cbe
Add v_mean
ufechner7 Jul 3, 2025
05e5da7
Add function turbulence_intensity()
ufechner7 Jul 3, 2025
2e18a81
Improve mwe_02.jl
ufechner7 Jul 3, 2025
eb1de54
Some progress
ufechner7 Jul 3, 2025
5114f00
Some progress
ufechner7 Jul 3, 2025
3b10d02
Adde bench_get_wind
ufechner7 Jul 3, 2025
f74eb65
Add comment
ufechner7 Jul 3, 2025
848ed76
Fix tests
ufechner7 Jul 3, 2025
4d4f619
Next try
ufechner7 Jul 3, 2025
7970120
Next try
ufechner7 Jul 3, 2025
114452f
Next try
ufechner7 Jul 3, 2025
b5c6266
Add Project.toml to examples folder
ufechner7 Jul 4, 2025
7047571
Add Project.toml to examples folder
ufechner7 Jul 4, 2025
30f0117
Add file to .gitignore
ufechner7 Jul 4, 2025
e69de3b
Make use of new Project.toml
ufechner7 Jul 4, 2025
c90d1b1
Add file to .gitignore
ufechner7 Jul 4, 2025
d83f35b
Update environment to match thesis
ufechner7 Jul 4, 2025
706c2f7
Add rel_turb
ufechner7 Jul 4, 2025
a3cd5b7
Fix example
ufechner7 Jul 4, 2025
e9def8f
Some fixes
ufechner7 Jul 4, 2025
4353769
Update example
ufechner7 Jul 4, 2025
aeaad67
More @info, change default rel_turb
ufechner7 Jul 4, 2025
5575556
Change data path
ufechner7 Jul 4, 2025
cbc6fe6
Add new example
ufechner7 Jul 4, 2025
371616a
Better formatting
ufechner7 Jul 4, 2025
11593d8
Minor change
ufechner7 Jul 4, 2025
83b6640
Revert changes to CI.yml
ufechner7 Jul 4, 2025
7b04223
Improve examples
ufechner7 Jul 4, 2025
5314a66
Add menu.jl
ufechner7 Jul 4, 2025
f4f757f
Add function rel_turbo
ufechner7 Jul 4, 2025
2516cec
Refactoring
ufechner7 Jul 4, 2025
4d5f02d
Make use of function rel_turbo()
ufechner7 Jul 4, 2025
711bfb1
Add comment
ufechner7 Jul 4, 2025
6d38522
Fix example
ufechner7 Jul 4, 2025
37e65a1
Fix example
ufechner7 Jul 4, 2025
8a6a0de
Add mwe_03.py
ufechner7 Jul 4, 2025
537a482
Fix grammar
ufechner7 Jul 4, 2025
b64c1d0
MWE working
ufechner7 Jul 4, 2025
7225377
mwe working
ufechner7 Jul 4, 2025
4bcd9b3
Add first check
ufechner7 Jul 4, 2025
ee40ffa
Add unit tests
ufechner7 Jul 4, 2025
2fafe99
6 tests now
ufechner7 Jul 4, 2025
d4bfda7
Cleanup
ufechner7 Jul 4, 2025
c991cf2
One more test
ufechner7 Jul 4, 2025
a85775a
More tests
ufechner7 Jul 4, 2025
5ee535d
More tests
ufechner7 Jul 4, 2025
ce350e3
Cleanup
ufechner7 Jul 4, 2025
69f9466
Add new version of create_windfield()
ufechner7 Jul 4, 2025
c423e21
Add tests
ufechner7 Jul 4, 2025
fe4e924
Set seed
ufechner7 Jul 4, 2025
a265aa9
Fix tests
ufechner7 Jul 4, 2025
66f0336
Add comment
ufechner7 Jul 4, 2025
90eac21
Move quiver to mwe_04.jl
ufechner7 Jul 4, 2025
237a083
Move show_2d_field to mwe_05.jl
ufechner7 Jul 4, 2025
8bb49f6
Cleanup
ufechner7 Jul 4, 2025
6345fbc
Improve examples
ufechner7 Jul 4, 2025
2b42a7e
Improve example
ufechner7 Jul 4, 2025
8393689
Cleanup
ufechner7 Jul 4, 2025
8cb1152
Add test_all.jl
ufechner7 Jul 4, 2025
33f54c3
Cleanup
ufechner7 Jul 4, 2025
342d787
Add test_all to menu.jl
ufechner7 Jul 4, 2025
88118fa
Use norm of wind
ufechner7 Jul 4, 2025
4a871bf
Add expected results
ufechner7 Jul 4, 2025
f69c4f0
Two plots
ufechner7 Jul 4, 2025
4a7d4b3
Bugfix
ufechner7 Jul 4, 2025
4193a63
Bugfix
ufechner7 Jul 4, 2025
250ee22
Cleanup
ufechner7 Jul 4, 2025
28201fc
Refactoring
ufechner7 Jul 4, 2025
86a22bb
Refactoring
ufechner7 Jul 4, 2025
95c489a
Fix legend
ufechner7 Jul 5, 2025
e58b123
Fixes of the examples
ufechner7 Jul 5, 2025
f710252
Update bench.jl
ufechner7 Jul 5, 2025
6b9b1dd
Add missing package
ufechner7 Jul 5, 2025
370e42a
Improve tests
ufechner7 Jul 5, 2025
219d9b7
Minor fixes
ufechner7 Jul 5, 2025
92cd25e
Update settings
ufechner7 Jul 5, 2025
76e604f
remove REL_SIGMA
ufechner7 Jul 5, 2025
43ef6c9
Fix tests locally
ufechner7 Jul 5, 2025
62943db
Remove global const V_WIND_GND
ufechner7 Jul 5, 2025
a18920f
Remove two more constants
ufechner7 Jul 5, 2025
4903e96
Cleanup, fix example
ufechner7 Jul 5, 2025
2496fb7
Update comments.
ufechner7 Jul 5, 2025
eb4cda3
Fixes
ufechner7 Jul 5, 2025
161bb89
Add delete_windfields
ufechner7 Jul 5, 2025
21f1ca0
Add back deleted function new_windfield
ufechner7 Jul 5, 2025
53a2f2b
Improve docstring
ufechner7 Jul 5, 2025
288f9d8
Fix test
ufechner7 Jul 5, 2025
e7f2961
Bugfix
ufechner7 Jul 5, 2025
81f971f
Add comment
ufechner7 Jul 5, 2025
1cbde1f
WindField not needed externally any longer
ufechner7 Jul 5, 2025
556492c
Fix tests
ufechner7 Jul 5, 2025
aef3976
Cleanup
ufechner7 Jul 5, 2025
75f22a1
Add unit tests
ufechner7 Jul 5, 2025
54a97a1
Tighter tolerances
ufechner7 Jul 5, 2025
29a1caf
Tighter tolerances
ufechner7 Jul 5, 2025
c74a349
Auto-instantiate
ufechner7 Jul 5, 2025
f4dc3d9
Cleanup
ufechner7 Jul 5, 2025
af37503
Update README.md
ufechner7 Jul 5, 2025
3a520cc
Fix example
ufechner7 Jul 5, 2025
b3cdc71
Add CHANGELOG.md
ufechner7 Jul 5, 2025
9b3138d
Bugfix
ufechner7 Jul 5, 2025
35d95eb
Fix comment
ufechner7 Jul 5, 2025
11c4692
Cleanup
ufechner7 Jul 5, 2025
312786f
Fix mwe_01.jl
ufechner7 Jul 5, 2025
f60f32c
Docu (#16)
ufechner7 Jul 6, 2025
12f7608
Bug fix, one more menu entry
ufechner7 Jul 6, 2025
6aab54e
Add page Wind Fields
ufechner7 Jul 6, 2025
78f3fae
Fix link
ufechner7 Jul 6, 2025
acfdc33
Improve docu
ufechner7 Jul 6, 2025
a4679ca
Improve links
ufechner7 Jul 6, 2025
d0cd52e
Fix formatting
ufechner7 Jul 6, 2025
6e7d6c4
Use KiteUtils 0.10.14, use field grid of settings
ufechner7 Jul 6, 2025
f0218a2
Update docu
ufechner7 Jul 6, 2025
da74238
Use simple system.yaml file, use relax=true
ufechner7 Jul 6, 2025
aab8da4
Add plot wind shear near shore
ufechner7 Jul 6, 2025
87b9680
Add plot_windshear_cabauw
ufechner7 Jul 6, 2025
32424e8
Some progress
ufechner7 Jul 6, 2025
3bbc6ec
Update docs
ufechner7 Jul 6, 2025
aa9af0e
Replace p with alpha
ufechner7 Jul 6, 2025
de6e7ab
Improve docu
ufechner7 Jul 6, 2025
d0be850
Fix formatting
ufechner7 Jul 6, 2025
3d485b8
Some progress
ufechner7 Jul 6, 2025
49686a3
Fix links
ufechner7 Jul 6, 2025
ffb5c5f
Cleanup
ufechner7 Jul 6, 2025
21d6fbf
Add files to .gitignore
ufechner7 Jul 6, 2025
8e5c62b
Use more detailed file names
ufechner7 Jul 6, 2025
7c79f8b
Cleanup
ufechner7 Jul 6, 2025
b1ff61b
Some progress
ufechner7 Jul 6, 2025
fa9712d
Fix test
ufechner7 Jul 6, 2025
1d86267
Improve TOC
ufechner7 Jul 6, 2025
f928efe
Fix typo
ufechner7 Jul 7, 2025
e8c1629
Minor improvements
ufechner7 Jul 7, 2025
d9e2f1f
Add file to .gitignore
ufechner7 Jul 7, 2025
28ce3f4
Add files to .gitignore
ufechner7 Jul 7, 2025
3e91164
Added two default manifests
ufechner7 Jul 7, 2025
cdccbc2
Add file to .gitignore
ufechner7 Jul 8, 2025
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
22 changes: 21 additions & 1 deletion .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
matrix:
version:
- '1.10'
- '1'
- '1.11'
os:
- ubuntu-latest
arch:
Expand Down Expand Up @@ -54,3 +54,23 @@ jobs:
- uses: codecov/codecov-action@v5
with:
files: lcov.info
docs:
name: Documentation
runs-on: ubuntu-latest
timeout-minutes: 40
steps:
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v2
- uses: julia-actions/cache@v2
- uses: julia-actions/julia-buildpkg@v1
- uses: julia-actions/julia-docdeploy@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }}
- run: |
julia --project=docs -e '
using Documenter: DocMeta, doctest
using AtmosphericModels
DocMeta.setdocmeta!(AtmosphericModels, :DocTestSetup, :(using AtmosphericModels); recursive=true)
doctest(AtmosphericModels)'

9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,11 @@
/Manifest.toml
.vscode/settings.json
data/*.npz
examples/Manifest.toml

Choose a reason for hiding this comment

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

Not clear to me how the Manifest.toml are used. In python project, I am used to commit the .lock files so that it is possible to define a default configuration for the tests or to ensure to get reproducible results.

Copy link
Member Author

Choose a reason for hiding this comment

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

A Manifest.toml file is created when you first install the project, for example by doing:

julia --project
using Pkg
Pkg.instantiate()

If a manifest file exists, Pkg.instantiate() installs exactly all dependencies listed in the manifest.
In contrast, Pkg.update() looks at the Project.toml file and updates all dependencies to the newest versions allowed by the Project.toml file.

In the last commit I added two default manifests that document the last tested set of packages used, Manifest-v1.10.toml.default and Manifest-v1.11.toml.default for Julia 1.10 and Julia 1.11.

Normally these are not needed, Project.toml should be sufficient, but if something brakes (because a minor package update was buggy) you can always do

cp Manifest-v1.11.toml.default Manifest-v1.11.toml
julia --project
using Pkg; Pkg.instantiate()

And you have the last know good set of packages installed.

Copy link
Member Author

Choose a reason for hiding this comment

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

Is it clear to you now?

Choose a reason for hiding this comment

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

Yes clear, but I feel like only one version could be supported as default. The julia version number is integrated in the Manifest.toml, so this should be sufficient, avoiding to have to rename the file ? After, you may save other manifest in subfolder for example in you have published a study (but I think this should not be in a package, but wise if the publication topic is the package).

Copy link
Member Author

Choose a reason for hiding this comment

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

No, renaming of the file is needed. If you start Julia, it looks first for a Manifest file that has its own version number in the file name. If that is found, it uses it. If there is no such file, it uses Manifest.toml (without version number). And if there is no such file it creates it.

We always want to support two versions, the latest Julia version with long term support (which is 1.10), at the latest stable version (after we found it mature enough). Before making a release I always run both the unit tests and the examples on both Julia version. Switching the Julia version is easy, for example by executing:
juliaup default +1.10
Ok, once you need to do juliaup add 1.10.

If you only have one Manifest.toml file without the version number in the file name and switch the Julia version you are using, then things get messed up.

examples/Manifest-v1.10.toml
examples/Manifest-v1.11.toml
docs/build
docs/Manifest.toml
Manifest-v1.11.toml
Manifest-v1.10.toml
cspell.json
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
## Unreleased

## Changed
- BREAKING: When constructing an atmospheric model, you MUST pass the parameter set::Settings. This ensures that all parts of the simulation use the same settings struct, and that you can run different simulations with different settings in parallel.

## Added
- The function `get_wind(am, x, y, z, t)` which returns a wind vector for the given position and time. It creates a 3D wind field if it does not exist in the data folder. The parameters of this wind field are configured in `settings.yaml`.
- Documenter generated documentation.
Loading
Loading