foxes 1.2.4__py3-none-any.whl → 1.3__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 foxes might be problematic. Click here for more details.
- examples/quickstart/run.py +17 -0
- foxes/__init__.py +1 -1
- foxes/algorithms/downwind/downwind.py +9 -15
- foxes/algorithms/downwind/models/farm_wakes_calc.py +13 -7
- foxes/algorithms/downwind/models/init_farm_data.py +4 -4
- foxes/algorithms/downwind/models/reorder_farm_output.py +5 -1
- foxes/algorithms/downwind/models/set_amb_point_results.py +1 -1
- foxes/algorithms/iterative/models/farm_wakes_calc.py +6 -3
- foxes/algorithms/sequential/models/seq_state.py +0 -18
- foxes/algorithms/sequential/sequential.py +5 -18
- foxes/constants.py +6 -0
- foxes/core/data.py +44 -18
- foxes/core/engine.py +19 -1
- foxes/core/farm_data_model.py +1 -0
- foxes/core/rotor_model.py +42 -38
- foxes/core/states.py +2 -47
- foxes/input/states/__init__.py +1 -0
- foxes/input/states/field_data_nc.py +39 -61
- foxes/input/states/multi_height.py +35 -58
- foxes/input/states/one_point_flow.py +22 -21
- foxes/input/states/scan.py +6 -19
- foxes/input/states/single.py +5 -17
- foxes/input/states/states_table.py +19 -41
- foxes/input/states/wrg_states.py +301 -0
- foxes/models/partial_wakes/rotor_points.py +8 -2
- foxes/models/partial_wakes/segregated.py +9 -4
- foxes/models/rotor_models/centre.py +6 -4
- foxes/models/wake_frames/seq_dynamic_wakes.py +5 -2
- foxes/models/wake_frames/timelines.py +10 -0
- foxes/models/wake_models/induction/vortex_sheet.py +6 -9
- foxes/output/farm_layout.py +12 -4
- foxes/output/farm_results_eval.py +36 -12
- foxes/output/rose_plot.py +20 -2
- foxes/output/slice_data.py +16 -19
- foxes/utils/wrg_utils.py +84 -1
- {foxes-1.2.4.dist-info → foxes-1.3.dist-info}/METADATA +12 -8
- {foxes-1.2.4.dist-info → foxes-1.3.dist-info}/RECORD +54 -52
- {foxes-1.2.4.dist-info → foxes-1.3.dist-info}/WHEEL +1 -1
- tests/0_consistency/iterative/test_iterative.py +2 -3
- tests/0_consistency/partial_wakes/test_partial_wakes.py +2 -2
- tests/1_verification/flappy_0_6/PCt_files/test_PCt_files.py +48 -56
- tests/1_verification/flappy_0_6/abl_states/test_abl_states.py +33 -36
- tests/1_verification/flappy_0_6/row_Jensen_linear_centre/test_row_Jensen_linear_centre.py +3 -2
- tests/1_verification/flappy_0_6/row_Jensen_linear_tophat/test_row_Jensen_linear_tophat.py +3 -3
- tests/1_verification/flappy_0_6/row_Jensen_linear_tophat_IECTI2005/test_row_Jensen_linear_tophat_IECTI_2005.py +3 -3
- tests/1_verification/flappy_0_6/row_Jensen_linear_tophat_IECTI2019/test_row_Jensen_linear_tophat_IECTI_2019.py +3 -3
- tests/1_verification/flappy_0_6/row_Jensen_quadratic_centre/test_row_Jensen_quadratic_centre.py +3 -3
- tests/1_verification/flappy_0_6_2/grid_rotors/test_grid_rotors.py +3 -3
- tests/1_verification/flappy_0_6_2/row_Bastankhah_Crespo/test_row_Bastankhah_Crespo.py +3 -2
- tests/1_verification/flappy_0_6_2/row_Bastankhah_linear_centre/test_row_Bastankhah_linear_centre.py +3 -3
- tests/3_examples/test_examples.py +3 -2
- {foxes-1.2.4.dist-info → foxes-1.3.dist-info}/LICENSE +0 -0
- {foxes-1.2.4.dist-info → foxes-1.3.dist-info}/entry_points.txt +0 -0
- {foxes-1.2.4.dist-info → foxes-1.3.dist-info}/top_level.txt +0 -0
foxes/output/slice_data.py
CHANGED
|
@@ -123,7 +123,6 @@ class SliceData(Output):
|
|
|
123
123
|
label_map,
|
|
124
124
|
vmin,
|
|
125
125
|
vmax,
|
|
126
|
-
weight_turbine,
|
|
127
126
|
to_file,
|
|
128
127
|
write_pars,
|
|
129
128
|
ret_states,
|
|
@@ -147,12 +146,22 @@ class SliceData(Output):
|
|
|
147
146
|
del g_pts
|
|
148
147
|
|
|
149
148
|
# take mean over states:
|
|
150
|
-
weights =
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
149
|
+
weights = point_results[FV.WEIGHT].to_numpy()
|
|
150
|
+
if point_results[FV.WEIGHT].dims == (FC.STATE,):
|
|
151
|
+
data = {
|
|
152
|
+
v: np.einsum("s,sp->p", weights, point_results[v].to_numpy())
|
|
153
|
+
for v in variables
|
|
154
|
+
}
|
|
155
|
+
elif point_results[FV.WEIGHT].dims == (FC.STATE, FC.POINT):
|
|
156
|
+
data = {
|
|
157
|
+
v: np.einsum("sp,sp->p", weights, point_results[v].to_numpy())
|
|
158
|
+
for v in variables
|
|
159
|
+
}
|
|
160
|
+
else:
|
|
161
|
+
raise ValueError(
|
|
162
|
+
f"Wrong dimensions for '{FV.WEIGHT}': Expecting {(FC.STATE,)} or {(FC.STATE, FC.POINT)}, got {point_results[FV.WEIGHT].dims}"
|
|
163
|
+
)
|
|
164
|
+
del point_results, weights
|
|
156
165
|
|
|
157
166
|
# apply data modification:
|
|
158
167
|
a_pos, b_pos, c_pos, data = self._data_mod(
|
|
@@ -207,7 +216,6 @@ class SliceData(Output):
|
|
|
207
216
|
vmax={},
|
|
208
217
|
states_sel=None,
|
|
209
218
|
states_isel=None,
|
|
210
|
-
weight_turbine=0,
|
|
211
219
|
to_file=None,
|
|
212
220
|
write_pars={},
|
|
213
221
|
ret_states=False,
|
|
@@ -260,8 +268,6 @@ class SliceData(Output):
|
|
|
260
268
|
Reduce to selected states
|
|
261
269
|
states_isel: list, optional
|
|
262
270
|
Reduce to the selected states indices
|
|
263
|
-
weight_turbine: int, optional
|
|
264
|
-
Index of the turbine from which to take the weight
|
|
265
271
|
to_file: str, optional
|
|
266
272
|
Write data to this file name
|
|
267
273
|
write_pars: dict
|
|
@@ -314,7 +320,6 @@ class SliceData(Output):
|
|
|
314
320
|
label_map,
|
|
315
321
|
vmin,
|
|
316
322
|
vmax,
|
|
317
|
-
weight_turbine,
|
|
318
323
|
to_file,
|
|
319
324
|
write_pars,
|
|
320
325
|
ret_states,
|
|
@@ -352,7 +357,6 @@ class SliceData(Output):
|
|
|
352
357
|
vmax={},
|
|
353
358
|
states_sel=None,
|
|
354
359
|
states_isel=None,
|
|
355
|
-
weight_turbine=0,
|
|
356
360
|
to_file=None,
|
|
357
361
|
write_pars={},
|
|
358
362
|
ret_states=False,
|
|
@@ -407,8 +411,6 @@ class SliceData(Output):
|
|
|
407
411
|
Reduce to selected states
|
|
408
412
|
states_isel: list, optional
|
|
409
413
|
Reduce to the selected states indices
|
|
410
|
-
weight_turbine: int, optional
|
|
411
|
-
Index of the turbine from which to take the weight
|
|
412
414
|
to_file: str, optional
|
|
413
415
|
Write data to this file name
|
|
414
416
|
write_pars: dict
|
|
@@ -463,7 +465,6 @@ class SliceData(Output):
|
|
|
463
465
|
label_map,
|
|
464
466
|
vmin,
|
|
465
467
|
vmax,
|
|
466
|
-
weight_turbine,
|
|
467
468
|
to_file,
|
|
468
469
|
write_pars,
|
|
469
470
|
ret_states,
|
|
@@ -501,7 +502,6 @@ class SliceData(Output):
|
|
|
501
502
|
vmax={},
|
|
502
503
|
states_sel=None,
|
|
503
504
|
states_isel=None,
|
|
504
|
-
weight_turbine=0,
|
|
505
505
|
to_file=None,
|
|
506
506
|
write_pars={},
|
|
507
507
|
ret_states=False,
|
|
@@ -556,8 +556,6 @@ class SliceData(Output):
|
|
|
556
556
|
Reduce to selected states
|
|
557
557
|
states_isel: list, optional
|
|
558
558
|
Reduce to the selected states indices
|
|
559
|
-
weight_turbine: int, optional
|
|
560
|
-
Index of the turbine from which to take the weight
|
|
561
559
|
to_file: str, optional
|
|
562
560
|
Write data to this file name
|
|
563
561
|
write_pars: dict
|
|
@@ -612,7 +610,6 @@ class SliceData(Output):
|
|
|
612
610
|
label_map,
|
|
613
611
|
vmin,
|
|
614
612
|
vmax,
|
|
615
|
-
weight_turbine,
|
|
616
613
|
to_file,
|
|
617
614
|
write_pars,
|
|
618
615
|
ret_states,
|
foxes/utils/wrg_utils.py
CHANGED
|
@@ -58,13 +58,18 @@ class ReaderWRG:
|
|
|
58
58
|
cols[10::3] = cols_sel("Ks", self._n_sectors)
|
|
59
59
|
|
|
60
60
|
self._data = pd.read_csv(
|
|
61
|
-
self.fpath, names=cols, skiprows=1, sep="\s+", usecols=range(1, n_cols)
|
|
61
|
+
self.fpath, names=cols, skiprows=1, sep=r"\s+", usecols=range(1, n_cols)
|
|
62
62
|
)
|
|
63
63
|
|
|
64
64
|
self._data[cols_sel("fs", self._n_sectors)] /= 10
|
|
65
65
|
self._data[cols_sel("As", self._n_sectors)] /= 10
|
|
66
66
|
self._data[cols_sel("Ks", self._n_sectors)] /= 100
|
|
67
67
|
|
|
68
|
+
if len(self._data.index) != self._nx * self._ny:
|
|
69
|
+
raise ValueError(
|
|
70
|
+
f"Expecting {self._nx * self._ny} rows in data, got {len(self._data.index)}"
|
|
71
|
+
)
|
|
72
|
+
|
|
68
73
|
@property
|
|
69
74
|
def data(self):
|
|
70
75
|
"""
|
|
@@ -77,3 +82,81 @@ class ReaderWRG:
|
|
|
77
82
|
|
|
78
83
|
"""
|
|
79
84
|
return self._data
|
|
85
|
+
|
|
86
|
+
@property
|
|
87
|
+
def nx(self):
|
|
88
|
+
"""
|
|
89
|
+
The number of points in x direction
|
|
90
|
+
|
|
91
|
+
Returns
|
|
92
|
+
-------
|
|
93
|
+
n: int
|
|
94
|
+
The number of points in x direction
|
|
95
|
+
|
|
96
|
+
"""
|
|
97
|
+
return self._nx
|
|
98
|
+
|
|
99
|
+
@property
|
|
100
|
+
def ny(self):
|
|
101
|
+
"""
|
|
102
|
+
The number of points in y direction
|
|
103
|
+
|
|
104
|
+
Returns
|
|
105
|
+
-------
|
|
106
|
+
n: int
|
|
107
|
+
The number of points in y direction
|
|
108
|
+
|
|
109
|
+
"""
|
|
110
|
+
return self._ny
|
|
111
|
+
|
|
112
|
+
@property
|
|
113
|
+
def x0(self):
|
|
114
|
+
"""
|
|
115
|
+
The lower left x coordinate
|
|
116
|
+
|
|
117
|
+
Returns
|
|
118
|
+
-------
|
|
119
|
+
x: float
|
|
120
|
+
The lower left x coordinate
|
|
121
|
+
|
|
122
|
+
"""
|
|
123
|
+
return self._utmx0
|
|
124
|
+
|
|
125
|
+
@property
|
|
126
|
+
def y0(self):
|
|
127
|
+
"""
|
|
128
|
+
The lower left y coordinate
|
|
129
|
+
|
|
130
|
+
Returns
|
|
131
|
+
-------
|
|
132
|
+
y: float
|
|
133
|
+
The lower left y coordinate
|
|
134
|
+
|
|
135
|
+
"""
|
|
136
|
+
return self._utmy0
|
|
137
|
+
|
|
138
|
+
@property
|
|
139
|
+
def n_sectors(self):
|
|
140
|
+
"""
|
|
141
|
+
The number of wind direction sectors
|
|
142
|
+
|
|
143
|
+
Returns
|
|
144
|
+
-------
|
|
145
|
+
n: int
|
|
146
|
+
The number of wind direction sectors
|
|
147
|
+
|
|
148
|
+
"""
|
|
149
|
+
return self._n_sectors
|
|
150
|
+
|
|
151
|
+
@property
|
|
152
|
+
def resolution(self):
|
|
153
|
+
"""
|
|
154
|
+
The horizontal resolution
|
|
155
|
+
|
|
156
|
+
Returns
|
|
157
|
+
-------
|
|
158
|
+
res: float
|
|
159
|
+
The horizontal resolution
|
|
160
|
+
|
|
161
|
+
"""
|
|
162
|
+
return self._res
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: foxes
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.3
|
|
4
4
|
Summary: Farm Optimization and eXtended yield Evaluation Software
|
|
5
5
|
Author: Jonas Schulte
|
|
6
6
|
Maintainer: Jonas Schulte
|
|
@@ -94,6 +94,8 @@ Requires-Dist: ipykernel; extra == "doc"
|
|
|
94
94
|
Requires-Dist: ipywidgets; extra == "doc"
|
|
95
95
|
Requires-Dist: m2r2; extra == "doc"
|
|
96
96
|
Requires-Dist: lxml_html_clean; extra == "doc"
|
|
97
|
+
Requires-Dist: dask; extra == "doc"
|
|
98
|
+
Requires-Dist: distributed; extra == "doc"
|
|
97
99
|
Provides-Extra: dev
|
|
98
100
|
Requires-Dist: flake8; extra == "dev"
|
|
99
101
|
Requires-Dist: pytest; extra == "dev"
|
|
@@ -189,15 +191,17 @@ For detailed examples of how to run _foxes_, check the `examples` and `notebooks
|
|
|
189
191
|
```python
|
|
190
192
|
import foxes
|
|
191
193
|
|
|
192
|
-
|
|
194
|
+
if __name__ == "__main__":
|
|
193
195
|
|
|
194
|
-
|
|
195
|
-
foxes.input.farm_layout.add_from_file(farm, "test_farm_67.csv", turbine_models=["NREL5MW"])
|
|
196
|
+
states = foxes.input.states.Timeseries("timeseries_3000.csv.gz", ["WS", "WD","TI","RHO"])
|
|
196
197
|
|
|
197
|
-
|
|
198
|
-
|
|
198
|
+
farm = foxes.WindFarm()
|
|
199
|
+
foxes.input.farm_layout.add_from_file(farm, "test_farm_67.csv", turbine_models=["NREL5MW"])
|
|
199
200
|
|
|
200
|
-
|
|
201
|
+
algo = foxes.algorithms.Downwind(farm, states, ["Jensen_linear_k007"])
|
|
202
|
+
farm_results = algo.calc_farm()
|
|
203
|
+
|
|
204
|
+
print(farm_results)
|
|
201
205
|
```
|
|
202
206
|
|
|
203
207
|
## Testing
|
|
@@ -7,6 +7,7 @@ examples/field_data_nc/run.py,sha256=EYx9B5axIPW2yfVet4QpMGyPMbMbPoTRvGrl249L_RM
|
|
|
7
7
|
examples/induction/run.py,sha256=eTxEdKJ_8MtYuxI0QNECqJ31x-zb9Zen5bUpwPtujPE,6334
|
|
8
8
|
examples/multi_height/run.py,sha256=KsY5tN8z9QHitQQdxnTjHzPSPlYPn5pkcMskjd94D74,3288
|
|
9
9
|
examples/power_mask/run.py,sha256=YK8RU0TLd7TgBJkPZQVrn8log-UQNZ7L3B3-yE8qu64,7584
|
|
10
|
+
examples/quickstart/run.py,sha256=COWglulEie_2mqW-A1UTc1bXLMKx_Y1BlmyP4BDQf8o,428
|
|
10
11
|
examples/random_timeseries/run.py,sha256=bo-fLF647mc97we30ci9klw23kXISk4KtCBxRc1lIqA,6106
|
|
11
12
|
examples/scan_row/run.py,sha256=japzROlgEa71u2KYy03bQ8dBso-ejURUV3vZsg5m3AI,5844
|
|
12
13
|
examples/sector_management/run.py,sha256=WQvrHqtC7_u6JvZfbRsVSb3SPYDjCp-ZJpC-nZsQf5M,4451
|
|
@@ -20,47 +21,47 @@ examples/timeseries/run.py,sha256=aCuEjWpwGXTeS1s9frOtAnpAHRnQoe4tu4Q0BHoPDys,53
|
|
|
20
21
|
examples/timeseries_slurm/run.py,sha256=j-tJlCVDMp1FiPnfNTPcJhwV_MCmsvwi_umNTaDEG_Q,5581
|
|
21
22
|
examples/wind_rose/run.py,sha256=shKCX4-HOZwVBDrgnOaI0ycMpWLOBvhSw7SU_x7CzWo,4247
|
|
22
23
|
examples/yawed_wake/run.py,sha256=V_02HSuHQufzwhnVNGsJoQQpTgMlYtuZZVIDEaLU4U4,6166
|
|
23
|
-
foxes/__init__.py,sha256=
|
|
24
|
-
foxes/constants.py,sha256=
|
|
24
|
+
foxes/__init__.py,sha256=FnSO-p4sc7lI780lWm8HttIHNZ6jNMZFdf32aCkU260,1120
|
|
25
|
+
foxes/constants.py,sha256=d6jGdKGtBb1KC2GncBJx5DDIwk51TiLqI9vymrJRpE8,3494
|
|
25
26
|
foxes/variables.py,sha256=1xbGQx6ceUjAYeK0wZiS_D_MTFQ6mEJoY9VnlE2iVc4,5113
|
|
26
27
|
foxes/algorithms/__init__.py,sha256=gCr5DK2wXhAAJf8eylkevN8yiwPdEC-pqY_LgjKzMv8,249
|
|
27
28
|
foxes/algorithms/downwind/__init__.py,sha256=lyygq5GMc6NAPmH0b0mhGeccWyuC8JTOEMZl-UlmE5M,53
|
|
28
|
-
foxes/algorithms/downwind/downwind.py,sha256=
|
|
29
|
+
foxes/algorithms/downwind/downwind.py,sha256=xgf43janPbVsEcEcG4P1Xww0M-L11rHGZDSvqy3JPEE,25233
|
|
29
30
|
foxes/algorithms/downwind/models/__init__.py,sha256=0ov8rjIQ02w3iB6yYCxaswPvHDlPM_8_di6xPh1TTkQ,300
|
|
30
|
-
foxes/algorithms/downwind/models/farm_wakes_calc.py,sha256=
|
|
31
|
-
foxes/algorithms/downwind/models/init_farm_data.py,sha256=
|
|
31
|
+
foxes/algorithms/downwind/models/farm_wakes_calc.py,sha256=BJEtZdW1PC0uP2cnqaVvg8TaubsSUXVtQnB5LR5qSEY,5951
|
|
32
|
+
foxes/algorithms/downwind/models/init_farm_data.py,sha256=0lXqFAsOW_p4m48VUj-ex-fekksvm3mSxHfG13GZnxM,4147
|
|
32
33
|
foxes/algorithms/downwind/models/point_wakes_calc.py,sha256=xvFgfXcCpw2WFMfrna480ER1rI3WZOEVBssob5n9Gws,4486
|
|
33
|
-
foxes/algorithms/downwind/models/reorder_farm_output.py,sha256=
|
|
34
|
+
foxes/algorithms/downwind/models/reorder_farm_output.py,sha256=SEZXJNJcYjXd53PGg1mgEQzjevSlLkcUy8Ytz4rvS1Q,2128
|
|
34
35
|
foxes/algorithms/downwind/models/set_amb_farm_results.py,sha256=_xYNjFZiofHLGIFNw671izXUn37psX-NhSIO63IRwvA,1732
|
|
35
|
-
foxes/algorithms/downwind/models/set_amb_point_results.py,sha256=
|
|
36
|
+
foxes/algorithms/downwind/models/set_amb_point_results.py,sha256=2ZaKEHZMrm2D0EfDHLIo-quohoseUP_qhuKbshne80Q,2307
|
|
36
37
|
foxes/algorithms/iterative/__init__.py,sha256=Je445cHtS2ERc-dywjhxWttKzdEyHM8JLxPcW5JFtl8,137
|
|
37
38
|
foxes/algorithms/iterative/iterative.py,sha256=AVDrc4-Jz68ainraLxr7zMYiCMUx4ODf8z50akDhyxE,9930
|
|
38
39
|
foxes/algorithms/iterative/models/__init__.py,sha256=3lMBUOzq5bKNQBGoV8byVQ7_Keyk1GfwFZDUwaafGsg,152
|
|
39
40
|
foxes/algorithms/iterative/models/convergence.py,sha256=5fCeTMisYEhgvPRbLKMK0XYsSSr2xWqqzB-pUBrIjYk,6466
|
|
40
|
-
foxes/algorithms/iterative/models/farm_wakes_calc.py,sha256=
|
|
41
|
+
foxes/algorithms/iterative/models/farm_wakes_calc.py,sha256=zDv0LIRBr-Ia4dxvfw_-u2TVr2-OVXrV3HOM35JF0Zk,5082
|
|
41
42
|
foxes/algorithms/iterative/models/urelax.py,sha256=412fHSpi_4MATE1qRzqcZDFff6iJpV1h3QIBL_7giQE,2076
|
|
42
43
|
foxes/algorithms/sequential/__init__.py,sha256=2o05IH9XePnqxNEAn2Fr1qiCM6OooqmH2VtmdJXtK0c,94
|
|
43
|
-
foxes/algorithms/sequential/sequential.py,sha256=
|
|
44
|
+
foxes/algorithms/sequential/sequential.py,sha256=1Cj0ntF39NXyDaaIVKEv3GCHi_Y3tSPT9Zm2Qk9-jdM,12040
|
|
44
45
|
foxes/algorithms/sequential/models/__init__.py,sha256=OneaRLxMPzVWLKL9cR3JIYHojfzVX_CQaPv-LP6mCZI,69
|
|
45
46
|
foxes/algorithms/sequential/models/plugin.py,sha256=HhCeHM_YoJRMXuZKa8rXUJZDhWf5rNl28_UfDLSGWvA,1330
|
|
46
|
-
foxes/algorithms/sequential/models/seq_state.py,sha256=
|
|
47
|
+
foxes/algorithms/sequential/models/seq_state.py,sha256=al7XhLKLQSGhfUZw--Bz4RNNbA1jeObKZd1v58hEt-Q,3206
|
|
47
48
|
foxes/config/__init__.py,sha256=k3irS7dNsXTzQpz9e6GOqoqGZkyMAW_BGxnV8JGcuRs,78
|
|
48
49
|
foxes/config/config.py,sha256=e3HhitD2Xleqm3utoXLGAu8Vg16app35Cpx4nBhnZm8,4318
|
|
49
50
|
foxes/core/__init__.py,sha256=3dOuKrFeSM6fCMxfLxTbzUsBPVTZiRp0sFhnibniBko,1021
|
|
50
51
|
foxes/core/algorithm.py,sha256=ggdvtQT6kbmrgPUma-jCHqW7Q3ISvXHud1xl-t-kcls,27446
|
|
51
52
|
foxes/core/axial_induction_model.py,sha256=sGbTHFMjEYKiVjElLP_SCRulKatcK0wsEXf30zty2Vc,1023
|
|
52
|
-
foxes/core/data.py,sha256=
|
|
53
|
+
foxes/core/data.py,sha256=5G_r0H2lRt5v_hhy1_YWp6Pw8cvI3fy2brLbVSSDOLg,23148
|
|
53
54
|
foxes/core/data_calc_model.py,sha256=Hhl2ZapafsIvq5z_YWlGqB3kkF64txohU_MHlfHAvpk,1334
|
|
54
|
-
foxes/core/engine.py,sha256=
|
|
55
|
+
foxes/core/engine.py,sha256=lyuD8KMXN_UHkn1nfVV4d3Mkwyzbec8EcfjB9lerhNc,20886
|
|
55
56
|
foxes/core/farm_controller.py,sha256=RZXvL24_Z-vVwikgWcTYYXREJTm72fhzGoNhFDEF56c,13832
|
|
56
|
-
foxes/core/farm_data_model.py,sha256=
|
|
57
|
+
foxes/core/farm_data_model.py,sha256=_1DXJzyfLwha80aL-BT57wHLimOiiw1rPTxH8qxVl54,7384
|
|
57
58
|
foxes/core/farm_model.py,sha256=ogFahCjC2dIBcjnCMmy0cTGulKTDA2ufFUzODf0-KnI,265
|
|
58
59
|
foxes/core/ground_model.py,sha256=oRlgrTBAcYaIv8gf5BRccDBlz8GhmAMIlFiVnHt6sXQ,7311
|
|
59
60
|
foxes/core/model.py,sha256=UgoT99BaBBNXKlhUDY87uGJ5WrJ5cpFDIhHcDDzWMvw,19660
|
|
60
61
|
foxes/core/partial_wakes_model.py,sha256=L_Wz0U1ps0suw6la-O9xwngYO9HxfGI9wjMGlpARVjA,5413
|
|
61
62
|
foxes/core/point_data_model.py,sha256=90AEIVHkmGP80RhptyPpQDA7wvOnZfF-0VD2dv3L718,7569
|
|
62
|
-
foxes/core/rotor_model.py,sha256=
|
|
63
|
-
foxes/core/states.py,sha256=
|
|
63
|
+
foxes/core/rotor_model.py,sha256=3PhUocdBZ1CPMxQggW9Jl1AopwknnHICKchNTNwOESY,13149
|
|
64
|
+
foxes/core/states.py,sha256=x1yit4gq8oeTZzh3VtOq69UViSamGP1Qxcy6Cwi1S1U,6999
|
|
64
65
|
foxes/core/turbine.py,sha256=P5qPKmV1qohZdAKW4lPiUerQkRDTxUOhsvBPQqy8mBo,3054
|
|
65
66
|
foxes/core/turbine_model.py,sha256=I-t-2lNVDaifg_cHEurqan9Ko9kcI1k-VEkKS_nyX-o,1585
|
|
66
67
|
foxes/core/turbine_type.py,sha256=DbzDmSfSow7RPCyRlQ_WrzWJ7fPnIN0BBGVzWhhG8FU,3174
|
|
@@ -109,13 +110,14 @@ foxes/input/farm_layout/from_random.py,sha256=6ZYKbdV6x11MbQRAHs5nVYBAG-1K295xsM
|
|
|
109
110
|
foxes/input/farm_layout/grid.py,sha256=CsVIYfCPyznEhDLO_tsTxBPJ591x8l-axDg4M5yArg0,1492
|
|
110
111
|
foxes/input/farm_layout/ring.py,sha256=ghfLkVVQciWDJJNqGs4jZVnM0XCII9ae3hAh9Wb4938,1455
|
|
111
112
|
foxes/input/farm_layout/row.py,sha256=Bx9woFNkXbFXJg51GX2p2PbVgdxV3Ckxr-3TkB04PS4,1198
|
|
112
|
-
foxes/input/states/__init__.py,sha256=
|
|
113
|
-
foxes/input/states/field_data_nc.py,sha256=
|
|
114
|
-
foxes/input/states/multi_height.py,sha256=
|
|
115
|
-
foxes/input/states/one_point_flow.py,sha256=
|
|
116
|
-
foxes/input/states/scan.py,sha256=
|
|
117
|
-
foxes/input/states/single.py,sha256=
|
|
118
|
-
foxes/input/states/states_table.py,sha256=
|
|
113
|
+
foxes/input/states/__init__.py,sha256=ux2oAz687pcAjrGhOWQ-NK-nxrpNT_VIu9p5jSxqcxE,560
|
|
114
|
+
foxes/input/states/field_data_nc.py,sha256=NW_EIqfid2Xo_-6CxPHw-eUXj_5yH0OPH3QSiMR3JdU,28825
|
|
115
|
+
foxes/input/states/multi_height.py,sha256=pt3JYTx-NMUaNtRbW8W80L6CCguTflr5QPgSuRqfwVM,23305
|
|
116
|
+
foxes/input/states/one_point_flow.py,sha256=rrpICS2lamOhgm-020g8GCSu3TcHnOg6jAKOaiDGxVs,18169
|
|
117
|
+
foxes/input/states/scan.py,sha256=p-hmC3nod2oomV34AwkRK95dEU1Objs-Snqrn-UnZ7g,5863
|
|
118
|
+
foxes/input/states/single.py,sha256=jXF_0uCLP3tsq_S6K7-5bFd7HTHAldHFhRwbBDOesEk,5911
|
|
119
|
+
foxes/input/states/states_table.py,sha256=vC26YS6Wdqprw7rZ84ze5s-AcsqQ5RBIQlR0PuO_kOM,19971
|
|
120
|
+
foxes/input/states/wrg_states.py,sha256=iSk04t25zXg5R96YkBK-lDINKO2FaH08-d4S6RKMFTE,9421
|
|
119
121
|
foxes/input/states/create/__init__.py,sha256=Ocqzmr9SOefeAvGX5DgawsPXfNdGzWOZ2ssvtqEmtAo,134
|
|
120
122
|
foxes/input/states/create/random_abl_states.py,sha256=LFCA19TCInXmB2FbKDaOkqCDsN0eOUIp34yzR2NQjtQ,3425
|
|
121
123
|
foxes/input/states/create/random_timeseries.py,sha256=gJpaQ4nEXxOjI4hp3xjNcVbCsmZUm-brXUxoqDb63WE,1266
|
|
@@ -145,8 +147,8 @@ foxes/models/partial_wakes/__init__.py,sha256=qlV4zgjTSBfpz4dVh7DSoxCZXkaK_-dW43
|
|
|
145
147
|
foxes/models/partial_wakes/axiwake.py,sha256=xDbMyy0HrVb2DHUQ2qdlwGwqlLkEJAUy3mLyHatyfko,6647
|
|
146
148
|
foxes/models/partial_wakes/centre.py,sha256=YewN1hGjNxNUnvOkNwZD6bIdrHUrX3vd1T6s-bJ5INk,978
|
|
147
149
|
foxes/models/partial_wakes/grid.py,sha256=SOymgn0MGvUFSAWd9YKDCzXYtizsuiNV-yP0oqrKS1E,600
|
|
148
|
-
foxes/models/partial_wakes/rotor_points.py,sha256=
|
|
149
|
-
foxes/models/partial_wakes/segregated.py,sha256=
|
|
150
|
+
foxes/models/partial_wakes/rotor_points.py,sha256=_Cjvbb0EUSt5R6Dij6hMnXEQxwvhO_7OGE-iKa60c-0,2927
|
|
151
|
+
foxes/models/partial_wakes/segregated.py,sha256=L-afJYBlniHNlgtqOcYP2Xqh8Fs8EhJm8idJqhxP2sQ,4617
|
|
150
152
|
foxes/models/partial_wakes/top_hat.py,sha256=TPk9GoyoYDbxxZbcFufNDyNu-Yhnzn4GUwS7X3WelbQ,5557
|
|
151
153
|
foxes/models/point_models/__init__.py,sha256=36A6VfXTkeNZYsv_JiPtF7Q8ZRcYbdA6Ed7F64DTF08,162
|
|
152
154
|
foxes/models/point_models/set_uniform_data.py,sha256=dK6f-Nk_qvWqUPt3jnMkkIftGs9YmF_hpklFl5dJMAo,4529
|
|
@@ -154,7 +156,7 @@ foxes/models/point_models/tke2ti.py,sha256=0mrhpGy0xP_zCqp26_ts81WAHdCqyz_fC6A9B
|
|
|
154
156
|
foxes/models/point_models/ustar2ti.py,sha256=kghpLGyfOTdbjVWY9DMhXJ5XbrE-Qvq2BNJJWF8Nkxk,1995
|
|
155
157
|
foxes/models/point_models/wake_deltas.py,sha256=nwpallRan2tfSPU9acESHiSg30_gpShsDd-nU65FAIA,2035
|
|
156
158
|
foxes/models/rotor_models/__init__.py,sha256=peLe_ykp4e_ls_iGDa-1z7-jCTtjurE3ig2R9tJy7Bg,114
|
|
157
|
-
foxes/models/rotor_models/centre.py,sha256=
|
|
159
|
+
foxes/models/rotor_models/centre.py,sha256=aL6oP3aC3hgNm0Yc6foReapeTlbJnmnG2z_aLpmdgrA,5774
|
|
158
160
|
foxes/models/rotor_models/grid.py,sha256=yNdl7cJmSWY5wfWw58t0OqVm4gZdaCiTu87rs5G9fKc,4484
|
|
159
161
|
foxes/models/rotor_models/levels.py,sha256=qmjjX7It1nwQ8lej8UIZ5FhQvMsODaf7oi8dG-4T6JM,4007
|
|
160
162
|
foxes/models/turbine_models/__init__.py,sha256=eCS66-AS3ivW9qm-yPPfO_0_eHQox5Sp7bQantVPwg0,428
|
|
@@ -191,9 +193,9 @@ foxes/models/wake_frames/__init__.py,sha256=DAbiSlvlJWlnb58KQ8e6RpMBN9_ukVxPLIZo
|
|
|
191
193
|
foxes/models/wake_frames/dynamic_wakes.py,sha256=FqDDADL0Ohuz9Z2hVt-u9nEC2uM9J_SqXwiq7PuhEJs,15408
|
|
192
194
|
foxes/models/wake_frames/farm_order.py,sha256=f400ERLg9ecsrBaJSkAuTkC_2BNhWCMhbsrBk802cek,4052
|
|
193
195
|
foxes/models/wake_frames/rotor_wd.py,sha256=eF9vGHpXU0P21SMnWipW_9CkATR5qxvnOUn6dDqBA9g,3854
|
|
194
|
-
foxes/models/wake_frames/seq_dynamic_wakes.py,sha256=
|
|
196
|
+
foxes/models/wake_frames/seq_dynamic_wakes.py,sha256=5_CwHf564zbh40wzkY8Ilwf5qdwQGADFPrfSHxLdqqg,10729
|
|
195
197
|
foxes/models/wake_frames/streamlines.py,sha256=GsUDE896GQDmZz0FiwUeASTiU-a2NgTQD5shq9UukcE,9132
|
|
196
|
-
foxes/models/wake_frames/timelines.py,sha256=
|
|
198
|
+
foxes/models/wake_frames/timelines.py,sha256=Xtbo1H3SU6jwdnVesRSgd5gXXZ671GauAqVgQeC-7KM,17613
|
|
197
199
|
foxes/models/wake_frames/yawed_wakes.py,sha256=QBhXLfoVoJveFdUr1BEqgxUohaqlH2Cn-6q4idtXmAw,9175
|
|
198
200
|
foxes/models/wake_models/__init__.py,sha256=hwoJF5RzDlr2g5zKgZ532H93F6Hcoo0Gfkc3XLiAJ1Q,253
|
|
199
201
|
foxes/models/wake_models/axisymmetric.py,sha256=3dS-1Br9ZvDaGa_KVy0sotnuMku4QpL_Nz3T5dyQXm8,2788
|
|
@@ -205,7 +207,7 @@ foxes/models/wake_models/induction/rankine_half_body.py,sha256=LKYNAiamULPLQeohl
|
|
|
205
207
|
foxes/models/wake_models/induction/rathmann.py,sha256=SFLqMFjcwSM2zSdyK8M60q8pB98ffixDWuvhRH5FYwE,7751
|
|
206
208
|
foxes/models/wake_models/induction/self_similar.py,sha256=q7PM8mLjH8BW2_Qev_3yoAwchRy8cCoG6ps6mlYnIGQ,8444
|
|
207
209
|
foxes/models/wake_models/induction/self_similar2020.py,sha256=D8yQxa5NQFII2gvKggcbJvuSDnrIRSy0Q5aCC3DoTPc,1634
|
|
208
|
-
foxes/models/wake_models/induction/vortex_sheet.py,sha256=
|
|
210
|
+
foxes/models/wake_models/induction/vortex_sheet.py,sha256=aUTUr4NOiIXnQtzzde1Y6dNNP_chk3m_YcetuAovTfw,7270
|
|
209
211
|
foxes/models/wake_models/ti/__init__.py,sha256=EOlqFHL2mzcKGFRZqlVYTiqGJqPb6dx7I5UWUDshy2U,125
|
|
210
212
|
foxes/models/wake_models/ti/crespo_hernandez.py,sha256=GcRqWw2EjAka3Ss0If-HM-gkxJlV7Omm-5oyqF1-y0M,8933
|
|
211
213
|
foxes/models/wake_models/ti/iec_ti.py,sha256=8efoMQibs8zolXF7iZALggdFL6fHeRdL5ikztRjxENI,7006
|
|
@@ -227,16 +229,16 @@ foxes/models/wake_superpositions/ws_quadratic.py,sha256=3pWDd-HSVD4_OKQ5YQaUX1RY
|
|
|
227
229
|
foxes/output/__init__.py,sha256=HZFka-9Y5hTOgeuCBxvv0vSvB-zGvkzEKxCqsbdYCgk,820
|
|
228
230
|
foxes/output/animation.py,sha256=zljekg6k2DjqVaBw0OamB4i3eopi6g2j0a12B9hx7VQ,2637
|
|
229
231
|
foxes/output/calc_points.py,sha256=paFBNUCbg0Vw-VKsvoXygQcq-T3y10IvcVmSUoHb5Do,4567
|
|
230
|
-
foxes/output/farm_layout.py,sha256=
|
|
231
|
-
foxes/output/farm_results_eval.py,sha256=
|
|
232
|
+
foxes/output/farm_layout.py,sha256=0FUiIuSb0eWPlJ-QUgLIfYHBMP5sPLDuMLYAOx-LkFc,12048
|
|
233
|
+
foxes/output/farm_results_eval.py,sha256=x61E5s-dGc6kCLkyEkSQB4pWSmVeIUGCRCqgYOCxZMA,19571
|
|
232
234
|
foxes/output/grids.py,sha256=tjQjF3Q_OyI7iOUsbED_P625yDSvHGoIKbS4T_ZB8uI,22504
|
|
233
235
|
foxes/output/output.py,sha256=654XWA2WPwqOzlYbKdHMEjQSSCWrjmtTFN6FNsyZ43E,3297
|
|
234
236
|
foxes/output/plt.py,sha256=6_4Zniv6iqVctNCbxFn2gMYE0aC0FqwNaaBJgIROlHI,356
|
|
235
237
|
foxes/output/results_writer.py,sha256=zUlj7szylvudYmwLciD6TcStmv7gBcp4bE1xQQ5JL_s,5789
|
|
236
|
-
foxes/output/rose_plot.py,sha256=
|
|
238
|
+
foxes/output/rose_plot.py,sha256=fckU__3TGl78unGrNWVoQO52mWoiTKlQr1CKOrXssJE,18648
|
|
237
239
|
foxes/output/rotor_point_plots.py,sha256=KW4t_2lCSc90BzvJDT9xBOAe6JXWSc75UDu4tlK3Se0,3276
|
|
238
240
|
foxes/output/round.py,sha256=s8YcXciCtaMY14SnG3ebYccyjQ2IEln256SwN9oJnPI,351
|
|
239
|
-
foxes/output/slice_data.py,sha256=
|
|
241
|
+
foxes/output/slice_data.py,sha256=bnY8D0ITFFN-i1mSkm0e2ukIMqxjev2KaUINbxo62pA,33788
|
|
240
242
|
foxes/output/slices_data.py,sha256=FqulnXnZ5aI2fOns4ffBYSw5j42IEGq-lLCNJxWG5HA,8671
|
|
241
243
|
foxes/output/state_turbine_map.py,sha256=XhrqRyfSz-hE8gwN5vzC_J-RejCr9dix-D6206Oionw,2724
|
|
242
244
|
foxes/output/state_turbine_table.py,sha256=ldG0LcC126YsXQZtJY9OSWxW3ETbHdBehjtU21caTDw,2228
|
|
@@ -264,7 +266,7 @@ foxes/utils/subclasses.py,sha256=wCfhuialpBOQOPMwNbaplkVmf60vR9AIkY_o3tdkgXI,173
|
|
|
264
266
|
foxes/utils/tab_files.py,sha256=H50IpLaqffJn9A51orCGc4fOhCOzoNUYDUKek4OAayU,1811
|
|
265
267
|
foxes/utils/two_circles.py,sha256=xkj-SA_x-VXY7KtmSU4lcV4gFdplyhU3sBAC9vTdkF4,2810
|
|
266
268
|
foxes/utils/wind_dir.py,sha256=6W0njWDvnIdOOjwqcMr64MW9ApjdtFA75blVUxirPMo,2823
|
|
267
|
-
foxes/utils/wrg_utils.py,sha256=
|
|
269
|
+
foxes/utils/wrg_utils.py,sha256=PsaOIKx3WrHekJPeJMHzMfTYoEXkOAV51QjRbGjobGQ,3534
|
|
268
270
|
foxes/utils/xarray_utils.py,sha256=6VLTAitXTK6W5zlBTadWwN05qmq_TlEDpUCx227JxtY,1677
|
|
269
271
|
foxes/utils/abl/__init__.py,sha256=ijn-ubLLlqqH6tTAXFRmBAxJZmVBlTEmtx1cdCCtG4I,135
|
|
270
272
|
foxes/utils/abl/neutral.py,sha256=E4DEhvXvw74BPrYr1MjQjeIaoz6ZOTWVlqScKflm-0M,1358
|
|
@@ -278,34 +280,34 @@ foxes/utils/geom2d/example_intersection.py,sha256=4e6sjpZEk_bNc462YvwKPzwxdV1B90
|
|
|
278
280
|
foxes/utils/geom2d/example_union.py,sha256=BKfLt1mtQcSto-qExeMQkq8tQ6kfFXVJ93Cc7DhOal8,1750
|
|
279
281
|
foxes/utils/geom2d/half_plane.py,sha256=kzZD6pkZxZ03MK9WAboWzXb5Ws5dWLQY9GIahD4D9mA,6167
|
|
280
282
|
foxes/utils/geom2d/polygon.py,sha256=Xj7triA5Pe4-48sNSAvGxEXlQGptV161LUpKKCf3YOY,5535
|
|
281
|
-
tests/0_consistency/iterative/test_iterative.py,sha256=
|
|
282
|
-
tests/0_consistency/partial_wakes/test_partial_wakes.py,sha256=
|
|
283
|
-
tests/1_verification/flappy_0_6/PCt_files/test_PCt_files.py,sha256=
|
|
283
|
+
tests/0_consistency/iterative/test_iterative.py,sha256=lzagmJ1y241l6Szw4Cu80S8S1ATHIyD7ukr1vVBrusY,2637
|
|
284
|
+
tests/0_consistency/partial_wakes/test_partial_wakes.py,sha256=7rdg2lcUYUzxwCdGhue7A4QYCJQGrOO4E0bytgatYj4,2584
|
|
285
|
+
tests/1_verification/flappy_0_6/PCt_files/test_PCt_files.py,sha256=Y4KkdXE5Wjtc8GYJrQf3CHCkyHhdgjAPyyjVyfEJtuw,2532
|
|
284
286
|
tests/1_verification/flappy_0_6/PCt_files/flappy/run.py,sha256=wJLKFOKVxOjmncYRarK5EK12HNjpWEUuu3EKgdq-Cvw,2165
|
|
285
|
-
tests/1_verification/flappy_0_6/abl_states/test_abl_states.py,sha256=
|
|
287
|
+
tests/1_verification/flappy_0_6/abl_states/test_abl_states.py,sha256=OhsOrPVdY73tXjYwTDj7tnJkusYeRnGHav2ysG_9Jv8,2167
|
|
286
288
|
tests/1_verification/flappy_0_6/abl_states/flappy/run.py,sha256=hnPSO_wqk9vYgwNNMWXb_UaYZOCnlwScVlfZl7rriV4,2058
|
|
287
289
|
tests/1_verification/flappy_0_6/partial_top_hat/test_partial_top_hat.py,sha256=TWdY4qP47KM9L39SeytPsmUzFDD4YObRESXL5iXtiWg,2125
|
|
288
290
|
tests/1_verification/flappy_0_6/partial_top_hat/flappy/run.py,sha256=NMtLneJLk6J1DXE59FZ1JAGlh-zBwegtCAq8nB-p13I,1993
|
|
289
|
-
tests/1_verification/flappy_0_6/row_Jensen_linear_centre/test_row_Jensen_linear_centre.py,sha256=
|
|
291
|
+
tests/1_verification/flappy_0_6/row_Jensen_linear_centre/test_row_Jensen_linear_centre.py,sha256=ra5N_eTPPRv_laWm3P7x2LYYzf17nHIZVFQ07S4v7U4,2450
|
|
290
292
|
tests/1_verification/flappy_0_6/row_Jensen_linear_centre/flappy/run.py,sha256=xTBI8dssYiqy7WC0IlKonfHQVshUk2ROyCzmecW0hbI,2184
|
|
291
|
-
tests/1_verification/flappy_0_6/row_Jensen_linear_tophat/test_row_Jensen_linear_tophat.py,sha256=
|
|
293
|
+
tests/1_verification/flappy_0_6/row_Jensen_linear_tophat/test_row_Jensen_linear_tophat.py,sha256=E5296NjRmkbQKd6yITr6zM9-tWvVEUak2uLIsGKvPvI,2457
|
|
292
294
|
tests/1_verification/flappy_0_6/row_Jensen_linear_tophat/flappy/run.py,sha256=uhWgRbEbmM5t_ZdcG1U_719eo_2idWfML04wjFQhYL0,2180
|
|
293
|
-
tests/1_verification/flappy_0_6/row_Jensen_linear_tophat_IECTI2005/test_row_Jensen_linear_tophat_IECTI_2005.py,sha256=
|
|
295
|
+
tests/1_verification/flappy_0_6/row_Jensen_linear_tophat_IECTI2005/test_row_Jensen_linear_tophat_IECTI_2005.py,sha256=JXwZfPuXw-NuKREv-R0OzEM1oPxQ3gSmlicoT-OyTCw,2984
|
|
294
296
|
tests/1_verification/flappy_0_6/row_Jensen_linear_tophat_IECTI2005/flappy/run.py,sha256=84Vc_F4kZsluiPrKFX7WxWXKwfGZDNzW90npCsStJqQ,2259
|
|
295
|
-
tests/1_verification/flappy_0_6/row_Jensen_linear_tophat_IECTI2019/test_row_Jensen_linear_tophat_IECTI_2019.py,sha256=
|
|
297
|
+
tests/1_verification/flappy_0_6/row_Jensen_linear_tophat_IECTI2019/test_row_Jensen_linear_tophat_IECTI_2019.py,sha256=Mh6rS6jAqPbUn60_Y6D-VF2xaoigdu_CKWdwgJFetqo,2984
|
|
296
298
|
tests/1_verification/flappy_0_6/row_Jensen_linear_tophat_IECTI2019/flappy/run.py,sha256=cPLIXymqdzu3zxB6-B3g3CU_oDhiYf-TlgWqossDjUw,2259
|
|
297
|
-
tests/1_verification/flappy_0_6/row_Jensen_quadratic_centre/test_row_Jensen_quadratic_centre.py,sha256=
|
|
299
|
+
tests/1_verification/flappy_0_6/row_Jensen_quadratic_centre/test_row_Jensen_quadratic_centre.py,sha256=Co7nl9AuelhZn2n0GLBrhFNqG_vKHCcYOr94Hexm_tk,2457
|
|
298
300
|
tests/1_verification/flappy_0_6/row_Jensen_quadratic_centre/flappy/run.py,sha256=u-LBBH_MVoqY4Gl__6_EuHUTXp7s-6xVU1OXkywrqrY,2187
|
|
299
|
-
tests/1_verification/flappy_0_6_2/grid_rotors/test_grid_rotors.py,sha256=
|
|
301
|
+
tests/1_verification/flappy_0_6_2/grid_rotors/test_grid_rotors.py,sha256=Yv90h5oiPWEvq06QsWnIca77_cN7gQaDrmnnb54kNuE,3958
|
|
300
302
|
tests/1_verification/flappy_0_6_2/grid_rotors/flappy/run.py,sha256=-TJAB5L9fj7UonqYILVH0i91PPD6KKd7bpJ2j0MDALk,2453
|
|
301
|
-
tests/1_verification/flappy_0_6_2/row_Bastankhah_Crespo/test_row_Bastankhah_Crespo.py,sha256=
|
|
303
|
+
tests/1_verification/flappy_0_6_2/row_Bastankhah_Crespo/test_row_Bastankhah_Crespo.py,sha256=FJiQm-4LtbU4QTGNR6uvkxWEs641J2kE0hqoob-biGg,2989
|
|
302
304
|
tests/1_verification/flappy_0_6_2/row_Bastankhah_Crespo/flappy/run.py,sha256=nwIyn20ZyYHhCKcPCnm02zjwNKMRzr9t0U8TjKK61QU,2213
|
|
303
|
-
tests/1_verification/flappy_0_6_2/row_Bastankhah_linear_centre/test_row_Bastankhah_linear_centre.py,sha256=
|
|
305
|
+
tests/1_verification/flappy_0_6_2/row_Bastankhah_linear_centre/test_row_Bastankhah_linear_centre.py,sha256=anlvMyrHvwumrzglkMP-LuvMe2eOzASxH1hJB5PwaHQ,2596
|
|
304
306
|
tests/1_verification/flappy_0_6_2/row_Bastankhah_linear_centre/flappy/run.py,sha256=s6FbEdpiIdHYmdD8S85_NhLH-S3EOinXvw8RHmR2QOU,2122
|
|
305
|
-
tests/3_examples/test_examples.py,sha256=
|
|
306
|
-
foxes-1.
|
|
307
|
-
foxes-1.
|
|
308
|
-
foxes-1.
|
|
309
|
-
foxes-1.
|
|
310
|
-
foxes-1.
|
|
311
|
-
foxes-1.
|
|
307
|
+
tests/3_examples/test_examples.py,sha256=9_PtvlYA6ELsQGHt-xAnsjCYdGj1ekX237ymWvEJaCk,732
|
|
308
|
+
foxes-1.3.dist-info/LICENSE,sha256=bBCH6mYTPzSepk2s2UUZ3II_ZYXrn1bnSqB85-aZHxU,1071
|
|
309
|
+
foxes-1.3.dist-info/METADATA,sha256=Bx1wEAE9_rUOJHpAsWoWOjJ5O06HVi_6IosHT9yQMRM,8940
|
|
310
|
+
foxes-1.3.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
311
|
+
foxes-1.3.dist-info/entry_points.txt,sha256=KuS44FRH5NnMw201A8Btr76eNRKr2UOoKHjejAsqKwE,123
|
|
312
|
+
foxes-1.3.dist-info/top_level.txt,sha256=G7oHApEz5nc-iP__XsPcvjYe_NyXGmKMUMPHi3C3x6I,26
|
|
313
|
+
foxes-1.3.dist-info/RECORD,,
|
|
@@ -3,12 +3,11 @@ import inspect
|
|
|
3
3
|
|
|
4
4
|
import foxes
|
|
5
5
|
import foxes.variables as FV
|
|
6
|
-
from foxes.config import config
|
|
7
|
-
|
|
8
|
-
thisdir = Path(inspect.getfile(inspect.currentframe())).parent
|
|
9
6
|
|
|
10
7
|
|
|
11
8
|
def test():
|
|
9
|
+
thisdir = Path(inspect.getabsfile(inspect.currentframe())).parent
|
|
10
|
+
print("TESTDIR:", thisdir)
|
|
12
11
|
|
|
13
12
|
ttype = "DTU10MW"
|
|
14
13
|
sfile = "wind_rose_bremen.csv"
|
|
@@ -4,10 +4,10 @@ import inspect
|
|
|
4
4
|
import foxes
|
|
5
5
|
import foxes.variables as FV
|
|
6
6
|
|
|
7
|
-
thisdir = Path(inspect.getfile(inspect.currentframe())).parent
|
|
8
|
-
|
|
9
7
|
|
|
10
8
|
def test():
|
|
9
|
+
thisdir = Path(inspect.getabsfile(inspect.currentframe())).parent
|
|
10
|
+
print("TESTDIR:", thisdir)
|
|
11
11
|
|
|
12
12
|
tfile = thisdir / "NREL-5MW-D126-H90.csv"
|
|
13
13
|
sfile = thisdir / "states.csv.gz"
|
|
@@ -4,13 +4,11 @@ import inspect
|
|
|
4
4
|
|
|
5
5
|
import foxes
|
|
6
6
|
import foxes.variables as FV
|
|
7
|
-
from foxes.config import config
|
|
8
|
-
|
|
9
|
-
thisdir = Path(inspect.getfile(inspect.currentframe())).parent
|
|
10
7
|
|
|
11
8
|
|
|
12
9
|
def test():
|
|
13
|
-
|
|
10
|
+
thisdir = Path(inspect.getabsfile(inspect.currentframe())).parent
|
|
11
|
+
print("TESTDIR:", thisdir)
|
|
14
12
|
|
|
15
13
|
cfile = thisdir / "flappy" / "results.csv.gz"
|
|
16
14
|
tPfile = thisdir / "NREL-5MW-D126-H90-P.csv"
|
|
@@ -45,61 +43,55 @@ def test():
|
|
|
45
43
|
farm, lfile, turbine_models=[ttype.name], verbosity=0
|
|
46
44
|
)
|
|
47
45
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
verbosity=0,
|
|
59
|
-
)
|
|
46
|
+
algo = foxes.algorithms.Downwind(
|
|
47
|
+
farm=farm,
|
|
48
|
+
states=states,
|
|
49
|
+
mbook=mbook,
|
|
50
|
+
rotor_model="centre",
|
|
51
|
+
wake_models=["Jensen_linear_k007"],
|
|
52
|
+
wake_frame="rotor_wd",
|
|
53
|
+
partial_wakes={"Jensen_linear_k007": "top_hat"},
|
|
54
|
+
verbosity=0,
|
|
55
|
+
)
|
|
60
56
|
|
|
57
|
+
with foxes.Engine.new("threads", chunk_size_states=2000):
|
|
61
58
|
data = algo.calc_farm()
|
|
62
59
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
print(chk.loc[sel & sel_ws])
|
|
99
|
-
print(chk.max())
|
|
100
|
-
|
|
101
|
-
assert ((chk[FV.WS] < 1e-5)).all()
|
|
102
|
-
assert (chk[FV.P] < 1e-3).all()
|
|
60
|
+
df = data.to_dataframe()[[FV.AMB_WD, FV.WD, FV.AMB_REWS, FV.REWS, FV.AMB_P, FV.P]]
|
|
61
|
+
df = df.reset_index()
|
|
62
|
+
|
|
63
|
+
print()
|
|
64
|
+
print("TRESULTS\n")
|
|
65
|
+
print(df)
|
|
66
|
+
|
|
67
|
+
# print("\Reading file", cfile)
|
|
68
|
+
fdata = pd.read_csv(cfile)
|
|
69
|
+
print(fdata)
|
|
70
|
+
|
|
71
|
+
print("\nVERIFYING\n")
|
|
72
|
+
df[FV.WS] = df["REWS"]
|
|
73
|
+
df[FV.AMB_WS] = df["AMB_REWS"]
|
|
74
|
+
|
|
75
|
+
# neglecting ws < 5 and ws > 20
|
|
76
|
+
sel_ws = (
|
|
77
|
+
(fdata[FV.WS] > 5) & (fdata[FV.WS] < 20) & (df["REWS"] > 5) & (df["REWS"] < 20)
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
# calculating difference
|
|
81
|
+
delta = df.reset_index() - fdata
|
|
82
|
+
delta = delta[sel_ws]
|
|
83
|
+
print(delta)
|
|
84
|
+
print(delta.max())
|
|
85
|
+
chk = delta[[FV.AMB_WS, FV.AMB_P, FV.WS, FV.P]].abs()
|
|
86
|
+
sel = chk[FV.WS] >= 1e-5
|
|
87
|
+
print(sel)
|
|
88
|
+
print(df[sel & sel_ws])
|
|
89
|
+
print(fdata[sel & sel_ws])
|
|
90
|
+
print(chk.loc[sel & sel_ws])
|
|
91
|
+
print(chk.max())
|
|
92
|
+
|
|
93
|
+
assert ((chk[FV.WS] < 1e-5)).all()
|
|
94
|
+
assert (chk[FV.P] < 1e-3).all()
|
|
103
95
|
|
|
104
96
|
|
|
105
97
|
if __name__ == "__main__":
|