def test_fuga_blockage_wt_row(): wts = HornsrevV80() path = tfp + 'fuga/2MW/Z0=0.03000000Zi=00401Zeta0=0.00E+00/' site = hornsrev1.Hornsrev1Site() fuga_pdw = Fuga(path, site, wts) fuga_a2a = FugaBlockage(path, site, wts) x, y = [ np.asarray(xy)[np.arange(0, 73, 8)] for xy in (hornsrev1.wt_x, hornsrev1.wt_y) ] sim_res_pdw = fuga_pdw(x, y, wd=[270]) aep = sim_res_pdw.aep_ilk()[:, 0, :] sim_res_a2a = fuga_a2a(x, y, wd=[270]) aep_blockage = sim_res_a2a.aep_ilk()[:, 0, :] # blockage reduce aep(wd=270) by .24% npt.assert_almost_equal((aep.sum() - aep_blockage.sum()) / aep.sum() * 100, 0.2433161515321294) if 0: plt.plot( (sim_res_pdw.WS_eff_ilk[:, 0, 7] - sim_res_a2a.WS_eff_ilk[:, 0, 7]) / sim_res_pdw.WS_eff_ilk[:, 0, 7] * 100) plt.grid() plt.show()
def test_fuga_table_edges(): wts = HornsrevV80() path = tfp + 'fuga/2MW/Z0=0.03000000Zi=00401Zeta0=0.00E+00/' site = hornsrev1.Hornsrev1Site() fuga = FugaBlockage(path, site, wts) D = 80 flow_map_dw = fuga([0], [0], wd=270, ws=10).flow_map( HorizontalGrid(np.arange(-200 * D, 450 * D), y=[0])) flow_map_cw = fuga([0], [0], wd=270, ws=10).flow_map( HorizontalGrid([0], np.arange(-20 * D, 20 * D))) flow_map = fuga([0], [0], wd=270, ws=10).flow_map( HorizontalGrid(np.arange(-150, 400) * D, np.arange(-20, 21) * D)) if 0: plt.plot(flow_map_dw.x / D, flow_map_dw.WS_eff.squeeze()) plt.grid() plt.ylim([9.9, 10.1]) plt.figure() plt.plot(flow_map_cw.y / D, flow_map_cw.WS_eff.squeeze()) plt.grid() plt.ylim([9.9, 10.1]) plt.figure() flow_map.WS_eff.plot() plt.show() npt.assert_array_equal(flow_map.WS_eff.squeeze()[[0, -1], :], 10) npt.assert_array_equal(flow_map.WS_eff.squeeze()[:, [0, -1]], 10)