Skip to content

Commit

Permalink
Consolidate fTilt_interp and tilt_interp
Browse files Browse the repository at this point in the history
It’s not clear why both exist, but they seem to be redundant so I’ve removed fTilt_interp in favor of tilt_interp
  • Loading branch information
rafmudaf committed Dec 12, 2023
1 parent 70b4590 commit c67199c
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 25 deletions.
2 changes: 1 addition & 1 deletion floris/simulation/farm.py
Original file line number Diff line number Diff line change
Expand Up @@ -298,7 +298,7 @@ def construct_turbine_fCts(self):
def construct_multidim_turbine_fCts(self):
self.turbine_fCts = [turb.fCt_interp for turb in self.turbine_map]

def construct_turbine_fTilts(self):
def construct_turbine_tilt_interps(self):
self.turbine_fTilts = [(turb.turbine_type, turb.fTilt_interp) for turb in self.turbine_map]

def construct_turbine_power_interps(self):
Expand Down
2 changes: 1 addition & 1 deletion floris/simulation/floris.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ def __attrs_post_init__(self) -> None:
self.farm.construct_turbine_pTs()
self.farm.construct_turbine_ref_density_cp_cts()
self.farm.construct_turbine_ref_tilt_cp_cts()
self.farm.construct_turbine_fTilts()
self.farm.construct_turbine_tilt_interps()
self.farm.construct_turbine_correct_cp_ct_for_tilt()
self.farm.set_yaw_angles(self.flow_field.n_wind_directions, self.flow_field.n_wind_speeds)
self.farm.set_tilt_to_ref_tilt(
Expand Down
6 changes: 3 additions & 3 deletions floris/simulation/solver.py
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,7 @@ def full_flow_sequential_solver(
turbine_grid_farm.construct_turbine_pTs()
turbine_grid_farm.construct_turbine_ref_density_cp_cts()
turbine_grid_farm.construct_turbine_ref_tilt_cp_cts()
turbine_grid_farm.construct_turbine_fTilts()
turbine_grid_farm.construct_turbine_tilt_interps()
turbine_grid_farm.construct_turbine_correct_cp_ct_for_tilt()
turbine_grid_farm.set_tilt_to_ref_tilt(flow_field.n_wind_directions, flow_field.n_wind_speeds)

Expand Down Expand Up @@ -687,7 +687,7 @@ def full_flow_cc_solver(
turbine_grid_farm.construct_turbine_pTs()
turbine_grid_farm.construct_turbine_ref_density_cp_cts()
turbine_grid_farm.construct_turbine_ref_tilt_cp_cts()
turbine_grid_farm.construct_turbine_fTilts()
turbine_grid_farm.construct_turbine_tilt_interps()
turbine_grid_farm.construct_turbine_correct_cp_ct_for_tilt()
turbine_grid_farm.set_tilt_to_ref_tilt(flow_field.n_wind_directions, flow_field.n_wind_speeds)

Expand Down Expand Up @@ -1363,7 +1363,7 @@ def full_flow_empirical_gauss_solver(
turbine_grid_farm.construct_turbine_pTs()
turbine_grid_farm.construct_turbine_ref_density_cp_cts()
turbine_grid_farm.construct_turbine_ref_tilt_cp_cts()
turbine_grid_farm.construct_turbine_fTilts()
turbine_grid_farm.construct_turbine_tilt_interps()
turbine_grid_farm.construct_turbine_correct_cp_ct_for_tilt()
turbine_grid_farm.set_tilt_to_ref_tilt(flow_field.n_wind_directions, flow_field.n_wind_speeds)

Expand Down
12 changes: 2 additions & 10 deletions floris/simulation/turbine.py
Original file line number Diff line number Diff line change
Expand Up @@ -585,10 +585,7 @@ class Turbine(BaseClass):
fCp_interp: interp1d = field(init=False)
fCt_interp: interp1d = field(init=False)
power_interp: interp1d = field(init=False)
tilt_interp: interp1d = field(init=False)
fTilt_interp: interp1d = field(init=False)


tilt_interp: interp1d = field(init=False, default=None)

def __attrs_post_init__(self) -> None:
# TODO validate that the wind speed, power, and thrust are floats and all the same size
Expand Down Expand Up @@ -637,18 +634,13 @@ def __attrs_post_init__(self) -> None:
# of the interpolation range.
if self.floating_tilt_table is not None:
self.floating_tilt_table = TiltTable.from_dict(self.floating_tilt_table)
self.fTilt_interp = interp1d(
self.tilt_interp = interp1d(
self.floating_tilt_table.wind_speeds,
self.floating_tilt_table.tilt,
fill_value=(0.0, self.floating_tilt_table.tilt[-1]),
bounds_error=False,
)
self.tilt_interp = self.fTilt_interp
self.correct_cp_ct_for_tilt = self.floating_correct_cp_ct_for_tilt
else:
self.fTilt_interp = None
self.tilt_interp = None
self.correct_cp_ct_for_tilt = False

@rotor_diameter.validator
def reset_rotor_diameter_dependencies(self, instance: attrs.Attribute, value: float) -> None:
Expand Down
4 changes: 2 additions & 2 deletions floris/turbine_library/turbine_previewer.py
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ def Ct_curve(
tilt_angle=np.full(shape, self.turbine.ref_tilt_cp_ct),
ref_tilt_cp_ct=np.full(shape_single, self.turbine.ref_tilt_cp_ct),
fCt=fCt_interps[k],
tilt_interp=[(self.turbine.turbine_type, self.turbine.fTilt_interp)],
tilt_interp=[(self.turbine.turbine_type, self.turbine.tilt_interp)],
correct_cp_ct_for_tilt=np.zeros(shape_single, dtype=bool),
turbine_type_map=np.full(shape_single, self.turbine.turbine_type)
).flatten()
Expand All @@ -197,7 +197,7 @@ def Ct_curve(
tilt_angle=np.full(shape, self.turbine.ref_tilt_cp_ct),
ref_tilt_cp_ct=np.full(shape, self.turbine.ref_tilt_cp_ct),
fCt={self.turbine.turbine_type: self.turbine.fCt_interp},
tilt_interp=[(self.turbine.turbine_type, self.turbine.fTilt_interp)],
tilt_interp=[(self.turbine.turbine_type, self.turbine.tilt_interp)],
correct_cp_ct_for_tilt=np.zeros(shape, dtype=bool),
turbine_type_map=np.full(shape, self.turbine.turbine_type),
).flatten()
Expand Down
16 changes: 8 additions & 8 deletions tests/turbine_unit_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ def test_ct():
tilt_angle=np.ones((1, 1, 1)) * 5.0,
ref_tilt_cp_ct=np.ones((1, 1, 1)) * 5.0,
fCt={turbine.turbine_type: turbine_floating.fCt_interp},
tilt_interp=np.array([(turbine_floating.turbine_type, turbine_floating.fTilt_interp)]),
tilt_interp=np.array([(turbine_floating.turbine_type, turbine_floating.tilt_interp)]),
correct_cp_ct_for_tilt=np.array([[[True]]]),
turbine_type_map=turbine_type_map[:,:,0]
)
Expand Down Expand Up @@ -397,7 +397,7 @@ def test_axial_induction():
tilt_angle=np.ones((1, 1, 1)) * 5.0,
ref_tilt_cp_ct=np.ones((1, 1, 1)) * 5.0,
fCt={turbine.turbine_type: turbine_floating.fCt_interp},
tilt_interp=np.array([(turbine_floating.turbine_type, turbine_floating.fTilt_interp)]),
tilt_interp=np.array([(turbine_floating.turbine_type, turbine_floating.tilt_interp)]),
correct_cp_ct_for_tilt=np.array([[[True]]]),
turbine_type_map=turbine_type_map[0,0,0],
)
Expand Down Expand Up @@ -462,7 +462,7 @@ def test_rotor_velocity_tilt_correction():
tilt_angle=5.0*np.ones((1, 1, 1)),
ref_tilt_cp_ct=np.array([turbine.ref_tilt_cp_ct]),
pT=np.array([turbine.pT]),
tilt_interp=np.array([(turbine.turbine_type, turbine.fTilt_interp)]),
tilt_interp=np.array([(turbine.turbine_type, turbine.tilt_interp)]),
correct_cp_ct_for_tilt=np.array([[[False]]]),
rotor_effective_velocities=wind_speed,
)
Expand All @@ -475,7 +475,7 @@ def test_rotor_velocity_tilt_correction():
tilt_angle=5.0*np.ones((1, 1, N_TURBINES)),
ref_tilt_cp_ct=np.array([turbine.ref_tilt_cp_ct] * N_TURBINES),
pT=np.array([turbine.pT] * N_TURBINES),
tilt_interp=np.array([(turbine.turbine_type, turbine.fTilt_interp)] * N_TURBINES),
tilt_interp=np.array([(turbine.turbine_type, turbine.tilt_interp)] * N_TURBINES),
correct_cp_ct_for_tilt=np.array([[[False] * N_TURBINES]]),
rotor_effective_velocities=wind_speed_N_TURBINES,
)
Expand All @@ -488,7 +488,7 @@ def test_rotor_velocity_tilt_correction():
tilt_angle=5.0*np.ones((1, 1, 1)),
ref_tilt_cp_ct=np.array([turbine_floating.ref_tilt_cp_ct]),
pT=np.array([turbine_floating.pT]),
tilt_interp=np.array([(turbine_floating.turbine_type, turbine_floating.fTilt_interp)]),
tilt_interp=np.array([(turbine_floating.turbine_type, turbine_floating.tilt_interp)]),
correct_cp_ct_for_tilt=np.array([[[True]]]),
rotor_effective_velocities=wind_speed,
)
Expand All @@ -502,7 +502,7 @@ def test_rotor_velocity_tilt_correction():
ref_tilt_cp_ct=np.array([turbine_floating.ref_tilt_cp_ct] * N_TURBINES),
pT=np.array([turbine_floating.pT] * N_TURBINES),
tilt_interp=np.array(
[(turbine_floating.turbine_type, turbine_floating.fTilt_interp)] * N_TURBINES
[(turbine_floating.turbine_type, turbine_floating.tilt_interp)] * N_TURBINES
),
correct_cp_ct_for_tilt=np.array([[[True] * N_TURBINES]]),
rotor_effective_velocities=wind_speed_N_TURBINES,
Expand All @@ -529,7 +529,7 @@ def test_compute_tilt_angles_for_floating_turbines():
tilt = compute_tilt_angles_for_floating_turbines(
turbine_type_map=np.array([turbine_type_map[:, :, 0]]),
tilt_angle=5.0*np.ones((1, 1, 1)),
tilt_interp=np.array([(turbine_floating.turbine_type, turbine_floating.fTilt_interp)]),
tilt_interp=np.array([(turbine_floating.turbine_type, turbine_floating.tilt_interp)]),
rotor_effective_velocities=rotor_effective_velocities,
)

Expand All @@ -543,7 +543,7 @@ def test_compute_tilt_angles_for_floating_turbines():
turbine_type_map=np.array(turbine_type_map),
tilt_angle=5.0*np.ones((1, 1, N_TURBINES)),
tilt_interp=np.array(
[(turbine_floating.turbine_type, turbine_floating.fTilt_interp)] * N_TURBINES
[(turbine_floating.turbine_type, turbine_floating.tilt_interp)] * N_TURBINES
),
rotor_effective_velocities=rotor_effective_velocities_N_TURBINES,
)
Expand Down

0 comments on commit c67199c

Please sign in to comment.