示例#1
0
    def load_panair_results(self, panair_filename, dirname):
        cases = self.result_cases
        if os.path.basename(panair_filename) == 'agps':
            model = AGPS(log=self.log, debug=self.debug)
            model.read_agps(panair_filename)
        else:
            raise RuntimeError('only files named "agps" files are supported')

        # get the Cp on the nodes
        Cp_array = zeros(self.nNodes, dtype='float32')
        imin = 0
        for ipatch, Cp in sorted(iteritems(model.pressures)):
            Cpv = ravel(Cp)
            nCp = len(Cpv)
            try:
                Cp_array[imin:imin + nCp] = Cpv
            except ValueError:
                # agps stores implicit and explicit wakes
                # we're skipping all wakes
                pass
            imin += nCp

        Cp_array2 = (
            Cp_array[self.elements[:, 0]] + Cp_array[self.elements[:, 1]] +
            Cp_array[self.elements[:, 2]] + Cp_array[self.elements[:, 3]]) / 4.

        icase = len(self.result_cases)

        form = self.get_form()
        results_form = [
            ('Cp Nodal', icase, []),
            (
                'Cp Centroidal',
                icase + 1,
                [],
            ),
        ]
        form.append(('Results', None, results_form))

        ID = 1
        Cpn_res = GuiResult(ID,
                            'Cp Nodal',
                            'Cp',
                            'node',
                            Cp_array,
                            data_format='%.3f',
                            uname='Cp_nodal')
        Cpc_res = GuiResult(ID,
                            'Cp Centroidal',
                            'Cp',
                            'centroid',
                            Cp_array2,
                            data_format='%.3f',
                            uname='Cp_centroidal')
        cases[icase] = (Cpn_res, (0, 'Cp_nodal'))
        cases[icase + 1] = (Cpc_res, (0, 'Cp_centroidal'))

        self._finish_results_io2(form, cases)
示例#2
0
    def load_panair_results(self, panair_filename, dirname):
        cases = self.result_cases
        if os.path.basename(panair_filename) == 'agps':
            model = AGPS(log=self.log, debug=self.debug)
            model.read_agps(panair_filename)
        else:
            raise RuntimeError('only files named "agps" files are supported')

        # get the Cp on the nodes
        Cp_array = zeros(self.nNodes, dtype='float32')
        imin = 0
        for ipatch, Cp in sorted(iteritems(model.pressures)):
            Cpv = ravel(Cp)
            nCp = len(Cpv)
            try:
                Cp_array[imin:imin + nCp] = Cpv
            except ValueError:
                # agps stores implicit and explicit wakes
                # we're skipping all wakes
                pass
            imin += nCp

        Cp_array2 = (Cp_array[self.elements[:, 0]] +
                     Cp_array[self.elements[:, 1]] +
                     Cp_array[self.elements[:, 2]] +
                     Cp_array[self.elements[:, 3]]) / 4.

        #key = (1, 'Cp', 1, 'centroid', '%.3f')
        #self.result_cases[key] = Cp_array2
        icase = len(self.result_cases)

        form = self.get_form()
        results_form = [
            ('Cp Nodal', icase, []),
            ('Cp Centroidal', icase + 1, [],),
        ]
        form.append(('Results', None, results_form))

        if 0:
            key = (1, icase, 'Cp_nodal', 1, 'node', '%.3f', '')
            self.result_cases[key] = Cp_array

            key = (1, icase + 1, 'Cp_centroidal', 1, 'centroid', '%.3f', '')
            self.result_cases[key] = Cp_array2
        else:
            ID = 1
            Cpn_res = GuiResult(ID, 'Cp Nodal', 'Cp', 'node', Cp_array, data_format='%.3f', uname='Cp_nodal')
            Cpc_res = GuiResult(ID, 'Cp Centroidal', 'Cp', 'centroid', Cp_array2, data_format='%.3f', uname='Cp_centroidal')
            cases[icase] = (Cpn_res, (0, 'Cp_nodal'))
            cases[icase + 1] = (Cpc_res, (0, 'Cp_centroidal'))

        self._finish_results_io2(form, cases)
示例#3
0
    def load_panair_results(self, panairFileName, dirname):
        if os.path.basename(panairFileName) == 'agps':
            model = AGPS(log=self.log, debug=self.debug)
            model.read_agps(panairFileName)
        else:
            raise RuntimeError('only files named "agps" files are supported')

        # get the Cp on the nodes
        Cp_array = zeros(self.nNodes, dtype='float32')
        imin = 0
        for ipatch, Cp in sorted(iteritems(model.pressures)):
            Cpv = ravel(Cp)
            nCp = len(Cpv)
            try:
                Cp_array[imin:imin + nCp] = Cpv
            except ValueError:
                # agps stores implicit and explicit wakes
                # we're skipping all wakes
                pass
            imin += nCp

        if self.is_centroidal:
            Cp_array2 = (Cp_array[self.elements[:, 0]] +
                         Cp_array[self.elements[:, 1]] +
                         Cp_array[self.elements[:, 2]] +
                         Cp_array[self.elements[:, 3]]) / 4.
            key = (1, 'Cp', 1, 'centroid', '%.3f')
            self.resultCases[key] = Cp_array2

        elif self.is_nodal:
            key = (1, 'Cp', 1, 'node', '%.3f')
            self.resultCases[key] = Cp_array

        #self.resultCases = cases
        self.caseKeys = sorted(self.resultCases.keys())
        self.iCase = -1
        self.nCases = len(self.resultCases) - 1  # number of keys in dictionary
        #self.nCases = 1
        self.cycleResults()  # start at nCase=0
示例#4
0
    def load_panair_results(self, panairFileName, dirname):
        if os.path.basename(panairFileName) == 'agps':
            model = AGPS(log=self.log, debug=self.debug)
            model.read_agps(panairFileName)
        else:
            raise RuntimeError('only files named "agps" files are supported')

        # get the Cp on the nodes
        Cp_array = zeros(self.nNodes, dtype='float32')
        imin = 0
        for ipatch, Cp in sorted(iteritems(model.pressures)):
            Cpv = ravel(Cp)
            nCp = len(Cpv)
            try:
                Cp_array[imin:imin + nCp] = Cpv
            except ValueError:
                # agps stores implicit and explicit wakes
                # we're skipping all wakes
                pass
            imin += nCp

        if self.is_centroidal:
            Cp_array2 = (Cp_array[self.elements[:, 0]] +
                         Cp_array[self.elements[:, 1]] +
                         Cp_array[self.elements[:, 2]] +
                         Cp_array[self.elements[:, 3]]) / 4.
            key = (1, 'Cp', 1, 'centroid', '%.3f')
            self.resultCases[key] = Cp_array2

        elif self.is_nodal:
            key = (1, 'Cp', 1, 'node', '%.3f')
            self.resultCases[key] = Cp_array

        #self.resultCases = cases
        self.caseKeys = sorted(self.resultCases.keys())
        self.iCase = -1
        self.nCases = len(self.resultCases) - 1  # number of keys in dictionary
        #self.nCases = 1
        self.cycleResults()  # start at nCase=0
示例#5
0
    def load_panair_results(self, panair_filename):
        model_name = 'main'
        #colormap = self.colormap
        colormap = 'jet'
        cases = self.gui.result_cases
        model = AGPS(log=self.gui.log, debug=self.gui.debug)
        model.read_agps(panair_filename)

        icase = len(self.gui.result_cases)
        results_form = []

        # get the Cp on the nodes
        cp0 = model.pressures[0]
        ncp = cp0.shape[0]

        nnodes = self.gui.nnodes
        nelements = self.gui.nelements

        geom_model = self.gui.geom_model
        mach = geom_model.mach
        #ncases = geom_model.ncases

        ID = 1
        is_beta0 = min(geom_model.betas) == max(geom_model.betas) and geom_model.betas[0] == 0.
        for icp in range(ncp):
            alpha = geom_model.alphas[icp]
            beta = geom_model.betas[icp]
            case_name = 'alpha=%s' % alpha
            if not is_beta0:
                case_name += ' beta=%s' %  beta

            imin = 0
            Cp_array = zeros(nnodes, dtype='float32')
            for unused_ipatch, Cp in sorted(model.pressures.items()):
                Cpv = Cp[icp].ravel()
                nCp = len(Cpv)
                try:
                    Cp_array[imin:imin + nCp] = Cpv
                except ValueError:
                    # agps stores implicit and explicit wakes
                    # we're skipping all wakes
                    pass
                imin += nCp

                #Cp_array2 = (Cp_array[self.elements[:, 0]] +
                             #Cp_array[self.elements[:, 1]] +
                             #Cp_array[self.elements[:, 2]] +
                             #Cp_array[self.elements[:, 3]]) / 4.
            results_form += [
                ('Cp Nodal - %s' % case_name, icase, []),
                #('Cp Centroidal', icase + 1, [],),
            ]
            Cpn_res = GuiResult(ID, 'Cp Nodal - %s' % case_name, 'Cp', 'node', Cp_array,
                                data_format='%.3f', colormap=colormap, uname='Cp_nodal')
            #Cpc_res = GuiResult(ID, 'Cp Centroidal', 'Cp', 'centroid', Cp_array2,
                                #data_format='%.3f', uname='Cp_centroidal')
            cases[icase] = (Cpn_res, (0, 'Cp_nodal'))
            icase += 1


        form = self.gui.get_form()
        assert len(results_form) > 0, results_form
        form.append(('Results: Mach=%s' % mach, None, results_form))

        dirname = os.path.dirname(panair_filename)
        panair_out_filename = os.path.join(dirname, 'panair.out')
        ft13_filename = os.path.join(dirname, 'ft13')

        if os.path.exists(panair_out_filename):
            out = read_panair_out(panair_out_filename, log=self.gui.log)
            unused_alphas = geom_model.alphas
            unused_betas = geom_model.betas
            icase, out_form = add_networks(out.networks, out.headers, is_beta0,
                                           ID, icase, cases, geom_model, nelements,
                                           self.gui.log, colormap=colormap)
            assert len(out_form) > 0, out_form
            form.append(('Out: Mach=%s' % mach, None, out_form))

            if os.path.exists(ft13_filename):
                out.read_ft13(ft13_filename)
                icase, ft13_form = add_networks(out.networks_ft13, out.headers_ft13, is_beta0,
                                                ID, icase, cases, geom_model, nelements,
                                                self.gui.log, colormap=colormap)
                assert len(ft13_form) > 0, ft13_form
                form.append(('Ft13: Mach=%s' % mach, None, ft13_form))


        #cases[icase + 1] = (Cpc_res, (0, 'Cp_centroidal'))
        self.gui._finish_results_io2(model_name, form, cases)