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.
- pystormflow-0.3.0/.cargo/config.toml +14 -0
- {pystormflow-0.2.0 → pystormflow-0.3.0}/.gitignore +72 -72
- pystormflow-0.3.0/CHANGELOG.md +24 -0
- {pystormflow-0.2.0 → pystormflow-0.3.0}/Cargo.lock +5 -5
- {pystormflow-0.2.0 → pystormflow-0.3.0}/Cargo.toml +3 -3
- {pystormflow-0.2.0 → pystormflow-0.3.0}/LICENSE +674 -674
- {pystormflow-0.2.0 → pystormflow-0.3.0}/PKG-INFO +83 -64
- {pystormflow-0.2.0 → pystormflow-0.3.0}/README.md +82 -63
- {pystormflow-0.2.0 → pystormflow-0.3.0}/pyproject.toml +42 -37
- {pystormflow-0.2.0 → pystormflow-0.3.0}/pystormflow/__init__.py +17 -17
- {pystormflow-0.2.0 → pystormflow-0.3.0}/pystormflow/__init__.pyi +93 -89
- {pystormflow-0.2.0 → pystormflow-0.3.0}/src/lib.rs +23 -23
- {pystormflow-0.2.0 → pystormflow-0.3.0}/src/result_structs.rs +245 -211
- {pystormflow-0.2.0 → pystormflow-0.3.0}/src/simulation.rs +89 -86
- pystormflow-0.2.0/CHANGELOG.md +0 -11
|
@@ -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.
|
|
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.
|
|
1144
|
+
version = "0.12.0"
|
|
1145
1145
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1146
|
-
checksum = "
|
|
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.
|
|
1155
|
+
version = "0.3.0"
|
|
1156
1156
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1157
|
-
checksum = "
|
|
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.
|
|
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.
|
|
20
|
-
stormflow =
|
|
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
|