foxes 0.7.1__py3-none-any.whl → 0.7.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of foxes might be problematic. Click here for more details.
- foxes/VERSION +1 -1
- foxes/algorithms/downwind/downwind.py +60 -46
- foxes/algorithms/downwind/models/farm_wakes_calc.py +17 -6
- foxes/algorithms/downwind/models/point_wakes_calc.py +13 -45
- foxes/algorithms/iterative/iterative.py +1 -1
- foxes/algorithms/iterative/models/farm_wakes_calc.py +18 -4
- foxes/constants.py +5 -0
- foxes/core/__init__.py +2 -1
- foxes/core/ground_model.py +254 -0
- foxes/core/model.py +3 -2
- foxes/core/partial_wakes_model.py +19 -3
- foxes/core/states.py +33 -0
- foxes/core/wake_model.py +138 -2
- foxes/data/__init__.py +1 -1
- foxes/data/states/WRF-Timeseries-3000.nc +0 -0
- foxes/data/states/windio_timeseries_5000.nc +0 -0
- foxes/data/static_data.py +7 -0
- foxes/data/windio/DTU_10MW_turbine.yaml +10 -0
- foxes/data/windio/__init__.py +0 -0
- foxes/data/windio/windio_5turbines_timeseries.yaml +63 -0
- foxes/input/states/__init__.py +1 -0
- foxes/input/states/multi_height.py +225 -6
- foxes/input/windio/__init__.py +6 -1
- foxes/input/windio/get_states.py +115 -0
- foxes/input/windio/read_attributes.py +321 -0
- foxes/input/windio/read_farm.py +163 -0
- foxes/input/windio/read_fields.py +164 -0
- foxes/input/windio/runner.py +105 -0
- foxes/input/windio/windio.py +136 -254
- foxes/models/__init__.py +2 -1
- foxes/models/ground_models/__init__.py +2 -0
- foxes/models/ground_models/no_ground.py +12 -0
- foxes/models/ground_models/wake_mirror.py +161 -0
- foxes/models/model_book.py +114 -164
- foxes/models/partial_wakes/axiwake.py +27 -4
- foxes/models/partial_wakes/top_hat.py +26 -4
- foxes/models/turbine_types/PCt_file.py +1 -0
- foxes/models/turbine_types/PCt_from_two.py +92 -0
- foxes/models/wake_frames/yawed_wakes.py +41 -38
- foxes/models/wake_models/__init__.py +0 -1
- foxes/models/wake_models/induction/__init__.py +1 -0
- foxes/models/wake_models/induction/rankine_half_body.py +1 -1
- foxes/models/wake_models/induction/vortex_sheet.py +227 -0
- foxes/models/wake_models/ti/crespo_hernandez.py +26 -24
- foxes/models/wake_models/ti/iec_ti.py +33 -26
- foxes/models/wake_models/wind/bastankhah14.py +11 -32
- foxes/models/wake_models/wind/bastankhah16.py +30 -34
- foxes/models/wake_models/wind/jensen.py +13 -29
- foxes/models/wake_models/wind/turbopark.py +31 -61
- foxes/models/wake_superpositions/ws_max.py +1 -0
- foxes/models/wake_superpositions/ws_pow.py +1 -0
- foxes/models/wake_superpositions/ws_quadratic.py +1 -0
- foxes/output/grids.py +6 -6
- foxes/output/output.py +6 -6
- foxes/utils/__init__.py +1 -1
- foxes/utils/factory.py +284 -76
- {foxes-0.7.1.dist-info → foxes-0.7.3.dist-info}/METADATA +8 -6
- {foxes-0.7.1.dist-info → foxes-0.7.3.dist-info}/RECORD +65 -51
- {foxes-0.7.1.dist-info → foxes-0.7.3.dist-info}/WHEEL +1 -1
- foxes/models/wake_models/wake_mirror.py +0 -196
- /foxes/models/{axial_induction_models → axial_induction}/__init__.py +0 -0
- /foxes/models/{axial_induction_models → axial_induction}/betz.py +0 -0
- /foxes/models/{axial_induction_models → axial_induction}/madsen.py +0 -0
- {foxes-0.7.1.dist-info → foxes-0.7.3.dist-info}/LICENSE +0 -0
- {foxes-0.7.1.dist-info → foxes-0.7.3.dist-info}/top_level.txt +0 -0
- {foxes-0.7.1.dist-info → foxes-0.7.3.dist-info}/zip-safe +0 -0
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
foxes/VERSION,sha256=
|
|
1
|
+
foxes/VERSION,sha256=nHiKg43B9r_YD6OXV6lflCYAccNQEcmgUwHaHHNQdlc,6
|
|
2
2
|
foxes/__init__.py,sha256=4ptDOBaQC8fAd_ZH5XH7d5pIgx3JXEY9xLcK3Nrs2Ow,718
|
|
3
|
-
foxes/constants.py,sha256=
|
|
3
|
+
foxes/constants.py,sha256=RDRD9ZkKeq-VXV6Zb1Y-QuZYw0voQezalbUaxprAnq0,2713
|
|
4
4
|
foxes/variables.py,sha256=I-S25WejH33ffOcVnmN2TDL1pIxWqg0aM1lhIBwZ9NQ,4454
|
|
5
5
|
foxes/algorithms/__init__.py,sha256=uaXU8OYMT3eclcE6a2b8NkozHVXoM1BF5RJA2XR4DUw,260
|
|
6
6
|
foxes/algorithms/downwind/__init__.py,sha256=lyygq5GMc6NAPmH0b0mhGeccWyuC8JTOEMZl-UlmE5M,53
|
|
7
|
-
foxes/algorithms/downwind/downwind.py,sha256=
|
|
7
|
+
foxes/algorithms/downwind/downwind.py,sha256=o8d2HZW5m2NDVKhS0uWLhEuyGMuY9CPI5fM-RqBh79U,21862
|
|
8
8
|
foxes/algorithms/downwind/models/__init__.py,sha256=0ov8rjIQ02w3iB6yYCxaswPvHDlPM_8_di6xPh1TTkQ,300
|
|
9
|
-
foxes/algorithms/downwind/models/farm_wakes_calc.py,sha256
|
|
9
|
+
foxes/algorithms/downwind/models/farm_wakes_calc.py,sha256=-O-0hpDYFnR15yaK3GNNd8G_4gNwRZ8pmnam94dANJQ,5535
|
|
10
10
|
foxes/algorithms/downwind/models/init_farm_data.py,sha256=sTUMYGLU9iHr56prdNRR4cs0yuCFp7gqiCDut685HKM,4022
|
|
11
|
-
foxes/algorithms/downwind/models/point_wakes_calc.py,sha256=
|
|
11
|
+
foxes/algorithms/downwind/models/point_wakes_calc.py,sha256=cUIQ439fKF_wLP2AH1uuQe9bWdyq6O5StsJviwIHvuA,4548
|
|
12
12
|
foxes/algorithms/downwind/models/reorder_farm_output.py,sha256=4BjIQ1bYDiZi5LzPpv5dokEr0T2DqOpXRdZYiPa5bgI,2041
|
|
13
13
|
foxes/algorithms/downwind/models/set_amb_farm_results.py,sha256=_hBlSnlD1MYzQ2HV6eEXREaLsj4CKsxI4hr9LFFi-qc,1734
|
|
14
14
|
foxes/algorithms/downwind/models/set_amb_point_results.py,sha256=s72ARemcWCY1UsbZ1jxT1QRJpAbLhd40-RLP4yZgXgY,2219
|
|
15
15
|
foxes/algorithms/iterative/__init__.py,sha256=Je445cHtS2ERc-dywjhxWttKzdEyHM8JLxPcW5JFtl8,137
|
|
16
|
-
foxes/algorithms/iterative/iterative.py,sha256=
|
|
16
|
+
foxes/algorithms/iterative/iterative.py,sha256=Mgbs6v69o5HePbOxwTl85hLxfA1C91u0iWfLdkEpe2A,9148
|
|
17
17
|
foxes/algorithms/iterative/models/__init__.py,sha256=3lMBUOzq5bKNQBGoV8byVQ7_Keyk1GfwFZDUwaafGsg,152
|
|
18
18
|
foxes/algorithms/iterative/models/convergence.py,sha256=5fCeTMisYEhgvPRbLKMK0XYsSSr2xWqqzB-pUBrIjYk,6466
|
|
19
|
-
foxes/algorithms/iterative/models/farm_wakes_calc.py,sha256=
|
|
19
|
+
foxes/algorithms/iterative/models/farm_wakes_calc.py,sha256=nXFR8c1jZw6Q4ewYJlvDvPf8O3Za2W1hNVze410f7UI,4762
|
|
20
20
|
foxes/algorithms/iterative/models/urelax.py,sha256=wYRHeeKsgCWMmOJ2YnbgUB79VI-D6ceTwEndvvtKBes,2078
|
|
21
21
|
foxes/algorithms/sequential/__init__.py,sha256=2o05IH9XePnqxNEAn2Fr1qiCM6OooqmH2VtmdJXtK0c,94
|
|
22
22
|
foxes/algorithms/sequential/sequential.py,sha256=PeQ8j2TuZT2KuxOZTvN4iNoZVT6lYQCcahk2lMprWx8,16242
|
|
23
23
|
foxes/algorithms/sequential/models/__init__.py,sha256=OneaRLxMPzVWLKL9cR3JIYHojfzVX_CQaPv-LP6mCZI,69
|
|
24
24
|
foxes/algorithms/sequential/models/plugin.py,sha256=9xa5mUp72gX3rAsdqM76Dibky0jA-gmYO2J4oBNoiHA,1326
|
|
25
25
|
foxes/algorithms/sequential/models/seq_state.py,sha256=AB2Mf4WbbL9iDN_3mP4nTi44R6G4Gf_-At0ZlicXgrY,3656
|
|
26
|
-
foxes/core/__init__.py,sha256=
|
|
26
|
+
foxes/core/__init__.py,sha256=2NPeoNWCJx5-Q77TlXDmnSxmzf9gaQEx1JTWIHOWeT4,956
|
|
27
27
|
foxes/core/algorithm.py,sha256=JIvEuoxf25lnZLX8fze2JSYT73KFirzmp6yfrJMa_x0,15169
|
|
28
28
|
foxes/core/axial_induction_model.py,sha256=U7g8vmdKBS4xVYXVpD-uNDnKUnpFXccRTWB5LOPDGaY,498
|
|
29
29
|
foxes/core/data.py,sha256=KjRS5fXaYMeNw_cAaBYarJTX7qCNQJbHDSDWPGLB_70,14581
|
|
@@ -31,22 +31,23 @@ foxes/core/data_calc_model.py,sha256=Xtt9-QQes0Y3XFfUcPysB-5YtMbk74ooyatJNUYYjMg
|
|
|
31
31
|
foxes/core/farm_controller.py,sha256=8VmqM4uaQ3k8pkMllOJ-MC27P2dHMJUCzhmROMLtlN4,12199
|
|
32
32
|
foxes/core/farm_data_model.py,sha256=IwlHg10H4mSXHbU5vdfAS7FyvY8kVwArTfaijQHlKLU,6953
|
|
33
33
|
foxes/core/farm_model.py,sha256=ogFahCjC2dIBcjnCMmy0cTGulKTDA2ufFUzODf0-KnI,265
|
|
34
|
-
foxes/core/
|
|
35
|
-
foxes/core/
|
|
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
|
|
36
37
|
foxes/core/point_data_model.py,sha256=9-9d8FCZy8rxZoGXC9MwI3fAa4XApsR8tzRCxHaanhU,6666
|
|
37
38
|
foxes/core/rotor_model.py,sha256=8rvP8iVMDvFM_Dgh1stVqKy4CqiM38maRTkoQCt1PSU,12879
|
|
38
|
-
foxes/core/states.py,sha256=
|
|
39
|
+
foxes/core/states.py,sha256=2-3I62ebQCoKxye5Hyz_QT45b8PA1UwMlU_XWvbvi8s,8230
|
|
39
40
|
foxes/core/turbine.py,sha256=P5qPKmV1qohZdAKW4lPiUerQkRDTxUOhsvBPQqy8mBo,3054
|
|
40
41
|
foxes/core/turbine_model.py,sha256=IcsU848QNHbUhDN5oqd7VnVWKx_VM5UwRhlPsWK_njw,2049
|
|
41
42
|
foxes/core/turbine_type.py,sha256=uet3SiJDqt9bPD8tq5xkq-blGV7o1Nd0lNn_2DlqOyk,3151
|
|
42
43
|
foxes/core/vertical_profile.py,sha256=pgjari78N2CHZOWnidQ_7KGsSs4lTFP9isn-w6e1Yro,1642
|
|
43
44
|
foxes/core/wake_frame.py,sha256=JbDWjHtZ6nSt-pSSlIsrKea4shwx_7YViZCCl9kNI_0,10239
|
|
44
|
-
foxes/core/wake_model.py,sha256=
|
|
45
|
+
foxes/core/wake_model.py,sha256=DjcNbEWPzgxBoW4IN5i9CGfPyuaCaJKYPoiK7ctsfC8,8054
|
|
45
46
|
foxes/core/wake_superposition.py,sha256=_XRgHeIVf_g8MkudwCLAX0DcTBp4Wdy9bDJLRPqkQrM,2811
|
|
46
47
|
foxes/core/wind_farm.py,sha256=COJ6iLFeU_EiYJKLzcG2f9k9z3YegHKr-NvrAS1X_ks,1708
|
|
47
|
-
foxes/data/__init__.py,sha256=
|
|
48
|
+
foxes/data/__init__.py,sha256=efVzdUkpjcgmn8nF8eLAr5HCm1Ym7YF3JomY_bXNVts,161
|
|
48
49
|
foxes/data/parse.py,sha256=x71oWLyvVsMJ7XVL9VRQXZbflnTXqBaxyBdoMQdZExs,2947
|
|
49
|
-
foxes/data/static_data.py,sha256=
|
|
50
|
+
foxes/data/static_data.py,sha256=k5ey-hJWMJTjRZnW5gaEj9dayxAClOBdbM14-IpON60,858
|
|
50
51
|
foxes/data/farms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
51
52
|
foxes/data/farms/test_farm_67.csv,sha256=TwHt8NVuyP6p2G1VaM_Mi4ENBaHyg4eF6jz0zXQQDro,1872
|
|
52
53
|
foxes/data/power_ct_curves/DTU-10MW-D178d3-H119.csv,sha256=71C1HTf9QtAvavYLwo6US-JmEGyiByrnvZPysua8muE,410
|
|
@@ -54,6 +55,7 @@ foxes/data/power_ct_curves/IEA-15MW-D240-H150.csv,sha256=ITmkbLIG-jsAoxg1eYgJEbx
|
|
|
54
55
|
foxes/data/power_ct_curves/IWT-7d5MW-D164-H100.csv,sha256=K9yAhgkCZfRBKZibxKbHtWrKg5mIHnMCswdOVd2uyQ0,851
|
|
55
56
|
foxes/data/power_ct_curves/NREL-5MW-D126-H90.csv,sha256=u2b6LUCCKL6bYn2lNrB02MqBnwT-veL4CCi6Km4am-E,401
|
|
56
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
|
|
57
59
|
foxes/data/states/WRF-Timeseries-4464.csv.gz,sha256=bjZxvnVp_iyVmIhd-N9lE5TJUZQvunsuueVXu_MnLpk,427815
|
|
58
60
|
foxes/data/states/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
59
61
|
foxes/data/states/abl_states_6000.csv.gz,sha256=wzbMKNk3jZ3sRlV4aYJSv_ycncEryXaFT1uQ3oNYJSQ,126124
|
|
@@ -62,7 +64,11 @@ foxes/data/states/timeseries_3000.csv.gz,sha256=e6hkBMl2oQ0y9zy1I2uh3xyv4YyH9NbR
|
|
|
62
64
|
foxes/data/states/timeseries_8000.csv.gz,sha256=CzayW5CtnP9Y2kxCE4jlsDZwr6G_RMfacnp17mUUQ_4,78694
|
|
63
65
|
foxes/data/states/wind_rose_bremen.csv,sha256=ixSf8-_esjFsBtfT3Y92k67QrJPDx6dY3uBhOSV-hj4,4943
|
|
64
66
|
foxes/data/states/wind_rotation.nc,sha256=-ZLfpxa_BJpRUABgJsK5I7c8ogAWTrYNE18un7FxhnU,10990
|
|
67
|
+
foxes/data/states/windio_timeseries_5000.nc,sha256=NbC55qSTSprnawc6_9NalvlM6OEk9kqE8d-tsXAKvzg,78601
|
|
65
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
|
|
66
72
|
foxes/input/__init__.py,sha256=qi7BB7FK71gKex5_IFD5a6pvLLLnRWQV9rYKInnpf10,126
|
|
67
73
|
foxes/input/farm_layout/__init__.py,sha256=EMAA3t-lmvPdMeoll4yJzKz7adVBIpDv5TubjIbrLYk,287
|
|
68
74
|
foxes/input/farm_layout/from_csv.py,sha256=jFezF0rmxolhgpWrqVvej0AjvKc4q3gJ4I09uGG7mSE,3185
|
|
@@ -72,33 +78,41 @@ foxes/input/farm_layout/from_json.py,sha256=5dzFhZdFFaReOnuCKwEmPbK5muf2TTi6AxTG
|
|
|
72
78
|
foxes/input/farm_layout/from_random.py,sha256=6ZYKbdV6x11MbQRAHs5nVYBAG-1K295xsMXtfCfAfts,1126
|
|
73
79
|
foxes/input/farm_layout/grid.py,sha256=7j3l-0rRQ3WojnVkFtuQ-bXmNOFM9ymbDCOOHYFDZ1A,1465
|
|
74
80
|
foxes/input/farm_layout/row.py,sha256=RR8-vkSrxuWMZXLwyHAROhQIcbKnf0zTLH_zWHZ4gA0,1196
|
|
75
|
-
foxes/input/states/__init__.py,sha256=
|
|
81
|
+
foxes/input/states/__init__.py,sha256=gPlMBV0z4y5AcgRKTSqbsK53hVoBJBzGNtQQleUJcMY,361
|
|
76
82
|
foxes/input/states/field_data_nc.py,sha256=Y7K8gCcUeaMCVKa4C6l8IvUTR_JnhEkx3ObXRDPCo3M,18693
|
|
77
|
-
foxes/input/states/multi_height.py,sha256=
|
|
83
|
+
foxes/input/states/multi_height.py,sha256=xkavoXC5TF_-qq19f8PMVEIgAsDkup9dB5h2ZWBgyME,20039
|
|
78
84
|
foxes/input/states/scan_ws.py,sha256=jdSpylzWF8qsFuIiY8we6djdG0d7b5doh6WSslg3OnQ,4262
|
|
79
85
|
foxes/input/states/single.py,sha256=6DO1lFenVJ9pjwL4I3B4tKWxcMmKSp_U4L3KqFRuqyk,5989
|
|
80
86
|
foxes/input/states/states_table.py,sha256=9dq9sxR5PVjS99WRGJClB_1W8gPZ9UNi-viHKSegRR0,15373
|
|
81
87
|
foxes/input/states/create/__init__.py,sha256=Ocqzmr9SOefeAvGX5DgawsPXfNdGzWOZ2ssvtqEmtAo,134
|
|
82
88
|
foxes/input/states/create/random_abl_states.py,sha256=45h0a84FmeLZwxbtwtxs5kmoz8_O1_KjsyV-xTc_RoE,3333
|
|
83
89
|
foxes/input/states/create/random_timeseries.py,sha256=gJpaQ4nEXxOjI4hp3xjNcVbCsmZUm-brXUxoqDb63WE,1266
|
|
84
|
-
foxes/input/windio/__init__.py,sha256
|
|
85
|
-
foxes/input/windio/
|
|
86
|
-
foxes/
|
|
87
|
-
foxes/
|
|
88
|
-
foxes/
|
|
89
|
-
foxes/
|
|
90
|
-
foxes/
|
|
90
|
+
foxes/input/windio/__init__.py,sha256=-WDFDcV-yiu_QC_0Aywm85hpxFso7BcU1WyJGgSHjWY,304
|
|
91
|
+
foxes/input/windio/get_states.py,sha256=2rQ3qrXbqdHoGoCsezpoS_9veajKWyTrnwtNn-FNCDo,3138
|
|
92
|
+
foxes/input/windio/read_attributes.py,sha256=NOrPk1pAaeEv_Chzr-wkr0lmLks9san7KiHT4S5UL3Y,11040
|
|
93
|
+
foxes/input/windio/read_farm.py,sha256=c0oMUPyfUGoZkaAsyuEdgFNvitU0F0pFz-Lo5ATASSE,5222
|
|
94
|
+
foxes/input/windio/read_fields.py,sha256=MjSyu50aAryCpsDNXp8Bp4DcA6okXNQ0EOTaJ1GV7oQ,4239
|
|
95
|
+
foxes/input/windio/runner.py,sha256=9yx8RKsMKFG9TjiV4z779JXy-moRfONUzqPNiLdeJJc,2861
|
|
96
|
+
foxes/input/windio/windio.py,sha256=r_deloAeGqVVdAasRaQJavRjsDRB6y3CnDm2SbUw-B0,4930
|
|
97
|
+
foxes/models/__init__.py,sha256=8eOGCieghW7ILjpkxMHzp4GN2zFF3xlKPl7Df7sMxoU,434
|
|
98
|
+
foxes/models/model_book.py,sha256=YF6iKJAS7HUxn-QoAWFhwcvMM1o01xHVNrrBXLmQmDE,23509
|
|
99
|
+
foxes/models/axial_induction/__init__.py,sha256=CdYOzu45DWu7xrzpRpFIQ6CGZIMABjjy_lqAszjj9lg,78
|
|
100
|
+
foxes/models/axial_induction/betz.py,sha256=rAaq7pnu-FmfYh61BU5Af1h4_bG2AAimP4Qah1aZo88,894
|
|
101
|
+
foxes/models/axial_induction/madsen.py,sha256=_-ycfh8SnIpCKWm1uwx5VH7f49FQvR0y1Nbb_U8xWyU,1403
|
|
91
102
|
foxes/models/farm_controllers/__init__.py,sha256=oDdW_fA3GSkJBzn9Vsd3T9bBVhB9-j_IglFjYV4G2rU,72
|
|
92
103
|
foxes/models/farm_controllers/basic.py,sha256=6pinNXiyfoG3apXhqQWcnxx4vN_7Q63YryXX5Z7kTE0,249
|
|
93
104
|
foxes/models/farm_models/__init__.py,sha256=WoC1Cmeo5-LLdC5I_S9hwZhZOtBnWDL6azjaUTcoOuY,66
|
|
94
105
|
foxes/models/farm_models/turbine2farm.py,sha256=XO6-6YGWOcbwB6z0Ttey3rQlOR7sg7ETE1sAlTqiEao,2278
|
|
106
|
+
foxes/models/ground_models/__init__.py,sha256=RR6p8B4jacbzcK1LwnSUqYFXi9h7Qx4RhKiTTGXKxZo,82
|
|
107
|
+
foxes/models/ground_models/no_ground.py,sha256=pDuHAFHHgpEVIi1spie9ooR7OG-4l8_KPrGYQhdCT3I,149
|
|
108
|
+
foxes/models/ground_models/wake_mirror.py,sha256=Ad9x5eYDdEjhRDzjTBkUT4DjoqYjKkvuQL1tMWy7KVQ,4324
|
|
95
109
|
foxes/models/partial_wakes/__init__.py,sha256=qlV4zgjTSBfpz4dVh7DSoxCZXkaK_-dW43t8-LcDYEg,245
|
|
96
|
-
foxes/models/partial_wakes/axiwake.py,sha256=
|
|
110
|
+
foxes/models/partial_wakes/axiwake.py,sha256=Rxv3yE4YvYodEjbHzn5lzRwvVBwhm6Jvz3-e5e3FpfY,6559
|
|
97
111
|
foxes/models/partial_wakes/centre.py,sha256=mIX0eiPJUFCJ82gjZCrf6ajRmJp7CgKpM7QQXiE6UEI,963
|
|
98
112
|
foxes/models/partial_wakes/grid.py,sha256=SOymgn0MGvUFSAWd9YKDCzXYtizsuiNV-yP0oqrKS1E,600
|
|
99
113
|
foxes/models/partial_wakes/rotor_points.py,sha256=M5G5jJbfwv2htbI8dhoUTykIeUxXOuy3kPoBn1g-JeA,2783
|
|
100
114
|
foxes/models/partial_wakes/segregated.py,sha256=iGa9wDTGkSap5L5Q63o3UMeOJN2Nq6qxYrw-hJ-E7kU,4370
|
|
101
|
-
foxes/models/partial_wakes/top_hat.py,sha256=
|
|
115
|
+
foxes/models/partial_wakes/top_hat.py,sha256=jcbLImoN9aiztm0PqIwfz9iSduOUvrrtAISc6rD2jmY,5550
|
|
102
116
|
foxes/models/point_models/__init__.py,sha256=kb6pBrrPGWWKcnlAqOdBLMT7l-Y7yFAitrUr4eFiWcM,131
|
|
103
117
|
foxes/models/point_models/set_uniform_data.py,sha256=LkQMwrvDaAWyVRQnHUUrT4W7d6Xz33E2nVdWJNONp1c,4476
|
|
104
118
|
foxes/models/point_models/tke2ti.py,sha256=ZwCwqPm8H6PlyjS_D6vODFdm38WrpcFtgBL8UCgzWAk,1409
|
|
@@ -121,8 +135,8 @@ foxes/models/turbine_models/yaw2yawm.py,sha256=7AE7J9UAeSQq4ZC_K9W0y6WqCie1eWpYc
|
|
|
121
135
|
foxes/models/turbine_models/yawm2yaw.py,sha256=42NFAi3_BtJfeHa3jC9L9dbRVSiDQQK4Uf-5MZdf0Vg,1592
|
|
122
136
|
foxes/models/turbine_types/CpCt_file.py,sha256=EnDZE4FH07wh-bFHAtd_Zz0BDKOheM699yeefq1wEL4,2048
|
|
123
137
|
foxes/models/turbine_types/CpCt_from_two.py,sha256=uf4F4c3CXSwjWCOMrDmhMan5hyQm-pMpygeyp5-B7mM,2692
|
|
124
|
-
foxes/models/turbine_types/PCt_file.py,sha256=
|
|
125
|
-
foxes/models/turbine_types/PCt_from_two.py,sha256=
|
|
138
|
+
foxes/models/turbine_types/PCt_file.py,sha256=ttJDPz5vNLhHUVX-oegsUihyMK6s81dlJV3rk7ubLgs,10300
|
|
139
|
+
foxes/models/turbine_types/PCt_from_two.py,sha256=1Yg1Yukqint7aMByba3u11g-CN5keqIFR9FY9O4z5rI,11863
|
|
126
140
|
foxes/models/turbine_types/__init__.py,sha256=rrERO5zveJZTFWuzRBmv9ZFPtW1TmtYrw9t46rxM0yM,296
|
|
127
141
|
foxes/models/turbine_types/null_type.py,sha256=86cJiJk43YTw1eiz9mQAikVypGcbd4Ynl8NoAUmkoz4,1314
|
|
128
142
|
foxes/models/turbine_types/wsrho2PCt_from_two.py,sha256=giN9OoavTT_oKtvC28Mvvlj08Hz44rGF8m-7utBmqas,11143
|
|
@@ -141,36 +155,36 @@ foxes/models/wake_frames/rotor_wd.py,sha256=MThraqng_b2ZUAl8Aod9tESPkDYXKom-oGJC
|
|
|
141
155
|
foxes/models/wake_frames/seq_dynamic_wakes.py,sha256=mccB7-feKqDGa8UP2t_iaREDyUyLzrOvU557GXVBtHw,10987
|
|
142
156
|
foxes/models/wake_frames/streamlines.py,sha256=noI30oNLgX88V1piOij8Rt9Y_vuNvj9Zcc3LqsJIErg,8868
|
|
143
157
|
foxes/models/wake_frames/timelines.py,sha256=XkZV00ij7Oy3E_aMgrVHf_nEk-VbCOHO5Yjs-ptOcMk,9568
|
|
144
|
-
foxes/models/wake_frames/yawed_wakes.py,sha256=
|
|
145
|
-
foxes/models/wake_models/__init__.py,sha256=
|
|
158
|
+
foxes/models/wake_frames/yawed_wakes.py,sha256=ODTuPxCeMsoxinMEVSCOsemdT57c0IBEbeSHS93L6Ik,9001
|
|
159
|
+
foxes/models/wake_models/__init__.py,sha256=hwoJF5RzDlr2g5zKgZ532H93F6Hcoo0Gfkc3XLiAJ1Q,253
|
|
146
160
|
foxes/models/wake_models/axisymmetric.py,sha256=3dS-1Br9ZvDaGa_KVy0sotnuMku4QpL_Nz3T5dyQXm8,2788
|
|
147
161
|
foxes/models/wake_models/dist_sliced.py,sha256=MsKBm8s9SqQ5g6vLFcfynebzvbRpYlP88uC4sr8t3QE,5883
|
|
148
162
|
foxes/models/wake_models/gaussian.py,sha256=hchArmoqbdUthh2q7D9PEfC838217ySDHc2fbvtihD4,2760
|
|
149
163
|
foxes/models/wake_models/top_hat.py,sha256=DMFEQGjJol08XHY_TyN74xXf4l2yFNSEE4k4yCKt15I,5885
|
|
150
|
-
foxes/models/wake_models/
|
|
151
|
-
foxes/models/wake_models/induction/
|
|
152
|
-
foxes/models/wake_models/induction/rankine_half_body.py,sha256=D8WOCeGEybNbhoP9_6Rlgnjq6Tbw8idtLIZHH-9sDeQ,7808
|
|
164
|
+
foxes/models/wake_models/induction/__init__.py,sha256=kl5hRnV0q1zyaqTdwhEdsNiOV-Fu0ySRIUQH418npyI,231
|
|
165
|
+
foxes/models/wake_models/induction/rankine_half_body.py,sha256=SGPQwLv7NVfFIOcHbo8jWs3ghlxr2HvE3yM5W2HK2PE,7816
|
|
153
166
|
foxes/models/wake_models/induction/rathmann.py,sha256=ydUcXNlaqpBY5Cf7RQR_2StCxcXua-KYToZcOYgk2ms,6262
|
|
154
167
|
foxes/models/wake_models/induction/self_similar.py,sha256=1Ji4Cg_PZQfYnz-SMNQvCrQeuocthBozfT4n6e5oS-U,7011
|
|
155
168
|
foxes/models/wake_models/induction/self_similar2020.py,sha256=D8yQxa5NQFII2gvKggcbJvuSDnrIRSy0Q5aCC3DoTPc,1634
|
|
169
|
+
foxes/models/wake_models/induction/vortex_sheet.py,sha256=CIrVmM7EEe5fVr94FND4Vvfj_KPnKl02-oTE2QPwBAM,6341
|
|
156
170
|
foxes/models/wake_models/ti/__init__.py,sha256=EOlqFHL2mzcKGFRZqlVYTiqGJqPb6dx7I5UWUDshy2U,125
|
|
157
|
-
foxes/models/wake_models/ti/crespo_hernandez.py,sha256=
|
|
158
|
-
foxes/models/wake_models/ti/iec_ti.py,sha256=
|
|
171
|
+
foxes/models/wake_models/ti/crespo_hernandez.py,sha256=Vi05vWV7aY02ixcgtAR4YVy5Y43ZaEI60ww8W2zdqu8,8844
|
|
172
|
+
foxes/models/wake_models/ti/iec_ti.py,sha256=L9Yw34_oUGXdvGSVhjJMjmSNh2S1sJsUUKsFxGuGA8Q,6422
|
|
159
173
|
foxes/models/wake_models/wind/__init__.py,sha256=X_QdQ_f3fKCIrZZ9K_CzzsHSl13AyvPRcWdEZ1y9Bk4,223
|
|
160
|
-
foxes/models/wake_models/wind/bastankhah14.py,sha256=
|
|
161
|
-
foxes/models/wake_models/wind/bastankhah16.py,sha256=
|
|
162
|
-
foxes/models/wake_models/wind/jensen.py,sha256=
|
|
163
|
-
foxes/models/wake_models/wind/turbopark.py,sha256=
|
|
174
|
+
foxes/models/wake_models/wind/bastankhah14.py,sha256=zDJBKkRRETrD9NA2eQUYrccfGv2EQV_eeH9YhkNTYWw,5166
|
|
175
|
+
foxes/models/wake_models/wind/bastankhah16.py,sha256=XTRLJguNBSjERVCCquFXaxEnTx52lFrB9uPBRd3PLrc,17527
|
|
176
|
+
foxes/models/wake_models/wind/jensen.py,sha256=6L1-thpjC79wy8fXGvTMuzFnoASIu5uPlREZyvcOsHk,4247
|
|
177
|
+
foxes/models/wake_models/wind/turbopark.py,sha256=hqyp3wVoFlBvzdw69d5uhwZM_bHcG5PQfIhptICwJkE,14524
|
|
164
178
|
foxes/models/wake_superpositions/__init__.py,sha256=p_pI_bUC-JjpGfg-7hyo3EpB_qVYqg5CCFt_vSG9DF4,371
|
|
165
179
|
foxes/models/wake_superpositions/ti_linear.py,sha256=T9lP5PsHzi04Neq5dS3HDZGwyV7Qzvx_umCbk9M7Zks,3911
|
|
166
180
|
foxes/models/wake_superpositions/ti_max.py,sha256=fnfYmr_Wt9EPZftHoHnqRlTwFWAawrEheGgLA0NwIlA,3936
|
|
167
181
|
foxes/models/wake_superpositions/ti_pow.py,sha256=4ZS3d0ulRkIDaVeG2VvcdjpJch673INQRUGgj37cs_A,4160
|
|
168
182
|
foxes/models/wake_superpositions/ti_quadratic.py,sha256=tkmaoIm7a-Q4c3qtMpBmX25jfcVdt0Qp7Xn0fQrxN4A,3926
|
|
169
183
|
foxes/models/wake_superpositions/ws_linear.py,sha256=TiKaRAxNioY4oIloJODfT1zftnkXzhuqfqEkqG33owc,9155
|
|
170
|
-
foxes/models/wake_superpositions/ws_max.py,sha256=
|
|
171
|
-
foxes/models/wake_superpositions/ws_pow.py,sha256=
|
|
184
|
+
foxes/models/wake_superpositions/ws_max.py,sha256=MktXVo3PfMgh172DJP_KRftiqs8jXsuaQPLne1jHKyY,9381
|
|
185
|
+
foxes/models/wake_superpositions/ws_pow.py,sha256=aPtm5NwQx6byNfetSX57Z7tVkXtgXIRleSf4grKtZF0,9602
|
|
172
186
|
foxes/models/wake_superpositions/ws_product.py,sha256=8dCDaKfuzHfTEBo0_N7BR-x_qG2tWXTabzPsgpIAtXk,4672
|
|
173
|
-
foxes/models/wake_superpositions/ws_quadratic.py,sha256=
|
|
187
|
+
foxes/models/wake_superpositions/ws_quadratic.py,sha256=jUo4wFkrUPbj-27m3ozCEzab7iamkNZtVlrCwY-Yh2w,9197
|
|
174
188
|
foxes/opt/__init__.py,sha256=okwZagHJMkUkLvKCSQLbE0cjx_47RLl3bEz576j6CdI,172
|
|
175
189
|
foxes/opt/constraints/__init__.py,sha256=UZzN_JlxGaASdGtvBn5d5xwdSDpwO6bklj3vw70IZvU,159
|
|
176
190
|
foxes/opt/constraints/area_geometry.py,sha256=9TFsyuM8_pp3HEUV4N0w0KnhxOk0OLPMKd6ZvNQGC80,6156
|
|
@@ -203,8 +217,8 @@ foxes/output/calc_points.py,sha256=QRZuZ6joHbhkEYDBX87QgEWwMMYbohAK3ZFuVwErK3Q,4
|
|
|
203
217
|
foxes/output/farm_layout.py,sha256=PGQUIhza5BrGDIPU69O7hm91tjKJLFQq7N8rmXeVXAY,10981
|
|
204
218
|
foxes/output/farm_results_eval.py,sha256=LAv8A5XQ7gMKmT77ILzbRsIptiqBAWf89bR3Xh68cT4,17663
|
|
205
219
|
foxes/output/flow_plots_2d.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
206
|
-
foxes/output/grids.py,sha256=
|
|
207
|
-
foxes/output/output.py,sha256=
|
|
220
|
+
foxes/output/grids.py,sha256=va7sPdzjZEGEzVYW4m_KmAYBE7S7x5C2BXfroQY-kao,19767
|
|
221
|
+
foxes/output/output.py,sha256=wUxKlNbfjwqDzU-lTWfIZMfK-h_R3rpmthSlgunTyw8,3460
|
|
208
222
|
foxes/output/results_writer.py,sha256=H8UptENDq2THwbRRe41I_d9OAdc4osnWER4QSTvrAQ0,5833
|
|
209
223
|
foxes/output/rose_plot.py,sha256=t4sO9FCV6BJvTLv3vudsBajaSQblOaS6INS5GltCkT0,11090
|
|
210
224
|
foxes/output/rotor_point_plots.py,sha256=R44fcseBC5g8YsuR4irRrvYN8Nj94_lpJgpsBst2kjE,3165
|
|
@@ -216,12 +230,12 @@ foxes/output/flow_plots_2d/__init__.py,sha256=2d4RyQYPOYr-HiBCbp1swSPG4Nf3NGezTr
|
|
|
216
230
|
foxes/output/flow_plots_2d/flow_plots.py,sha256=RYdYZui11IlJE5Mm_R3dtkkQDC0XbAz2JyOT1U25PAA,28209
|
|
217
231
|
foxes/output/flow_plots_2d/get_fig.py,sha256=gGMOfzNCukq_l0FZLmi3zSBl0ANkQi2WoKaGTpB6xhc,6169
|
|
218
232
|
foxes/output/flow_plots_2d/seq_flow_ani_plugin.py,sha256=RFlzbZG2L9A583d7wSqZHogP561YEtfcu5M5FaCqIIE,2782
|
|
219
|
-
foxes/utils/__init__.py,sha256=
|
|
233
|
+
foxes/utils/__init__.py,sha256=VkT0l3ety_dhfP-RdoI3nLmBeHvJetfIuo2-rz8_Biw,753
|
|
220
234
|
foxes/utils/cubic_roots.py,sha256=u2Pf-yHZ6EASpFONMfkv0mvldmd1E1VRZxj69YabDoc,3321
|
|
221
235
|
foxes/utils/data_book.py,sha256=DgxusriNH-fhHNN_v6TY3QWcAnrAcw20Wgz7lDfbMeg,5302
|
|
222
236
|
foxes/utils/dict.py,sha256=s922OY22wOKBMbzQ_g-T-MhEw1dga0d3CCwFwd0nI78,886
|
|
223
237
|
foxes/utils/exec_python.py,sha256=BRylxWOyYHpjIZXCuoOp_A-P9VMoQZ13P2vpHs-lqj8,1714
|
|
224
|
-
foxes/utils/factory.py,sha256=
|
|
238
|
+
foxes/utils/factory.py,sha256=c-Zz1BxVjt5aICoTB0Lz-K16J-RqFdLjTEPmtkykXMU,15647
|
|
225
239
|
foxes/utils/geopandas_helpers.py,sha256=inVQHMco6Op7YN3VFH1DGAJZWREuveJUS7gyoRudw2A,7895
|
|
226
240
|
foxes/utils/geopandas_utils.py,sha256=inVQHMco6Op7YN3VFH1DGAJZWREuveJUS7gyoRudw2A,7895
|
|
227
241
|
foxes/utils/load.py,sha256=7jrCX2GQ_GTgrSu3nz-jfxiyswa7Q3XXCYqobl6bkyk,1290
|
|
@@ -250,9 +264,9 @@ foxes/utils/geom2d/half_plane.py,sha256=kzZD6pkZxZ03MK9WAboWzXb5Ws5dWLQY9GIahD4D
|
|
|
250
264
|
foxes/utils/geom2d/polygon.py,sha256=8ASfy7No_-Pt_xDSeNsDtLEkCjBWsNZK8nIxDQtqeOE,5534
|
|
251
265
|
foxes/utils/runners/__init__.py,sha256=-WL4ZmdgNYldkqhCV6dR-aXCumBrH-Ea-V1shsRhsbs,55
|
|
252
266
|
foxes/utils/runners/runners.py,sha256=Sc06qsCzPduMyxbywgf6G3uHRioDs1qWRSc6GZbLFAY,6932
|
|
253
|
-
foxes-0.7.
|
|
254
|
-
foxes-0.7.
|
|
255
|
-
foxes-0.7.
|
|
256
|
-
foxes-0.7.
|
|
257
|
-
foxes-0.7.
|
|
258
|
-
foxes-0.7.
|
|
267
|
+
foxes-0.7.3.dist-info/LICENSE,sha256=bBCH6mYTPzSepk2s2UUZ3II_ZYXrn1bnSqB85-aZHxU,1071
|
|
268
|
+
foxes-0.7.3.dist-info/METADATA,sha256=hJpbjNSdAuAfTyLSOxwe8t58lV7Z8ILiDqOvqGCDf3k,9566
|
|
269
|
+
foxes-0.7.3.dist-info/WHEEL,sha256=cpQTJ5IWu9CdaPViMhC9YzF8gZuS5-vlfoFihTBC86A,91
|
|
270
|
+
foxes-0.7.3.dist-info/top_level.txt,sha256=B4spGR6JHsVHz7CEXsa68xsjYalAA70nBwHa1gfyRHc,6
|
|
271
|
+
foxes-0.7.3.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
272
|
+
foxes-0.7.3.dist-info/RECORD,,
|
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
import numpy as np
|
|
2
|
-
|
|
3
|
-
from foxes.core import WakeModel
|
|
4
|
-
import foxes.variables as FV
|
|
5
|
-
import foxes.constants as FC
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class WakeMirror(WakeModel):
|
|
9
|
-
"""
|
|
10
|
-
A wake model wrapper that adds mirror turbines
|
|
11
|
-
that model wake reflection from a horizontal plane,
|
|
12
|
-
e.g. the ground
|
|
13
|
-
|
|
14
|
-
Attributes
|
|
15
|
-
----------
|
|
16
|
-
wmodel: foxes.core.WakeModel
|
|
17
|
-
The original wake model
|
|
18
|
-
heights: list of float
|
|
19
|
-
The reflection heights
|
|
20
|
-
|
|
21
|
-
:group: models.wake_models
|
|
22
|
-
|
|
23
|
-
"""
|
|
24
|
-
|
|
25
|
-
def __init__(self, wmodel, heights):
|
|
26
|
-
"""
|
|
27
|
-
Constructor.
|
|
28
|
-
|
|
29
|
-
Parameters
|
|
30
|
-
----------
|
|
31
|
-
wmodel: foxes.core.WakeModel
|
|
32
|
-
The original wake model
|
|
33
|
-
heights: list of float
|
|
34
|
-
The reflection heights
|
|
35
|
-
|
|
36
|
-
"""
|
|
37
|
-
super().__init__()
|
|
38
|
-
self.wmodel = wmodel
|
|
39
|
-
self.heights = heights
|
|
40
|
-
self.name = self.name + "_" + wmodel.name
|
|
41
|
-
|
|
42
|
-
def sub_models(self):
|
|
43
|
-
"""
|
|
44
|
-
List of all sub-models
|
|
45
|
-
|
|
46
|
-
Returns
|
|
47
|
-
-------
|
|
48
|
-
smdls: list of foxes.core.Model
|
|
49
|
-
All sub models
|
|
50
|
-
|
|
51
|
-
"""
|
|
52
|
-
return [self.wmodel]
|
|
53
|
-
|
|
54
|
-
def new_wake_deltas(self, algo, mdata, fdata, tdata):
|
|
55
|
-
"""
|
|
56
|
-
Creates new empty wake delta arrays.
|
|
57
|
-
|
|
58
|
-
Parameters
|
|
59
|
-
----------
|
|
60
|
-
algo: foxes.core.Algorithm
|
|
61
|
-
The calculation algorithm
|
|
62
|
-
mdata: foxes.core.MData
|
|
63
|
-
The model data
|
|
64
|
-
fdata: foxes.core.FData
|
|
65
|
-
The farm data
|
|
66
|
-
tdata: foxes.core.TData
|
|
67
|
-
The target point data
|
|
68
|
-
|
|
69
|
-
Returns
|
|
70
|
-
-------
|
|
71
|
-
wake_deltas: dict
|
|
72
|
-
Key: variable name, value: The zero filled
|
|
73
|
-
wake deltas, shape: (n_states, n_turbines, n_rpoints, ...)
|
|
74
|
-
|
|
75
|
-
"""
|
|
76
|
-
return self.wmodel.new_wake_deltas(algo, mdata, fdata, tdata)
|
|
77
|
-
|
|
78
|
-
def contribute(
|
|
79
|
-
self,
|
|
80
|
-
algo,
|
|
81
|
-
mdata,
|
|
82
|
-
fdata,
|
|
83
|
-
tdata,
|
|
84
|
-
downwind_index,
|
|
85
|
-
wake_coos,
|
|
86
|
-
wake_deltas,
|
|
87
|
-
):
|
|
88
|
-
"""
|
|
89
|
-
Modifies wake deltas at target points by
|
|
90
|
-
contributions from the specified wake source turbines.
|
|
91
|
-
|
|
92
|
-
Parameters
|
|
93
|
-
----------
|
|
94
|
-
algo: foxes.core.Algorithm
|
|
95
|
-
The calculation algorithm
|
|
96
|
-
mdata: foxes.core.MData
|
|
97
|
-
The model data
|
|
98
|
-
fdata: foxes.core.FData
|
|
99
|
-
The farm data
|
|
100
|
-
tdata: foxes.core.TData
|
|
101
|
-
The target point data
|
|
102
|
-
downwind_index: int
|
|
103
|
-
The index of the wake causing turbine
|
|
104
|
-
in the downwnd order
|
|
105
|
-
wake_coos: numpy.ndarray
|
|
106
|
-
The wake frame coordinates of the evaluation
|
|
107
|
-
points, shape: (n_states, n_targets, n_tpoints, 3)
|
|
108
|
-
wake_deltas: dict
|
|
109
|
-
The wake deltas. Key: variable name,
|
|
110
|
-
value: numpy.ndarray with shape
|
|
111
|
-
(n_states, n_targets, n_tpoints, ...)
|
|
112
|
-
|
|
113
|
-
"""
|
|
114
|
-
hh = fdata[FV.H][:, downwind_index].copy()
|
|
115
|
-
self.wmodel.contribute(
|
|
116
|
-
algo, mdata, fdata, tdata, downwind_index, wake_coos, wake_deltas
|
|
117
|
-
)
|
|
118
|
-
|
|
119
|
-
tdata[FC.TARGETS] = tdata[FC.TARGETS].copy() # making sure this is no ref
|
|
120
|
-
|
|
121
|
-
for h in self.heights:
|
|
122
|
-
|
|
123
|
-
fdata[FV.H][:, downwind_index] = hh + 2 * (h - hh)
|
|
124
|
-
|
|
125
|
-
nwcoos = algo.wake_frame.get_wake_coos(
|
|
126
|
-
algo, mdata, fdata, tdata, downwind_index
|
|
127
|
-
)
|
|
128
|
-
|
|
129
|
-
self.wmodel.contribute(
|
|
130
|
-
algo, mdata, fdata, tdata, downwind_index, nwcoos, wake_deltas
|
|
131
|
-
)
|
|
132
|
-
|
|
133
|
-
fdata[FV.H][:, downwind_index] = hh
|
|
134
|
-
|
|
135
|
-
def finalize_wake_deltas(
|
|
136
|
-
self,
|
|
137
|
-
algo,
|
|
138
|
-
mdata,
|
|
139
|
-
fdata,
|
|
140
|
-
amb_results,
|
|
141
|
-
wake_deltas,
|
|
142
|
-
):
|
|
143
|
-
"""
|
|
144
|
-
Finalize the wake calculation.
|
|
145
|
-
|
|
146
|
-
Modifies wake_deltas on the fly.
|
|
147
|
-
|
|
148
|
-
Parameters
|
|
149
|
-
----------
|
|
150
|
-
algo: foxes.core.Algorithm
|
|
151
|
-
The calculation algorithm
|
|
152
|
-
mdata: foxes.core.MData
|
|
153
|
-
The model data
|
|
154
|
-
fdata: foxes.core.FData
|
|
155
|
-
The farm data
|
|
156
|
-
amb_results: dict
|
|
157
|
-
The ambient results, key: variable name str,
|
|
158
|
-
values: numpy.ndarray with shape
|
|
159
|
-
(n_states, n_targets, n_tpoints)
|
|
160
|
-
wake_deltas: dict
|
|
161
|
-
The wake deltas object at the selected target
|
|
162
|
-
turbines. Key: variable str, value: numpy.ndarray
|
|
163
|
-
with shape (n_states, n_targets, n_tpoints)
|
|
164
|
-
|
|
165
|
-
"""
|
|
166
|
-
self.wmodel.finalize_wake_deltas(
|
|
167
|
-
algo,
|
|
168
|
-
mdata,
|
|
169
|
-
fdata,
|
|
170
|
-
amb_results,
|
|
171
|
-
wake_deltas,
|
|
172
|
-
)
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
class GroundMirror(WakeMirror):
|
|
176
|
-
"""
|
|
177
|
-
A wake model wrapper that adds mirror turbines
|
|
178
|
-
that model wake reflection from the ground
|
|
179
|
-
|
|
180
|
-
:group: models.wake_models
|
|
181
|
-
|
|
182
|
-
"""
|
|
183
|
-
|
|
184
|
-
def __init__(self, *args, **kwargs):
|
|
185
|
-
"""
|
|
186
|
-
Constructor.
|
|
187
|
-
|
|
188
|
-
Parameters
|
|
189
|
-
----------
|
|
190
|
-
args: tuple, optional
|
|
191
|
-
Additional parameters for WakeMirror
|
|
192
|
-
kwargs: dict, optional
|
|
193
|
-
Additional parameters for WakeMirror
|
|
194
|
-
|
|
195
|
-
"""
|
|
196
|
-
super().__init__(*args, heights=[0], **kwargs)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|