Skip to content

Commit 3afc053

Browse files
misi9170rafmudaf
andauthored
Enable solve_for_points() with CC model (#1058)
* Specify input arrays as 4d in full_flow_cc_solver * Move dimension expansion to definition for consistency. * Remove TODO check. * Use sorted awc modes settings * Fix TI-field average array dims in CC & TurbOPark * Update comments and warning to point users to turboparkgauss model. --------- Co-authored-by: Rafael M Mudafort <[email protected]>
1 parent 47cbb29 commit 3afc053

File tree

3 files changed

+15
-13
lines changed

3 files changed

+15
-13
lines changed

examples/examples_get_flow/002_extract_wind_speed_at_points.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020

2121

2222
# User options
23-
# FLORIS model to use (limited to Gauss/GCH, Jensen, and empirical Gauss)
24-
floris_model = "gch" # Try "gch", "jensen", "emgauss"
23+
# FLORIS model to use (legacy Turbopark not available)
24+
floris_model = "gch" # Try "gch", "cc", "jensen", "emgauss", "turboparkgauss"
2525
# Option to try different met mast locations
2626
met_mast_option = 0 # Try 0, 1, 2, 3
2727

floris/core/core.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -252,13 +252,15 @@ def solve_for_points(self, x, y, z):
252252

253253
vel_model = self.wake.model_strings["velocity_model"]
254254

255-
if vel_model == "cc" or vel_model == "turbopark":
255+
if vel_model == "turbopark":
256256
raise NotImplementedError(
257-
"solve_for_points is currently only available with the "+\
258-
"gauss, jensen, and empirical_gauss models."
257+
"solve_for_points is not available for the legacy \'turbopark\' model. "
258+
"However, it is available for \'turboparkgauss\'."
259259
)
260260
elif vel_model == "empirical_gauss":
261261
full_flow_empirical_gauss_solver(self.farm, self.flow_field, field_grid, self.wake)
262+
elif vel_model == "cc":
263+
full_flow_cc_solver(self.farm, self.flow_field, field_grid, self.wake)
262264
else:
263265
full_flow_sequential_solver(self.farm, self.flow_field, field_grid, self.wake)
264266

floris/core/solver.py

+8-8
Original file line numberDiff line numberDiff line change
@@ -694,7 +694,7 @@ def cc_solver(
694694
flow_field.turbulence_intensity_field_sorted_avg = np.mean(
695695
turbine_turbulence_intensity,
696696
axis=(2,3)
697-
)
697+
)[:, :, None, None]
698698

699699

700700
def full_flow_cc_solver(
@@ -774,7 +774,7 @@ def full_flow_cc_solver(
774774
yaw_angles=turbine_grid_farm.yaw_angles_sorted,
775775
tilt_angles=turbine_grid_farm.tilt_angles_sorted,
776776
power_setpoints=turbine_grid_farm.power_setpoints_sorted,
777-
awc_modes=turbine_grid_farm.awc_modes,
777+
awc_modes=turbine_grid_farm.awc_modes_sorted,
778778
awc_amplitudes=turbine_grid_farm.awc_amplitudes_sorted,
779779
thrust_coefficient_functions=turbine_grid_farm.turbine_thrust_coefficient_functions,
780780
tilt_interps=turbine_grid_farm.turbine_tilt_interps,
@@ -794,7 +794,7 @@ def full_flow_cc_solver(
794794
yaw_angles=turbine_grid_farm.yaw_angles_sorted,
795795
tilt_angles=turbine_grid_farm.tilt_angles_sorted,
796796
power_setpoints=turbine_grid_farm.power_setpoints_sorted,
797-
awc_modes=turbine_grid_farm.awc_modes,
797+
awc_modes=turbine_grid_farm.awc_modes_sorted,
798798
awc_amplitudes=turbine_grid_farm.awc_amplitudes_sorted,
799799
axial_induction_functions=turbine_grid_farm.turbine_axial_induction_functions,
800800
tilt_interps=turbine_grid_farm.turbine_tilt_interps,
@@ -937,7 +937,7 @@ def turbopark_solver(
937937
yaw_angles=farm.yaw_angles_sorted,
938938
tilt_angles=farm.tilt_angles_sorted,
939939
power_setpoints=farm.power_setpoints_sorted,
940-
awc_modes=farm.awc_modes,
940+
awc_modes=farm.awc_modes_sorted,
941941
awc_amplitudes=farm.awc_amplitudes_sorted,
942942
thrust_coefficient_functions=farm.turbine_thrust_coefficient_functions,
943943
tilt_interps=farm.turbine_tilt_interps,
@@ -956,7 +956,7 @@ def turbopark_solver(
956956
yaw_angles=farm.yaw_angles_sorted,
957957
tilt_angles=farm.tilt_angles_sorted,
958958
power_setpoints=farm.power_setpoints_sorted,
959-
awc_modes=farm.awc_modes,
959+
awc_modes=farm.awc_modes_sorted,
960960
awc_amplitudes=farm.awc_amplitudes_sorted,
961961
thrust_coefficient_functions=farm.turbine_thrust_coefficient_functions,
962962
tilt_interps=farm.turbine_tilt_interps,
@@ -978,7 +978,7 @@ def turbopark_solver(
978978
yaw_angles=farm.yaw_angles_sorted,
979979
tilt_angles=farm.tilt_angles_sorted,
980980
power_setpoints=farm.power_setpoints_sorted,
981-
awc_modes=farm.awc_modes,
981+
awc_modes=farm.awc_modes_sorted,
982982
awc_amplitudes=farm.awc_amplitudes_sorted,
983983
axial_induction_functions=farm.turbine_axial_induction_functions,
984984
tilt_interps=farm.turbine_tilt_interps,
@@ -1027,7 +1027,7 @@ def turbopark_solver(
10271027
yaw_angles=farm.yaw_angles_sorted,
10281028
tilt_angles=farm.tilt_angles_sorted,
10291029
power_setpoints=farm.power_setpoints_sorted,
1030-
awc_modes=farm.awc_modes,
1030+
awc_modes=farm.awc_modes_sorted,
10311031
awc_amplitudes=farm.awc_amplitudes_sorted,
10321032
thrust_coefficient_functions=farm.turbine_thrust_coefficient_functions,
10331033
tilt_interps=farm.turbine_tilt_interps,
@@ -1122,7 +1122,7 @@ def turbopark_solver(
11221122
flow_field.turbulence_intensity_field_sorted_avg = np.mean(
11231123
turbine_turbulence_intensity,
11241124
axis=(2, 3)
1125-
)
1125+
)[:, :, None, None]
11261126

11271127

11281128
def full_flow_turbopark_solver(

0 commit comments

Comments
 (0)