Пример #1
0
    def __init__(self, log=None, debug=False):
        """
        Initializes the SHABP object

        Parameters
        ----------
        debug : bool/None; default=True
            used to set the logger if no logger is passed in
                True:  logs debug/info/error messages
                False: logs info/error messages
                None:  logs error messages
        log : logging module object / None
            if log is set, debug is ignored and uses the
            settings the logging object has
        """
        ShabpOut.__init__(self, log, debug)
        #self.xyz = {}
        self.X = {}
        self.Y = {}
        self.Z = {}
        self.trailer = None

        self.component_name_to_patch = {}
        self.patch_to_component_num = {}
        self.component_to_params = {}
        self.component_num_to_name = {}
        self.component_name_to_num = {}
        self.log = get_logger2(log, debug=debug)

        self.title = ''
        self.header = ''
        self.shabp_cases = {}
Пример #2
0
    def test_shabp_2(self):
        """tests the flap"""
        log = SimpleLogger(level='info', encoding='utf-8')
        shabp_infilename = os.path.join(MODEL_PATH, 'flap',
                                        'flap_inviscid.mk5')
        shabp_outfilename = os.path.join(MODEL_PATH, 'flap', 'SHABP.OUT')

        #test.model.load_shabp_geometry(shabp_infilename)
        #test.on_load_geometry(shabp_infilename, geometry_format='shabp', raise_error=True)
        model = read_shabp(shabp_infilename,
                           read_special_routines=True,
                           log=log,
                           debug=None)

        #print(f'component_name_to_patch = {model.component_name_to_patch}')
        #print(f'patch_to_component_num = {model.patch_to_component_num}')
        #print(f'component_to_params = {model.component_to_params}')
        #print(f'component_num_to_name = {model.component_num_to_name}')
        #print(f'component_name_to_num = {model.component_name_to_num}')

        assert model.component_name_to_patch == {
            'COMP1': [1],
            'FLAP': [2]
        }, model.component_name_to_patch
        assert model.patch_to_component_num == {
            0: 1,
            1: 2
        }, model.patch_to_component_num
        assert model.component_to_params == {
            0: [3, 1, 1, 0, 0, 0.0, 1.0, 0.0, 1.0, 3.0, 3.0],
            1: [3, 1, 1, 0, 0, 0.0, 1.0, 0.0, 1.0, 3.0, 3.0]
        }, model.component_to_params
        assert model.component_num_to_name == {
            0: 'COMP1',
            1: 'FLAP'
        }, model.component_num_to_name
        assert model.component_name_to_num == {
            'COMP1': 0,
            'FLAP': 1
        }, model.component_name_to_num

        areas = model.get_area_by_patch()
        assert np.allclose(areas, [50., 124.6875]), areas

        areas = model.get_area_by_component()
        assert np.allclose(areas['COMP1'], 124.6875), areas
        assert np.allclose(areas['FLAP'], 50.0), areas

        areas, lengths = model.get_area_xlength_by_component()
        assert np.allclose(areas['COMP1'], 124.6875), areas
        assert np.allclose(areas['FLAP'], 50.0), areas
        assert np.allclose(lengths['COMP1'], 24.9375), lengths
        assert np.allclose(lengths['FLAP'], 34.9375), lengths

        out_model = ShabpOut(model, log=log)
        Cpd, unused_deltad = out_model.read_shabp_out(shabp_outfilename)
Пример #3
0
    def load_shabp_results(self, shabp_filename):
        #print(dir(self))
        #print(dir(self.gui))
        model_name = 'main'
        #print(self.model)
        model = self.gui.bkp
        out_model = ShabpOut(model, log=self.gui.log, debug=self.gui.debug)
        Cpd, deltad = out_model.read_shabp_out(shabp_filename)

        cases = self.gui.result_cases
        icase = len(cases)
        mach_results = []

        form = self.gui.get_form()
        form.append(('Results', None, mach_results))
        mach_forms = defaultdict(list)
        for case_id, Cp in sorted(Cpd.items()):
            Cp = Cpd[case_id]
            delta = deltad[case_id]

            try:
                mach, alpha, unused_beta = model.shabp_cases[case_id]
                name = 'Mach=%g Alpha=%g' % (mach, alpha)
            except KeyError:
                name = 'Mach=? Alpha=? (Case %i)' % case_id
            #name = 'Mach=%g Alpha=%g' % (mach, alpha)
            #(name, icase, 'Cp', 1, 'centroid', '%.3f', '')
            cases[icase] = Cp
            #cp_form = [
            #('Cp', icase, [])
            #]

            ID = 1
            cp_res = GuiResult(ID,
                               header='Cp',
                               title='Cp',
                               location='centroid',
                               scalar=Cp)  # data_format='%.2f
            delta_res = GuiResult(ID,
                                  header='delta',
                                  title='delta',
                                  location='centroid',
                                  scalar=delta)  # data_format='%.2f
            itime = 0
            cases[icase] = (cp_res, (itime, name))
            cases[icase + 1] = (delta_res, (itime, name))
            mach_forms[mach].append(('Cp', icase, []))
            mach_forms[mach].append(('delta', icase + 1, []))
            icase += 2
            #self.result_cases[(name, 'delta', 1, 'centroid', '%.3f')] = delta

        for mach, mach_form in sorted(mach_forms.items()):
            mach_formi = ('Mach=%s' % mach, None, mach_form)
            mach_results.append(mach_formi)
        self.gui._finish_results_io2(model_name, form, cases)
Пример #4
0
    def __init__(self, log=None, debug=False):
        ShabpOut.__init__(self, log, debug)
        self.X = {}
        self.Y = {}
        self.Z = {}
        self.trailer = None

        self.component_name_to_patch = {}
        self.patch_to_component_num = {}
        self.component_to_params = {}
        self.component_num_to_name = {}
        self.component_name_to_num = {}
Пример #5
0
    def __init__(self, log=None, debug=False):
        ShabpOut.__init__(self, log, debug)
        self.X = {}
        self.Y = {}
        self.Z = {}
        self.trailer = None

        self.component_name_to_patch = {}
        self.patch_to_component_num = {}
        self.component_to_params = {}
        self.component_num_to_name = {}
        self.component_name_to_num = {}
Пример #6
0
    def __init__(self, log=None, debug=False):
        ShabpOut.__init__(self, log, debug)
        #self.xyz = {}
        self.X = {}
        self.Y = {}
        self.Z = {}
        self.trailer = None

        self.component_name_to_patch = {}
        self.patch_to_component_num = {}
        self.component_to_params = {}
        self.component_num_to_name = {}
        self.component_name_to_num = {}
        self.log = get_logger(log, 'debug' if debug else 'info')
Пример #7
0
    def __init__(self, log=None, debug=False):
        ShabpOut.__init__(self, log, debug)
        #self.xyz = {}
        self.X = {}
        self.Y = {}
        self.Z = {}
        self.trailer = None

        self.component_name_to_patch = {}
        self.patch_to_component_num = {}
        self.component_to_params = {}
        self.component_num_to_name = {}
        self.component_name_to_num = {}
        self.log = get_logger(log, 'debug' if debug else 'info')
Пример #8
0
    def __init__(self, log=None, debug=False):
        ShabpOut.__init__(self, log, debug)
        #self.xyz = {}
        self.X = {}
        self.Y = {}
        self.Z = {}
        self.trailer = None

        self.component_name_to_patch = {}
        self.patch_to_component_num = {}
        self.component_to_params = {}
        self.component_num_to_name = {}
        self.component_name_to_num = {}
        self.log = get_logger2(log, debug=debug)

        self.title = ''
        self.header = ''
        self.shabp_cases = {}