class TestWindFarm(unittest.TestCase): def setUp(self): filename = current_dir + '/../../examples/middelgrunden.yml' self.wf = WindFarm(name='farm_name', yml=filename) def test_get_T2T_gl_coord(self): np.testing.assert_array_almost_equal( np.array(self.wf.get_T2T_gl_coord()), np.array(self.wf.get_T2T_gl_coord2()))
def __init__(self, yml, version=None, **kwargs): """Description Parameters ---------- yml: str, optional A WindIO `yml` file containing the description of the farm """ self.windFarm = WindFarm(yml=yml) self.version = version or self.version self.wake_model = self.wake_model_cls(WF=self.windFarm, version=self.version, **kwargs)
def test_gcl(self): """Compare the two implementations of gcl """ # Fixed parameters a1 = 0.435449861 a2 = 0.797853685 a3 = -0.124807893 a4 = 0.136821858 b1 = 15.6298 b2 = 1.0 filename = 'test_WF_4Turbines.yml' wf = WindFarm(yml=filename) gcl = GCL(WF=wf) # Inputs WD = np.arange(-50, 50) + 270. WS = 10. TI = 0.1 P_rat_py_v0 = [] P_rat_py_v1 = [] P_rat_fgcl = [] P_rat_fgclm_s = [] for wd in WD: out = gcl(WF=wf, WS=WS, WD=wd, TI=TI, version='fort_gcl') P_rat_fgcl = np.append(P_rat_fgcl, out.p_wt[1] / out.p_wt[0]) out = gcl(WF=wf, WS=WS * np.ones([wf.nWT]), WD=wd * np.ones([wf.nWT]), TI=TI * np.ones([wf.nWT]), version='fort_gclm_s') P_rat_fgclm_s = np.append(P_rat_fgclm_s, out.p_wt[1] / out.p_wt[0]) out = gcl(WF=wf, WS=WS * np.ones([wf.nWT]), WD=wd * np.ones([wf.nWT]), TI=TI * np.ones([wf.nWT]), version='py_gcl_v1') P_rat_py_v1 = np.append(P_rat_py_v1, out.p_wt[1] / out.p_wt[0]) out = gcl(WF=wf, WS=WS * np.ones([wf.nWT]), WD=wd * np.ones([wf.nWT]), TI=TI * np.ones([wf.nWT]), version='py_gcl_v0') P_rat_py_v0 = np.append(P_rat_py_v0, out.p_wt[1] / out.p_wt[0]) WDm = WD.reshape([-1, 1]) * np.ones([1, wf.nWT]) out = gcl(WF=wf, WS=WS * np.ones_like(WDm), WD=WDm, TI=0.1 * np.ones_like(WDm), version='fort_gclm') P_rat_fgclm = out.p_wt[:, 1] / out.p_wt[:, 0] out = gcl(WF=wf, WS=WS * np.ones_like(WDm), WD=WDm, TI=0.1 * np.ones_like(WDm), version='fort_gclm_av') P_rat_fgclm_av = out.p_wt[:, 1] / out.p_wt[:, 0] self.assertTrue(np.allclose(P_rat_fgclm_s, P_rat_py_v0)&\ np.allclose(P_rat_fgclm_s, P_rat_py_v1)&\ np.allclose(P_rat_fgclm_s, P_rat_fgclm)&\ np.allclose(P_rat_fgclm_s, P_rat_fgclm_av))
def setUp(self): filename = current_dir + '/../../examples/middelgrunden.yml' self.wf = WindFarm(name='farm_name', yml=filename)