wawi 0.0.8__py3-none-any.whl → 0.0.9__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.

Potentially problematic release.


This version of wawi might be problematic. Click here for more details.

@@ -0,0 +1,124 @@
1
+ import numpy as np
2
+ import json
3
+ from ._hydro import Seastate
4
+ from pathlib import Path
5
+
6
+ '''
7
+ SCREENING SUBMODULE
8
+ '''
9
+
10
+ class ScreeningCase:
11
+ def __init__(self, seastate, parvar, independent=True, name=None):
12
+
13
+ self.name = name
14
+ self.seastate = seastate
15
+ self.assign_parvar(parvar)
16
+ self.independent = independent
17
+ self.combos = self.get_parameter_space()
18
+ self.ix = -1
19
+
20
+ if not self.independent:
21
+ sz_prev = None
22
+ for key in self.parvar:
23
+ sz = len(self.parvar[key])
24
+
25
+ if sz_prev is not None and sz!=sz_prev:
26
+ raise ValueError('If dependent parameter arrays are requested, they must have the same length!')
27
+
28
+ sz_prev = sz*1
29
+
30
+
31
+ def assign_parvar(self, parvar):
32
+ self.parvar = dict()
33
+
34
+ for key in parvar:
35
+ if type(parvar[key]) is str:
36
+ self.parvar[key] = eval(parvar[key])
37
+ else:
38
+ self.parvar[key] = np.array(parvar[key])
39
+
40
+ # Convert angles
41
+ conversions = {'theta0': np.pi/180.0, 'thetaU': np.pi/180.0}
42
+
43
+ for key in self.parvar:
44
+ if key in conversions:
45
+ self.parvar[key] = self.parvar[key]*conversions[key]
46
+
47
+
48
+ def get_parameter_space(self):
49
+ pars = [self.parvar[k] for k in self.parvar]
50
+ keys = [k for k in self.parvar if k]
51
+
52
+ if self.independent:
53
+ combos = np.array(np.meshgrid(*pars)).reshape(len(keys),-1).T
54
+ else:
55
+ combos = np.vstack(pars).T
56
+
57
+ combo_dicts = [dict(zip(keys, combo)) for combo in combos]
58
+ return combo_dicts
59
+
60
+ @property
61
+ def n(self):
62
+ if self.independent:
63
+ return np.prod([len(v) for v in self.parvar.values()])
64
+ else:
65
+ return len(list(self.parvar.values())[0])
66
+
67
+ # Alternative constructor
68
+ @classmethod
69
+ def from_json(cls, json_file, **kwargs):
70
+ with open(json_file, 'r') as fileobj:
71
+ data = json.load(fileobj)
72
+
73
+ seastate = Seastate.from_json(data['seastate'], **kwargs)
74
+
75
+ # Update options if provided (to enable overriding options from screening setup)
76
+ if 'options' in data:
77
+ options = data['options']
78
+ else:
79
+ options = {}
80
+
81
+ if 'pontoon_options' in data:
82
+ pontoon_options = data['pontoon_options']
83
+ else:
84
+ pontoon_options = {}
85
+
86
+ seastate.options.update(**options)
87
+ seastate.pontoon_options.update(**pontoon_options)
88
+
89
+ parvar = data['parvar']
90
+ if 'independent' in data:
91
+ independent = data['independent']
92
+ else:
93
+ independent = True
94
+
95
+ return cls(seastate, parvar, independent=independent, name=Path(json_file).stem)
96
+
97
+ def get_combo(self):
98
+ return self.combos[self.ix]
99
+
100
+ def get_next_combo(self):
101
+ self.iterate_ix()
102
+ combo = self.combos[self.ix]
103
+ return combo
104
+
105
+ def iterate_seastate(self):
106
+ combo = self.get_next_combo()
107
+ if combo is not None:
108
+ for key in combo:
109
+ setattr(self.seastate, key, combo[key])
110
+
111
+ return self.seastate
112
+
113
+ def get_next_seastate(self):
114
+ self.iterate_seastate()
115
+ return self.seastate
116
+
117
+ def iterate_ix(self):
118
+ if self.ix == (self.n-1):
119
+ self.ix = 0 #reset
120
+ else:
121
+ self.ix += 1
122
+
123
+ def reset_ix(self):
124
+ self.ix = 0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: wawi
3
- Version: 0.0.8
3
+ Version: 0.0.9
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
@@ -0,0 +1,39 @@
1
+ examples/3 Software interfacing/Abaqus model export/bergsoysund-export.py,sha256=-1jrDNmevOcB1IV0iLOiW0z-QiNkOv8GkGk-7K8CcK0,2606
2
+ examples/3 Software interfacing/Abaqus model export/test.py,sha256=kAmol3XZQ2jkO2qujEQrqx38Q24LbzrYZzqE5ng5-E8,2188
3
+ tests/test_IABSE_step11a.py,sha256=guRsaP9gpERvSp0Ui3hO-WH764BcIe6Qx8vC4QVTAoU,8013
4
+ tests/test_IABSE_step11c.py,sha256=U_NcL6BAmnQG7MSjkr8KYk9hH8ZPdZgg17pM9ugUBzo,10412
5
+ tests/test_IABSE_step2a.py,sha256=L5AyTOJZ_sPmcmW_4h-sQfRwvVW71LZkXc1yz33DABM,10203
6
+ tests/test_wind.py,sha256=r4rx6f8Tn-u4fn4gGPBMrL_JJQ2SVHGQiQ9sQuMQCPo,1707
7
+ wawi/__init__.py,sha256=nOz20Bt2hcYkKQG7fG0ogBRbLfEZbIgvU1iZjjjHNZ4,158
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=NrziwlebaZUEdu8nWKNXKExHNZZKMzJ0gSHciBTJ4As,25323
12
+ wawi/modal.py,sha256=WjNGFsk0C3tYRy18Q9WNRCatmGJtq1JSv0WrkGV02Eo,20247
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=Oe-jviwDtBgpSmA7ZVmKEqQ5tdvsekXwOakYO1qUsN4,3841
19
+ wawi/tools.py,sha256=-hFBvf0qK4AMn2MQRhrOitDMMMKm2QuRkVfbPBefEkQ,332
20
+ wawi/wave.py,sha256=hhKg3KhKMBhOoCI7g8PFOGUbYgVhDyGmnYdBEdJ8mkY,16064
21
+ wawi/wind.py,sha256=1rUqiEdMaUrhprs87TBdX24l1uDCOINaYkBChMLYWso,38208
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/abq_legacy.py,sha256=WVhoPjRAru98NxYqpKp9_G8wwfJiLO4X4xFc-CvI0j4,16494
26
+ wawi/ext/ansys.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
+ wawi/ext/orcaflex.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
+ wawi/ext/sofistik.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
+ wawi/model/__init__.py,sha256=u6B-dugP76LBkOUVMs0KAoQ81PeRHwFL0M8MbNeAaJA,218
30
+ wawi/model/_aero.py,sha256=tvWMjMoVi9ZVBc3NZ_s-wSofbEk1cc5jf5s-Swv2RxQ,9337
31
+ wawi/model/_dry.py,sha256=KpmFlSinoY6DrSyc3Y0M8w1-cCC7VCFep-uzcqZsHz4,3940
32
+ wawi/model/_hydro.py,sha256=1tUj19OgvEjItNtBxXuPHf0zWtKv_ioTrOcgl9Ov3dg,26960
33
+ wawi/model/_model.py,sha256=qmQRASu3E3iRqxzAeT3wUxonuADbCxreXiERR9KHwb0,52090
34
+ wawi/model/_screening.py,sha256=NRYkKq928z2lqMSUTpbQLls04td_9R_4dhkjU3Gv1oQ,3716
35
+ wawi-0.0.9.dist-info/LICENSE,sha256=bH1aWhrNbbPLrYnVFRaoYYzcUr-figHjry-kGB7Tc54,1076
36
+ wawi-0.0.9.dist-info/METADATA,sha256=zoyYWdj03UGEOq7jt7XqUgd0XdV-KmEzI99lBmNJ6cE,5197
37
+ wawi-0.0.9.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
38
+ wawi-0.0.9.dist-info/top_level.txt,sha256=Nk5G_ZwgZRCb9ZMWZdr1M3QIskX6kCnlqeMl67N3zg8,20
39
+ wawi-0.0.9.dist-info/RECORD,,
@@ -0,0 +1,3 @@
1
+ examples
2
+ tests
3
+ wawi
@@ -1,21 +0,0 @@
1
- wawi/__init__.py,sha256=oZOxto9PG8WxUfEE02tcFY0o5-yLRR8lK8WXH30zxDE,158
2
- wawi/fe.py,sha256=22QKI1GlfsG7o_TpFXaKJfzmbO2_2zdIMaoJmaIZdmY,4001
3
- wawi/general.py,sha256=xHRoDkcchrL6Y7pTUqGsjBHh8YBLvX9dYcNXXCjQap8,13787
4
- wawi/identification.py,sha256=bVB6EVRR6J39OO9ckuzNJ6f0FwIo4cLqfYgrsIN89TE,1748
5
- wawi/io.py,sha256=NrziwlebaZUEdu8nWKNXKExHNZZKMzJ0gSHciBTJ4As,25323
6
- wawi/modal.py,sha256=WjNGFsk0C3tYRy18Q9WNRCatmGJtq1JSv0WrkGV02Eo,20247
7
- wawi/plot.py,sha256=jllJcjZxTBqjzBoT4k9jLXVUnie8oqNr8371IJvCd3c,19791
8
- wawi/prob.py,sha256=0nCdKdwkNf4M6sHyCZuYlt06gD0NmqRNfl4KesgySWA,215
9
- wawi/random.py,sha256=MHPpyTlRJSJFkCmeTAmw4Q5K1BPoFVb0Nxg0jDhkuIM,871
10
- wawi/signal.py,sha256=9HJs7VUhXOccuYPo12A0IUVoBIAJ2e_9F3rL-q3JuP4,1179
11
- wawi/structural.py,sha256=t25ohH4uBbzUJ7Hqn_kUfYhxcikZkRp8da-9dn7aEbw,8341
12
- wawi/time_domain.py,sha256=Oe-jviwDtBgpSmA7ZVmKEqQ5tdvsekXwOakYO1qUsN4,3841
13
- wawi/tools.py,sha256=-hFBvf0qK4AMn2MQRhrOitDMMMKm2QuRkVfbPBefEkQ,332
14
- wawi/wave.py,sha256=hhKg3KhKMBhOoCI7g8PFOGUbYgVhDyGmnYdBEdJ8mkY,16064
15
- wawi/wind.py,sha256=1rUqiEdMaUrhprs87TBdX24l1uDCOINaYkBChMLYWso,38208
16
- wawi/wind_code.py,sha256=8OKLPpqc84obNNKBoYb2NunKjcn6a3i_pAWpIFEwg4Q,223
17
- wawi-0.0.8.dist-info/LICENSE,sha256=bH1aWhrNbbPLrYnVFRaoYYzcUr-figHjry-kGB7Tc54,1076
18
- wawi-0.0.8.dist-info/METADATA,sha256=nlNip0I5cZlcT3lgLf5lXTysEeQ2y8nSVMapDTvoXlA,5197
19
- wawi-0.0.8.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
20
- wawi-0.0.8.dist-info/top_level.txt,sha256=sE2NH_xVXnDKTGeIYzeX5IyU_j5vYDLl32v5uLiOMT4,5
21
- wawi-0.0.8.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- wawi
File without changes
File without changes