foxes 0.8.2__py3-none-any.whl → 1.1.0.2__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.
- docs/source/conf.py +353 -0
- examples/abl_states/run.py +160 -0
- examples/compare_rotors_pwakes/run.py +217 -0
- examples/compare_wakes/run.py +241 -0
- examples/dyn_wakes/run.py +311 -0
- examples/field_data_nc/run.py +121 -0
- examples/induction/run.py +201 -0
- examples/multi_height/run.py +113 -0
- examples/power_mask/run.py +249 -0
- examples/random_timeseries/run.py +210 -0
- examples/scan_row/run.py +193 -0
- examples/sector_management/run.py +162 -0
- examples/sequential/run.py +209 -0
- examples/single_state/run.py +201 -0
- examples/states_lookup_table/run.py +137 -0
- examples/streamline_wakes/run.py +138 -0
- examples/tab_file/run.py +142 -0
- examples/timelines/run.py +267 -0
- examples/timeseries/run.py +190 -0
- examples/timeseries_slurm/run.py +185 -0
- examples/wind_rose/run.py +141 -0
- examples/windio/run.py +29 -0
- examples/yawed_wake/run.py +196 -0
- foxes/__init__.py +4 -8
- foxes/algorithms/__init__.py +1 -1
- foxes/algorithms/downwind/downwind.py +247 -111
- foxes/algorithms/downwind/models/farm_wakes_calc.py +12 -7
- foxes/algorithms/downwind/models/init_farm_data.py +2 -2
- foxes/algorithms/downwind/models/point_wakes_calc.py +6 -7
- foxes/algorithms/downwind/models/reorder_farm_output.py +1 -2
- foxes/algorithms/downwind/models/set_amb_farm_results.py +1 -1
- foxes/algorithms/downwind/models/set_amb_point_results.py +5 -3
- foxes/algorithms/iterative/iterative.py +74 -34
- foxes/algorithms/iterative/models/farm_wakes_calc.py +12 -7
- foxes/algorithms/iterative/models/urelax.py +3 -3
- foxes/algorithms/sequential/models/plugin.py +5 -5
- foxes/algorithms/sequential/models/seq_state.py +1 -1
- foxes/algorithms/sequential/sequential.py +126 -255
- foxes/constants.py +22 -7
- foxes/core/__init__.py +1 -0
- foxes/core/algorithm.py +632 -147
- foxes/core/data.py +252 -20
- foxes/core/data_calc_model.py +15 -291
- foxes/core/engine.py +640 -0
- foxes/core/farm_controller.py +38 -10
- foxes/core/farm_data_model.py +16 -1
- foxes/core/ground_model.py +2 -2
- foxes/core/model.py +249 -182
- foxes/core/partial_wakes_model.py +1 -1
- foxes/core/point_data_model.py +17 -2
- foxes/core/rotor_model.py +27 -21
- foxes/core/states.py +17 -1
- foxes/core/turbine_type.py +28 -0
- foxes/core/wake_frame.py +30 -34
- foxes/core/wake_model.py +5 -5
- foxes/core/wake_superposition.py +1 -1
- foxes/data/windio/windio_5turbines_timeseries.yaml +31 -15
- foxes/engines/__init__.py +17 -0
- foxes/engines/dask.py +982 -0
- foxes/engines/default.py +75 -0
- foxes/engines/futures.py +72 -0
- foxes/engines/mpi.py +38 -0
- foxes/engines/multiprocess.py +71 -0
- foxes/engines/numpy.py +167 -0
- foxes/engines/pool.py +249 -0
- foxes/engines/ray.py +79 -0
- foxes/engines/single.py +141 -0
- foxes/input/farm_layout/__init__.py +1 -0
- foxes/input/farm_layout/from_csv.py +4 -0
- foxes/input/farm_layout/from_json.py +2 -2
- foxes/input/farm_layout/grid.py +2 -2
- foxes/input/farm_layout/ring.py +65 -0
- foxes/input/farm_layout/row.py +2 -2
- foxes/input/states/__init__.py +7 -0
- foxes/input/states/create/random_abl_states.py +1 -1
- foxes/input/states/field_data_nc.py +158 -33
- foxes/input/states/multi_height.py +128 -14
- foxes/input/states/one_point_flow.py +577 -0
- foxes/input/states/scan_ws.py +74 -3
- foxes/input/states/single.py +1 -1
- foxes/input/states/slice_data_nc.py +681 -0
- foxes/input/states/states_table.py +204 -35
- foxes/input/windio/__init__.py +2 -2
- foxes/input/windio/get_states.py +44 -23
- foxes/input/windio/read_attributes.py +48 -17
- foxes/input/windio/read_farm.py +116 -102
- foxes/input/windio/read_fields.py +16 -6
- foxes/input/windio/read_outputs.py +71 -24
- foxes/input/windio/runner.py +31 -17
- foxes/input/windio/windio.py +41 -23
- foxes/models/farm_models/turbine2farm.py +1 -1
- foxes/models/ground_models/wake_mirror.py +10 -6
- foxes/models/model_book.py +58 -20
- foxes/models/partial_wakes/axiwake.py +3 -3
- foxes/models/partial_wakes/rotor_points.py +3 -3
- foxes/models/partial_wakes/top_hat.py +2 -2
- foxes/models/point_models/set_uniform_data.py +1 -1
- foxes/models/point_models/tke2ti.py +1 -1
- foxes/models/point_models/wake_deltas.py +1 -1
- foxes/models/rotor_models/centre.py +4 -0
- foxes/models/rotor_models/grid.py +24 -25
- foxes/models/rotor_models/levels.py +4 -5
- foxes/models/turbine_models/calculator.py +4 -6
- foxes/models/turbine_models/kTI_model.py +22 -6
- foxes/models/turbine_models/lookup_table.py +30 -4
- foxes/models/turbine_models/rotor_centre_calc.py +4 -3
- foxes/models/turbine_models/set_farm_vars.py +103 -34
- foxes/models/turbine_types/PCt_file.py +27 -3
- foxes/models/turbine_types/PCt_from_two.py +27 -3
- foxes/models/turbine_types/TBL_file.py +80 -0
- foxes/models/turbine_types/__init__.py +2 -0
- foxes/models/turbine_types/lookup.py +316 -0
- foxes/models/turbine_types/null_type.py +51 -1
- foxes/models/turbine_types/wsrho2PCt_from_two.py +29 -5
- foxes/models/turbine_types/wsti2PCt_from_two.py +31 -7
- foxes/models/vertical_profiles/__init__.py +1 -1
- foxes/models/vertical_profiles/data_profile.py +1 -1
- foxes/models/wake_frames/__init__.py +1 -0
- foxes/models/wake_frames/dynamic_wakes.py +424 -0
- foxes/models/wake_frames/farm_order.py +25 -5
- foxes/models/wake_frames/rotor_wd.py +6 -4
- foxes/models/wake_frames/seq_dynamic_wakes.py +61 -74
- foxes/models/wake_frames/streamlines.py +21 -22
- foxes/models/wake_frames/timelines.py +330 -129
- foxes/models/wake_frames/yawed_wakes.py +7 -4
- foxes/models/wake_models/dist_sliced.py +2 -4
- foxes/models/wake_models/induction/rankine_half_body.py +5 -5
- foxes/models/wake_models/induction/rathmann.py +78 -24
- foxes/models/wake_models/induction/self_similar.py +78 -28
- foxes/models/wake_models/induction/vortex_sheet.py +86 -48
- foxes/models/wake_models/ti/crespo_hernandez.py +6 -4
- foxes/models/wake_models/ti/iec_ti.py +40 -21
- foxes/models/wake_models/top_hat.py +1 -1
- foxes/models/wake_models/wind/bastankhah14.py +8 -6
- foxes/models/wake_models/wind/bastankhah16.py +17 -16
- foxes/models/wake_models/wind/jensen.py +4 -3
- foxes/models/wake_models/wind/turbopark.py +16 -13
- foxes/models/wake_superpositions/ti_linear.py +1 -1
- foxes/models/wake_superpositions/ti_max.py +1 -1
- foxes/models/wake_superpositions/ti_pow.py +1 -1
- foxes/models/wake_superpositions/ti_quadratic.py +1 -1
- foxes/models/wake_superpositions/ws_linear.py +8 -7
- foxes/models/wake_superpositions/ws_max.py +8 -7
- foxes/models/wake_superpositions/ws_pow.py +8 -7
- foxes/models/wake_superpositions/ws_product.py +5 -5
- foxes/models/wake_superpositions/ws_quadratic.py +8 -7
- foxes/output/__init__.py +4 -1
- foxes/output/farm_layout.py +16 -12
- foxes/output/farm_results_eval.py +1 -1
- foxes/output/flow_plots_2d/__init__.py +0 -1
- foxes/output/flow_plots_2d/flow_plots.py +70 -30
- foxes/output/grids.py +92 -22
- foxes/output/results_writer.py +2 -2
- foxes/output/rose_plot.py +3 -3
- foxes/output/seq_plugins/__init__.py +2 -0
- foxes/output/{flow_plots_2d → seq_plugins}/seq_flow_ani_plugin.py +64 -22
- foxes/output/seq_plugins/seq_wake_debug_plugin.py +145 -0
- foxes/output/slice_data.py +131 -111
- foxes/output/state_turbine_map.py +19 -14
- foxes/output/state_turbine_table.py +19 -19
- foxes/utils/__init__.py +1 -1
- foxes/utils/abl/neutral.py +2 -2
- foxes/utils/abl/stable.py +2 -2
- foxes/utils/abl/unstable.py +2 -2
- foxes/utils/data_book.py +1 -1
- foxes/utils/dev_utils.py +42 -0
- foxes/utils/dict.py +24 -1
- foxes/utils/exec_python.py +1 -1
- foxes/utils/factory.py +176 -53
- foxes/utils/geom2d/circle.py +1 -1
- foxes/utils/geom2d/polygon.py +1 -1
- foxes/utils/geopandas_utils.py +2 -2
- foxes/utils/load.py +2 -2
- foxes/utils/pandas_helpers.py +3 -2
- foxes/utils/wind_dir.py +0 -2
- foxes/utils/xarray_utils.py +24 -14
- foxes/variables.py +39 -2
- {foxes-0.8.2.dist-info → foxes-1.1.0.2.dist-info}/METADATA +75 -33
- foxes-1.1.0.2.dist-info/RECORD +309 -0
- {foxes-0.8.2.dist-info → foxes-1.1.0.2.dist-info}/WHEEL +1 -1
- foxes-1.1.0.2.dist-info/top_level.txt +4 -0
- tests/0_consistency/iterative/test_iterative.py +92 -0
- tests/0_consistency/partial_wakes/test_partial_wakes.py +90 -0
- tests/1_verification/flappy_0_6/PCt_files/flappy/run.py +85 -0
- tests/1_verification/flappy_0_6/PCt_files/test_PCt_files.py +103 -0
- tests/1_verification/flappy_0_6/abl_states/flappy/run.py +85 -0
- tests/1_verification/flappy_0_6/abl_states/test_abl_states.py +87 -0
- tests/1_verification/flappy_0_6/partial_top_hat/flappy/run.py +82 -0
- tests/1_verification/flappy_0_6/partial_top_hat/test_partial_top_hat.py +82 -0
- tests/1_verification/flappy_0_6/row_Jensen_linear_centre/flappy/run.py +92 -0
- tests/1_verification/flappy_0_6/row_Jensen_linear_centre/test_row_Jensen_linear_centre.py +93 -0
- tests/1_verification/flappy_0_6/row_Jensen_linear_tophat/flappy/run.py +92 -0
- tests/1_verification/flappy_0_6/row_Jensen_linear_tophat/test_row_Jensen_linear_tophat.py +96 -0
- tests/1_verification/flappy_0_6/row_Jensen_linear_tophat_IECTI2005/flappy/run.py +94 -0
- tests/1_verification/flappy_0_6/row_Jensen_linear_tophat_IECTI2005/test_row_Jensen_linear_tophat_IECTI_2005.py +122 -0
- tests/1_verification/flappy_0_6/row_Jensen_linear_tophat_IECTI2019/flappy/run.py +94 -0
- tests/1_verification/flappy_0_6/row_Jensen_linear_tophat_IECTI2019/test_row_Jensen_linear_tophat_IECTI_2019.py +122 -0
- tests/1_verification/flappy_0_6/row_Jensen_quadratic_centre/flappy/run.py +92 -0
- tests/1_verification/flappy_0_6/row_Jensen_quadratic_centre/test_row_Jensen_quadratic_centre.py +93 -0
- tests/1_verification/flappy_0_6_2/grid_rotors/flappy/run.py +85 -0
- tests/1_verification/flappy_0_6_2/grid_rotors/test_grid_rotors.py +130 -0
- tests/1_verification/flappy_0_6_2/row_Bastankhah_Crespo/flappy/run.py +96 -0
- tests/1_verification/flappy_0_6_2/row_Bastankhah_Crespo/test_row_Bastankhah_Crespo.py +116 -0
- tests/1_verification/flappy_0_6_2/row_Bastankhah_linear_centre/flappy/run.py +93 -0
- tests/1_verification/flappy_0_6_2/row_Bastankhah_linear_centre/test_row_Bastankhah_linear_centre.py +99 -0
- tests/3_examples/test_examples.py +34 -0
- foxes/VERSION +0 -1
- foxes/output/flow_plots_2d.py +0 -0
- foxes/utils/geopandas_helpers.py +0 -294
- foxes/utils/runners/__init__.py +0 -1
- foxes/utils/runners/runners.py +0 -280
- foxes-0.8.2.dist-info/RECORD +0 -247
- foxes-0.8.2.dist-info/top_level.txt +0 -1
- foxes-0.8.2.dist-info/zip-safe +0 -1
- {foxes-0.8.2.dist-info → foxes-1.1.0.2.dist-info}/LICENSE +0 -0
foxes/utils/load.py
CHANGED
|
@@ -20,7 +20,7 @@ def import_module(name, package=None, hint=None):
|
|
|
20
20
|
Returns
|
|
21
21
|
-------
|
|
22
22
|
mdl: module
|
|
23
|
-
The
|
|
23
|
+
The imported package
|
|
24
24
|
|
|
25
25
|
:group: utils
|
|
26
26
|
|
|
@@ -35,7 +35,7 @@ def import_module(name, package=None, hint=None):
|
|
|
35
35
|
|
|
36
36
|
def load_module(name, path):
|
|
37
37
|
"""
|
|
38
|
-
Imports a module from file path
|
|
38
|
+
Imports a module from a file path
|
|
39
39
|
|
|
40
40
|
Parameters
|
|
41
41
|
----------
|
foxes/utils/pandas_helpers.py
CHANGED
|
@@ -41,7 +41,7 @@ class PandasFileHelper:
|
|
|
41
41
|
"csv.gz": {},
|
|
42
42
|
"csv.bz2": {},
|
|
43
43
|
"csv.zip": {},
|
|
44
|
-
"h5": {"key": "
|
|
44
|
+
"h5": {"key": "foxes", "mode": "w"},
|
|
45
45
|
"nc": {},
|
|
46
46
|
}
|
|
47
47
|
|
|
@@ -138,7 +138,8 @@ class PandasFileHelper:
|
|
|
138
138
|
|
|
139
139
|
"""
|
|
140
140
|
|
|
141
|
-
|
|
141
|
+
digits = {c: FV.get_default_digits(c) for c in data.columns}
|
|
142
|
+
fdict = {c: "{:." + str(d) + "f}" for c, d in digits.items() if d is not None}
|
|
142
143
|
fdict.update(format_dict)
|
|
143
144
|
|
|
144
145
|
out = pd.DataFrame(index=data.index)
|
foxes/utils/wind_dir.py
CHANGED
|
@@ -24,7 +24,6 @@ def wd2wdvec(wd, ws=1.0, axis=-1):
|
|
|
24
24
|
:group: utils
|
|
25
25
|
|
|
26
26
|
"""
|
|
27
|
-
|
|
28
27
|
wdr = wd * np.pi / 180.0
|
|
29
28
|
n = np.stack([np.sin(wdr), np.cos(wdr)], axis=axis)
|
|
30
29
|
|
|
@@ -79,7 +78,6 @@ def uv2wd(uv, axis=-1):
|
|
|
79
78
|
:group: utils
|
|
80
79
|
|
|
81
80
|
"""
|
|
82
|
-
|
|
83
81
|
if axis == -1:
|
|
84
82
|
u = uv[..., 0]
|
|
85
83
|
v = uv[..., 1]
|
foxes/utils/xarray_utils.py
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
import netCDF4
|
|
2
|
+
from pathlib import Path
|
|
2
3
|
|
|
3
|
-
|
|
4
|
+
from foxes.variables import get_default_digits
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def write_nc(ds, fpath, round={}, complevel=9, verbosity=1, **kwargs):
|
|
4
8
|
"""
|
|
5
|
-
Writes a dataset to
|
|
9
|
+
Writes a dataset to netCDF file
|
|
6
10
|
|
|
7
11
|
Parameters
|
|
8
12
|
----------
|
|
9
13
|
fpath: str
|
|
10
14
|
Path to the output file, should be nc
|
|
11
|
-
round: dict
|
|
12
|
-
The rounding
|
|
13
|
-
|
|
15
|
+
round: dict
|
|
16
|
+
The rounding digits, falling back to defaults
|
|
17
|
+
if variable not found
|
|
14
18
|
complevel: int
|
|
15
19
|
The compression level
|
|
16
20
|
verbosity: int
|
|
@@ -19,21 +23,27 @@ def write_nc(ds, fpath, round="auto", complevel=5, verbosity=1, **kwargs):
|
|
|
19
23
|
Additional parameters for xarray.to_netcdf
|
|
20
24
|
|
|
21
25
|
"""
|
|
22
|
-
|
|
26
|
+
fpath = Path(fpath)
|
|
23
27
|
if round is not None:
|
|
24
28
|
for v in ds.coords.keys():
|
|
25
|
-
|
|
29
|
+
d = round.get(v, get_default_digits(v))
|
|
30
|
+
if d is not None:
|
|
26
31
|
if verbosity > 1:
|
|
27
|
-
print(f"Rounding {v} to {
|
|
28
|
-
ds[v].data = ds[v].data.round(decimals=
|
|
32
|
+
print(f"File {fpath.name}: Rounding {v} to {d} decimals")
|
|
33
|
+
ds[v].data = ds[v].data.round(decimals=d)
|
|
29
34
|
for v in ds.data_vars.keys():
|
|
30
|
-
|
|
35
|
+
d = round.get(v, get_default_digits(v))
|
|
36
|
+
if d is not None:
|
|
31
37
|
if verbosity > 1:
|
|
32
|
-
print(f"Rounding {v} to {
|
|
33
|
-
ds[v].data = ds[v].data.round(decimals=
|
|
38
|
+
print(f"File {fpath.name}: Rounding {v} to {d} decimals")
|
|
39
|
+
ds[v].data = ds[v].data.round(decimals=d)
|
|
40
|
+
|
|
41
|
+
enc = None
|
|
42
|
+
if complevel is not None and complevel > 0:
|
|
43
|
+
if verbosity > 1:
|
|
44
|
+
print(f"File {fpath.name}: Compression level = {complevel}")
|
|
45
|
+
enc = {k: {"zlib": True, "complevel": complevel} for k in ds.data_vars}
|
|
34
46
|
|
|
35
47
|
if verbosity > 0:
|
|
36
48
|
print("Writing file", fpath)
|
|
37
|
-
|
|
38
|
-
enc = {k: {"zlib": True, "complevel": complevel} for k in ds.data_vars}
|
|
39
49
|
ds.to_netcdf(fpath, encoding=enc, **kwargs)
|
foxes/variables.py
CHANGED
|
@@ -4,7 +4,7 @@ X = "X"
|
|
|
4
4
|
"""
|
|
5
5
|
|
|
6
6
|
Y = "Y"
|
|
7
|
-
""" The y coordinate in
|
|
7
|
+
""" The y coordinate in m
|
|
8
8
|
:group: foxes.variables
|
|
9
9
|
"""
|
|
10
10
|
|
|
@@ -257,7 +257,7 @@ Z0 = "z0"
|
|
|
257
257
|
"""
|
|
258
258
|
|
|
259
259
|
MOL = "MOL"
|
|
260
|
-
""" The Monin
|
|
260
|
+
""" The Monin–Obukhov length in m
|
|
261
261
|
:group: foxes.variables
|
|
262
262
|
"""
|
|
263
263
|
|
|
@@ -276,3 +276,40 @@ PA_BETA = "PA_beta"
|
|
|
276
276
|
""" The beta parameter of the PorteAgel wake model
|
|
277
277
|
:group: foxes.variables
|
|
278
278
|
"""
|
|
279
|
+
|
|
280
|
+
DEFAULT_DIGITS = {
|
|
281
|
+
WD: 3,
|
|
282
|
+
WS: 4,
|
|
283
|
+
TI: 6,
|
|
284
|
+
RHO: 5,
|
|
285
|
+
P: 3,
|
|
286
|
+
CT: 6,
|
|
287
|
+
T: 3,
|
|
288
|
+
YLD: 3,
|
|
289
|
+
CAP: 5,
|
|
290
|
+
EFF: 5,
|
|
291
|
+
}
|
|
292
|
+
""" The default output digits
|
|
293
|
+
:group: foxes.variables
|
|
294
|
+
"""
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
def get_default_digits(variable):
|
|
298
|
+
"""
|
|
299
|
+
Gets the default number of output digits
|
|
300
|
+
|
|
301
|
+
Parameters
|
|
302
|
+
----------
|
|
303
|
+
variable: str
|
|
304
|
+
The variable name
|
|
305
|
+
|
|
306
|
+
Returns
|
|
307
|
+
-------
|
|
308
|
+
digits: int
|
|
309
|
+
The default number of output digits
|
|
310
|
+
|
|
311
|
+
"""
|
|
312
|
+
v = amb2var.get(variable, variable)
|
|
313
|
+
if v in [REWS, REWS2, REWS3]:
|
|
314
|
+
v = WS
|
|
315
|
+
return DEFAULT_DIGITS.get(v, None)
|
|
@@ -1,13 +1,36 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: foxes
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 1.1.0.2
|
|
4
4
|
Summary: Farm Optimization and eXtended yield Evaluation Software
|
|
5
|
-
Author:
|
|
6
|
-
|
|
7
|
-
License: MIT
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
Author: Jonas Schulte
|
|
6
|
+
Maintainer: Jonas Schulte
|
|
7
|
+
License: MIT License
|
|
8
|
+
|
|
9
|
+
Copyright (c) 2022 FraunhoferIWES
|
|
10
|
+
|
|
11
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
12
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
13
|
+
in the Software without restriction, including without limitation the rights
|
|
14
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
15
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
16
|
+
furnished to do so, subject to the following conditions:
|
|
17
|
+
|
|
18
|
+
The above copyright notice and this permission notice shall be included in all
|
|
19
|
+
copies or substantial portions of the Software.
|
|
20
|
+
|
|
21
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
22
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
23
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
24
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
25
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
26
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
27
|
+
SOFTWARE.
|
|
28
|
+
|
|
29
|
+
Project-URL: Homepage, https://github.com/FraunhoferIWES/foxes
|
|
10
30
|
Project-URL: Documentation, https://fraunhoferiwes.github.io/foxes.docs/index.html
|
|
31
|
+
Project-URL: Repository, https://github.com/FraunhoferIWES/foxes.git
|
|
32
|
+
Project-URL: Bug Tracker, https://github.com/FraunhoferIWES/foxes/issues
|
|
33
|
+
Project-URL: Changelog, https://github.com/FraunhoferIWES/foxes/blob/main/CHANGELOG.md
|
|
11
34
|
Keywords: Wind farm,Wake modelling,Wind farm optimization
|
|
12
35
|
Classifier: Topic :: Scientific/Engineering
|
|
13
36
|
Classifier: Intended Audience :: Developers
|
|
@@ -18,6 +41,7 @@ Classifier: Programming Language :: Python :: 3.9
|
|
|
18
41
|
Classifier: Programming Language :: Python :: 3.10
|
|
19
42
|
Classifier: Programming Language :: Python :: 3.11
|
|
20
43
|
Classifier: Programming Language :: Python :: 3.12
|
|
44
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
45
|
Classifier: License :: OSI Approved :: MIT License
|
|
22
46
|
Classifier: Operating System :: OS Independent
|
|
23
47
|
Classifier: Development Status :: 4 - Beta
|
|
@@ -28,40 +52,53 @@ Requires-Dist: matplotlib
|
|
|
28
52
|
Requires-Dist: numpy
|
|
29
53
|
Requires-Dist: pandas
|
|
30
54
|
Requires-Dist: xarray
|
|
31
|
-
Requires-Dist: dask
|
|
32
|
-
Requires-Dist: distributed
|
|
33
55
|
Requires-Dist: scipy
|
|
34
56
|
Requires-Dist: netcdf4
|
|
35
57
|
Requires-Dist: windrose
|
|
36
58
|
Requires-Dist: cycler
|
|
37
|
-
|
|
38
|
-
Requires-Dist:
|
|
39
|
-
|
|
40
|
-
Requires-Dist:
|
|
41
|
-
Requires-Dist:
|
|
42
|
-
Requires-Dist:
|
|
43
|
-
Requires-Dist:
|
|
44
|
-
|
|
45
|
-
Requires-Dist:
|
|
46
|
-
Requires-Dist:
|
|
47
|
-
Requires-Dist:
|
|
48
|
-
Requires-Dist:
|
|
59
|
+
Requires-Dist: tqdm
|
|
60
|
+
Requires-Dist: pyyaml
|
|
61
|
+
Provides-Extra: dask
|
|
62
|
+
Requires-Dist: dask; extra == "dask"
|
|
63
|
+
Requires-Dist: distributed; extra == "dask"
|
|
64
|
+
Requires-Dist: dask-jobqueue; extra == "dask"
|
|
65
|
+
Requires-Dist: setuptools; extra == "dask"
|
|
66
|
+
Provides-Extra: dev
|
|
67
|
+
Requires-Dist: flake8; extra == "dev"
|
|
68
|
+
Requires-Dist: pytest; extra == "dev"
|
|
69
|
+
Requires-Dist: jupyter; extra == "dev"
|
|
70
|
+
Requires-Dist: objsize; extra == "dev"
|
|
71
|
+
Requires-Dist: black[jupyter]; extra == "dev"
|
|
49
72
|
Provides-Extra: doc
|
|
50
|
-
Requires-Dist: sphinx
|
|
51
|
-
Requires-Dist: sphinx-immaterial
|
|
52
|
-
Requires-Dist: nbsphinx
|
|
53
|
-
Requires-Dist: ipykernel
|
|
54
|
-
Requires-Dist: ipywidgets
|
|
55
|
-
Requires-Dist: m2r2
|
|
56
|
-
Requires-Dist: lxml-html-clean
|
|
73
|
+
Requires-Dist: sphinx; extra == "doc"
|
|
74
|
+
Requires-Dist: sphinx-immaterial; extra == "doc"
|
|
75
|
+
Requires-Dist: nbsphinx; extra == "doc"
|
|
76
|
+
Requires-Dist: ipykernel; extra == "doc"
|
|
77
|
+
Requires-Dist: ipywidgets; extra == "doc"
|
|
78
|
+
Requires-Dist: m2r2; extra == "doc"
|
|
79
|
+
Requires-Dist: lxml-html-clean; extra == "doc"
|
|
80
|
+
Provides-Extra: eng
|
|
81
|
+
Requires-Dist: multiprocess; extra == "eng"
|
|
82
|
+
Requires-Dist: dask; extra == "eng"
|
|
83
|
+
Requires-Dist: distributed; extra == "eng"
|
|
84
|
+
Requires-Dist: dask-jobqueue; extra == "eng"
|
|
85
|
+
Requires-Dist: setuptools; extra == "eng"
|
|
86
|
+
Requires-Dist: mpi4py; extra == "eng"
|
|
87
|
+
Requires-Dist: ray; extra == "eng"
|
|
88
|
+
Provides-Extra: eng0
|
|
89
|
+
Requires-Dist: multiprocess; extra == "eng0"
|
|
90
|
+
Requires-Dist: dask; extra == "eng0"
|
|
91
|
+
Requires-Dist: distributed; extra == "eng0"
|
|
92
|
+
Requires-Dist: dask-jobqueue; extra == "eng0"
|
|
93
|
+
Requires-Dist: setuptools; extra == "eng0"
|
|
94
|
+
Requires-Dist: ray; extra == "eng0"
|
|
57
95
|
Provides-Extra: io
|
|
58
|
-
Requires-Dist:
|
|
96
|
+
Requires-Dist: windIO>=1.0; extra == "io"
|
|
59
97
|
Provides-Extra: opt
|
|
60
|
-
Requires-Dist: foxes-opt
|
|
61
|
-
Provides-Extra: scripts
|
|
98
|
+
Requires-Dist: foxes-opt; extra == "opt"
|
|
62
99
|
Provides-Extra: test
|
|
63
|
-
Requires-Dist: flake8
|
|
64
|
-
Requires-Dist: pytest
|
|
100
|
+
Requires-Dist: flake8; extra == "test"
|
|
101
|
+
Requires-Dist: pytest; extra == "test"
|
|
65
102
|
|
|
66
103
|
# Welcome to foxes
|
|
67
104
|
|
|
@@ -76,7 +113,12 @@ The software `foxes` is a modular wind farm simulation and wake modelling toolbo
|
|
|
76
113
|
- Wake model studies, comparison and validation,
|
|
77
114
|
- Wind farm simulations invoking complex model chains.
|
|
78
115
|
|
|
79
|
-
The
|
|
116
|
+
The fast performance of `foxes` is owed to vectorization and parallelization,
|
|
117
|
+
and it is intended to be used for large wind farms and large timeseries inflow data.
|
|
118
|
+
The parallelization on local or remote clusters is supported, based on
|
|
119
|
+
[mpi4py](https://mpi4py.readthedocs.io/en/stable/) or
|
|
120
|
+
[dask.distributed](https://distributed.dask.org/en/stable/).
|
|
121
|
+
The wind farm
|
|
80
122
|
optimization capabilities invoke the [iwopy](https://github.com/FraunhoferIWES/iwopy) package which
|
|
81
123
|
as well supports vectorization.
|
|
82
124
|
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
docs/source/conf.py,sha256=Csc7xdfs9rt3K5sC7c2b7sNKq0I6KGl738-OHzRKbTc,12253
|
|
2
|
+
examples/abl_states/run.py,sha256=_r74o2H8bZWE__faIQMlKOw_187MXh29femgLXhP8YM,4530
|
|
3
|
+
examples/compare_rotors_pwakes/run.py,sha256=EAODYtY4ZMJnmon4OSBmUBOle41OqUwaCPY3t-RZKEY,6643
|
|
4
|
+
examples/compare_wakes/run.py,sha256=WFn74BBkPNOStdBvKR3mN3kv34M7u-SAmWTwtgqxUqA,7355
|
|
5
|
+
examples/dyn_wakes/run.py,sha256=8LksX9zGCQn776BMZUVOsbfSRW1XAn93cJ9BpEKHDDI,8700
|
|
6
|
+
examples/field_data_nc/run.py,sha256=bGC2KAKy2vqPvHtus93wEuxEFd_TZl1VZgyVU3CQFQI,3484
|
|
7
|
+
examples/induction/run.py,sha256=FnfzFJj5i3xB8myje2U8j1Sj7UfHjHwaPfi9VOvyqts,6270
|
|
8
|
+
examples/multi_height/run.py,sha256=KsY5tN8z9QHitQQdxnTjHzPSPlYPn5pkcMskjd94D74,3288
|
|
9
|
+
examples/power_mask/run.py,sha256=YK8RU0TLd7TgBJkPZQVrn8log-UQNZ7L3B3-yE8qu64,7584
|
|
10
|
+
examples/random_timeseries/run.py,sha256=UMB8VQL3DlDoUO_zsU21e20o5fFtF2BOQNfq4BiBc-A,6130
|
|
11
|
+
examples/scan_row/run.py,sha256=nWGm1M4yJzYaAoEe1PbxLCmQD6b34Xr2C-a4sCNUdmU,5700
|
|
12
|
+
examples/sector_management/run.py,sha256=Lyu69rs4IxlBBPy2r3go8xHu443K-wV-AfbZVBZ7yb0,4368
|
|
13
|
+
examples/sequential/run.py,sha256=CnNGrHp9OzijuQ0GFRN5FWW-RR4h9UBHvu5S9U3j0ac,5974
|
|
14
|
+
examples/single_state/run.py,sha256=zdtFG_GuXI1dUJO0mbEBVxXhQiOG4zZP6h25ySx1KJU,6093
|
|
15
|
+
examples/states_lookup_table/run.py,sha256=NE8Z_yOp7NWi8JHnxNoOUp6rF5Oq9dG5hWZA_7EXHuI,3916
|
|
16
|
+
examples/streamline_wakes/run.py,sha256=MO-UPuQqG9P1pinTMZo9CSF8sYkcgJUrBy5HVtkKanI,4004
|
|
17
|
+
examples/tab_file/run.py,sha256=eOr1oY_BuY77kXvvfy034D7TbVOROlAz72fSJ_BD4kE,4370
|
|
18
|
+
examples/timelines/run.py,sha256=UVsUX6-G2oNvw5giqVVDim0pmj2EnsO-X-N7aFUpUK4,7559
|
|
19
|
+
examples/timeseries/run.py,sha256=DE1ZjXJbh3AVZZ4tyjkHX21px2Z6g1fWpqSVTV1Gqbk,5329
|
|
20
|
+
examples/timeseries_slurm/run.py,sha256=GE3diBIMmKkm82CFu6tSL80EnrDQXrl7ISh-mi1o_ew,5517
|
|
21
|
+
examples/wind_rose/run.py,sha256=3x3ZC8xkvWHlv67R0ffmh-pzD8lpYosmSyUhXyqi3Tc,4239
|
|
22
|
+
examples/windio/run.py,sha256=ZB_HQwYOiUhsknNdEUDBHS7NxBCoA_IXNCUo76tWgyc,814
|
|
23
|
+
examples/yawed_wake/run.py,sha256=66gJBuIoYMswa53jNG3HHiehdgAAmTW0kez-kZ4kOT0,6102
|
|
24
|
+
foxes/__init__.py,sha256=oklaGE5jyAAxV5l4wYxatLzIzFalMy_KQeEX2fHTm3w,639
|
|
25
|
+
foxes/constants.py,sha256=hME5GzFoSOI61p7Xxx4jrRcEt2SjYRgyrDC3ZCE_hZ8,3013
|
|
26
|
+
foxes/variables.py,sha256=bNebCA8eToDPA2Wh6AqkNkzor98nS1JVVMhd8gfakKc,5035
|
|
27
|
+
foxes/algorithms/__init__.py,sha256=gCr5DK2wXhAAJf8eylkevN8yiwPdEC-pqY_LgjKzMv8,249
|
|
28
|
+
foxes/algorithms/downwind/__init__.py,sha256=lyygq5GMc6NAPmH0b0mhGeccWyuC8JTOEMZl-UlmE5M,53
|
|
29
|
+
foxes/algorithms/downwind/downwind.py,sha256=wgnpL78g9F9cNgPLVgEwYLcbrMQ6t81y8MGeGGLyTaI,24866
|
|
30
|
+
foxes/algorithms/downwind/models/__init__.py,sha256=0ov8rjIQ02w3iB6yYCxaswPvHDlPM_8_di6xPh1TTkQ,300
|
|
31
|
+
foxes/algorithms/downwind/models/farm_wakes_calc.py,sha256=IiO8_hhyT7aqPaMym2d__ZvwnjedoDgGj-x00muqOYg,5735
|
|
32
|
+
foxes/algorithms/downwind/models/init_farm_data.py,sha256=G-SeB2b3H3TEbmVrIGn4uvp8XdhJKizTW1qjUz5KAgc,4032
|
|
33
|
+
foxes/algorithms/downwind/models/point_wakes_calc.py,sha256=Tou3SZ-CF2I2SaTGKXY_4rcPf9TXVg1L2hk8_5w_JRA,4515
|
|
34
|
+
foxes/algorithms/downwind/models/reorder_farm_output.py,sha256=6C2i7C1OWV0pe6nr9BjJiWVETcW2U_lnt_Iv150oV5I,2038
|
|
35
|
+
foxes/algorithms/downwind/models/set_amb_farm_results.py,sha256=_xYNjFZiofHLGIFNw671izXUn37psX-NhSIO63IRwvA,1732
|
|
36
|
+
foxes/algorithms/downwind/models/set_amb_point_results.py,sha256=riXnM_XLixuLmtFBbH8-WNTW-Ih5oJoTDNuzY0cQbZo,2293
|
|
37
|
+
foxes/algorithms/iterative/__init__.py,sha256=Je445cHtS2ERc-dywjhxWttKzdEyHM8JLxPcW5JFtl8,137
|
|
38
|
+
foxes/algorithms/iterative/iterative.py,sha256=DN4i9hmtLvTMZWTvKqUDr5e6X15Nndlb-faHO83TO78,9958
|
|
39
|
+
foxes/algorithms/iterative/models/__init__.py,sha256=3lMBUOzq5bKNQBGoV8byVQ7_Keyk1GfwFZDUwaafGsg,152
|
|
40
|
+
foxes/algorithms/iterative/models/convergence.py,sha256=5fCeTMisYEhgvPRbLKMK0XYsSSr2xWqqzB-pUBrIjYk,6466
|
|
41
|
+
foxes/algorithms/iterative/models/farm_wakes_calc.py,sha256=8xSDI9u5deiud80VKyFmXCOT_0THIKSIRPqnGK2wfr0,4946
|
|
42
|
+
foxes/algorithms/iterative/models/urelax.py,sha256=412fHSpi_4MATE1qRzqcZDFff6iJpV1h3QIBL_7giQE,2076
|
|
43
|
+
foxes/algorithms/sequential/__init__.py,sha256=2o05IH9XePnqxNEAn2Fr1qiCM6OooqmH2VtmdJXtK0c,94
|
|
44
|
+
foxes/algorithms/sequential/sequential.py,sha256=BL2YHZtBtoLdSj-HTPyG81ObfnL50faj__R8n4QvQLI,12349
|
|
45
|
+
foxes/algorithms/sequential/models/__init__.py,sha256=OneaRLxMPzVWLKL9cR3JIYHojfzVX_CQaPv-LP6mCZI,69
|
|
46
|
+
foxes/algorithms/sequential/models/plugin.py,sha256=HhCeHM_YoJRMXuZKa8rXUJZDhWf5rNl28_UfDLSGWvA,1330
|
|
47
|
+
foxes/algorithms/sequential/models/seq_state.py,sha256=J1PorBVV5xZFWobHvCrGDCD-q7Egz_Op1p4PDiacBy0,3654
|
|
48
|
+
foxes/core/__init__.py,sha256=3dOuKrFeSM6fCMxfLxTbzUsBPVTZiRp0sFhnibniBko,1021
|
|
49
|
+
foxes/core/algorithm.py,sha256=ZxqC8yud7hXJulHS0SE6lg41NvvQfDiqRRDZQDhUNes,26521
|
|
50
|
+
foxes/core/axial_induction_model.py,sha256=U7g8vmdKBS4xVYXVpD-uNDnKUnpFXccRTWB5LOPDGaY,498
|
|
51
|
+
foxes/core/data.py,sha256=g5_vOSaTWSvysIQes2xoiV4Zo2Nu9ZKkQaXx-FZNbA0,21888
|
|
52
|
+
foxes/core/data_calc_model.py,sha256=Hhl2ZapafsIvq5z_YWlGqB3kkF64txohU_MHlfHAvpk,1334
|
|
53
|
+
foxes/core/engine.py,sha256=yyX1dN8tyMy-AdyQrkZMXhdw0JIy5ihTa9dsBf-wfXk,19764
|
|
54
|
+
foxes/core/farm_controller.py,sha256=h6xGoRuXQjLyC9LFnup8wbEtbmL7unlhbX9B2lKGCBg,12830
|
|
55
|
+
foxes/core/farm_data_model.py,sha256=xtvRkDjSCaocJrmwUQ4VanH9stSQzs9zLT43kKs1cfo,7301
|
|
56
|
+
foxes/core/farm_model.py,sha256=ogFahCjC2dIBcjnCMmy0cTGulKTDA2ufFUzODf0-KnI,265
|
|
57
|
+
foxes/core/ground_model.py,sha256=SmOfNfGwyFGLFxbwYWEDhxIRiseXjvQULPrGDhN37ds,6803
|
|
58
|
+
foxes/core/model.py,sha256=caB8mOmvDAh4MSeoHu1nGdgyzCR2kbbDo8xxRDaVe_Q,19620
|
|
59
|
+
foxes/core/partial_wakes_model.py,sha256=iWbIoqZXwDeA43VbG_06PLmpS00pNPPaZUrUsHALxvk,5688
|
|
60
|
+
foxes/core/point_data_model.py,sha256=uS3dDUaMF-p9FPkgEK0LNx5zq1euv1LtPzTAZ8WWmuw,7022
|
|
61
|
+
foxes/core/rotor_model.py,sha256=ZMi0KHF-I4F_ZH-c1--s0Y1IkBFtGzIx4F5mz0Wyl8A,13157
|
|
62
|
+
foxes/core/states.py,sha256=otcz9VmlaFEJbVLVB4BBem5a66n927tCl_VM9L1YhH4,8764
|
|
63
|
+
foxes/core/turbine.py,sha256=P5qPKmV1qohZdAKW4lPiUerQkRDTxUOhsvBPQqy8mBo,3054
|
|
64
|
+
foxes/core/turbine_model.py,sha256=IcsU848QNHbUhDN5oqd7VnVWKx_VM5UwRhlPsWK_njw,2049
|
|
65
|
+
foxes/core/turbine_type.py,sha256=tsBz97e_D6Fj18J33bYE-3Vk13zoONZHVI_HlaTNjEU,3635
|
|
66
|
+
foxes/core/vertical_profile.py,sha256=pgjari78N2CHZOWnidQ_7KGsSs4lTFP9isn-w6e1Yro,1642
|
|
67
|
+
foxes/core/wake_frame.py,sha256=2QN_w1iQY7_ZqHO5sPXGR_UOM8VH7jcaJ8CRWVG7CvA,9649
|
|
68
|
+
foxes/core/wake_model.py,sha256=Snr-bQeCU638n0HWM_T2zvj0G4SuTDA9ZSVqJb41dA4,8076
|
|
69
|
+
foxes/core/wake_superposition.py,sha256=FKVMe2WpXgDmJbM-Sv1teEJLJs9dBZjajB9-r2LacLs,2812
|
|
70
|
+
foxes/core/wind_farm.py,sha256=iYetYGFPaPz9Rh-2bLoeknOCiromXqlicZ4snRtSEIc,1755
|
|
71
|
+
foxes/data/__init__.py,sha256=efVzdUkpjcgmn8nF8eLAr5HCm1Ym7YF3JomY_bXNVts,161
|
|
72
|
+
foxes/data/parse.py,sha256=x71oWLyvVsMJ7XVL9VRQXZbflnTXqBaxyBdoMQdZExs,2947
|
|
73
|
+
foxes/data/static_data.py,sha256=k5ey-hJWMJTjRZnW5gaEj9dayxAClOBdbM14-IpON60,858
|
|
74
|
+
foxes/data/farms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
75
|
+
foxes/data/farms/test_farm_67.csv,sha256=TwHt8NVuyP6p2G1VaM_Mi4ENBaHyg4eF6jz0zXQQDro,1872
|
|
76
|
+
foxes/data/power_ct_curves/DTU-10MW-D178d3-H119.csv,sha256=71C1HTf9QtAvavYLwo6US-JmEGyiByrnvZPysua8muE,410
|
|
77
|
+
foxes/data/power_ct_curves/IEA-15MW-D240-H150.csv,sha256=ITmkbLIG-jsAoxg1eYgJEbxohEE414pRUO7bzwkv6VU,300
|
|
78
|
+
foxes/data/power_ct_curves/IWT-7d5MW-D164-H100.csv,sha256=K9yAhgkCZfRBKZibxKbHtWrKg5mIHnMCswdOVd2uyQ0,851
|
|
79
|
+
foxes/data/power_ct_curves/NREL-5MW-D126-H90.csv,sha256=u2b6LUCCKL6bYn2lNrB02MqBnwT-veL4CCi6Km4am-E,401
|
|
80
|
+
foxes/data/power_ct_curves/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
81
|
+
foxes/data/states/WRF-Timeseries-3000.nc,sha256=ZB1b-CTCu_yiLH4sKhQFmb47O-pOh7Ab2qyhx6P0Z5I,453633
|
|
82
|
+
foxes/data/states/WRF-Timeseries-4464.csv.gz,sha256=bjZxvnVp_iyVmIhd-N9lE5TJUZQvunsuueVXu_MnLpk,427815
|
|
83
|
+
foxes/data/states/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
84
|
+
foxes/data/states/abl_states_6000.csv.gz,sha256=wzbMKNk3jZ3sRlV4aYJSv_ycncEryXaFT1uQ3oNYJSQ,126124
|
|
85
|
+
foxes/data/states/timeseries_100.csv.gz,sha256=7jIJPuseoMyc6kB-4JTzWJuPmugfXjg5gP5AKnvOdIs,501
|
|
86
|
+
foxes/data/states/timeseries_3000.csv.gz,sha256=e6hkBMl2oQ0y9zy1I2uh3xyv4YyH9NbRnLwbR4EU1Jc,29085
|
|
87
|
+
foxes/data/states/timeseries_8000.csv.gz,sha256=CzayW5CtnP9Y2kxCE4jlsDZwr6G_RMfacnp17mUUQ_4,78694
|
|
88
|
+
foxes/data/states/wind_rose_bremen.csv,sha256=ixSf8-_esjFsBtfT3Y92k67QrJPDx6dY3uBhOSV-hj4,4943
|
|
89
|
+
foxes/data/states/wind_rotation.nc,sha256=-ZLfpxa_BJpRUABgJsK5I7c8ogAWTrYNE18un7FxhnU,10990
|
|
90
|
+
foxes/data/states/windio_timeseries_5000.nc,sha256=NbC55qSTSprnawc6_9NalvlM6OEk9kqE8d-tsXAKvzg,78601
|
|
91
|
+
foxes/data/states/winds100.tab,sha256=X2Cw0H_-HzYEcb7ezn3ntWlKQXIxrWLNONVsrkmsof8,3061
|
|
92
|
+
foxes/data/windio/DTU_10MW_turbine.yaml,sha256=DAvIj0-313fgUWCygp6m96EVfr3QUUVpwjCVa430YAU,732
|
|
93
|
+
foxes/data/windio/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
94
|
+
foxes/data/windio/windio_5turbines_timeseries.yaml,sha256=M4fX-Fp3oHT-jzfK25dxfGUGq5v91aZpM3kK6A3Yl10,1921
|
|
95
|
+
foxes/engines/__init__.py,sha256=3lBlGmFw97bBM5aFhhVZSHTqlq0Ps7F7PS6twEnpSwU,408
|
|
96
|
+
foxes/engines/dask.py,sha256=FLVgaG5bGj8jrCQd1BiDH-WyujPli0qmIhyXPXB-pGU,29759
|
|
97
|
+
foxes/engines/default.py,sha256=W5vzdX53THwwSDty8FceGtPKMYdUJxpr3TexGkq0uNs,1869
|
|
98
|
+
foxes/engines/futures.py,sha256=_VQXNLb0AxTtTouy96LhBnwPldHiG0xldHjpChKyNxs,1503
|
|
99
|
+
foxes/engines/mpi.py,sha256=lIIfdA-NVqOaDO9iwDhHP4LjEekyff7TSsMcmkbVcy4,821
|
|
100
|
+
foxes/engines/multiprocess.py,sha256=trx9p6sin7lS9wj0TwSL473B7vALXeWc_8-UELHb9x8,1522
|
|
101
|
+
foxes/engines/numpy.py,sha256=c0SmcGLecB9XAZOlak-COpwpn4mgMoyr29CztmquU28,5185
|
|
102
|
+
foxes/engines/pool.py,sha256=IePdCy28O3GFY9yhKG51BlxXM5V-6XbmEKcq4hJt4ew,7373
|
|
103
|
+
foxes/engines/ray.py,sha256=J6GDwiXTfnRrr2DylZlW0BC0S07tvlTJG1lb426BI_8,1646
|
|
104
|
+
foxes/engines/single.py,sha256=L8QL4s_BHvLSz8h7oBt_okPTMyWOY9NfBNVeJqAo7JM,4024
|
|
105
|
+
foxes/input/__init__.py,sha256=qi7BB7FK71gKex5_IFD5a6pvLLLnRWQV9rYKInnpf10,126
|
|
106
|
+
foxes/input/farm_layout/__init__.py,sha256=rEY4-10kZCNxXM43iJTDguGvbPndXaRSLpbKnaoSqrU,314
|
|
107
|
+
foxes/input/farm_layout/from_csv.py,sha256=nJT27SorW_w4MlFvb1txY0q8iWw5AmSzGiMGorxSDAI,3365
|
|
108
|
+
foxes/input/farm_layout/from_df.py,sha256=F5CKXHyL2rcrpCQqqqOr2HHX-BJ5VU1JQymzywmkBtc,574
|
|
109
|
+
foxes/input/farm_layout/from_file.py,sha256=SNdJ1DVb_ZMQS48TB-TELOLc7vqU9aGwl9jIe1iaGtU,1578
|
|
110
|
+
foxes/input/farm_layout/from_json.py,sha256=fM4mpl2JYZU-Ox8DsBgBwKB9XVywXuhBVWSj3EmV5Ko,1642
|
|
111
|
+
foxes/input/farm_layout/from_random.py,sha256=6ZYKbdV6x11MbQRAHs5nVYBAG-1K295xsMXtfCfAfts,1126
|
|
112
|
+
foxes/input/farm_layout/grid.py,sha256=rjdmSpDnHvqIqnGibLwGL_okl1hbFLOgnwf5q45y_jk,1467
|
|
113
|
+
foxes/input/farm_layout/ring.py,sha256=ghfLkVVQciWDJJNqGs4jZVnM0XCII9ae3hAh9Wb4938,1455
|
|
114
|
+
foxes/input/farm_layout/row.py,sha256=Bx9woFNkXbFXJg51GX2p2PbVgdxV3Ckxr-3TkB04PS4,1198
|
|
115
|
+
foxes/input/states/__init__.py,sha256=Se7F2n3ZJZd6lsdwG0peIOJUKjoGPqKwfVI2gw1oHQY,564
|
|
116
|
+
foxes/input/states/field_data_nc.py,sha256=rzMVIqiflxOi3m0YdauwmRhLylusgSVbmGN46DZ60gY,22419
|
|
117
|
+
foxes/input/states/multi_height.py,sha256=ghGvRQtjE6dKwPgw1_2ckqgkxxGi-GFupzBIUQ2xETE,23407
|
|
118
|
+
foxes/input/states/one_point_flow.py,sha256=3O_FpxbmZD565hK5qSAq89k6qTRXW3XAzfrm4MAbNm8,17703
|
|
119
|
+
foxes/input/states/scan_ws.py,sha256=if6YYWkvaljwgx4BR7k3KeE6saAO59VnE6kyinrsPOI,6166
|
|
120
|
+
foxes/input/states/single.py,sha256=dxQKBIQ0AbRHp5Osx4Ykaw43pBFAFTLAazIDPm57F1o,5987
|
|
121
|
+
foxes/input/states/slice_data_nc.py,sha256=k1z30ywXw0-Kvb7I-oENNDGidirVO5pQkduZyyAkylw,21532
|
|
122
|
+
foxes/input/states/states_table.py,sha256=YaocrL75-LOx4b908-hch9jG1VmgPBMPD6ZKCdZRcMI,20147
|
|
123
|
+
foxes/input/states/create/__init__.py,sha256=Ocqzmr9SOefeAvGX5DgawsPXfNdGzWOZ2ssvtqEmtAo,134
|
|
124
|
+
foxes/input/states/create/random_abl_states.py,sha256=K442PZd2MkdRi72UhSRYQbR4IXGaU2FQybo1IO07-5o,3334
|
|
125
|
+
foxes/input/states/create/random_timeseries.py,sha256=gJpaQ4nEXxOjI4hp3xjNcVbCsmZUm-brXUxoqDb63WE,1266
|
|
126
|
+
foxes/input/windio/__init__.py,sha256=c6XnSJXXXI-HzUzAZxDtzot3gWpf3vpExyHhkXrKS8s,342
|
|
127
|
+
foxes/input/windio/get_states.py,sha256=3Ds2iaCb6NnY2U_q8vARfmQfOpRFTTBcGSORB3WSOv8,6057
|
|
128
|
+
foxes/input/windio/read_attributes.py,sha256=aSmTP90JDoXjtVlllCVRZZdDOWnldym2AaASJkdzdgs,12749
|
|
129
|
+
foxes/input/windio/read_farm.py,sha256=qIbEWq61cE6-YSQrEaqZVqNG2yboGc9VhbZfPLf5dGw,6076
|
|
130
|
+
foxes/input/windio/read_fields.py,sha256=NeLTyHDhFXrRVO-_4_57Mc9PAEiDqkRJ2FRRxzJQRIA,4630
|
|
131
|
+
foxes/input/windio/read_outputs.py,sha256=fjpRYsrpjcZLbWMI5Md4g9ZbM9tiMzemblNay0Xctas,5949
|
|
132
|
+
foxes/input/windio/runner.py,sha256=wBYW88I1g4GoTTOi5WTCiALcPuc0XgrlXHPxz2fSnU8,5611
|
|
133
|
+
foxes/input/windio/windio.py,sha256=YZpiX7dCY9368ackQcPmgg4GhBjPx692gN9Fu9ZSf-U,5597
|
|
134
|
+
foxes/models/__init__.py,sha256=8eOGCieghW7ILjpkxMHzp4GN2zFF3xlKPl7Df7sMxoU,434
|
|
135
|
+
foxes/models/model_book.py,sha256=NOht0AfOggeKX0ybdpJOu0FMbwD9kSQCM6yh1oOM9Nc,24965
|
|
136
|
+
foxes/models/axial_induction/__init__.py,sha256=CdYOzu45DWu7xrzpRpFIQ6CGZIMABjjy_lqAszjj9lg,78
|
|
137
|
+
foxes/models/axial_induction/betz.py,sha256=rAaq7pnu-FmfYh61BU5Af1h4_bG2AAimP4Qah1aZo88,894
|
|
138
|
+
foxes/models/axial_induction/madsen.py,sha256=_-ycfh8SnIpCKWm1uwx5VH7f49FQvR0y1Nbb_U8xWyU,1403
|
|
139
|
+
foxes/models/farm_controllers/__init__.py,sha256=oDdW_fA3GSkJBzn9Vsd3T9bBVhB9-j_IglFjYV4G2rU,72
|
|
140
|
+
foxes/models/farm_controllers/basic.py,sha256=6pinNXiyfoG3apXhqQWcnxx4vN_7Q63YryXX5Z7kTE0,249
|
|
141
|
+
foxes/models/farm_models/__init__.py,sha256=WoC1Cmeo5-LLdC5I_S9hwZhZOtBnWDL6azjaUTcoOuY,66
|
|
142
|
+
foxes/models/farm_models/turbine2farm.py,sha256=LuK-qAy4aVXBqFCM4-1qogwAA4qfHsjYRFsrZy_OUro,2276
|
|
143
|
+
foxes/models/ground_models/__init__.py,sha256=RR6p8B4jacbzcK1LwnSUqYFXi9h7Qx4RhKiTTGXKxZo,82
|
|
144
|
+
foxes/models/ground_models/no_ground.py,sha256=pDuHAFHHgpEVIi1spie9ooR7OG-4l8_KPrGYQhdCT3I,149
|
|
145
|
+
foxes/models/ground_models/wake_mirror.py,sha256=qpj6IFgXAIw2nwteDyTGHR95Lv2p4Bjwen2A6HtQ2AA,4465
|
|
146
|
+
foxes/models/partial_wakes/__init__.py,sha256=qlV4zgjTSBfpz4dVh7DSoxCZXkaK_-dW43t8-LcDYEg,245
|
|
147
|
+
foxes/models/partial_wakes/axiwake.py,sha256=OqaIJl9alkFbTVXYLCjl6odCtuHYIT_yckk1PpAUTGQ,6549
|
|
148
|
+
foxes/models/partial_wakes/centre.py,sha256=mIX0eiPJUFCJ82gjZCrf6ajRmJp7CgKpM7QQXiE6UEI,963
|
|
149
|
+
foxes/models/partial_wakes/grid.py,sha256=SOymgn0MGvUFSAWd9YKDCzXYtizsuiNV-yP0oqrKS1E,600
|
|
150
|
+
foxes/models/partial_wakes/rotor_points.py,sha256=qXBP-0TAjSONF80W-9Sh9RGmEOmakc0FaqZTaeucVI0,2785
|
|
151
|
+
foxes/models/partial_wakes/segregated.py,sha256=iGa9wDTGkSap5L5Q63o3UMeOJN2Nq6qxYrw-hJ-E7kU,4370
|
|
152
|
+
foxes/models/partial_wakes/top_hat.py,sha256=TPk9GoyoYDbxxZbcFufNDyNu-Yhnzn4GUwS7X3WelbQ,5557
|
|
153
|
+
foxes/models/point_models/__init__.py,sha256=kb6pBrrPGWWKcnlAqOdBLMT7l-Y7yFAitrUr4eFiWcM,131
|
|
154
|
+
foxes/models/point_models/set_uniform_data.py,sha256=TA6elvV0NqrJhYACdgLmI_FMZnlRHBHgVf-wAVMr7mI,4474
|
|
155
|
+
foxes/models/point_models/tke2ti.py,sha256=0mrhpGy0xP_zCqp26_ts81WAHdCqyz_fC6A9BgXIrrI,1407
|
|
156
|
+
foxes/models/point_models/wake_deltas.py,sha256=nwpallRan2tfSPU9acESHiSg30_gpShsDd-nU65FAIA,2035
|
|
157
|
+
foxes/models/rotor_models/__init__.py,sha256=peLe_ykp4e_ls_iGDa-1z7-jCTtjurE3ig2R9tJy7Bg,114
|
|
158
|
+
foxes/models/rotor_models/centre.py,sha256=xmEip2GAgLlj0DAgJNXQ_huBxy4OYK03buv4SQDVp2g,5632
|
|
159
|
+
foxes/models/rotor_models/grid.py,sha256=TL1ll6n_nUctwGyOPzUpLEmxSX4ZMDveh4B6kC5fRe8,4437
|
|
160
|
+
foxes/models/rotor_models/levels.py,sha256=siiM9Lcrm6E1Fe87SJh39d2Wiz9stssT6x0wUB3ZWjc,3949
|
|
161
|
+
foxes/models/turbine_models/__init__.py,sha256=eCS66-AS3ivW9qm-yPPfO_0_eHQox5Sp7bQantVPwg0,428
|
|
162
|
+
foxes/models/turbine_models/calculator.py,sha256=R5EwXvRCWg8zwrRGDmmX-SnCi6XraBmeQzgbHKkcRv8,2776
|
|
163
|
+
foxes/models/turbine_models/kTI_model.py,sha256=CbHvO6r5Xy435RAsOMjzHfgtHCAoWDOkXyfy1K4ydGQ,3521
|
|
164
|
+
foxes/models/turbine_models/lookup_table.py,sha256=iUU4wX6KtPHRhvaJuS0LhnD0sFuQYLMy2dEkl4L-LCg,7231
|
|
165
|
+
foxes/models/turbine_models/power_mask.py,sha256=OX0LFS3fO4OjOjADE-Q9oeeyFuzHl6-F6FKzbn_Td9k,5848
|
|
166
|
+
foxes/models/turbine_models/rotor_centre_calc.py,sha256=I-0zH6RSkN9iLH3WQGpOLMouh3IxJrPh4HXwXA-M8Fs,3542
|
|
167
|
+
foxes/models/turbine_models/sector_management.py,sha256=v_m95oUHhxdlUVlC2sg4S-2xJtUlUogeTWj8gmdqKMo,7114
|
|
168
|
+
foxes/models/turbine_models/set_farm_vars.py,sha256=DuEJ-SSiQqnSlEKMqwb7qrQRXYGZ5_8GulFH0vdjiLU,7728
|
|
169
|
+
foxes/models/turbine_models/table_factors.py,sha256=-JmhxR5fEsr0YJr5w9UU4_i0pdsrBK4PvfN1AtOns9k,4666
|
|
170
|
+
foxes/models/turbine_models/thrust2ct.py,sha256=mr26P7PoPD7QIgKCxylL1aMsr3g-ulNmP08T5g52MGw,2289
|
|
171
|
+
foxes/models/turbine_models/yaw2yawm.py,sha256=7AE7J9UAeSQq4ZC_K9W0y6WqCie1eWpYcgHmcAhVvic,1601
|
|
172
|
+
foxes/models/turbine_models/yawm2yaw.py,sha256=42NFAi3_BtJfeHa3jC9L9dbRVSiDQQK4Uf-5MZdf0Vg,1592
|
|
173
|
+
foxes/models/turbine_types/CpCt_file.py,sha256=EnDZE4FH07wh-bFHAtd_Zz0BDKOheM699yeefq1wEL4,2048
|
|
174
|
+
foxes/models/turbine_types/CpCt_from_two.py,sha256=uf4F4c3CXSwjWCOMrDmhMan5hyQm-pMpygeyp5-B7mM,2692
|
|
175
|
+
foxes/models/turbine_types/PCt_file.py,sha256=60k69ACi5D-QaAlpZws0FJJTKeKvo3isEIAIdjWkXtc,10804
|
|
176
|
+
foxes/models/turbine_types/PCt_from_two.py,sha256=FocGRRQ5P7vIaWANX3yJYvLgyiYK9eiKRrhTOBDZPeE,12367
|
|
177
|
+
foxes/models/turbine_types/TBL_file.py,sha256=HAj_SYnjfugfMpret-zqsqkeP3SicHwAys4FnbXMuak,1764
|
|
178
|
+
foxes/models/turbine_types/__init__.py,sha256=quo_ttR_CugcU84QQ0AWHm8rEe53COV7GjQA-C7HXYM,362
|
|
179
|
+
foxes/models/turbine_types/lookup.py,sha256=3qUCaNkl1MytEl3uaORhEJeTFdG8pCFhHmvUeOCGCFQ,9251
|
|
180
|
+
foxes/models/turbine_types/null_type.py,sha256=svHqmx8TJ0Nvo_s22gtaMejxAxPwGeMD6DbDFR5kgKs,2415
|
|
181
|
+
foxes/models/turbine_types/wsrho2PCt_from_two.py,sha256=CVDcoOrgdELLt8qrgVLlQ-pN2o-3LpbDz3fHZKgCpzo,11641
|
|
182
|
+
foxes/models/turbine_types/wsti2PCt_from_two.py,sha256=Rmw_Smm-T1X6df3gNLtgGWrBCFvNIGntx-ohexc2HBM,12785
|
|
183
|
+
foxes/models/vertical_profiles/__init__.py,sha256=hWUjIIuDqCEFypcS6CtiQpHiKpfRyEJjVc1GjG91Mso,352
|
|
184
|
+
foxes/models/vertical_profiles/abl_log_neutral_ws.py,sha256=2U5iiwii4DMbKJg5v2a6ICf-4ZIc7hpBUfZStsi8h-o,1849
|
|
185
|
+
foxes/models/vertical_profiles/abl_log_stable_ws.py,sha256=Lxn9WoBegi9UXMAXMJdraHINJ8fsGEqOj5Lxo5LywHI,1937
|
|
186
|
+
foxes/models/vertical_profiles/abl_log_unstable_ws.py,sha256=V6VX1xpnbFP3auL7Q7xRRvzWXwNm1f5GKEoRZo-RC7M,1949
|
|
187
|
+
foxes/models/vertical_profiles/abl_log_ws.py,sha256=MirmvLpBe-6s5YgHLBJldlnVwIDeY0X1BfVhyPkvhOA,3396
|
|
188
|
+
foxes/models/vertical_profiles/data_profile.py,sha256=R9KkADNILXftfIPvcwiLHRHs7nGnEXiyfXAO0llzVQo,2906
|
|
189
|
+
foxes/models/vertical_profiles/sheared_ws.py,sha256=kC108pLPa3fHVJXQugU6R1VKz-JdXY1mhX2PQPmG-wI,1225
|
|
190
|
+
foxes/models/vertical_profiles/uniform.py,sha256=bG0vCiBZqUiJQJreRuTUxb0X1WnJW6pGdpPoQd3A3WQ,1187
|
|
191
|
+
foxes/models/wake_frames/__init__.py,sha256=DAbiSlvlJWlnb58KQ8e6RpMBN9_ukVxPLIZo0Zc0hQs,287
|
|
192
|
+
foxes/models/wake_frames/dynamic_wakes.py,sha256=lizJvyjt-OxYAwylK97itRrCfgHuANJRQzcijic3Ki8,15182
|
|
193
|
+
foxes/models/wake_frames/farm_order.py,sha256=cO7K6b1Jei8k68e4UMcOLw-F4Ak4ZgME0JtZhYI64D0,4040
|
|
194
|
+
foxes/models/wake_frames/rotor_wd.py,sha256=LqYuq0sq8RPTGq-U9rFZiSp2BCVxNyeiIyt0QbHxEaU,3810
|
|
195
|
+
foxes/models/wake_frames/seq_dynamic_wakes.py,sha256=A0BupE2wCRzaSfKuteulQw9dhi_8oNz6Yoy42d6atCk,10452
|
|
196
|
+
foxes/models/wake_frames/streamlines.py,sha256=9CSvc9o9k1vDy1shxeOVNMYsUuTaiv_S9cOt6o2bu0c,8983
|
|
197
|
+
foxes/models/wake_frames/timelines.py,sha256=9yiBI2b1aoiqO37U1F9gR9UwDClZl_TU_zzVrbOh5Mw,16980
|
|
198
|
+
foxes/models/wake_frames/yawed_wakes.py,sha256=SzrBG3Fatfi0dB-kLj05ofpwEW2O4D9Zzf8yoNAQJ20,9131
|
|
199
|
+
foxes/models/wake_models/__init__.py,sha256=hwoJF5RzDlr2g5zKgZ532H93F6Hcoo0Gfkc3XLiAJ1Q,253
|
|
200
|
+
foxes/models/wake_models/axisymmetric.py,sha256=3dS-1Br9ZvDaGa_KVy0sotnuMku4QpL_Nz3T5dyQXm8,2788
|
|
201
|
+
foxes/models/wake_models/dist_sliced.py,sha256=v-B-mIYxY5CysOU2tFclwmAVlwS4jzRpdMX3ED34YzI,5806
|
|
202
|
+
foxes/models/wake_models/gaussian.py,sha256=hchArmoqbdUthh2q7D9PEfC838217ySDHc2fbvtihD4,2760
|
|
203
|
+
foxes/models/wake_models/top_hat.py,sha256=hONEnfcza7_4OSwa9WUnX4xTdxPuXndQK_4DeaqqxQY,5891
|
|
204
|
+
foxes/models/wake_models/induction/__init__.py,sha256=kl5hRnV0q1zyaqTdwhEdsNiOV-Fu0ySRIUQH418npyI,231
|
|
205
|
+
foxes/models/wake_models/induction/rankine_half_body.py,sha256=LKYNAiamULPLQeohla8Nb0uMJqrsry0jkLbXWUzcQes,7842
|
|
206
|
+
foxes/models/wake_models/induction/rathmann.py,sha256=SFLqMFjcwSM2zSdyK8M60q8pB98ffixDWuvhRH5FYwE,7751
|
|
207
|
+
foxes/models/wake_models/induction/self_similar.py,sha256=q7PM8mLjH8BW2_Qev_3yoAwchRy8cCoG6ps6mlYnIGQ,8444
|
|
208
|
+
foxes/models/wake_models/induction/self_similar2020.py,sha256=D8yQxa5NQFII2gvKggcbJvuSDnrIRSy0Q5aCC3DoTPc,1634
|
|
209
|
+
foxes/models/wake_models/induction/vortex_sheet.py,sha256=NPCPNKpEiqdD0RMn-p81cndO5rLLONHMvUJn9bo3F6g,7394
|
|
210
|
+
foxes/models/wake_models/ti/__init__.py,sha256=EOlqFHL2mzcKGFRZqlVYTiqGJqPb6dx7I5UWUDshy2U,125
|
|
211
|
+
foxes/models/wake_models/ti/crespo_hernandez.py,sha256=ND9zOW2AKAV1LdehX4vyy4_gBIeObZZnEbXfMnkC05M,8890
|
|
212
|
+
foxes/models/wake_models/ti/iec_ti.py,sha256=8efoMQibs8zolXF7iZALggdFL6fHeRdL5ikztRjxENI,7006
|
|
213
|
+
foxes/models/wake_models/wind/__init__.py,sha256=X_QdQ_f3fKCIrZZ9K_CzzsHSl13AyvPRcWdEZ1y9Bk4,223
|
|
214
|
+
foxes/models/wake_models/wind/bastankhah14.py,sha256=Ow4GY5dqOTEMCollN1T8N3MYLm-dRGjxhud9b8luaXY,5226
|
|
215
|
+
foxes/models/wake_models/wind/bastankhah16.py,sha256=Ge4lGxM2QmkQ2P-3kdGW_HdeAGCC0XQunrZvW9TD1zY,17662
|
|
216
|
+
foxes/models/wake_models/wind/jensen.py,sha256=EG3z2kAuhyih-H0Rj1lQOVaz3o8qUI6A4xv3RfUY-Bk,4273
|
|
217
|
+
foxes/models/wake_models/wind/turbopark.py,sha256=df6Lfw2NU8DcJkEXJB-R_ULwJu1MEO5vU933EM_4JOc,14638
|
|
218
|
+
foxes/models/wake_superpositions/__init__.py,sha256=p_pI_bUC-JjpGfg-7hyo3EpB_qVYqg5CCFt_vSG9DF4,371
|
|
219
|
+
foxes/models/wake_superpositions/ti_linear.py,sha256=JlYTYN9yuJr4w4TUNWZnu8jTN6s5aXnnsJBWa-OnvZ0,3912
|
|
220
|
+
foxes/models/wake_superpositions/ti_max.py,sha256=Ak-2FNQjDMRRlXbdPBDWGlzq13CtDV2B4EWjPPiY87M,3937
|
|
221
|
+
foxes/models/wake_superpositions/ti_pow.py,sha256=zw_TgQAyOq3msAOjS-xfKawzMIU-vPZJc85tEzoEGrg,4161
|
|
222
|
+
foxes/models/wake_superpositions/ti_quadratic.py,sha256=RaKZZd0M7d4g8aJ-nJeDfIFKS8rsq28wbrcZapnsxAA,3927
|
|
223
|
+
foxes/models/wake_superpositions/ws_linear.py,sha256=Yumm_fNGnC0tYSGePyfrcUuWiH2n9JkWmdjdvAtmmBo,9183
|
|
224
|
+
foxes/models/wake_superpositions/ws_max.py,sha256=XzNbqa8bmkMwMkasnUml6x3j0-k4C5nXkeE6FhkltnU,9409
|
|
225
|
+
foxes/models/wake_superpositions/ws_pow.py,sha256=t2nAUjTK6hPstyGPNeJH9dqgbhOmQ91TXQPJDs1aDTw,9630
|
|
226
|
+
foxes/models/wake_superpositions/ws_product.py,sha256=yUKLU_C_ijewncuiXO6Uu_VfcxW-JadHBwg44gxZJS4,4664
|
|
227
|
+
foxes/models/wake_superpositions/ws_quadratic.py,sha256=3pWDd-HSVD4_OKQ5YQaUX1RY1KZZu46Q1Xhvf9xp7Jc,9225
|
|
228
|
+
foxes/output/__init__.py,sha256=HXIah5WbE_aBON9geFT_2IF2N1AQhlOPQro82I6OgUM,746
|
|
229
|
+
foxes/output/animation.py,sha256=zljekg6k2DjqVaBw0OamB4i3eopi6g2j0a12B9hx7VQ,2637
|
|
230
|
+
foxes/output/calc_points.py,sha256=QRZuZ6joHbhkEYDBX87QgEWwMMYbohAK3ZFuVwErK3Q,4497
|
|
231
|
+
foxes/output/farm_layout.py,sha256=ymHWRKmeZSl1g_M3WEAk7rKTZTcYB9eE6il1getYDN4,11265
|
|
232
|
+
foxes/output/farm_results_eval.py,sha256=RQ04g12vMSJxCmQTb6BdipNDe0S9GzNkEYlihe8zXjY,17664
|
|
233
|
+
foxes/output/grids.py,sha256=odgk-JqB1ojV2tZPLgJnujdGrJNi-6t_QR32x4cmuTs,22395
|
|
234
|
+
foxes/output/output.py,sha256=wUxKlNbfjwqDzU-lTWfIZMfK-h_R3rpmthSlgunTyw8,3460
|
|
235
|
+
foxes/output/results_writer.py,sha256=DcY93yVaxf_6NjiVgAwez2PA5uLZ7Kgn4-GAzKFFdho,5832
|
|
236
|
+
foxes/output/rose_plot.py,sha256=cJkGMDsgNiBb7be0DQ3nBBq0FJdwtXvnDSAq2WrxgGo,11090
|
|
237
|
+
foxes/output/rotor_point_plots.py,sha256=R44fcseBC5g8YsuR4irRrvYN8Nj94_lpJgpsBst2kjE,3165
|
|
238
|
+
foxes/output/round.py,sha256=s8YcXciCtaMY14SnG3ebYccyjQ2IEln256SwN9oJnPI,351
|
|
239
|
+
foxes/output/slice_data.py,sha256=YT8xGOI8iuywI19BpTt-Ok1B9HWla8x4LzRcZFcVE88,33798
|
|
240
|
+
foxes/output/state_turbine_map.py,sha256=KJFHcTsY88OqBiWrv8z-mTGAltjEQ7rPkeed9P_Kl5A,2594
|
|
241
|
+
foxes/output/state_turbine_table.py,sha256=NGBcZ1YzI8ewPJpuETdGvET7s1mENAiVqe3Gi6qs3oI,1745
|
|
242
|
+
foxes/output/turbine_type_curves.py,sha256=oZm9YGLLL-makFZDFucCkjXoqF2bkhFj9yJRqWM1Xk8,5526
|
|
243
|
+
foxes/output/flow_plots_2d/__init__.py,sha256=Stbwt5sP86fRA0ii3jnX2q0h5zgNLKmwFfpru5jof30,65
|
|
244
|
+
foxes/output/flow_plots_2d/flow_plots.py,sha256=gRGAtB4JAGZ_NkT3osHDaLOg4bYGhhY3u05gu9yA9z0,29931
|
|
245
|
+
foxes/output/flow_plots_2d/get_fig.py,sha256=gGMOfzNCukq_l0FZLmi3zSBl0ANkQi2WoKaGTpB6xhc,6169
|
|
246
|
+
foxes/output/seq_plugins/__init__.py,sha256=d6Tl5NBVV4MaZwXtPgyxBXBnh7uCBFTbNzRU6IXCmQQ,110
|
|
247
|
+
foxes/output/seq_plugins/seq_flow_ani_plugin.py,sha256=yAC-ZA_rkIOCHc1TN3uQYW0Z1CbxLTgP84Lrfr4D8cI,3654
|
|
248
|
+
foxes/output/seq_plugins/seq_wake_debug_plugin.py,sha256=oAijRu9XRjUL9X4lZF-V6jqOfv8omokRp7YMkL1I2_M,3969
|
|
249
|
+
foxes/utils/__init__.py,sha256=Zgz1_iDPb4okUwfcxaMRvXmn3D3jamslFfiU6wk2EEo,764
|
|
250
|
+
foxes/utils/cubic_roots.py,sha256=u2Pf-yHZ6EASpFONMfkv0mvldmd1E1VRZxj69YabDoc,3321
|
|
251
|
+
foxes/utils/data_book.py,sha256=z96QUC9FI7mv1NEFJUkkTcxWqx5Fc9gPeyzPwbFbyoM,5301
|
|
252
|
+
foxes/utils/dev_utils.py,sha256=6vryhcTg8lNXhtZOsQ0F8PTVpmUw250VNE-UyR0G70Y,1241
|
|
253
|
+
foxes/utils/dict.py,sha256=qPHfo_nKevvaAl4fb6qXZYAuH7MGdJGp67yi9P4gn9Q,1483
|
|
254
|
+
foxes/utils/exec_python.py,sha256=Ah20PjCpNDdVzgi79j2Oeh2b-JjyjpQ_EmsUxnI9pLc,1715
|
|
255
|
+
foxes/utils/factory.py,sha256=rxNQFQrOPtkIZCbEbg4zxJKzv7fVBJ3DKl4nEA5G9Z4,19466
|
|
256
|
+
foxes/utils/geopandas_utils.py,sha256=Icx-SXvn1TSqJFle9NOsZcj9qd5J06lvPPyI3S0vRvM,7903
|
|
257
|
+
foxes/utils/load.py,sha256=H3i_l3dO6KECYziQoPXDCtePuYemhD57yivIdsGjg5I,1291
|
|
258
|
+
foxes/utils/pandas_helpers.py,sha256=Zk_PFTyKkJyeIc52K-KJ5Ab6Hv0PJw820vwPgnQmiko,4732
|
|
259
|
+
foxes/utils/pandas_utils.py,sha256=5r3RHjaGu-Vi7DGMBdCDxVeu9nZk46wtPlHRL4l_R_c,4630
|
|
260
|
+
foxes/utils/random_xy.py,sha256=i0AZ04BLL6TxC3Lg1ZfwI_o4zJbHR6hm-BNd0Sydu_c,1376
|
|
261
|
+
foxes/utils/regularize.py,sha256=OnJ88ZCSu289aLHgrOb96j1A9JVvg_7OjZ3lWZAnNHo,512
|
|
262
|
+
foxes/utils/subclasses.py,sha256=bnlZaLgGjq9cQC9dvsxahUmLQQlSmmun35TjWYyX9CA,380
|
|
263
|
+
foxes/utils/tab_files.py,sha256=H50IpLaqffJn9A51orCGc4fOhCOzoNUYDUKek4OAayU,1811
|
|
264
|
+
foxes/utils/two_circles.py,sha256=xkj-SA_x-VXY7KtmSU4lcV4gFdplyhU3sBAC9vTdkF4,2810
|
|
265
|
+
foxes/utils/wind_dir.py,sha256=6W0njWDvnIdOOjwqcMr64MW9ApjdtFA75blVUxirPMo,2823
|
|
266
|
+
foxes/utils/windrose_plot.py,sha256=O9zLrDzQXIgKdBwzqNkusyA_rMshbk-8ybloIwt8vuY,4589
|
|
267
|
+
foxes/utils/xarray_utils.py,sha256=zAapAWYzKEBiM4h1oABNd4MvVcz-aO1gkymmhG7_uBg,1570
|
|
268
|
+
foxes/utils/abl/__init__.py,sha256=ijn-ubLLlqqH6tTAXFRmBAxJZmVBlTEmtx1cdCCtG4I,135
|
|
269
|
+
foxes/utils/abl/neutral.py,sha256=E4DEhvXvw74BPrYr1MjQjeIaoz6ZOTWVlqScKflm-0M,1358
|
|
270
|
+
foxes/utils/abl/sheared.py,sha256=nS6gxa5cR7B7XcZbEk3rwOvbF6m4cinXAIhhn9gGBBs,446
|
|
271
|
+
foxes/utils/abl/stable.py,sha256=frNsTK6nNhTpWTTyZuDbYPbt-9-ytx50GkT3RnuOlio,1830
|
|
272
|
+
foxes/utils/abl/unstable.py,sha256=K0b1VE2RrOET4_zkYV-dbHz5H3drFWMRkOhdgnAeK70,1611
|
|
273
|
+
foxes/utils/geom2d/__init__.py,sha256=mLjnRU0b0_nrVVUKyWwZFbPyu-k8yWPEM7i4Y4-QK3w,252
|
|
274
|
+
foxes/utils/geom2d/area_geometry.py,sha256=CvkhXqfGM7g_gQKtyeCNg0_Xk5Wf46fipK8H7Bo_Ag4,19120
|
|
275
|
+
foxes/utils/geom2d/circle.py,sha256=xgI9zuOS6rx6NnN56FINHYAh07L0FCDesjpZVwoBA_I,4529
|
|
276
|
+
foxes/utils/geom2d/example_intersection.py,sha256=4e6sjpZEk_bNc462YvwKPzwxdV1B90M82bC63ICV4Lw,1626
|
|
277
|
+
foxes/utils/geom2d/example_union.py,sha256=BKfLt1mtQcSto-qExeMQkq8tQ6kfFXVJ93Cc7DhOal8,1750
|
|
278
|
+
foxes/utils/geom2d/half_plane.py,sha256=kzZD6pkZxZ03MK9WAboWzXb5Ws5dWLQY9GIahD4D9mA,6167
|
|
279
|
+
foxes/utils/geom2d/polygon.py,sha256=Xj7triA5Pe4-48sNSAvGxEXlQGptV161LUpKKCf3YOY,5535
|
|
280
|
+
tests/0_consistency/iterative/test_iterative.py,sha256=L9GOI1gPN2sJ9fSHfDnv5wfMptBT6zjzrOUqlqN2EmQ,2434
|
|
281
|
+
tests/0_consistency/partial_wakes/test_partial_wakes.py,sha256=do2reilY2Vij6Ft6riYAOnHQ-Az5gfgFqjji5Il-ulY,2393
|
|
282
|
+
tests/1_verification/flappy_0_6/PCt_files/test_PCt_files.py,sha256=cKnwvKco3mEU0Hl_Ny2WebvPDlLKqWWunbWBYG-G560,2521
|
|
283
|
+
tests/1_verification/flappy_0_6/PCt_files/flappy/run.py,sha256=wJLKFOKVxOjmncYRarK5EK12HNjpWEUuu3EKgdq-Cvw,2165
|
|
284
|
+
tests/1_verification/flappy_0_6/abl_states/test_abl_states.py,sha256=kghfOZqqlS1Rv9VrpGmsqoTgFEgxE04lxlnPzPAhyBY,2148
|
|
285
|
+
tests/1_verification/flappy_0_6/abl_states/flappy/run.py,sha256=hnPSO_wqk9vYgwNNMWXb_UaYZOCnlwScVlfZl7rriV4,2058
|
|
286
|
+
tests/1_verification/flappy_0_6/partial_top_hat/test_partial_top_hat.py,sha256=JFR7jf46O-nkfq3SBSV5-sWttHUPJ5nirLn7jg8As5Q,1977
|
|
287
|
+
tests/1_verification/flappy_0_6/partial_top_hat/flappy/run.py,sha256=NMtLneJLk6J1DXE59FZ1JAGlh-zBwegtCAq8nB-p13I,1993
|
|
288
|
+
tests/1_verification/flappy_0_6/row_Jensen_linear_centre/test_row_Jensen_linear_centre.py,sha256=zeyBfxGgD4c9YqYNPxhqT2tVz9k3pwKIcx37GWahtxY,2155
|
|
289
|
+
tests/1_verification/flappy_0_6/row_Jensen_linear_centre/flappy/run.py,sha256=xTBI8dssYiqy7WC0IlKonfHQVshUk2ROyCzmecW0hbI,2184
|
|
290
|
+
tests/1_verification/flappy_0_6/row_Jensen_linear_tophat/test_row_Jensen_linear_tophat.py,sha256=HQHwNF8ELBdmR0a6_ECiLtPo99zt32L4eohNWAafx-o,2195
|
|
291
|
+
tests/1_verification/flappy_0_6/row_Jensen_linear_tophat/flappy/run.py,sha256=uhWgRbEbmM5t_ZdcG1U_719eo_2idWfML04wjFQhYL0,2180
|
|
292
|
+
tests/1_verification/flappy_0_6/row_Jensen_linear_tophat_IECTI2005/test_row_Jensen_linear_tophat_IECTI_2005.py,sha256=gaZXNABEYTTVtKpJEEUH9R224TU_IU8YmRlVpakjq54,2635
|
|
293
|
+
tests/1_verification/flappy_0_6/row_Jensen_linear_tophat_IECTI2005/flappy/run.py,sha256=84Vc_F4kZsluiPrKFX7WxWXKwfGZDNzW90npCsStJqQ,2259
|
|
294
|
+
tests/1_verification/flappy_0_6/row_Jensen_linear_tophat_IECTI2019/test_row_Jensen_linear_tophat_IECTI_2019.py,sha256=5pQNBPLGqD5A-kVOLmz8rh0FzSf6VImRQA62OHSAu8c,2632
|
|
295
|
+
tests/1_verification/flappy_0_6/row_Jensen_linear_tophat_IECTI2019/flappy/run.py,sha256=cPLIXymqdzu3zxB6-B3g3CU_oDhiYf-TlgWqossDjUw,2259
|
|
296
|
+
tests/1_verification/flappy_0_6/row_Jensen_quadratic_centre/test_row_Jensen_quadratic_centre.py,sha256=Ltqpf_cGG9SAnQqTe0hIcYG2BPZ6lCiK3_AQUkcAT34,2152
|
|
297
|
+
tests/1_verification/flappy_0_6/row_Jensen_quadratic_centre/flappy/run.py,sha256=u-LBBH_MVoqY4Gl__6_EuHUTXp7s-6xVU1OXkywrqrY,2187
|
|
298
|
+
tests/1_verification/flappy_0_6_2/grid_rotors/test_grid_rotors.py,sha256=wN0TEcZgQpT9fhifrUHu_9i0egq5D_EADupey2Wup_U,3605
|
|
299
|
+
tests/1_verification/flappy_0_6_2/grid_rotors/flappy/run.py,sha256=-TJAB5L9fj7UonqYILVH0i91PPD6KKd7bpJ2j0MDALk,2453
|
|
300
|
+
tests/1_verification/flappy_0_6_2/row_Bastankhah_Crespo/test_row_Bastankhah_Crespo.py,sha256=wytIoaAo1ODFnfO680_yZZujGu70aaQjjNpqP608BJE,2689
|
|
301
|
+
tests/1_verification/flappy_0_6_2/row_Bastankhah_Crespo/flappy/run.py,sha256=nwIyn20ZyYHhCKcPCnm02zjwNKMRzr9t0U8TjKK61QU,2213
|
|
302
|
+
tests/1_verification/flappy_0_6_2/row_Bastankhah_linear_centre/test_row_Bastankhah_linear_centre.py,sha256=JHitwzV_Ai8Hr7TgaTd5aMenTlaAmgv7BYIIutBwvZ4,2332
|
|
303
|
+
tests/1_verification/flappy_0_6_2/row_Bastankhah_linear_centre/flappy/run.py,sha256=s6FbEdpiIdHYmdD8S85_NhLH-S3EOinXvw8RHmR2QOU,2122
|
|
304
|
+
tests/3_examples/test_examples.py,sha256=rS2Dz04ktbS6v3TRDr96AkWGypr5u49jihqbEmGFmRU,694
|
|
305
|
+
foxes-1.1.0.2.dist-info/LICENSE,sha256=bBCH6mYTPzSepk2s2UUZ3II_ZYXrn1bnSqB85-aZHxU,1071
|
|
306
|
+
foxes-1.1.0.2.dist-info/METADATA,sha256=hwOuEKMhgi9_qFcIVbglbS8H5FVWsKEenwxIdyhkfyI,8672
|
|
307
|
+
foxes-1.1.0.2.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
|
308
|
+
foxes-1.1.0.2.dist-info/top_level.txt,sha256=G7oHApEz5nc-iP__XsPcvjYe_NyXGmKMUMPHi3C3x6I,26
|
|
309
|
+
foxes-1.1.0.2.dist-info/RECORD,,
|