diff --git a/py_wake/tests/test_wind_farm_models/test_enginering_wind_farm_model.py b/py_wake/tests/test_wind_farm_models/test_enginering_wind_farm_model.py index 8d4c83264db902db3e3868fbf47e31fe7dd51535..f0fda5b0576b51ab61941a9a035af034950bdd41 100644 --- a/py_wake/tests/test_wind_farm_models/test_enginering_wind_farm_model.py +++ b/py_wake/tests/test_wind_farm_models/test_enginering_wind_farm_model.py @@ -440,6 +440,28 @@ def test_time_series_operating(): npt.assert_array_equal(sim_res.Power.values[operating != 0] > 0, True) +def test_time_series_operating_wrong_shape(): + from py_wake.wind_turbines.power_ct_functions import PowerCtFunctionList, PowerCtTabular + d = np.load(os.path.dirname(examples.__file__) + "/data/time_series.npz") + wd, ws, ws_std = [d[k][:6 * 24] for k in ['wd', 'ws', 'ws_std']] + ws += 3 + t = np.arange(6 * 24) + wt = V80() + site = Hornsrev1Site() + + # replace powerCtFunction + wt.powerCtFunction = PowerCtFunctionList( + key='operating', + powerCtFunction_lst=[PowerCtTabular(ws=[0, 100], power=[0, 0], power_unit='w', ct=[0, 0]), # 0=No power and ct + wt.powerCtFunction], # 1=Normal operation + default_value=1) + wfm = NOJ(site, wt) + x, y = site.initial_position.T + operating = (t < 48) | (t > 72) + with pytest.raises(ValueError, match=r"Argument, operating\(shape=\(1, 144\)\), has unsupported shape."): + wfm(x, y, ws=ws, wd=wd, time=t, operating=[operating]) + + def test_aep_wind_atlas_method(): site = Hornsrev1Site() diff --git a/py_wake/wind_farm_models/engineering_models.py b/py_wake/wind_farm_models/engineering_models.py index 1149eb06aaf34b6b65c195de3e308475d6588eb3..7326be5517e74fcd3d09047ac1b2eb4846f6fe45 100644 --- a/py_wake/wind_farm_models/engineering_models.py +++ b/py_wake/wind_farm_models/engineering_models.py @@ -481,7 +481,6 @@ class PropagateDownwind(EngineeringWindFarmModel): return v[i_wd_l] else: valid_shapes = f"(), ({I}), ({I},{L}), ({I},{L},{K}), ({L}), ({L},{K})" - raise ValueError( f"Argument, {k}(shape={v.shape}), has unsupported shape. Valid shapes are {valid_shapes}") keys = self.windTurbines.powerCtFunction.required_inputs + self.windTurbines.powerCtFunction.optional_inputs