wawi 0.0.16__py3-none-any.whl → 0.0.18__py3-none-any.whl
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.
- wawi/__init__.py +1 -1
- wawi/fe.py +259 -12
- wawi/general.py +538 -70
- wawi/identification.py +33 -11
- wawi/io.py +206 -3
- wawi/modal.py +384 -6
- wawi/model/_model.py +1 -1
- wawi/plot.py +403 -107
- wawi/prob.py +28 -0
- wawi/random.py +218 -2
- wawi/signal.py +111 -3
- wawi/structural.py +317 -59
- wawi/time_domain.py +122 -1
- wawi/tools.py +23 -0
- wawi/wave.py +668 -123
- wawi/wind.py +775 -32
- wawi/wind_code.py +26 -0
- {wawi-0.0.16.dist-info → wawi-0.0.18.dist-info}/METADATA +42 -4
- wawi-0.0.18.dist-info/RECORD +38 -0
- {wawi-0.0.16.dist-info → wawi-0.0.18.dist-info}/WHEEL +1 -1
- wawi-0.0.16.dist-info/RECORD +0 -38
- {wawi-0.0.16.dist-info → wawi-0.0.18.dist-info}/licenses/LICENSE +0 -0
- {wawi-0.0.16.dist-info → wawi-0.0.18.dist-info}/top_level.txt +0 -0
wawi/wind_code.py
CHANGED
@@ -1,6 +1,32 @@
|
|
1
1
|
import numpy as np
|
2
2
|
|
3
3
|
def terrain_roughness(z, z0=0.01, zmin=1.0):
|
4
|
+
"""
|
5
|
+
Calculates the terrain roughness correction for wind speed at a given height.
|
6
|
+
|
7
|
+
Parameters
|
8
|
+
----------
|
9
|
+
z : float
|
10
|
+
Height above ground level (in meters) at which to calculate the roughness correction.
|
11
|
+
z0 : float, optional
|
12
|
+
Surface roughness length (in meters). Default is 0.01.
|
13
|
+
zmin : float, optional
|
14
|
+
Minimum reference height (in meters) to use if `z` is less than or equal to `zmin`. Default is 1.0.
|
15
|
+
|
16
|
+
Returns
|
17
|
+
-------
|
18
|
+
float
|
19
|
+
The terrain roughness correction factor.
|
20
|
+
|
21
|
+
Notes
|
22
|
+
-----
|
23
|
+
The function uses a logarithmic wind profile and a roughness correction factor `kr` based on the ratio of the provided roughness length `z0` to a reference value `z0_ii = 0.01`. If the height `z` is less than or equal to `zmin`, the calculation uses `zmin` instead of `z`.
|
24
|
+
|
25
|
+
References
|
26
|
+
----------
|
27
|
+
- EN 1991-1-4: Eurocode 1: Actions on structures – Part 1-4: General actions – Wind actions.
|
28
|
+
"""
|
29
|
+
|
4
30
|
z0_ii = 0.01
|
5
31
|
kr = 0.19 * (z0/z0_ii)**0.07
|
6
32
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: wawi
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.18
|
4
4
|
Summary: WAve and WInd response prediction
|
5
5
|
Author-email: "Knut A. Kvåle" <knut.a.kvale@ntnu.no>, Ole Øiseth <ole.oiseth@ntnu.no>, Aksel Fenerci <aksel.fenerci@ntnu.no>, Øivind Wiig Petersen <oyvind.w.petersen@ntnu.no>
|
6
6
|
License: MIT License
|
@@ -92,17 +92,51 @@ pip install git+https://www.github.com/knutankv/wawi.git@main
|
|
92
92
|
How does WAWI work?
|
93
93
|
======================
|
94
94
|
By representing both aerodynamic and hydrodynamic motion-induced forces and excitation using a coordinate basis defined by the dry in-vacuum mode shapes of the structure, WAWI is able to versatily predict response based on input from any commercial FE software. The main structure used for response prediction is given in this figure:
|
95
|
+
|
95
96
|

|
96
97
|
|
97
98
|
The object structure of a WAWI model is given here:
|
98
|
-
|
99
|
+
|
100
|
+

|
99
101
|
|
100
102
|
Further details regarding hydrodynamic definitions initiated by the `Hydro` class is given below:
|
103
|
+
|
101
104
|

|
102
105
|
|
103
106
|
Further details regarding aerodynamic definitions initiated by the `Aero` class is given below:
|
107
|
+
|
104
108
|

|
105
109
|
|
110
|
+
Wave conditions
|
111
|
+
----------------------
|
112
|
+
The wave field definition is based on the assumption that the two-dimensional wave spectral density can be decomposed into a directional distribution and a one-dimensional wave spectral density, i.e., $S_\eta(\omega,\theta) = D(\theta) S(\omega)$. The two factors are defined using these well-known formulations:
|
113
|
+
|
114
|
+
* $S(\omega)$: JONSWAP spectrum (see [Hasselmann et al., 1973](https://pure.mpg.de/pubman/faces/ViewItemOverviewPage.jsp?itemId=item_3262854))
|
115
|
+
* $D(\theta)$: cos-2s directional distribution (see Longuet-Higgins et al., 1963)
|
116
|
+
|
117
|
+
Currents are defined by a homogeneous current speed `U` and corresponding direction `thetaU`.
|
118
|
+
|
119
|
+
An example of a two-dimensional wave spectral density based on (arbitrarily chosen) parameters $H_s = 2.1$ m, $T_p = 2.1$ s, $\gamma = 4.0$, $s = 10$ and $\theta_0 = 75^\circ$ is shown in this plot:
|
120
|
+
|
121
|
+

|
122
|
+
|
123
|
+
It is noted that you can easily assign custom functions of the `S` and `D` of the seastate (or customly on all pontoons for full control) instead of relying on the built in JONSWAP and cos-2s definitions.
|
124
|
+
|
125
|
+
Wind conditions
|
126
|
+
----------------------
|
127
|
+
The wind field is defined by single-point turbulence wind spectra (for all turbulence components $u$, $v$ and $w$) and coherence definitions.
|
128
|
+
|
129
|
+
By default, wind spectra can be defined using these two definitions:
|
130
|
+
|
131
|
+
* Kaimal spectrum defined by length scale parameters ($L^x_u$, $L^x_v$, $L^x_w$), spectral shape parameters ($A_u$, $A_v$ and $A_w$) and turbulence intensities ($I_u$, $I_v$ and $I_w$); see [Kaimal et al., 1972](https://www.climatexchange.nl/projects/alteddy/papers/Kaimal-1972.pdf)
|
132
|
+
* von Karmán spectrum defined by only length scale parameters ($L^x_u$, $L^x_v$, $L^x_w$) and turbulence intensities ($I_u=\sigma_u/U$, $I_v=\sigma_v/U$ and $I_w=\sigma_w/U$); see [von Kármán, 1948](http://dx.doi.org/10.1073/pnas.34.11.530)
|
133
|
+
|
134
|
+
Furthermore, the coherence of the wind field is defined by the nine decay parameters $C_{ux}$, $C_{vx}$, $C_{wx}$, $C_{uy}$, $C_{vy}$, $C_{wy}$, $C_{uz}$ $C_{vz}$, $C_{wz}$; see e.g. [Simiu and Scanlan, 1996](https://library.wur.nl/WebQuery/titel/1606468) for details.
|
135
|
+
|
136
|
+
An example of turbulence spectral densities based on (arbitrarily chosen) parameters $I_u=0.136$, $I_v=0.0$, $I_w=0.072$, $L^x_u=115$, $L^x_w=9.58$, $A_u=6.8$ (only relevant for Kaimal-type) and $A_w=9.4$ (only relevant for Kaimal-type) is given below:
|
137
|
+
|
138
|
+

|
139
|
+
|
106
140
|
|
107
141
|
Quick start
|
108
142
|
=======================
|
@@ -181,16 +215,20 @@ References
|
|
181
215
|
=======================
|
182
216
|
The following papers provide background for the implementation:
|
183
217
|
|
184
|
-
* Beam (FE) description of aerodynamic forces: [Øiseth et al. (2012)](https://www.sciencedirect.com/science/article/abs/pii/S0168874X11001880)
|
185
218
|
* Wave modelling and response prediction: [Kvåle et al. (2016)](https://www.sciencedirect.com/science/article/abs/pii/S004579491500334X)
|
186
219
|
* Inhomogeneous wave modelling: [Kvåle et al. (2024)](https://www.sciencedirect.com/science/article/pii/S0141118723003437)
|
187
220
|
* Hydrodynamic interaction effects: [Fenerci et al. (2022)](https://www.sciencedirect.com/science/article/pii/S095183392200017X)
|
221
|
+
* Beam (FE) description of aerodynamic forces: [Øiseth et al. (2012)](https://www.sciencedirect.com/science/article/abs/pii/S0168874X11001880)
|
188
222
|
* Wave-current interaction: [Fredriksen et al. (2024)](https://www.researchgate.net/profile/Arnt-Fredriksen/publication/386453916_On_the_wave-current_interaction_effect_on_linear_motion_for_floating_bridges/links/6751a40fabddbb448c65cbef/On-the-wave-current-interaction-effect-on-linear-motion-for-floating-bridges.pdf)
|
189
223
|
|
190
224
|
|
191
225
|
Citation
|
192
226
|
=======================
|
193
|
-
|
227
|
+
Please cite the use of this software as follows:
|
228
|
+
|
229
|
+
Kvåle, K. A., Fenerci, A., Petersen, Ø. W., & Øiseth, O. A. (2025). WAWI. Zenodo. https://doi.org/10.5281/zenodo.15482552
|
230
|
+
[](https://doi.org/10.5281/zenodo.14895014)
|
231
|
+
|
194
232
|
|
195
233
|
Support
|
196
234
|
=======================
|
@@ -0,0 +1,38 @@
|
|
1
|
+
examples/3 Software interfacing/Abaqus model export/bergsoysund-export.py,sha256=3HSV009z5oqIUgM6B7xucUpGeh2f8SzC9FSiyP0zd7A,2760
|
2
|
+
examples/3 Software interfacing/Abaqus model export/hardanger-export.py,sha256=YiqS-TxnkydwVHE7k-57nP6CDsxqSXgWR3f8UytAubY,1603
|
3
|
+
tests/test_IABSE_step11a.py,sha256=zTWOxR78F0PNhNqiqodEcL65vdJXyMP78nkJumhy-RA,7915
|
4
|
+
tests/test_IABSE_step11c.py,sha256=TfxPlP70dhujKlSYbA-Gj4U-EJmYZ3jt6yjvX9wSXcA,10337
|
5
|
+
tests/test_IABSE_step2a.py,sha256=9pAd1em2IEY4k5N-jAigV3VGup0QsbUxnwSiziuMbUg,10134
|
6
|
+
tests/test_wind.py,sha256=r4rx6f8Tn-u4fn4gGPBMrL_JJQ2SVHGQiQ9sQuMQCPo,1707
|
7
|
+
wawi/__init__.py,sha256=9LICE2nsa6XkgFeTM-0jQ7ztS3HrW15QrTAKq_1UIg8,183
|
8
|
+
wawi/fe.py,sha256=wohMq-VGZnxZzfFGucWJXVrVLsD4MAS3jQs_P-HtyKI,12769
|
9
|
+
wawi/general.py,sha256=Yt5DjDhzqNoYkQwu5nDZun-Kp_KqhV4DRLnMhUAYcQ0,23455
|
10
|
+
wawi/identification.py,sha256=QDaz-ptH4_hXLTwLIEb28gr_KNiIiz3EQAgbNKXKZRI,2318
|
11
|
+
wawi/io.py,sha256=DP0e7B8KBWLN8mMhWEeZIV17d_lObi_jCySX40ZdljQ,36475
|
12
|
+
wawi/modal.py,sha256=NAqPQFqJVoPi26u32Pr8ekhL5dg_HAWfCMMmBmN1-3c,36504
|
13
|
+
wawi/plot.py,sha256=gVoGjJoiKqGr0-6BBFFNPuZcUdiQwGzEFmdHswGeKzc,30878
|
14
|
+
wawi/prob.py,sha256=JBDU9OB-ksBD9zDG0FZ05dTh47aO3mRhS_l1zpcCx8c,954
|
15
|
+
wawi/random.py,sha256=3M7w07QzMmgRLsVs1V-DbNJnn1r8a7yY8vFpsiq0hug,5596
|
16
|
+
wawi/signal.py,sha256=NTKgd7nHLy5onub1dfwe4AvvrNB6FtKGXEnL9LvE0Ao,3715
|
17
|
+
wawi/structural.py,sha256=tptswGb5rZUXzqZkOI0odfSXpgtDALTYMAmJJ_LZORk,14344
|
18
|
+
wawi/time_domain.py,sha256=8sSmp61E6HnopuQxP-lTR3fQHXkyPeVFNF6PZqcxVWQ,10048
|
19
|
+
wawi/tools.py,sha256=Jgfk2wzKwKUv5OsQh1oGQI2bcK8Xa3togwntFEScK2Q,1004
|
20
|
+
wawi/wave.py,sha256=75mQCgFtwrokCAF9y6RqwkLRcyOYjnu2MQkoLBXUFPc,33794
|
21
|
+
wawi/wind.py,sha256=uFybNXckq4u1S9uaWT9rW6JN8GbCZ_vHgsz-dLjAPt0,62313
|
22
|
+
wawi/wind_code.py,sha256=r39K7-jvjat7gWlaNpv-JlPjDOZo8gwqgDNZ8TYFvZg,1202
|
23
|
+
wawi/ext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
24
|
+
wawi/ext/abq.py,sha256=Wo-Zzb6b3lr_z7cNKTW-NdYJuVeAwZgwzlGhF_5Jym0,8905
|
25
|
+
wawi/ext/ansys.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
26
|
+
wawi/ext/orcaflex.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
27
|
+
wawi/ext/sofistik.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
28
|
+
wawi/model/__init__.py,sha256=u6B-dugP76LBkOUVMs0KAoQ81PeRHwFL0M8MbNeAaJA,218
|
29
|
+
wawi/model/_aero.py,sha256=tvWMjMoVi9ZVBc3NZ_s-wSofbEk1cc5jf5s-Swv2RxQ,9337
|
30
|
+
wawi/model/_dry.py,sha256=KpmFlSinoY6DrSyc3Y0M8w1-cCC7VCFep-uzcqZsHz4,3940
|
31
|
+
wawi/model/_hydro.py,sha256=7kzOqKou9RV1KoYXC-6oVw8gtnqfC-NfeohLFDiL-uI,27107
|
32
|
+
wawi/model/_model.py,sha256=0Z5wBUFRzO_yKTF_HogUhE2-5oBkGLfVQU1qclNioVo,53306
|
33
|
+
wawi/model/_screening.py,sha256=NRYkKq928z2lqMSUTpbQLls04td_9R_4dhkjU3Gv1oQ,3716
|
34
|
+
wawi-0.0.18.dist-info/licenses/LICENSE,sha256=bH1aWhrNbbPLrYnVFRaoYYzcUr-figHjry-kGB7Tc54,1076
|
35
|
+
wawi-0.0.18.dist-info/METADATA,sha256=g17rbdBIRVuADZp6n21xYLd5swNGm4gCbxGucWwqM8U,12228
|
36
|
+
wawi-0.0.18.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
|
37
|
+
wawi-0.0.18.dist-info/top_level.txt,sha256=Nk5G_ZwgZRCb9ZMWZdr1M3QIskX6kCnlqeMl67N3zg8,20
|
38
|
+
wawi-0.0.18.dist-info/RECORD,,
|
wawi-0.0.16.dist-info/RECORD
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
examples/3 Software interfacing/Abaqus model export/bergsoysund-export.py,sha256=3HSV009z5oqIUgM6B7xucUpGeh2f8SzC9FSiyP0zd7A,2760
|
2
|
-
examples/3 Software interfacing/Abaqus model export/hardanger-export.py,sha256=YiqS-TxnkydwVHE7k-57nP6CDsxqSXgWR3f8UytAubY,1603
|
3
|
-
tests/test_IABSE_step11a.py,sha256=zTWOxR78F0PNhNqiqodEcL65vdJXyMP78nkJumhy-RA,7915
|
4
|
-
tests/test_IABSE_step11c.py,sha256=TfxPlP70dhujKlSYbA-Gj4U-EJmYZ3jt6yjvX9wSXcA,10337
|
5
|
-
tests/test_IABSE_step2a.py,sha256=9pAd1em2IEY4k5N-jAigV3VGup0QsbUxnwSiziuMbUg,10134
|
6
|
-
tests/test_wind.py,sha256=r4rx6f8Tn-u4fn4gGPBMrL_JJQ2SVHGQiQ9sQuMQCPo,1707
|
7
|
-
wawi/__init__.py,sha256=jBTtfY__jKUq4iwxWldOiudzVb-9eGu0ot2i6J5diC0,183
|
8
|
-
wawi/fe.py,sha256=22QKI1GlfsG7o_TpFXaKJfzmbO2_2zdIMaoJmaIZdmY,4001
|
9
|
-
wawi/general.py,sha256=xHRoDkcchrL6Y7pTUqGsjBHh8YBLvX9dYcNXXCjQap8,13787
|
10
|
-
wawi/identification.py,sha256=bVB6EVRR6J39OO9ckuzNJ6f0FwIo4cLqfYgrsIN89TE,1748
|
11
|
-
wawi/io.py,sha256=th_hHucLOemFFh7OHyR8EyO4NkH1YSnUlt4kok3XDqg,25352
|
12
|
-
wawi/modal.py,sha256=SOmzjviDMBw4OwQAUq3EXo_FJyv6uoZg-fsE3fizXHk,20253
|
13
|
-
wawi/plot.py,sha256=jllJcjZxTBqjzBoT4k9jLXVUnie8oqNr8371IJvCd3c,19791
|
14
|
-
wawi/prob.py,sha256=0nCdKdwkNf4M6sHyCZuYlt06gD0NmqRNfl4KesgySWA,215
|
15
|
-
wawi/random.py,sha256=MHPpyTlRJSJFkCmeTAmw4Q5K1BPoFVb0Nxg0jDhkuIM,871
|
16
|
-
wawi/signal.py,sha256=9HJs7VUhXOccuYPo12A0IUVoBIAJ2e_9F3rL-q3JuP4,1179
|
17
|
-
wawi/structural.py,sha256=t25ohH4uBbzUJ7Hqn_kUfYhxcikZkRp8da-9dn7aEbw,8341
|
18
|
-
wawi/time_domain.py,sha256=q8-H2xceP-2BmtOfbRQqYhD1JSb0z7jGq-dL_MzAX40,6122
|
19
|
-
wawi/tools.py,sha256=-hFBvf0qK4AMn2MQRhrOitDMMMKm2QuRkVfbPBefEkQ,332
|
20
|
-
wawi/wave.py,sha256=Ye-5JnJJhWA1lcPQUvFTCRTzcY6LB_hu92VO8z2i01I,16059
|
21
|
-
wawi/wind.py,sha256=VHy07IbrCJxlqR0Z5O5WRc9YE4jb-MqFbULPiXhj0NA,38211
|
22
|
-
wawi/wind_code.py,sha256=8OKLPpqc84obNNKBoYb2NunKjcn6a3i_pAWpIFEwg4Q,223
|
23
|
-
wawi/ext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
24
|
-
wawi/ext/abq.py,sha256=Wo-Zzb6b3lr_z7cNKTW-NdYJuVeAwZgwzlGhF_5Jym0,8905
|
25
|
-
wawi/ext/ansys.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
26
|
-
wawi/ext/orcaflex.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
27
|
-
wawi/ext/sofistik.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
28
|
-
wawi/model/__init__.py,sha256=u6B-dugP76LBkOUVMs0KAoQ81PeRHwFL0M8MbNeAaJA,218
|
29
|
-
wawi/model/_aero.py,sha256=tvWMjMoVi9ZVBc3NZ_s-wSofbEk1cc5jf5s-Swv2RxQ,9337
|
30
|
-
wawi/model/_dry.py,sha256=KpmFlSinoY6DrSyc3Y0M8w1-cCC7VCFep-uzcqZsHz4,3940
|
31
|
-
wawi/model/_hydro.py,sha256=7kzOqKou9RV1KoYXC-6oVw8gtnqfC-NfeohLFDiL-uI,27107
|
32
|
-
wawi/model/_model.py,sha256=m6UF3onrQFgsJUNDzuot2maAuJpqTxoP4hHCBHbDuMs,53322
|
33
|
-
wawi/model/_screening.py,sha256=NRYkKq928z2lqMSUTpbQLls04td_9R_4dhkjU3Gv1oQ,3716
|
34
|
-
wawi-0.0.16.dist-info/licenses/LICENSE,sha256=bH1aWhrNbbPLrYnVFRaoYYzcUr-figHjry-kGB7Tc54,1076
|
35
|
-
wawi-0.0.16.dist-info/METADATA,sha256=mMH-uf9JkCUNj4-8gSN3sI0A7bMUhddpWkg9GqoyhY8,9502
|
36
|
-
wawi-0.0.16.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
|
37
|
-
wawi-0.0.16.dist-info/top_level.txt,sha256=Nk5G_ZwgZRCb9ZMWZdr1M3QIskX6kCnlqeMl67N3zg8,20
|
38
|
-
wawi-0.0.16.dist-info/RECORD,,
|
File without changes
|
File without changes
|