Exemplo n.º 1
0
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()))
Exemplo n.º 2
0
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()))
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
    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))
Exemplo n.º 5
0
 def setUp(self):
     filename = current_dir + '/../../examples/middelgrunden.yml'
     self.wf = WindFarm(name='farm_name', yml=filename)
Exemplo n.º 6
0
 def setUp(self):
     filename = current_dir + '/../../examples/middelgrunden.yml'
     self.wf = WindFarm(name='farm_name', yml=filename)