Exemple #1
0
def _grid2_from_id(gid):
    from hybmeshpack.hmcore import g2
    from hybmeshpack.gdata.grid2 import Grid2
    if not isinstance(gid, list):
        return flow.receiver.get_grid2(gid)
    else:
        ret = map(flow.receiver.get_grid2, gid)
        cd = g2.concatenate([r.cdata for r in ret])
        return Grid2(cd)
Exemple #2
0
    def _addrem_grid2(self):
        cbtot = self.ask_for_callback()
        base = self.grid2_by_name(self.get_option('grid_name'))

        clist = self.get_option('cont_names')
        for i, cname in enumerate(clist):
            cb = cbtot.subcallback(i, len(clist))
            cont = self.any_cont_by_name(cname)
            res = g2core.grid_excl_cont(base.cdata, cont.cdata,
                                        self.get_option('is_inner'), cb)
            base = Grid2(res)

        return [(base, self.get_option('name'))], []
Exemple #3
0
def flow_and_framework_fromfile(filename, flow, cb=None):
    doc, root, statenodes = 0, 0, []
    try:
        cb.pycall("Loading commands", "Reading xml", 0, 0)
        doc, root = hmxml.open_doc(filename)
        pstring = hmxml.purged_string(doc)
        pyside_root = ET.fromstring(pstring)
        pyside_flownode = pyside_root.findall('FLOW')
        if len(pyside_flownode) == 0:
            raise Exception('No proper data in xml file')
        else:
            pyside_flownode = pyside_flownode[0]

        # load commands
        cb.pycall("Loading commands", "Parsing", 0.5, 0)
        _load_command_flow(flow, pyside_flownode)
        cb.pycall("Loading commands", "Done", 1, 1)

        # state
        statenodes = hmxml.query(root, "FLOW/STATE")
        pyside_statenode = pyside_flownode.findall('STATE')
        if len(statenodes) > 0:
            statenode = statenodes[0]
            pyside_statenode = pyside_statenode[0]
        else:
            statenode = None
            pyside_statenode = None

        data = framework.Framework()
        if statenode is not None:
            # load boundary types
            _load_btypes(data, pyside_statenode)

            # load data
            c, g, s3, g3, cn, gn, s3n, g3n =\
                native_import.all_geom(doc, statenode, cb)
            for k, v in zip(cn, c):
                data.append_contour2(Contour2(v), k)
            for k, v in zip(gn, g):
                data.append_grid2(Grid2(v), k)
            for k, v in zip(s3n, s3):
                data.append_surface3(Surface3(v), k)
            for k, v in zip(g3n, g3):
                data.append_grid3(Grid3(v), k)
        flow.set_receiver(data)
    except:
        raise
    finally:
        hmxml.close_doc(doc, [root] + statenodes)
Exemple #4
0
    def _addrem_grid2(self):
        cbtotal = self.ask_for_callback()
        imax = len(self.get_option('plus'))
        wg, _ = self.__get_grid(0)

        for i in range(1, imax + 1):
            cb = cbtotal.subcallback(i - 1, imax)
            g, b = self.__get_grid(i)
            ret = g2core.unite_grids(wg.cdata, g.cdata, b,
                                     self.get_option('fix_bnd'),
                                     self.get_option('empty_holes'),
                                     self.get_option('angle0'),
                                     self.get_option('filler'), cb)
            wg = Grid2(ret)

        return [(wg, self.get_option('name'))], []
Exemple #5
0
    def _addrem_objects(self):
        self.__check_file_existance()
        g2list, c2list, g3list, s3list = [], [], [], []
        self._init_read()
        c2 = self._read_cont2()
        g2 = self._read_grid2()
        s3 = self._read_surf3()
        g3 = self._read_grid3()
        self._fin_read()
        for i, c in enumerate(c2):
            c2list.append((Contour2(c), self._c2name(i)))
        for i, c in enumerate(g2):
            g2list.append((Grid2(c), self._g2name(i)))
        for i, c in enumerate(s3):
            s3list.append((Surface3(c), self._s3name(i)))
        for i, c in enumerate(g3):
            g3list.append((Grid3(c), self._g3name(i)))

        return g2list, [], c2list, [], g3list, [], s3list, []
Exemple #6
0
 def __convex_cells(self, og, angle):
     ret = g2core.convex_cells(og.cdata, angle)
     return Grid2(ret)
Exemple #7
0
 def __simplify_bnd(self, og, angle):
     ret = g2core.simplify_grid_boundary(og.cdata, angle)
     return Grid2(ret)
Exemple #8
0
 def _addrem_grid2(self):
     g = self._build_grid()
     if g is not None:
         return [(Grid2(g), self.get_option('name'))], []
     else:
         return [], []