Newer
Older
from py_wake import np
from py_wake.deficit_models.gaussian import BastankhahGaussianDeficit
from py_wake.deficit_models.noj import NOJDeficit
from py_wake.deficit_models.selfsimilarity import SelfSimilarityDeficit2020
from py_wake.deflection_models.jimenez import JimenezWakeDeflection
from py_wake.examples.data.iea37._iea37 import IEA37Site, IEA37WindTurbines
from py_wake.flow_map import XYGrid
from py_wake.superposition_models import WeightedSum
from py_wake.turbulence_models.stf import STF2017TurbulenceModel
from py_wake.wind_farm_models.engineering_models import All2All, All2AllIterative
from py_wake.tests import npt
@pytest.mark.parametrize('kwargs', [
# deflection and turbulence
dict(wake_deficitModel=BastankhahGaussianDeficit(),
turbulenceModel=STF2017TurbulenceModel(),
deflectionModel=JimenezWakeDeflection()),
# wake_radius and blockage
dict(wake_deficitModel=NOJDeficit(), blockage_deficitModel=SelfSimilarityDeficit2020()),
# weightedsum and blockage
dict(wake_deficitModel=BastankhahGaussianDeficit(),
superpositionModel=WeightedSum(),
blockage_deficitModel=SelfSimilarityDeficit2020())])
def test_All2All(kwargs):
site = IEA37Site(16)
windTurbines = IEA37WindTurbines()
wfm_a2a = All2All(site, windTurbines, **kwargs)
wfm_a2ai = All2AllIterative(site, windTurbines, **kwargs)
sim_res_a2a = wfm_a2a([0, 500, 1000, 1500], [0, 0, 0, 0],
wd=270, ws=10, yaw=[30, -30, 30, -30])
sim_res_a2ai = wfm_a2ai([0, 500, 1000, 1500], [0, 0, 0, 0],
wd=270, ws=10, yaw=[30, -30, 30, -30])
npt.assert_array_almost_equal(sim_res_a2a.WS_eff, sim_res_a2ai.WS_eff)
XYGrid(x=np.linspace(-200, 2000, 100))).plot_wake_map()
plt.show()