From b9a2765d27219ea54ebec5a02a33770791ceb416 Mon Sep 17 00:00:00 2001 From: Malo Rosemeier <malo.rosemeier@iwes.fraunhofer.de> Date: Tue, 25 Jul 2017 11:37:42 +0200 Subject: [PATCH] verification of becas with farob succesful, all test i.o --- finstrip_wrapper/core/test/test_blade.py | 112 ++++++++++++++++-- .../test/test_finstrip_bladestability.py | 10 +- 2 files changed, 107 insertions(+), 15 deletions(-) diff --git a/finstrip_wrapper/core/test/test_blade.py b/finstrip_wrapper/core/test/test_blade.py index 6a33b9a..f478882 100644 --- a/finstrip_wrapper/core/test/test_blade.py +++ b/finstrip_wrapper/core/test/test_blade.py @@ -11,15 +11,24 @@ NUM_CORES = instance.get_physical_cores_count() main_dir = 'test_data' -test_dirs = ['finstrip_sec000', - 'finstrip_sec001', - 'finstrip_sec002', - 'finstrip_sec003', ] +test_dirs = ['becas_finstrip_sec000', + 'becas_finstrip_sec001', + 'becas_finstrip_sec002', + 'becas_finstrip_sec003', + 'farob_finstrip_DTU10MW', + 'finstrip_sec000'] class FINSTRIPWrapperBladeTestCase(unittest.TestCase): def setUp(self): + pass + + def tearDown(self): + pass + + def test_run_finstrip(self): + self.work_dir = os.getcwd() cfg = {} @@ -30,11 +39,6 @@ class FINSTRIPWrapperBladeTestCase(unittest.TestCase): self.finstrip = FINSTRIPWrapperBlade(**cfg) - def tearDown(self): - pass - - def test_run_finstrip(self): - os.chdir(os.path.join(main_dir, test_dirs[1])) self.finstrip.execute() self.finstrip.post() @@ -46,12 +50,100 @@ class FINSTRIPWrapperBladeTestCase(unittest.TestCase): for case in range(ncase): f_eig_min[case] = np.min(f_eig[case, :, 1]) - f_eig_min_exp = np.array([[0.833], [3.066]]) + f_eig_min_exp = np.array([2.251, 1.281]) for case in range(ncase): self.assertAlmostEqual( f_eig_min[case], f_eig_min_exp[case], places=3) + def test_verification_becas_finstrip(self): + + self.work_dir = os.getcwd() + + # fused-wind parametrisation with becas3.3 + cfg = {} + cfg['name'] = 'blade' + cfg['nmode'] = 20 + cfg['ncase'] = 2 + cfg['spanpos'] = 000 + + self.finstrip = FINSTRIPWrapperBlade(**cfg) + os.chdir(os.path.join(main_dir, test_dirs[0])) + self.finstrip.execute() + self.finstrip.post() + f_eig_becas = self.finstrip.f_eig + os.chdir(self.work_dir) + + ncase = len(f_eig_becas[:, 0, 0]) + f_eig_min_becas = np.zeros((ncase)) + for case in range(ncase): + f_eig_min_becas[case] = np.min(f_eig_becas[case, :, 1]) + + # focus parametrisation with finstrip + self.finstrip = FINSTRIPWrapperBlade(**cfg) + os.chdir(os.path.join(main_dir, test_dirs[5])) + self.finstrip.execute() + self.finstrip.post() + f_eig_finstrip = self.finstrip.f_eig + os.chdir(self.work_dir) + + ncase = len(f_eig_finstrip[:, 0, 0]) + f_eig_min_finstrip = np.zeros((ncase)) + for case in range(ncase): + f_eig_min_finstrip[case] = np.min(f_eig_finstrip[case, :, 1]) + + case = 0 + dev_becas_finstrip = 0.94493608652900696 + self.assertAlmostEqual( + f_eig_min_becas[case] / f_eig_min_finstrip[case], dev_becas_finstrip, places=3) + + def test_verification_farob_becas_finstrip(self): + + self.work_dir = os.getcwd() + + # fused-wind parametrisation with becas3.3 + cfg = {} + cfg['name'] = 'blade' + cfg['nmode'] = 20 + cfg['ncase'] = 2 + cfg['spanpos'] = 000 + + self.finstrip = FINSTRIPWrapperBlade(**cfg) + os.chdir(os.path.join(main_dir, test_dirs[0])) + self.finstrip.execute() + self.finstrip.post() + f_eig_becas = self.finstrip.f_eig + os.chdir(self.work_dir) + + ncase = len(f_eig_becas[:, 0, 0]) + f_eig_min_becas = np.zeros((ncase)) + for case in range(ncase): + f_eig_min_becas[case] = np.min(f_eig_becas[case, :, 1]) + + # focus parametrisation with farob + cfg = {} + cfg['name'] = 'finstrip_2800' + cfg['nmode'] = 20 + cfg['ncase'] = 1 + cfg['spanpos'] = 2800 + + self.finstrip = FINSTRIPWrapperBlade(**cfg) + os.chdir(os.path.join(main_dir, test_dirs[4])) + self.finstrip.execute() + self.finstrip.post() + f_eig_farob = self.finstrip.f_eig + os.chdir(self.work_dir) + + ncase = len(f_eig_farob[:, 0, 0]) + f_eig_min_farob = np.zeros((ncase)) + for case in range(ncase): + f_eig_min_farob[case] = np.min(f_eig_farob[case, :, 1]) + + case = 0 + dev_becas_farob = 0.99896049896049899 + self.assertAlmostEqual( + f_eig_min_becas[case] / f_eig_min_farob[case], dev_becas_farob, places=3) + if __name__ == '__main__': diff --git a/finstrip_wrapper/omdao/test/test_finstrip_bladestability.py b/finstrip_wrapper/omdao/test/test_finstrip_bladestability.py index ca8abae..f5517a0 100644 --- a/finstrip_wrapper/omdao/test/test_finstrip_bladestability.py +++ b/finstrip_wrapper/omdao/test/test_finstrip_bladestability.py @@ -252,7 +252,7 @@ class FINSTRIPBeamStructureTestCase(unittest.TestCase): def tearDown(self): pass - @unittest.skip("skipping") + #@unittest.skip("skipping") def test_finstrip(self): p = configure_FINSTRIPBladeStability(4, 'octave', 'data', @@ -274,8 +274,8 @@ class FINSTRIPBeamStructureTestCase(unittest.TestCase): f_eig_min_idx[case, sec] = p[ 'blade_f_eig'][case, sec, :, 1].argmin() - f_eig_min_exp = np.array([[2.038, 2.597, 2.936, 1.], - [1.021, 1.367, 1.346, 1.]]) + f_eig_min_exp = np.array([[2.034, 2.535, 2.936, 1.], + [1.019, 1.457, 1.349, 1.]]) for case in range(ncase): for i, f in enumerate(f_eig_min[case, :]): self.assertAlmostEqual( @@ -305,8 +305,8 @@ class FINSTRIPBeamStructureTestCase(unittest.TestCase): f_eig_min[case, sec] = np.min( p['blade_f_eig'][case, sec, :, 1]) - f_eig_min_exp = np.array([[1.559, 1.04, 1.442, 1.], - [0.781, 0.576, 0.752, 1.]]) + f_eig_min_exp = np.array([[1.922, 2.251, 2.197, 1.], + [0.963, 1.281, 1.142, 1.]]) for case in range(ncase): for i, f in enumerate(f_eig_min[case, :]): self.assertAlmostEqual( -- GitLab