pystormflow 0.2.0__tar.gz → 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,14 @@
1
+ # Cargo configuration for pystormflow
2
+ # These settings optimize the build for the user's specific CPU
3
+
4
+ [build]
5
+ # Use all available CPU cores for compilation
6
+ jobs = -1
7
+
8
+ [target.'cfg(target_arch = "x86_64")']
9
+ # Enable native CPU optimizations (AVX, AVX2, etc. if available)
10
+ rustflags = ["-C", "target-cpu=native"]
11
+
12
+ [target.'cfg(target_arch = "aarch64")']
13
+ # Enable native CPU optimizations for ARM64 (Apple Silicon, etc.)
14
+ rustflags = ["-C", "target-cpu=native"]
@@ -1,72 +1,72 @@
1
- /target
2
-
3
- # Byte-compiled / optimized / DLL files
4
- __pycache__/
5
- .pytest_cache/
6
- *.py[cod]
7
-
8
- # C extensions
9
- *.so
10
-
11
- # Distribution / packaging
12
- .Python
13
- .venv/
14
- env/
15
- bin/
16
- build/
17
- develop-eggs/
18
- dist/
19
- eggs/
20
- lib/
21
- lib64/
22
- parts/
23
- sdist/
24
- var/
25
- include/
26
- man/
27
- venv/
28
- *.egg-info/
29
- .installed.cfg
30
- *.egg
31
-
32
- # Installer logs
33
- pip-log.txt
34
- pip-delete-this-directory.txt
35
- pip-selfcheck.json
36
-
37
- # Unit test / coverage reports
38
- htmlcov/
39
- .tox/
40
- .coverage
41
- .cache
42
- nosetests.xml
43
- coverage.xml
44
-
45
- # Translations
46
- *.mo
47
-
48
- # Mr Developer
49
- .mr.developer.cfg
50
- .project
51
- .pydevproject
52
-
53
- # Rope
54
- .ropeproject
55
-
56
- # Django stuff:
57
- *.log
58
- *.pot
59
-
60
- .DS_Store
61
-
62
- # Sphinx documentation
63
- docs/_build/
64
-
65
- # PyCharm
66
- .idea/
67
-
68
- # VSCode
69
- .vscode/
70
-
71
- # Pyenv
72
- .python-version
1
+ /target
2
+
3
+ # Byte-compiled / optimized / DLL files
4
+ __pycache__/
5
+ .pytest_cache/
6
+ *.py[cod]
7
+
8
+ # C extensions
9
+ *.so
10
+
11
+ # Distribution / packaging
12
+ .Python
13
+ .venv/
14
+ env/
15
+ bin/
16
+ build/
17
+ develop-eggs/
18
+ dist/
19
+ eggs/
20
+ lib/
21
+ lib64/
22
+ parts/
23
+ sdist/
24
+ var/
25
+ include/
26
+ man/
27
+ venv/
28
+ *.egg-info/
29
+ .installed.cfg
30
+ *.egg
31
+
32
+ # Installer logs
33
+ pip-log.txt
34
+ pip-delete-this-directory.txt
35
+ pip-selfcheck.json
36
+
37
+ # Unit test / coverage reports
38
+ htmlcov/
39
+ .tox/
40
+ .coverage
41
+ .cache
42
+ nosetests.xml
43
+ coverage.xml
44
+
45
+ # Translations
46
+ *.mo
47
+
48
+ # Mr Developer
49
+ .mr.developer.cfg
50
+ .project
51
+ .pydevproject
52
+
53
+ # Rope
54
+ .ropeproject
55
+
56
+ # Django stuff:
57
+ *.log
58
+ *.pot
59
+
60
+ .DS_Store
61
+
62
+ # Sphinx documentation
63
+ docs/_build/
64
+
65
+ # PyCharm
66
+ .idea/
67
+
68
+ # VSCode
69
+ .vscode/
70
+
71
+ # Pyenv
72
+ .python-version
@@ -0,0 +1,24 @@
1
+ # Change log pystormflow
2
+
3
+ This file contains an overview of the changes made to pystormflow, the Python interface to the Stormflow CFD solver. See the [Stormflow change log](../../stormflow/CHANGELOG.md) for changes to the solver, and the [Stormbird change log](../../stormbird/CHANGELOG.md) for changes to the actuator line model.
4
+
5
+ ## 0.3.0 - 2026-10-31
6
+ ### Breaking changes
7
+ - Depends on the published versions of Stormflow 0.3.0 and Stormbird 0.12.0. There are no changes to the Python interface itself, but the setup files may need to be updated. See the [Stormflow change log](../../stormflow/CHANGELOG.md) for the changes to the solver, such as the new `boundary_condition_type` setting, and the [Stormbird change log](../../stormbird/CHANGELOG.md) for the changes to the actuator line model, such as the new dynamic stall model.
8
+
9
+ ### Other changes
10
+ - Invalid input raises a Python exception rather than a panic, in the same way as in pystormbird: creating a `Simulation` from a setup string that can not be read raises a `ValueError`, and reading simulation results from file with `SimulationResult.from_json_file` or `SimulationResult.result_history_from_file` raises an `OSError` if the file can not be read, and a `ValueError` if the content can not be parsed. Settings that are found to be invalid when the simulation is built in Stormflow still give a panic.
11
+ - New `section_models_internal_state` and `amount_of_stall` properties on the `SectionalForcesInput` class, as in pystormbird.
12
+ - The source distribution is compiled with native CPU optimizations, through a new `.cargo/config.toml`, as in pystormbird.
13
+ - The single rotor example is replaced by the new `rotor_sails/deybach_wind_tunnel` example, with one or two rotor sails in a wind tunnel, compared against the experiments by Deybach et al.
14
+
15
+ ## 0.2.1
16
+ - Depends on Stormflow 0.2.1 and Stormbird 0.11.1. The main changes are new experimental limits on the lifting line correction in the actuator line model. See the [Stormflow change log](../../stormflow/CHANGELOG.md) and the [Stormbird change log](../../stormbird/CHANGELOG.md).
17
+
18
+ ## 0.2.0 - 2026-10-23
19
+ ### Breaking changes
20
+ - Depends on Stormflow 0.2.0, Stormbird 0.11.0 and Stormath 0.4.0. The input format for the Stormbird models has changed in Stormbird 0.11.0, so setup files may need to be updated.
21
+ - The `gyroscopic` property of the `SectionalForces` class is renamed to `gyroscopic_moment`, as the gyroscopic effect is now a pure moment in Stormbird. The `gyroscopic` property of the `IntegratedValues` class is unchanged.
22
+
23
+ ## 0.1.0
24
+ The first version.
@@ -919,7 +919,7 @@ dependencies = [
919
919
 
920
920
  [[package]]
921
921
  name = "pystormflow"
922
- version = "0.2.0"
922
+ version = "0.3.0"
923
923
  dependencies = [
924
924
  "pyo3",
925
925
  "stormath",
@@ -1141,9 +1141,9 @@ dependencies = [
1141
1141
 
1142
1142
  [[package]]
1143
1143
  name = "stormbird"
1144
- version = "0.11.0"
1144
+ version = "0.12.0"
1145
1145
  source = "registry+https://github.com/rust-lang/crates.io-index"
1146
- checksum = "53d22ec67a0ed1406b1e8b7ca8270c97bd86e278a88a9136b7fb23cff5f83566"
1146
+ checksum = "58dd3ef773ce702fd01e8928fd09c122b71dfe0d611850d1c066cc775e212929"
1147
1147
  dependencies = [
1148
1148
  "serde",
1149
1149
  "serde_json",
@@ -1152,9 +1152,9 @@ dependencies = [
1152
1152
 
1153
1153
  [[package]]
1154
1154
  name = "stormflow"
1155
- version = "0.2.0"
1155
+ version = "0.3.0"
1156
1156
  source = "registry+https://github.com/rust-lang/crates.io-index"
1157
- checksum = "dd005f180b04dd0a2d9451cbb3da8f4832c4d56c19936867e01a03c6efbc9d17"
1157
+ checksum = "af8cf495075d36001dbac15413c67142fd30915a5ced8dc28a0eba76e8c8ba2c"
1158
1158
  dependencies = [
1159
1159
  "bytemuck",
1160
1160
  "clap",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "pystormflow"
3
- version = "0.2.0"
3
+ version = "0.3.0"
4
4
  authors = ["Jarle Kramer <jarle.kramer@gmail.com>"]
5
5
  description = "Python interface to the Stormflow CFD solver."
6
6
  homepage = "https://github.com/NTNU-IMT/stormbird"
@@ -16,8 +16,8 @@ crate-type = ["cdylib"]
16
16
  [dependencies]
17
17
  pyo3 = "0.29.0"
18
18
  stormath = {version = "0.4.0", features=["single_precision"]}
19
- stormbird = { version="0.11.0", features=["single_precision"]}
20
- stormflow = { version="0.2.0" }
19
+ stormbird = { version = "0.12.0", features = ["single_precision"] }
20
+ stormflow = "0.3.0"
21
21
 
22
22
  [profile.release]
23
23
  opt-level = 3