diff --git a/py_wake/deficit_models/gaussian.py b/py_wake/deficit_models/gaussian.py index cdb716851f507be64b3e0623a49f7d45ffeddee3..99946962bbf7747af055e3ecef7315d815863510 100644 --- a/py_wake/deficit_models/gaussian.py +++ b/py_wake/deficit_models/gaussian.py @@ -153,8 +153,10 @@ class NiayifarGaussianDeficit(BastankhahGaussianDeficit): self.ct2a = ct2a def k_ilk(self, **kwargs): - TI_ref_ilk = kwargs[self.TI_key] - k_ilk = self.a[0] * TI_ref_ilk + self.a[1] + k_ilk = np.reshape(self.a[1], (1, 1, 1)) + if self.a[0] != 0: + TI_ref_ilk = kwargs[self.TI_key] + k_ilk = k_ilk + self.a[0] * TI_ref_ilk return k_ilk diff --git a/py_wake/deficit_models/noj.py b/py_wake/deficit_models/noj.py index 80f803afdaede72389ea3f75ecc69830e010bf80..2b1863428a0333bae4266fd320f45b862a22a178 100644 --- a/py_wake/deficit_models/noj.py +++ b/py_wake/deficit_models/noj.py @@ -45,10 +45,6 @@ class NOJDeficit(NiayifarGaussianDeficit, WakeRadiusTopHat): return term_numerator_ilk[:, na] * self.layout_factor_ijlk def wake_radius(self, D_src_il, dw_ijlk, **kwargs): - # k_ijlk = np.atleast_3d(self.k_ilk(kwargs.get('TI_eff_ilk', 0)))[:, na] - if 'TI_eff_ilk' not in kwargs: - kwargs['TI_eff_ilk'] = 0.0 - kwargs['TI_ilk'] = 0.0 k_ijlk = np.atleast_3d(self.k_ilk(**kwargs))[:, na] wake_radius_ijlk = (k_ijlk * dw_ijlk + D_src_il[:, na, :, na] / 2) return wake_radius_ijlk diff --git a/py_wake/tests/test_deficit_models/test_noj.py b/py_wake/tests/test_deficit_models/test_noj.py index 87c412c66ad0308e9c83378445e2970f1be29aa8..2e30362fe118c141d44c2d6bf232e45fdfc84edc 100644 --- a/py_wake/tests/test_deficit_models/test_noj.py +++ b/py_wake/tests/test_deficit_models/test_noj.py @@ -5,8 +5,8 @@ from py_wake.site._site import UniformSite from py_wake.tests import npt from py_wake.flow_map import HorizontalGrid from py_wake.wind_turbines import WindTurbines -from py_wake.wind_farm_models.engineering_models import All2AllIterative -from py_wake.deficit_models.noj import NOJDeficit +from py_wake.wind_farm_models.engineering_models import All2AllIterative, PropagateDownwind +from py_wake.deficit_models.noj import NOJDeficit, NOJLocalDeficit from py_wake.superposition_models import LinearSum, WeightedSum from py_wake.turbulence_models.stf import STF2017TurbulenceModel from py_wake.wind_turbines.power_ct_functions import PowerCtFunction @@ -107,6 +107,18 @@ def test_NOJConvection2(): wfm([0, 500], [0, 0]) +def test_NOJLocal_ti_dependence(): + def get(ti): + site = UniformSite([1], ti) + wfm = PropagateDownwind(site, NibeA0(), NOJLocalDeficit(use_effective_ti=False)) + return wfm([0, 40], [0, 0], wd=270, ws=[10]) + sim_res1, sim_res2 = [get(ti) for ti in [0.1, 0.2]] + npt.assert_array_almost_equal(sim_res1.TI.squeeze(), [.1]) + npt.assert_array_almost_equal(sim_res2.TI.squeeze(), [.2]) + npt.assert_array_almost_equal(sim_res1.WS_eff.isel(wt=1), [[4.43458331]]) + npt.assert_array_almost_equal(sim_res2.WS_eff.isel(wt=1), [[5.13995521]]) + + def test_NOJLocal_ti_eff_dependence(): site = UniformSite([1], 0.1) wfm = NOJLocal(site, NibeA0(), ct2a=ct2a_mom1d)