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