Skip to content
Snippets Groups Projects
test_all2all.py 1.84 KiB
Newer Older
Mads M. Pedersen's avatar
Mads M. Pedersen committed
import pytest

import matplotlib.pyplot as plt
Mads M. Pedersen's avatar
Mads M. Pedersen committed
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
Mads M. Pedersen's avatar
Mads M. Pedersen committed
from py_wake.deflection_models.jimenez import JimenezWakeDeflection
from py_wake.examples.data.iea37._iea37 import IEA37Site, IEA37WindTurbines
Mads M. Pedersen's avatar
Mads M. Pedersen committed
from py_wake.flow_map import XYGrid
from py_wake.superposition_models import WeightedSum
from py_wake.turbulence_models.stf import STF2017TurbulenceModel
Mads M. Pedersen's avatar
Mads M. Pedersen committed
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()

Mads M. Pedersen's avatar
Mads M. Pedersen committed
    wfm_a2a = All2All(site, windTurbines, **kwargs)
    wfm_a2ai = All2AllIterative(site, windTurbines, **kwargs)
Mads M. Pedersen's avatar
Mads M. Pedersen committed
    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)
Mads M. Pedersen's avatar
Mads M. Pedersen committed
        sim_res_a2a.flow_map(
            XYGrid(x=np.linspace(-200, 2000, 100))).plot_wake_map()
        plt.show()