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.

Files changed (215) hide show
  1. docs/source/conf.py +353 -0
  2. examples/abl_states/run.py +160 -0
  3. examples/compare_rotors_pwakes/run.py +217 -0
  4. examples/compare_wakes/run.py +241 -0
  5. examples/dyn_wakes/run.py +311 -0
  6. examples/field_data_nc/run.py +121 -0
  7. examples/induction/run.py +201 -0
  8. examples/multi_height/run.py +113 -0
  9. examples/power_mask/run.py +249 -0
  10. examples/random_timeseries/run.py +210 -0
  11. examples/scan_row/run.py +193 -0
  12. examples/sector_management/run.py +162 -0
  13. examples/sequential/run.py +209 -0
  14. examples/single_state/run.py +201 -0
  15. examples/states_lookup_table/run.py +137 -0
  16. examples/streamline_wakes/run.py +138 -0
  17. examples/tab_file/run.py +142 -0
  18. examples/timelines/run.py +267 -0
  19. examples/timeseries/run.py +190 -0
  20. examples/timeseries_slurm/run.py +185 -0
  21. examples/wind_rose/run.py +141 -0
  22. examples/windio/run.py +29 -0
  23. examples/yawed_wake/run.py +196 -0
  24. foxes/__init__.py +4 -8
  25. foxes/algorithms/__init__.py +1 -1
  26. foxes/algorithms/downwind/downwind.py +247 -111
  27. foxes/algorithms/downwind/models/farm_wakes_calc.py +12 -7
  28. foxes/algorithms/downwind/models/init_farm_data.py +2 -2
  29. foxes/algorithms/downwind/models/point_wakes_calc.py +6 -7
  30. foxes/algorithms/downwind/models/reorder_farm_output.py +1 -2
  31. foxes/algorithms/downwind/models/set_amb_farm_results.py +1 -1
  32. foxes/algorithms/downwind/models/set_amb_point_results.py +5 -3
  33. foxes/algorithms/iterative/iterative.py +74 -34
  34. foxes/algorithms/iterative/models/farm_wakes_calc.py +12 -7
  35. foxes/algorithms/iterative/models/urelax.py +3 -3
  36. foxes/algorithms/sequential/models/plugin.py +5 -5
  37. foxes/algorithms/sequential/models/seq_state.py +1 -1
  38. foxes/algorithms/sequential/sequential.py +126 -255
  39. foxes/constants.py +22 -7
  40. foxes/core/__init__.py +1 -0
  41. foxes/core/algorithm.py +632 -147
  42. foxes/core/data.py +252 -20
  43. foxes/core/data_calc_model.py +15 -291
  44. foxes/core/engine.py +640 -0
  45. foxes/core/farm_controller.py +38 -10
  46. foxes/core/farm_data_model.py +16 -1
  47. foxes/core/ground_model.py +2 -2
  48. foxes/core/model.py +249 -182
  49. foxes/core/partial_wakes_model.py +1 -1
  50. foxes/core/point_data_model.py +17 -2
  51. foxes/core/rotor_model.py +27 -21
  52. foxes/core/states.py +17 -1
  53. foxes/core/turbine_type.py +28 -0
  54. foxes/core/wake_frame.py +30 -34
  55. foxes/core/wake_model.py +5 -5
  56. foxes/core/wake_superposition.py +1 -1
  57. foxes/data/windio/windio_5turbines_timeseries.yaml +31 -15
  58. foxes/engines/__init__.py +17 -0
  59. foxes/engines/dask.py +982 -0
  60. foxes/engines/default.py +75 -0
  61. foxes/engines/futures.py +72 -0
  62. foxes/engines/mpi.py +38 -0
  63. foxes/engines/multiprocess.py +71 -0
  64. foxes/engines/numpy.py +167 -0
  65. foxes/engines/pool.py +249 -0
  66. foxes/engines/ray.py +79 -0
  67. foxes/engines/single.py +141 -0
  68. foxes/input/farm_layout/__init__.py +1 -0
  69. foxes/input/farm_layout/from_csv.py +4 -0
  70. foxes/input/farm_layout/from_json.py +2 -2
  71. foxes/input/farm_layout/grid.py +2 -2
  72. foxes/input/farm_layout/ring.py +65 -0
  73. foxes/input/farm_layout/row.py +2 -2
  74. foxes/input/states/__init__.py +7 -0
  75. foxes/input/states/create/random_abl_states.py +1 -1
  76. foxes/input/states/field_data_nc.py +158 -33
  77. foxes/input/states/multi_height.py +128 -14
  78. foxes/input/states/one_point_flow.py +577 -0
  79. foxes/input/states/scan_ws.py +74 -3
  80. foxes/input/states/single.py +1 -1
  81. foxes/input/states/slice_data_nc.py +681 -0
  82. foxes/input/states/states_table.py +204 -35
  83. foxes/input/windio/__init__.py +2 -2
  84. foxes/input/windio/get_states.py +44 -23
  85. foxes/input/windio/read_attributes.py +48 -17
  86. foxes/input/windio/read_farm.py +116 -102
  87. foxes/input/windio/read_fields.py +16 -6
  88. foxes/input/windio/read_outputs.py +71 -24
  89. foxes/input/windio/runner.py +31 -17
  90. foxes/input/windio/windio.py +41 -23
  91. foxes/models/farm_models/turbine2farm.py +1 -1
  92. foxes/models/ground_models/wake_mirror.py +10 -6
  93. foxes/models/model_book.py +58 -20
  94. foxes/models/partial_wakes/axiwake.py +3 -3
  95. foxes/models/partial_wakes/rotor_points.py +3 -3
  96. foxes/models/partial_wakes/top_hat.py +2 -2
  97. foxes/models/point_models/set_uniform_data.py +1 -1
  98. foxes/models/point_models/tke2ti.py +1 -1
  99. foxes/models/point_models/wake_deltas.py +1 -1
  100. foxes/models/rotor_models/centre.py +4 -0
  101. foxes/models/rotor_models/grid.py +24 -25
  102. foxes/models/rotor_models/levels.py +4 -5
  103. foxes/models/turbine_models/calculator.py +4 -6
  104. foxes/models/turbine_models/kTI_model.py +22 -6
  105. foxes/models/turbine_models/lookup_table.py +30 -4
  106. foxes/models/turbine_models/rotor_centre_calc.py +4 -3
  107. foxes/models/turbine_models/set_farm_vars.py +103 -34
  108. foxes/models/turbine_types/PCt_file.py +27 -3
  109. foxes/models/turbine_types/PCt_from_two.py +27 -3
  110. foxes/models/turbine_types/TBL_file.py +80 -0
  111. foxes/models/turbine_types/__init__.py +2 -0
  112. foxes/models/turbine_types/lookup.py +316 -0
  113. foxes/models/turbine_types/null_type.py +51 -1
  114. foxes/models/turbine_types/wsrho2PCt_from_two.py +29 -5
  115. foxes/models/turbine_types/wsti2PCt_from_two.py +31 -7
  116. foxes/models/vertical_profiles/__init__.py +1 -1
  117. foxes/models/vertical_profiles/data_profile.py +1 -1
  118. foxes/models/wake_frames/__init__.py +1 -0
  119. foxes/models/wake_frames/dynamic_wakes.py +424 -0
  120. foxes/models/wake_frames/farm_order.py +25 -5
  121. foxes/models/wake_frames/rotor_wd.py +6 -4
  122. foxes/models/wake_frames/seq_dynamic_wakes.py +61 -74
  123. foxes/models/wake_frames/streamlines.py +21 -22
  124. foxes/models/wake_frames/timelines.py +330 -129
  125. foxes/models/wake_frames/yawed_wakes.py +7 -4
  126. foxes/models/wake_models/dist_sliced.py +2 -4
  127. foxes/models/wake_models/induction/rankine_half_body.py +5 -5
  128. foxes/models/wake_models/induction/rathmann.py +78 -24
  129. foxes/models/wake_models/induction/self_similar.py +78 -28
  130. foxes/models/wake_models/induction/vortex_sheet.py +86 -48
  131. foxes/models/wake_models/ti/crespo_hernandez.py +6 -4
  132. foxes/models/wake_models/ti/iec_ti.py +40 -21
  133. foxes/models/wake_models/top_hat.py +1 -1
  134. foxes/models/wake_models/wind/bastankhah14.py +8 -6
  135. foxes/models/wake_models/wind/bastankhah16.py +17 -16
  136. foxes/models/wake_models/wind/jensen.py +4 -3
  137. foxes/models/wake_models/wind/turbopark.py +16 -13
  138. foxes/models/wake_superpositions/ti_linear.py +1 -1
  139. foxes/models/wake_superpositions/ti_max.py +1 -1
  140. foxes/models/wake_superpositions/ti_pow.py +1 -1
  141. foxes/models/wake_superpositions/ti_quadratic.py +1 -1
  142. foxes/models/wake_superpositions/ws_linear.py +8 -7
  143. foxes/models/wake_superpositions/ws_max.py +8 -7
  144. foxes/models/wake_superpositions/ws_pow.py +8 -7
  145. foxes/models/wake_superpositions/ws_product.py +5 -5
  146. foxes/models/wake_superpositions/ws_quadratic.py +8 -7
  147. foxes/output/__init__.py +4 -1
  148. foxes/output/farm_layout.py +16 -12
  149. foxes/output/farm_results_eval.py +1 -1
  150. foxes/output/flow_plots_2d/__init__.py +0 -1
  151. foxes/output/flow_plots_2d/flow_plots.py +70 -30
  152. foxes/output/grids.py +92 -22
  153. foxes/output/results_writer.py +2 -2
  154. foxes/output/rose_plot.py +3 -3
  155. foxes/output/seq_plugins/__init__.py +2 -0
  156. foxes/output/{flow_plots_2d → seq_plugins}/seq_flow_ani_plugin.py +64 -22
  157. foxes/output/seq_plugins/seq_wake_debug_plugin.py +145 -0
  158. foxes/output/slice_data.py +131 -111
  159. foxes/output/state_turbine_map.py +19 -14
  160. foxes/output/state_turbine_table.py +19 -19
  161. foxes/utils/__init__.py +1 -1
  162. foxes/utils/abl/neutral.py +2 -2
  163. foxes/utils/abl/stable.py +2 -2
  164. foxes/utils/abl/unstable.py +2 -2
  165. foxes/utils/data_book.py +1 -1
  166. foxes/utils/dev_utils.py +42 -0
  167. foxes/utils/dict.py +24 -1
  168. foxes/utils/exec_python.py +1 -1
  169. foxes/utils/factory.py +176 -53
  170. foxes/utils/geom2d/circle.py +1 -1
  171. foxes/utils/geom2d/polygon.py +1 -1
  172. foxes/utils/geopandas_utils.py +2 -2
  173. foxes/utils/load.py +2 -2
  174. foxes/utils/pandas_helpers.py +3 -2
  175. foxes/utils/wind_dir.py +0 -2
  176. foxes/utils/xarray_utils.py +24 -14
  177. foxes/variables.py +39 -2
  178. {foxes-0.8.2.dist-info → foxes-1.1.0.2.dist-info}/METADATA +75 -33
  179. foxes-1.1.0.2.dist-info/RECORD +309 -0
  180. {foxes-0.8.2.dist-info → foxes-1.1.0.2.dist-info}/WHEEL +1 -1
  181. foxes-1.1.0.2.dist-info/top_level.txt +4 -0
  182. tests/0_consistency/iterative/test_iterative.py +92 -0
  183. tests/0_consistency/partial_wakes/test_partial_wakes.py +90 -0
  184. tests/1_verification/flappy_0_6/PCt_files/flappy/run.py +85 -0
  185. tests/1_verification/flappy_0_6/PCt_files/test_PCt_files.py +103 -0
  186. tests/1_verification/flappy_0_6/abl_states/flappy/run.py +85 -0
  187. tests/1_verification/flappy_0_6/abl_states/test_abl_states.py +87 -0
  188. tests/1_verification/flappy_0_6/partial_top_hat/flappy/run.py +82 -0
  189. tests/1_verification/flappy_0_6/partial_top_hat/test_partial_top_hat.py +82 -0
  190. tests/1_verification/flappy_0_6/row_Jensen_linear_centre/flappy/run.py +92 -0
  191. tests/1_verification/flappy_0_6/row_Jensen_linear_centre/test_row_Jensen_linear_centre.py +93 -0
  192. tests/1_verification/flappy_0_6/row_Jensen_linear_tophat/flappy/run.py +92 -0
  193. tests/1_verification/flappy_0_6/row_Jensen_linear_tophat/test_row_Jensen_linear_tophat.py +96 -0
  194. tests/1_verification/flappy_0_6/row_Jensen_linear_tophat_IECTI2005/flappy/run.py +94 -0
  195. tests/1_verification/flappy_0_6/row_Jensen_linear_tophat_IECTI2005/test_row_Jensen_linear_tophat_IECTI_2005.py +122 -0
  196. tests/1_verification/flappy_0_6/row_Jensen_linear_tophat_IECTI2019/flappy/run.py +94 -0
  197. tests/1_verification/flappy_0_6/row_Jensen_linear_tophat_IECTI2019/test_row_Jensen_linear_tophat_IECTI_2019.py +122 -0
  198. tests/1_verification/flappy_0_6/row_Jensen_quadratic_centre/flappy/run.py +92 -0
  199. tests/1_verification/flappy_0_6/row_Jensen_quadratic_centre/test_row_Jensen_quadratic_centre.py +93 -0
  200. tests/1_verification/flappy_0_6_2/grid_rotors/flappy/run.py +85 -0
  201. tests/1_verification/flappy_0_6_2/grid_rotors/test_grid_rotors.py +130 -0
  202. tests/1_verification/flappy_0_6_2/row_Bastankhah_Crespo/flappy/run.py +96 -0
  203. tests/1_verification/flappy_0_6_2/row_Bastankhah_Crespo/test_row_Bastankhah_Crespo.py +116 -0
  204. tests/1_verification/flappy_0_6_2/row_Bastankhah_linear_centre/flappy/run.py +93 -0
  205. tests/1_verification/flappy_0_6_2/row_Bastankhah_linear_centre/test_row_Bastankhah_linear_centre.py +99 -0
  206. tests/3_examples/test_examples.py +34 -0
  207. foxes/VERSION +0 -1
  208. foxes/output/flow_plots_2d.py +0 -0
  209. foxes/utils/geopandas_helpers.py +0 -294
  210. foxes/utils/runners/__init__.py +0 -1
  211. foxes/utils/runners/runners.py +0 -280
  212. foxes-0.8.2.dist-info/RECORD +0 -247
  213. foxes-0.8.2.dist-info/top_level.txt +0 -1
  214. foxes-0.8.2.dist-info/zip-safe +0 -1
  215. {foxes-0.8.2.dist-info → foxes-1.1.0.2.dist-info}/LICENSE +0 -0
@@ -1,280 +0,0 @@
1
- import dask
2
- from abc import abstractmethod, ABCMeta
3
- from copy import deepcopy
4
- from distributed import Client, LocalCluster
5
- from distributed import get_client
6
- from dask.diagnostics import ProgressBar
7
-
8
-
9
- class Runner(metaclass=ABCMeta):
10
- """
11
- Abstract base class for runners.
12
-
13
- :group: utils.runners
14
-
15
- """
16
-
17
- def __init__(self):
18
- self._initialized = False
19
-
20
- def initialize(self):
21
- """
22
- Initialize the runner
23
- """
24
- self._initialized = True
25
-
26
- @property
27
- def initialized(self):
28
- """
29
- Initialization flag
30
-
31
- Returns
32
- -------
33
- bool :
34
- Initialization flag
35
-
36
- """
37
- return self._initialized
38
-
39
- def __enter__(self):
40
- self.initialize()
41
- return self
42
-
43
- @abstractmethod
44
- def run(self, func, args=tuple(), kwargs={}):
45
- """
46
- Runs the given function.
47
-
48
- Parameters
49
- ----------
50
- func: Function
51
- The function to be run
52
- args: tuple
53
- The function arguments
54
- kwargs: dict
55
- The function keyword arguments
56
-
57
- Returns
58
- -------
59
- results: Any
60
- The functions return value
61
-
62
- """
63
- pass
64
-
65
- def finalize(self):
66
- """
67
- Finalize the runner
68
- """
69
- self._initialized = False
70
-
71
- def __exit__(self, exc_type, exc_value, traceback):
72
- self.finalize()
73
-
74
-
75
- class DefaultRunner(Runner):
76
- """
77
- Class for default function execution.
78
-
79
- :group: utils.runners
80
-
81
- """
82
-
83
- def run(self, func, args=tuple(), kwargs={}):
84
- """
85
- Runs the given function.
86
-
87
- Parameters
88
- ----------
89
- func: Function
90
- The function to be run
91
- args: tuple
92
- The function arguments
93
- kwargs: dict
94
- The function keyword arguments
95
-
96
- Returns
97
- -------
98
- results: Any
99
- The functions return value
100
-
101
- """
102
- return func(*args, **kwargs)
103
-
104
-
105
- class DaskRunner(Runner):
106
- """
107
- Class for function execution via dask
108
-
109
- Attributes
110
- ----------
111
- scheduler: str, optional
112
- The dask scheduler choice
113
- progress_bar: bool
114
- Flag for showing progress bar
115
- cluster_args: dict, optional
116
- Explicit arguments for the cluster setup
117
- client_args: dict, optional
118
- Explicit arguments for the client setup
119
- verbosity: int
120
- The verbosity level, 0 = silent
121
-
122
- :group: utils.runners
123
-
124
- """
125
-
126
- def __init__(
127
- self,
128
- scheduler=None,
129
- n_workers=None,
130
- threads_per_worker=None,
131
- processes=True,
132
- cluster_args=None,
133
- client_args={},
134
- progress_bar=True,
135
- verbosity=1,
136
- ):
137
- """
138
- Constructor.
139
-
140
- Parameters
141
- ----------
142
- scheduler: str, optional
143
- The dask scheduler choice
144
- n_workers: int, optional
145
- The number of workers for parallel run
146
- threads_per_worker: int, optional
147
- The number of threads per worker for parallel run
148
- progress_bar: bool
149
- Flag for showing progress bar
150
- cluster_args: dict, optional
151
- Explicit arguments for the cluster setup
152
- client_args: dict, optional
153
- Explicit arguments for the client setup
154
- verbosity: int
155
- The verbosity level, 0 = silent
156
-
157
- """
158
- super().__init__()
159
-
160
- self.scheduler = scheduler
161
- self.client_args = client_args
162
- self.progress_bar = progress_bar
163
- self.verbosity = verbosity
164
-
165
- if cluster_args is None:
166
- self.cluster_args = dict(
167
- n_workers=n_workers,
168
- processes=processes,
169
- threads_per_worker=threads_per_worker,
170
- )
171
- elif n_workers is not None or threads_per_worker is not None:
172
- raise KeyError(
173
- "Cannot handle 'n_workers', 'threads_per_worker' arguments if 'cluster_args' are provided"
174
- )
175
- else:
176
- self.cluster_args = cluster_args
177
-
178
- if scheduler is None and (
179
- n_workers is not None
180
- or threads_per_worker is not None
181
- or cluster_args is not None
182
- ):
183
- self.scheduler = "distributed"
184
-
185
- @classmethod
186
- def is_distributed(cls):
187
- try:
188
- get_client()
189
- return True
190
- except ValueError:
191
- return False
192
-
193
- def initialize(self):
194
- """
195
- Initialize the runner
196
- """
197
- if self.scheduler is not None:
198
- dask.config.set(scheduler=self.scheduler)
199
-
200
- if self.scheduler == "dthreads":
201
- self.print("Launching local dask cluster..")
202
-
203
- cargs = deepcopy(self.cluster_args)
204
- del cargs["processes"]
205
- self._client = Client(processes=False, **self.client_args, **cargs)
206
-
207
- self.print(f"Dashboard: {self._client.dashboard_link}\n")
208
-
209
- elif self.scheduler == "distributed":
210
- self.print("Launching local dask cluster..")
211
-
212
- self._cluster = LocalCluster(**self.cluster_args)
213
- self._client = Client(self._cluster, **self.client_args)
214
-
215
- self.print(self._cluster)
216
- self.print(f"Dashboard: {self._client.dashboard_link}\n")
217
-
218
- elif self.scheduler == "slurm":
219
- from dask_jobqueue import SLURMCluster
220
-
221
- self.print("Launching dask cluster on HPC using SLURM..")
222
-
223
- cargs = deepcopy(self.cluster_args)
224
- nodes = cargs.pop("nodes", 1)
225
-
226
- self._cluster = SLURMCluster(**cargs)
227
- self._cluster.scale(jobs=nodes)
228
- self._client = Client(self._cluster, **self.client_args)
229
-
230
- self.print(self._cluster)
231
- self.print(f"Dashboard: {self._client.dashboard_link}\n")
232
-
233
- super().initialize()
234
-
235
- def print(self, *args, **kwargs):
236
- """
237
- Prints if verbosity is not zero
238
- """
239
- if self.verbosity > 0:
240
- print(*args, **kwargs)
241
-
242
- def run(self, func, args=tuple(), kwargs={}):
243
- """
244
- Runs the given function.
245
-
246
- Parameters
247
- ----------
248
- func: Function
249
- The function to be run
250
- args: tuple
251
- The function arguments
252
- kwargs: dict
253
- The function keyword arguments
254
-
255
- Returns
256
- -------
257
- results: Any
258
- The functions return value
259
-
260
- """
261
- if self.progress_bar:
262
- with ProgressBar():
263
- results = func(*args, **kwargs)
264
- else:
265
- results = func(*args, **kwargs)
266
-
267
- return results
268
-
269
- def finalize(self):
270
- """
271
- Finallize the runner
272
- """
273
- if self.scheduler in ["distributed", "slurm"]:
274
- self.print("\n\nShutting down dask cluster")
275
- self._client.close()
276
- self._cluster.close()
277
-
278
- dask.config.refresh()
279
-
280
- super().finalize()
@@ -1,247 +0,0 @@
1
- foxes/VERSION,sha256=zrmywDr7dp3zseUYUgxOF5jpozE6HF___LBU_vXW1vs,6
2
- foxes/__init__.py,sha256=4ptDOBaQC8fAd_ZH5XH7d5pIgx3JXEY9xLcK3Nrs2Ow,718
3
- foxes/constants.py,sha256=AQepsPOCRnHycNKvFyltcPFa4yUqYtTBOzgp56KKewA,2713
4
- foxes/variables.py,sha256=I-S25WejH33ffOcVnmN2TDL1pIxWqg0aM1lhIBwZ9NQ,4454
5
- foxes/algorithms/__init__.py,sha256=uaXU8OYMT3eclcE6a2b8NkozHVXoM1BF5RJA2XR4DUw,260
6
- foxes/algorithms/downwind/__init__.py,sha256=lyygq5GMc6NAPmH0b0mhGeccWyuC8JTOEMZl-UlmE5M,53
7
- foxes/algorithms/downwind/downwind.py,sha256=o8d2HZW5m2NDVKhS0uWLhEuyGMuY9CPI5fM-RqBh79U,21862
8
- foxes/algorithms/downwind/models/__init__.py,sha256=0ov8rjIQ02w3iB6yYCxaswPvHDlPM_8_di6xPh1TTkQ,300
9
- foxes/algorithms/downwind/models/farm_wakes_calc.py,sha256=-O-0hpDYFnR15yaK3GNNd8G_4gNwRZ8pmnam94dANJQ,5535
10
- foxes/algorithms/downwind/models/init_farm_data.py,sha256=sTUMYGLU9iHr56prdNRR4cs0yuCFp7gqiCDut685HKM,4022
11
- foxes/algorithms/downwind/models/point_wakes_calc.py,sha256=cUIQ439fKF_wLP2AH1uuQe9bWdyq6O5StsJviwIHvuA,4548
12
- foxes/algorithms/downwind/models/reorder_farm_output.py,sha256=4BjIQ1bYDiZi5LzPpv5dokEr0T2DqOpXRdZYiPa5bgI,2041
13
- foxes/algorithms/downwind/models/set_amb_farm_results.py,sha256=_hBlSnlD1MYzQ2HV6eEXREaLsj4CKsxI4hr9LFFi-qc,1734
14
- foxes/algorithms/downwind/models/set_amb_point_results.py,sha256=s72ARemcWCY1UsbZ1jxT1QRJpAbLhd40-RLP4yZgXgY,2219
15
- foxes/algorithms/iterative/__init__.py,sha256=Je445cHtS2ERc-dywjhxWttKzdEyHM8JLxPcW5JFtl8,137
16
- foxes/algorithms/iterative/iterative.py,sha256=Mgbs6v69o5HePbOxwTl85hLxfA1C91u0iWfLdkEpe2A,9148
17
- foxes/algorithms/iterative/models/__init__.py,sha256=3lMBUOzq5bKNQBGoV8byVQ7_Keyk1GfwFZDUwaafGsg,152
18
- foxes/algorithms/iterative/models/convergence.py,sha256=5fCeTMisYEhgvPRbLKMK0XYsSSr2xWqqzB-pUBrIjYk,6466
19
- foxes/algorithms/iterative/models/farm_wakes_calc.py,sha256=nXFR8c1jZw6Q4ewYJlvDvPf8O3Za2W1hNVze410f7UI,4762
20
- foxes/algorithms/iterative/models/urelax.py,sha256=wYRHeeKsgCWMmOJ2YnbgUB79VI-D6ceTwEndvvtKBes,2078
21
- foxes/algorithms/sequential/__init__.py,sha256=2o05IH9XePnqxNEAn2Fr1qiCM6OooqmH2VtmdJXtK0c,94
22
- foxes/algorithms/sequential/sequential.py,sha256=PeQ8j2TuZT2KuxOZTvN4iNoZVT6lYQCcahk2lMprWx8,16242
23
- foxes/algorithms/sequential/models/__init__.py,sha256=OneaRLxMPzVWLKL9cR3JIYHojfzVX_CQaPv-LP6mCZI,69
24
- foxes/algorithms/sequential/models/plugin.py,sha256=9xa5mUp72gX3rAsdqM76Dibky0jA-gmYO2J4oBNoiHA,1326
25
- foxes/algorithms/sequential/models/seq_state.py,sha256=AB2Mf4WbbL9iDN_3mP4nTi44R6G4Gf_-At0ZlicXgrY,3656
26
- foxes/core/__init__.py,sha256=2NPeoNWCJx5-Q77TlXDmnSxmzf9gaQEx1JTWIHOWeT4,956
27
- foxes/core/algorithm.py,sha256=JIvEuoxf25lnZLX8fze2JSYT73KFirzmp6yfrJMa_x0,15169
28
- foxes/core/axial_induction_model.py,sha256=U7g8vmdKBS4xVYXVpD-uNDnKUnpFXccRTWB5LOPDGaY,498
29
- foxes/core/data.py,sha256=KjRS5fXaYMeNw_cAaBYarJTX7qCNQJbHDSDWPGLB_70,14581
30
- foxes/core/data_calc_model.py,sha256=Xtt9-QQes0Y3XFfUcPysB-5YtMbk74ooyatJNUYYjMg,10501
31
- foxes/core/farm_controller.py,sha256=8VmqM4uaQ3k8pkMllOJ-MC27P2dHMJUCzhmROMLtlN4,12199
32
- foxes/core/farm_data_model.py,sha256=IwlHg10H4mSXHbU5vdfAS7FyvY8kVwArTfaijQHlKLU,6953
33
- foxes/core/farm_model.py,sha256=ogFahCjC2dIBcjnCMmy0cTGulKTDA2ufFUzODf0-KnI,265
34
- foxes/core/ground_model.py,sha256=UDGTyGDi1UUmFZmgAHKMwwNbXjPBcVb8YKKqI7gJWrc,6801
35
- foxes/core/model.py,sha256=ChnoKFkmr5oXvqhp7sIJ8etWy7TZrLI54xcx0Fn-WVI,17290
36
- foxes/core/partial_wakes_model.py,sha256=8iC6w4TJXgeOObnAZoFKjy6ualYNbd3gLIb5P5TtVvA,5687
37
- foxes/core/point_data_model.py,sha256=9-9d8FCZy8rxZoGXC9MwI3fAa4XApsR8tzRCxHaanhU,6666
38
- foxes/core/rotor_model.py,sha256=8rvP8iVMDvFM_Dgh1stVqKy4CqiM38maRTkoQCt1PSU,12879
39
- foxes/core/states.py,sha256=2-3I62ebQCoKxye5Hyz_QT45b8PA1UwMlU_XWvbvi8s,8230
40
- foxes/core/turbine.py,sha256=P5qPKmV1qohZdAKW4lPiUerQkRDTxUOhsvBPQqy8mBo,3054
41
- foxes/core/turbine_model.py,sha256=IcsU848QNHbUhDN5oqd7VnVWKx_VM5UwRhlPsWK_njw,2049
42
- foxes/core/turbine_type.py,sha256=uet3SiJDqt9bPD8tq5xkq-blGV7o1Nd0lNn_2DlqOyk,3151
43
- foxes/core/vertical_profile.py,sha256=pgjari78N2CHZOWnidQ_7KGsSs4lTFP9isn-w6e1Yro,1642
44
- foxes/core/wake_frame.py,sha256=JbDWjHtZ6nSt-pSSlIsrKea4shwx_7YViZCCl9kNI_0,10239
45
- foxes/core/wake_model.py,sha256=DjcNbEWPzgxBoW4IN5i9CGfPyuaCaJKYPoiK7ctsfC8,8054
46
- foxes/core/wake_superposition.py,sha256=_XRgHeIVf_g8MkudwCLAX0DcTBp4Wdy9bDJLRPqkQrM,2811
47
- foxes/core/wind_farm.py,sha256=iYetYGFPaPz9Rh-2bLoeknOCiromXqlicZ4snRtSEIc,1755
48
- foxes/data/__init__.py,sha256=efVzdUkpjcgmn8nF8eLAr5HCm1Ym7YF3JomY_bXNVts,161
49
- foxes/data/parse.py,sha256=x71oWLyvVsMJ7XVL9VRQXZbflnTXqBaxyBdoMQdZExs,2947
50
- foxes/data/static_data.py,sha256=k5ey-hJWMJTjRZnW5gaEj9dayxAClOBdbM14-IpON60,858
51
- foxes/data/farms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
- foxes/data/farms/test_farm_67.csv,sha256=TwHt8NVuyP6p2G1VaM_Mi4ENBaHyg4eF6jz0zXQQDro,1872
53
- foxes/data/power_ct_curves/DTU-10MW-D178d3-H119.csv,sha256=71C1HTf9QtAvavYLwo6US-JmEGyiByrnvZPysua8muE,410
54
- foxes/data/power_ct_curves/IEA-15MW-D240-H150.csv,sha256=ITmkbLIG-jsAoxg1eYgJEbxohEE414pRUO7bzwkv6VU,300
55
- foxes/data/power_ct_curves/IWT-7d5MW-D164-H100.csv,sha256=K9yAhgkCZfRBKZibxKbHtWrKg5mIHnMCswdOVd2uyQ0,851
56
- foxes/data/power_ct_curves/NREL-5MW-D126-H90.csv,sha256=u2b6LUCCKL6bYn2lNrB02MqBnwT-veL4CCi6Km4am-E,401
57
- foxes/data/power_ct_curves/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
- foxes/data/states/WRF-Timeseries-3000.nc,sha256=ZB1b-CTCu_yiLH4sKhQFmb47O-pOh7Ab2qyhx6P0Z5I,453633
59
- foxes/data/states/WRF-Timeseries-4464.csv.gz,sha256=bjZxvnVp_iyVmIhd-N9lE5TJUZQvunsuueVXu_MnLpk,427815
60
- foxes/data/states/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
- foxes/data/states/abl_states_6000.csv.gz,sha256=wzbMKNk3jZ3sRlV4aYJSv_ycncEryXaFT1uQ3oNYJSQ,126124
62
- foxes/data/states/timeseries_100.csv.gz,sha256=7jIJPuseoMyc6kB-4JTzWJuPmugfXjg5gP5AKnvOdIs,501
63
- foxes/data/states/timeseries_3000.csv.gz,sha256=e6hkBMl2oQ0y9zy1I2uh3xyv4YyH9NbRnLwbR4EU1Jc,29085
64
- foxes/data/states/timeseries_8000.csv.gz,sha256=CzayW5CtnP9Y2kxCE4jlsDZwr6G_RMfacnp17mUUQ_4,78694
65
- foxes/data/states/wind_rose_bremen.csv,sha256=ixSf8-_esjFsBtfT3Y92k67QrJPDx6dY3uBhOSV-hj4,4943
66
- foxes/data/states/wind_rotation.nc,sha256=-ZLfpxa_BJpRUABgJsK5I7c8ogAWTrYNE18un7FxhnU,10990
67
- foxes/data/states/windio_timeseries_5000.nc,sha256=NbC55qSTSprnawc6_9NalvlM6OEk9kqE8d-tsXAKvzg,78601
68
- foxes/data/states/winds100.tab,sha256=X2Cw0H_-HzYEcb7ezn3ntWlKQXIxrWLNONVsrkmsof8,3061
69
- foxes/data/windio/DTU_10MW_turbine.yaml,sha256=DAvIj0-313fgUWCygp6m96EVfr3QUUVpwjCVa430YAU,732
70
- foxes/data/windio/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
- foxes/data/windio/windio_5turbines_timeseries.yaml,sha256=KLLpoayiqt8yRLABksbBoPbZp26-kgTwZdKIdL306Yk,1307
72
- foxes/input/__init__.py,sha256=qi7BB7FK71gKex5_IFD5a6pvLLLnRWQV9rYKInnpf10,126
73
- foxes/input/farm_layout/__init__.py,sha256=EMAA3t-lmvPdMeoll4yJzKz7adVBIpDv5TubjIbrLYk,287
74
- foxes/input/farm_layout/from_csv.py,sha256=jFezF0rmxolhgpWrqVvej0AjvKc4q3gJ4I09uGG7mSE,3185
75
- foxes/input/farm_layout/from_df.py,sha256=F5CKXHyL2rcrpCQqqqOr2HHX-BJ5VU1JQymzywmkBtc,574
76
- foxes/input/farm_layout/from_file.py,sha256=SNdJ1DVb_ZMQS48TB-TELOLc7vqU9aGwl9jIe1iaGtU,1578
77
- foxes/input/farm_layout/from_json.py,sha256=5dzFhZdFFaReOnuCKwEmPbK5muf2TTi6AxTGrYj7Kd0,1642
78
- foxes/input/farm_layout/from_random.py,sha256=6ZYKbdV6x11MbQRAHs5nVYBAG-1K295xsMXtfCfAfts,1126
79
- foxes/input/farm_layout/grid.py,sha256=7j3l-0rRQ3WojnVkFtuQ-bXmNOFM9ymbDCOOHYFDZ1A,1465
80
- foxes/input/farm_layout/row.py,sha256=RR8-vkSrxuWMZXLwyHAROhQIcbKnf0zTLH_zWHZ4gA0,1196
81
- foxes/input/states/__init__.py,sha256=gPlMBV0z4y5AcgRKTSqbsK53hVoBJBzGNtQQleUJcMY,361
82
- foxes/input/states/field_data_nc.py,sha256=Y7K8gCcUeaMCVKa4C6l8IvUTR_JnhEkx3ObXRDPCo3M,18693
83
- foxes/input/states/multi_height.py,sha256=xkavoXC5TF_-qq19f8PMVEIgAsDkup9dB5h2ZWBgyME,20039
84
- foxes/input/states/scan_ws.py,sha256=jdSpylzWF8qsFuIiY8we6djdG0d7b5doh6WSslg3OnQ,4262
85
- foxes/input/states/single.py,sha256=6DO1lFenVJ9pjwL4I3B4tKWxcMmKSp_U4L3KqFRuqyk,5989
86
- foxes/input/states/states_table.py,sha256=9dq9sxR5PVjS99WRGJClB_1W8gPZ9UNi-viHKSegRR0,15373
87
- foxes/input/states/create/__init__.py,sha256=Ocqzmr9SOefeAvGX5DgawsPXfNdGzWOZ2ssvtqEmtAo,134
88
- foxes/input/states/create/random_abl_states.py,sha256=45h0a84FmeLZwxbtwtxs5kmoz8_O1_KjsyV-xTc_RoE,3333
89
- foxes/input/states/create/random_timeseries.py,sha256=gJpaQ4nEXxOjI4hp3xjNcVbCsmZUm-brXUxoqDb63WE,1266
90
- foxes/input/windio/__init__.py,sha256=EZ0X07vFPp5t9oQyEOCUECbzCyJUjAsC4gtYIYjhflg,343
91
- foxes/input/windio/get_states.py,sha256=h88bAbZcLz4B5hjSIXSH5-vaR_CxXgYgSUpArjwIGNU,5956
92
- foxes/input/windio/read_attributes.py,sha256=nqcPNqi5tsakV43D6Y_FwQguRwrfvxz5_zPiT5L-fa4,12106
93
- foxes/input/windio/read_farm.py,sha256=5gpTwwRrwkMq2ZmfrqWqCePCKSPVDKhw87Nena3fXhU,5232
94
- foxes/input/windio/read_fields.py,sha256=nZlw0jFxrxVvt6YIRVaVDp2G5JGcw4Ap9_iVodoW-sA,4584
95
- foxes/input/windio/read_outputs.py,sha256=rk0OjfeSyzhyju11S3JabeRXEfc3HjDpQ_9FhOrhxNI,4653
96
- foxes/input/windio/runner.py,sha256=c9T_zJCtfCBt2AZdqa9dOzBUwD7KFB0kC0pz0kco8S4,5157
97
- foxes/input/windio/windio.py,sha256=R9udgkxQNPjDT4ZbkHM78y3Pw8M2yGnNxHYgPujXaD0,5115
98
- foxes/models/__init__.py,sha256=8eOGCieghW7ILjpkxMHzp4GN2zFF3xlKPl7Df7sMxoU,434
99
- foxes/models/model_book.py,sha256=YF6iKJAS7HUxn-QoAWFhwcvMM1o01xHVNrrBXLmQmDE,23509
100
- foxes/models/axial_induction/__init__.py,sha256=CdYOzu45DWu7xrzpRpFIQ6CGZIMABjjy_lqAszjj9lg,78
101
- foxes/models/axial_induction/betz.py,sha256=rAaq7pnu-FmfYh61BU5Af1h4_bG2AAimP4Qah1aZo88,894
102
- foxes/models/axial_induction/madsen.py,sha256=_-ycfh8SnIpCKWm1uwx5VH7f49FQvR0y1Nbb_U8xWyU,1403
103
- foxes/models/farm_controllers/__init__.py,sha256=oDdW_fA3GSkJBzn9Vsd3T9bBVhB9-j_IglFjYV4G2rU,72
104
- foxes/models/farm_controllers/basic.py,sha256=6pinNXiyfoG3apXhqQWcnxx4vN_7Q63YryXX5Z7kTE0,249
105
- foxes/models/farm_models/__init__.py,sha256=WoC1Cmeo5-LLdC5I_S9hwZhZOtBnWDL6azjaUTcoOuY,66
106
- foxes/models/farm_models/turbine2farm.py,sha256=XO6-6YGWOcbwB6z0Ttey3rQlOR7sg7ETE1sAlTqiEao,2278
107
- foxes/models/ground_models/__init__.py,sha256=RR6p8B4jacbzcK1LwnSUqYFXi9h7Qx4RhKiTTGXKxZo,82
108
- foxes/models/ground_models/no_ground.py,sha256=pDuHAFHHgpEVIi1spie9ooR7OG-4l8_KPrGYQhdCT3I,149
109
- foxes/models/ground_models/wake_mirror.py,sha256=Ad9x5eYDdEjhRDzjTBkUT4DjoqYjKkvuQL1tMWy7KVQ,4324
110
- foxes/models/partial_wakes/__init__.py,sha256=qlV4zgjTSBfpz4dVh7DSoxCZXkaK_-dW43t8-LcDYEg,245
111
- foxes/models/partial_wakes/axiwake.py,sha256=Rxv3yE4YvYodEjbHzn5lzRwvVBwhm6Jvz3-e5e3FpfY,6559
112
- foxes/models/partial_wakes/centre.py,sha256=mIX0eiPJUFCJ82gjZCrf6ajRmJp7CgKpM7QQXiE6UEI,963
113
- foxes/models/partial_wakes/grid.py,sha256=SOymgn0MGvUFSAWd9YKDCzXYtizsuiNV-yP0oqrKS1E,600
114
- foxes/models/partial_wakes/rotor_points.py,sha256=M5G5jJbfwv2htbI8dhoUTykIeUxXOuy3kPoBn1g-JeA,2783
115
- foxes/models/partial_wakes/segregated.py,sha256=iGa9wDTGkSap5L5Q63o3UMeOJN2Nq6qxYrw-hJ-E7kU,4370
116
- foxes/models/partial_wakes/top_hat.py,sha256=jcbLImoN9aiztm0PqIwfz9iSduOUvrrtAISc6rD2jmY,5550
117
- foxes/models/point_models/__init__.py,sha256=kb6pBrrPGWWKcnlAqOdBLMT7l-Y7yFAitrUr4eFiWcM,131
118
- foxes/models/point_models/set_uniform_data.py,sha256=LkQMwrvDaAWyVRQnHUUrT4W7d6Xz33E2nVdWJNONp1c,4476
119
- foxes/models/point_models/tke2ti.py,sha256=ZwCwqPm8H6PlyjS_D6vODFdm38WrpcFtgBL8UCgzWAk,1409
120
- foxes/models/point_models/wake_deltas.py,sha256=hwZk0K5S3X_J9wDLlZO4Q4a8jkP7XCqufJ5hvLhynpw,2037
121
- foxes/models/rotor_models/__init__.py,sha256=peLe_ykp4e_ls_iGDa-1z7-jCTtjurE3ig2R9tJy7Bg,114
122
- foxes/models/rotor_models/centre.py,sha256=i1k_lM6u_mGfuX_CSDxEDn7IvU8GcjxSGh3ZJHfmGrE,5496
123
- foxes/models/rotor_models/grid.py,sha256=9a-Qwe1f9qFxT9Zvv0ujww1MqvOCeNqu59R-1bNQSRQ,4454
124
- foxes/models/rotor_models/levels.py,sha256=ltrg9A9JvtfaK4gLDek0_DgsI7YanPcA-2C0chzaIOY,4012
125
- foxes/models/turbine_models/__init__.py,sha256=eCS66-AS3ivW9qm-yPPfO_0_eHQox5Sp7bQantVPwg0,428
126
- foxes/models/turbine_models/calculator.py,sha256=ejZvjsECvLMOG6MtZY6_KTQYmjwWNMfS3N0hPDasSsE,2794
127
- foxes/models/turbine_models/kTI_model.py,sha256=XhUxCozTML0eVwEZ90ezfhQeiGj-Db0Tz8RRgukrvFM,3305
128
- foxes/models/turbine_models/lookup_table.py,sha256=Kp07J42Bf6gAgvexnST-3oEz4O56AyC-atqiR0cRv68,6224
129
- foxes/models/turbine_models/power_mask.py,sha256=OX0LFS3fO4OjOjADE-Q9oeeyFuzHl6-F6FKzbn_Td9k,5848
130
- foxes/models/turbine_models/rotor_centre_calc.py,sha256=bk4dW9u-aCLFjs9RUh1dglLtLSXTT4abbVo6JIO2I_8,3514
131
- foxes/models/turbine_models/sector_management.py,sha256=v_m95oUHhxdlUVlC2sg4S-2xJtUlUogeTWj8gmdqKMo,7114
132
- foxes/models/turbine_models/set_farm_vars.py,sha256=vxOOFrw4YodESej0m5ID8-_OXkM6hK3vOdK-4CAUajA,5669
133
- foxes/models/turbine_models/table_factors.py,sha256=-JmhxR5fEsr0YJr5w9UU4_i0pdsrBK4PvfN1AtOns9k,4666
134
- foxes/models/turbine_models/thrust2ct.py,sha256=mr26P7PoPD7QIgKCxylL1aMsr3g-ulNmP08T5g52MGw,2289
135
- foxes/models/turbine_models/yaw2yawm.py,sha256=7AE7J9UAeSQq4ZC_K9W0y6WqCie1eWpYcgHmcAhVvic,1601
136
- foxes/models/turbine_models/yawm2yaw.py,sha256=42NFAi3_BtJfeHa3jC9L9dbRVSiDQQK4Uf-5MZdf0Vg,1592
137
- foxes/models/turbine_types/CpCt_file.py,sha256=EnDZE4FH07wh-bFHAtd_Zz0BDKOheM699yeefq1wEL4,2048
138
- foxes/models/turbine_types/CpCt_from_two.py,sha256=uf4F4c3CXSwjWCOMrDmhMan5hyQm-pMpygeyp5-B7mM,2692
139
- foxes/models/turbine_types/PCt_file.py,sha256=ttJDPz5vNLhHUVX-oegsUihyMK6s81dlJV3rk7ubLgs,10300
140
- foxes/models/turbine_types/PCt_from_two.py,sha256=1Yg1Yukqint7aMByba3u11g-CN5keqIFR9FY9O4z5rI,11863
141
- foxes/models/turbine_types/__init__.py,sha256=rrERO5zveJZTFWuzRBmv9ZFPtW1TmtYrw9t46rxM0yM,296
142
- foxes/models/turbine_types/null_type.py,sha256=86cJiJk43YTw1eiz9mQAikVypGcbd4Ynl8NoAUmkoz4,1314
143
- foxes/models/turbine_types/wsrho2PCt_from_two.py,sha256=giN9OoavTT_oKtvC28Mvvlj08Hz44rGF8m-7utBmqas,11143
144
- foxes/models/turbine_types/wsti2PCt_from_two.py,sha256=RwbKyAzhT3KkTExr1kErOC6Yu2_tXM-bZ4vlYy6Eevg,12289
145
- foxes/models/vertical_profiles/__init__.py,sha256=oDgfzKa1mPCSWwDrqyqxzZdWwOPmc88wzf_O9ntcS9M,353
146
- foxes/models/vertical_profiles/abl_log_neutral_ws.py,sha256=2U5iiwii4DMbKJg5v2a6ICf-4ZIc7hpBUfZStsi8h-o,1849
147
- foxes/models/vertical_profiles/abl_log_stable_ws.py,sha256=Lxn9WoBegi9UXMAXMJdraHINJ8fsGEqOj5Lxo5LywHI,1937
148
- foxes/models/vertical_profiles/abl_log_unstable_ws.py,sha256=V6VX1xpnbFP3auL7Q7xRRvzWXwNm1f5GKEoRZo-RC7M,1949
149
- foxes/models/vertical_profiles/abl_log_ws.py,sha256=MirmvLpBe-6s5YgHLBJldlnVwIDeY0X1BfVhyPkvhOA,3396
150
- foxes/models/vertical_profiles/data_profile.py,sha256=s3UQUP9_sULHBfqncn8mJ8NSyFyVYnqWG5bLkflBLsM,2905
151
- foxes/models/vertical_profiles/sheared_ws.py,sha256=kC108pLPa3fHVJXQugU6R1VKz-JdXY1mhX2PQPmG-wI,1225
152
- foxes/models/vertical_profiles/uniform.py,sha256=bG0vCiBZqUiJQJreRuTUxb0X1WnJW6pGdpPoQd3A3WQ,1187
153
- foxes/models/wake_frames/__init__.py,sha256=kp0tqAYV9j_8kTw6azSoPoMDwu66yAeLkLYST27W2Gc,247
154
- foxes/models/wake_frames/farm_order.py,sha256=wG_ss1XXwZv6TWyVaAB7nNDkYu0CnL-Fk-oHbIpp6xY,3476
155
- foxes/models/wake_frames/rotor_wd.py,sha256=MThraqng_b2ZUAl8Aod9tESPkDYXKom-oGJCNrX79oM,3709
156
- foxes/models/wake_frames/seq_dynamic_wakes.py,sha256=mccB7-feKqDGa8UP2t_iaREDyUyLzrOvU557GXVBtHw,10987
157
- foxes/models/wake_frames/streamlines.py,sha256=noI30oNLgX88V1piOij8Rt9Y_vuNvj9Zcc3LqsJIErg,8868
158
- foxes/models/wake_frames/timelines.py,sha256=XkZV00ij7Oy3E_aMgrVHf_nEk-VbCOHO5Yjs-ptOcMk,9568
159
- foxes/models/wake_frames/yawed_wakes.py,sha256=ODTuPxCeMsoxinMEVSCOsemdT57c0IBEbeSHS93L6Ik,9001
160
- foxes/models/wake_models/__init__.py,sha256=hwoJF5RzDlr2g5zKgZ532H93F6Hcoo0Gfkc3XLiAJ1Q,253
161
- foxes/models/wake_models/axisymmetric.py,sha256=3dS-1Br9ZvDaGa_KVy0sotnuMku4QpL_Nz3T5dyQXm8,2788
162
- foxes/models/wake_models/dist_sliced.py,sha256=MsKBm8s9SqQ5g6vLFcfynebzvbRpYlP88uC4sr8t3QE,5883
163
- foxes/models/wake_models/gaussian.py,sha256=hchArmoqbdUthh2q7D9PEfC838217ySDHc2fbvtihD4,2760
164
- foxes/models/wake_models/top_hat.py,sha256=DMFEQGjJol08XHY_TyN74xXf4l2yFNSEE4k4yCKt15I,5885
165
- foxes/models/wake_models/induction/__init__.py,sha256=kl5hRnV0q1zyaqTdwhEdsNiOV-Fu0ySRIUQH418npyI,231
166
- foxes/models/wake_models/induction/rankine_half_body.py,sha256=SGPQwLv7NVfFIOcHbo8jWs3ghlxr2HvE3yM5W2HK2PE,7816
167
- foxes/models/wake_models/induction/rathmann.py,sha256=ydUcXNlaqpBY5Cf7RQR_2StCxcXua-KYToZcOYgk2ms,6262
168
- foxes/models/wake_models/induction/self_similar.py,sha256=1Ji4Cg_PZQfYnz-SMNQvCrQeuocthBozfT4n6e5oS-U,7011
169
- foxes/models/wake_models/induction/self_similar2020.py,sha256=D8yQxa5NQFII2gvKggcbJvuSDnrIRSy0Q5aCC3DoTPc,1634
170
- foxes/models/wake_models/induction/vortex_sheet.py,sha256=CIrVmM7EEe5fVr94FND4Vvfj_KPnKl02-oTE2QPwBAM,6341
171
- foxes/models/wake_models/ti/__init__.py,sha256=EOlqFHL2mzcKGFRZqlVYTiqGJqPb6dx7I5UWUDshy2U,125
172
- foxes/models/wake_models/ti/crespo_hernandez.py,sha256=Vi05vWV7aY02ixcgtAR4YVy5Y43ZaEI60ww8W2zdqu8,8844
173
- foxes/models/wake_models/ti/iec_ti.py,sha256=L9Yw34_oUGXdvGSVhjJMjmSNh2S1sJsUUKsFxGuGA8Q,6422
174
- foxes/models/wake_models/wind/__init__.py,sha256=X_QdQ_f3fKCIrZZ9K_CzzsHSl13AyvPRcWdEZ1y9Bk4,223
175
- foxes/models/wake_models/wind/bastankhah14.py,sha256=YTcpYzYpu7Q3t_8AZqCXbbyF02uXKlgH-2gBW18lquk,5174
176
- foxes/models/wake_models/wind/bastankhah16.py,sha256=XTRLJguNBSjERVCCquFXaxEnTx52lFrB9uPBRd3PLrc,17527
177
- foxes/models/wake_models/wind/jensen.py,sha256=6L1-thpjC79wy8fXGvTMuzFnoASIu5uPlREZyvcOsHk,4247
178
- foxes/models/wake_models/wind/turbopark.py,sha256=hqyp3wVoFlBvzdw69d5uhwZM_bHcG5PQfIhptICwJkE,14524
179
- foxes/models/wake_superpositions/__init__.py,sha256=p_pI_bUC-JjpGfg-7hyo3EpB_qVYqg5CCFt_vSG9DF4,371
180
- foxes/models/wake_superpositions/ti_linear.py,sha256=T9lP5PsHzi04Neq5dS3HDZGwyV7Qzvx_umCbk9M7Zks,3911
181
- foxes/models/wake_superpositions/ti_max.py,sha256=fnfYmr_Wt9EPZftHoHnqRlTwFWAawrEheGgLA0NwIlA,3936
182
- foxes/models/wake_superpositions/ti_pow.py,sha256=4ZS3d0ulRkIDaVeG2VvcdjpJch673INQRUGgj37cs_A,4160
183
- foxes/models/wake_superpositions/ti_quadratic.py,sha256=tkmaoIm7a-Q4c3qtMpBmX25jfcVdt0Qp7Xn0fQrxN4A,3926
184
- foxes/models/wake_superpositions/ws_linear.py,sha256=TiKaRAxNioY4oIloJODfT1zftnkXzhuqfqEkqG33owc,9155
185
- foxes/models/wake_superpositions/ws_max.py,sha256=MktXVo3PfMgh172DJP_KRftiqs8jXsuaQPLne1jHKyY,9381
186
- foxes/models/wake_superpositions/ws_pow.py,sha256=aPtm5NwQx6byNfetSX57Z7tVkXtgXIRleSf4grKtZF0,9602
187
- foxes/models/wake_superpositions/ws_product.py,sha256=8dCDaKfuzHfTEBo0_N7BR-x_qG2tWXTabzPsgpIAtXk,4672
188
- foxes/models/wake_superpositions/ws_quadratic.py,sha256=jUo4wFkrUPbj-27m3ozCEzab7iamkNZtVlrCwY-Yh2w,9197
189
- foxes/output/__init__.py,sha256=7JSbLw8oEI3f-aFDCQ11ygNLm9b--6va1vMBeCftlx8,675
190
- foxes/output/animation.py,sha256=zljekg6k2DjqVaBw0OamB4i3eopi6g2j0a12B9hx7VQ,2637
191
- foxes/output/calc_points.py,sha256=QRZuZ6joHbhkEYDBX87QgEWwMMYbohAK3ZFuVwErK3Q,4497
192
- foxes/output/farm_layout.py,sha256=PGQUIhza5BrGDIPU69O7hm91tjKJLFQq7N8rmXeVXAY,10981
193
- foxes/output/farm_results_eval.py,sha256=LAv8A5XQ7gMKmT77ILzbRsIptiqBAWf89bR3Xh68cT4,17663
194
- foxes/output/flow_plots_2d.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
195
- foxes/output/grids.py,sha256=va7sPdzjZEGEzVYW4m_KmAYBE7S7x5C2BXfroQY-kao,19767
196
- foxes/output/output.py,sha256=wUxKlNbfjwqDzU-lTWfIZMfK-h_R3rpmthSlgunTyw8,3460
197
- foxes/output/results_writer.py,sha256=H8UptENDq2THwbRRe41I_d9OAdc4osnWER4QSTvrAQ0,5833
198
- foxes/output/rose_plot.py,sha256=t4sO9FCV6BJvTLv3vudsBajaSQblOaS6INS5GltCkT0,11090
199
- foxes/output/rotor_point_plots.py,sha256=R44fcseBC5g8YsuR4irRrvYN8Nj94_lpJgpsBst2kjE,3165
200
- foxes/output/round.py,sha256=s8YcXciCtaMY14SnG3ebYccyjQ2IEln256SwN9oJnPI,351
201
- foxes/output/slice_data.py,sha256=9BIwsJZl69rSLuxI60Sv0fGcPFP71tpMemE8BNXdoIs,32224
202
- foxes/output/state_turbine_map.py,sha256=mH5pJdw0LORftJ_gHxiuOM6aRosRJ3nWqeYab4QAdxg,2421
203
- foxes/output/state_turbine_table.py,sha256=XcS8CYRLUAxyXPaBrhTv2HEj8ykMnrBzCxSYPWIhLQM,1836
204
- foxes/output/turbine_type_curves.py,sha256=oZm9YGLLL-makFZDFucCkjXoqF2bkhFj9yJRqWM1Xk8,5526
205
- foxes/output/flow_plots_2d/__init__.py,sha256=2d4RyQYPOYr-HiBCbp1swSPG4Nf3NGezTr5LmvtkGA4,121
206
- foxes/output/flow_plots_2d/flow_plots.py,sha256=RYdYZui11IlJE5Mm_R3dtkkQDC0XbAz2JyOT1U25PAA,28209
207
- foxes/output/flow_plots_2d/get_fig.py,sha256=gGMOfzNCukq_l0FZLmi3zSBl0ANkQi2WoKaGTpB6xhc,6169
208
- foxes/output/flow_plots_2d/seq_flow_ani_plugin.py,sha256=RFlzbZG2L9A583d7wSqZHogP561YEtfcu5M5FaCqIIE,2782
209
- foxes/utils/__init__.py,sha256=VkT0l3ety_dhfP-RdoI3nLmBeHvJetfIuo2-rz8_Biw,753
210
- foxes/utils/cubic_roots.py,sha256=u2Pf-yHZ6EASpFONMfkv0mvldmd1E1VRZxj69YabDoc,3321
211
- foxes/utils/data_book.py,sha256=DgxusriNH-fhHNN_v6TY3QWcAnrAcw20Wgz7lDfbMeg,5302
212
- foxes/utils/dict.py,sha256=s922OY22wOKBMbzQ_g-T-MhEw1dga0d3CCwFwd0nI78,886
213
- foxes/utils/exec_python.py,sha256=BRylxWOyYHpjIZXCuoOp_A-P9VMoQZ13P2vpHs-lqj8,1714
214
- foxes/utils/factory.py,sha256=c-Zz1BxVjt5aICoTB0Lz-K16J-RqFdLjTEPmtkykXMU,15647
215
- foxes/utils/geopandas_helpers.py,sha256=inVQHMco6Op7YN3VFH1DGAJZWREuveJUS7gyoRudw2A,7895
216
- foxes/utils/geopandas_utils.py,sha256=inVQHMco6Op7YN3VFH1DGAJZWREuveJUS7gyoRudw2A,7895
217
- foxes/utils/load.py,sha256=7jrCX2GQ_GTgrSu3nz-jfxiyswa7Q3XXCYqobl6bkyk,1290
218
- foxes/utils/pandas_helpers.py,sha256=iFijkt7GfsWYhP9Cn92zg8Wj-BPaihJfmYBXTddQQc4,4627
219
- foxes/utils/pandas_utils.py,sha256=5r3RHjaGu-Vi7DGMBdCDxVeu9nZk46wtPlHRL4l_R_c,4630
220
- foxes/utils/random_xy.py,sha256=i0AZ04BLL6TxC3Lg1ZfwI_o4zJbHR6hm-BNd0Sydu_c,1376
221
- foxes/utils/regularize.py,sha256=OnJ88ZCSu289aLHgrOb96j1A9JVvg_7OjZ3lWZAnNHo,512
222
- foxes/utils/subclasses.py,sha256=bnlZaLgGjq9cQC9dvsxahUmLQQlSmmun35TjWYyX9CA,380
223
- foxes/utils/tab_files.py,sha256=H50IpLaqffJn9A51orCGc4fOhCOzoNUYDUKek4OAayU,1811
224
- foxes/utils/two_circles.py,sha256=xkj-SA_x-VXY7KtmSU4lcV4gFdplyhU3sBAC9vTdkF4,2810
225
- foxes/utils/wind_dir.py,sha256=7Ve8_SmKpzm-SUCo-4RdtN8ocinpPXmX1xvXhCLDrmM,2825
226
- foxes/utils/windrose_plot.py,sha256=O9zLrDzQXIgKdBwzqNkusyA_rMshbk-8ybloIwt8vuY,4589
227
- foxes/utils/xarray_utils.py,sha256=NGSleMLvQeBu04VxtGGcbA9idbtmRWh6fPwsp5QO-7I,1195
228
- foxes/utils/abl/__init__.py,sha256=ijn-ubLLlqqH6tTAXFRmBAxJZmVBlTEmtx1cdCCtG4I,135
229
- foxes/utils/abl/neutral.py,sha256=rBfuUDTCGzNb19oM_dZb7LJ3m26rWzfEw9MjPiASpK0,1358
230
- foxes/utils/abl/sheared.py,sha256=nS6gxa5cR7B7XcZbEk3rwOvbF6m4cinXAIhhn9gGBBs,446
231
- foxes/utils/abl/stable.py,sha256=gOlQKxZWLXm1lOwLU-4qF4PZ0K6izmiHjipL6sGRqME,1830
232
- foxes/utils/abl/unstable.py,sha256=bwt3VrtwGpSUPh5nlkHORld3BvHJR4JgELlJ9635N7c,1611
233
- foxes/utils/geom2d/__init__.py,sha256=mLjnRU0b0_nrVVUKyWwZFbPyu-k8yWPEM7i4Y4-QK3w,252
234
- foxes/utils/geom2d/area_geometry.py,sha256=CvkhXqfGM7g_gQKtyeCNg0_Xk5Wf46fipK8H7Bo_Ag4,19120
235
- foxes/utils/geom2d/circle.py,sha256=8KDQmdt9KS23WmfwzZoUD9wH0ljHwfDeSD11e15H7PA,4530
236
- foxes/utils/geom2d/example_intersection.py,sha256=4e6sjpZEk_bNc462YvwKPzwxdV1B90M82bC63ICV4Lw,1626
237
- foxes/utils/geom2d/example_union.py,sha256=BKfLt1mtQcSto-qExeMQkq8tQ6kfFXVJ93Cc7DhOal8,1750
238
- foxes/utils/geom2d/half_plane.py,sha256=kzZD6pkZxZ03MK9WAboWzXb5Ws5dWLQY9GIahD4D9mA,6167
239
- foxes/utils/geom2d/polygon.py,sha256=8ASfy7No_-Pt_xDSeNsDtLEkCjBWsNZK8nIxDQtqeOE,5534
240
- foxes/utils/runners/__init__.py,sha256=-WL4ZmdgNYldkqhCV6dR-aXCumBrH-Ea-V1shsRhsbs,55
241
- foxes/utils/runners/runners.py,sha256=TVnJ2k8thITcvS9Eup71YlGKaO-Aw3J36eHdW8Ye828,6922
242
- foxes-0.8.2.dist-info/LICENSE,sha256=bBCH6mYTPzSepk2s2UUZ3II_ZYXrn1bnSqB85-aZHxU,1071
243
- foxes-0.8.2.dist-info/METADATA,sha256=GGwlGxZ2mKeBfvGlCbHCyXdcJ0LNSncQNzqUwbhO-yc,6618
244
- foxes-0.8.2.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
245
- foxes-0.8.2.dist-info/top_level.txt,sha256=B4spGR6JHsVHz7CEXsa68xsjYalAA70nBwHa1gfyRHc,6
246
- foxes-0.8.2.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
247
- foxes-0.8.2.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- foxes
@@ -1 +0,0 @@
1
-