コード例 #1
0
    def create_mesh(self, context):
        ## context is a skeleton context
        ## setup element types
        edict = {}
        # get linear isoparametric master elements
        if config.dimension() == 2:
            edict['Triangle'] = masterelement.getMasterElementDict()['T3_3']
            edict['Quadrilateral'] = masterelement.getMasterElementDict(
            )['Q4_4']
        elif config.dimension() == 3:
            edict['Tetrahedron'] = masterelement.getMasterElementDict(
            )['TET4_4']
        skel = context.getObject()
        ## returns a Mesh (Who) object
        self.meshname = context.path() + ":__internal_mesh__"
        #Interface branch, pass skeleton path to femesh
        femesh = skel.femesh(
            edict, self.material())  #, self.set_fakematerial, context.path())
        meshcontext = ooflib.engine.mesh.meshes.add(self.meshname,
                                                    femesh,
                                                    parent=context,
                                                    skeleton=skel,
                                                    elementdict=edict)
        meshcontext.createDefaultSubProblem()

        return meshcontext
コード例 #2
0
def parallel_femesh(menuitem, name, skeleton, D_typename, T_typename,
                    Q_typename):
    # Build edict map. Access masterelement dictionary directly
    MEdict = masterelement.getMasterElementDict()
    edict = {
        MEdict[D_typename].nsides(): MEdict[D_typename],
        MEdict[T_typename].nsides(): MEdict[T_typename],
        MEdict[Q_typename].nsides(): MEdict[Q_typename]
    }
    skelpath = labeltree.makePath(skeleton)
    skel = skeletoncontext.skeletonContexts[skelpath].getObject()
    femesh = skel.femesh_shares(edict,
                                skeletonelement.SkeletonElement.realmaterial)
    if _rank == 0:
        femesh.all_meshskeletons = skel.all_skeletons
    #collect_pieces(femesh)
    if femesh is not None:
        meshctxt = ooflib.engine.mesh.meshes.add(
            skelpath + [name],
            femesh,
            parent=skeletoncontext.skeletonContexts[skelpath],
            skeleton=skel,
            elementdict=edict,
            materialfactory=skeletonelement.SkeletonElement.realmaterial)
        meshctxt.createDefaultSubProblem()
コード例 #3
0
def getMyMasterElementDict(masterelems):
    edict = {}
    masterdict = masterelement.getMasterElementDict()
    for ename in masterelems:
        try:
            master = masterdict[ename]
            edict[master.ncorners()] = master
        except KeyError:
            raise ooferror.ErrUserError("Element type \"%s\" is unknown." %
                                        ename)
    return edict
コード例 #4
0
ファイル: meshIO.py プロジェクト: shkeshavarz/OOF2
def getMyMasterElementDict(masterelems):
    edict = {}
    masterdict = masterelement.getMasterElementDict()
    for ename in masterelems:
        try:
            master = masterdict[ename]
            edict[master.ncorners()] = master
        except KeyError:
            raise ooferror.ErrUserError("Element type \"%s\" is unknown."
                                        % ename)
    return edict
コード例 #5
0
ファイル: relaxation.py プロジェクト: anilkunwar/OOF2
    def create_mesh(self, context):
        ## context is a skeleton context
        ## setup element types
        edict = {}
        # get linear isoparametric master elements
        if config.dimension() == 2:
            edict[3] = masterelement.getMasterElementDict()['T3_3']
            edict[4] = masterelement.getMasterElementDict()['Q4_4']
        elif config.dimension() == 3:
            edict[4] = masterelement.getMasterElementDict()['T4_4']
        skel = context.getObject()
        ## returns a Mesh (Who) object
        self.meshname = context.path() + ":__internal_mesh__"
        #Interface branch, pass skeleton path to femesh
        femesh = skel.femesh(edict, self.set_fakematerial, context.path())
        meshcontext = ooflib.engine.mesh.meshes.add(
            self.meshname, femesh,
            parent=context,
            skeleton=skel, elementdict=edict)
        meshcontext.createDefaultSubProblem()

        return meshcontext
コード例 #6
0
ファイル: meshIPC.py プロジェクト: anilkunwar/OOF2
def parallel_femesh(menuitem,name,skeleton,
                    D_typename,T_typename,Q_typename):
    # Build edict map. Access masterelement dictionary directly
    MEdict=masterelement.getMasterElementDict()
    edict = {
        MEdict[D_typename].nsides(): MEdict[D_typename],
        MEdict[T_typename].nsides(): MEdict[T_typename],
        MEdict[Q_typename].nsides(): MEdict[Q_typename]
        }
    skelpath = labeltree.makePath(skeleton)
    skel = skeletoncontext.skeletonContexts[skelpath].getObject()
    femesh = skel.femesh_shares(edict, skeletonelement.SkeletonElement.realmaterial)
    if _rank == 0:
        femesh.all_meshskeletons = skel.all_skeletons
    #collect_pieces(femesh)
    if femesh is not None:
        meshctxt = ooflib.engine.mesh.meshes.add(
            skelpath+[name], femesh,
            parent=skeletoncontext.skeletonContexts[skelpath],
            skeleton=skel,
            elementdict=edict,
            materialfactory=skeletonelement.SkeletonElement.realmaterial)
        meshctxt.createDefaultSubProblem()