def entity_to_gmsh(self, e, dim, lc, gmshself=True):
# do not duplicate entity in gmsh
i = self.entities[dim].index(e)
gmsh_e = self.gmsh_entities[dim][i]
if gmsh_e is not None:
return gmsh_e
if dim==0: # create Point
e = e + tuple(0. for i in range(3 - self.dim))
gmsh_e = py4gmsh.Point(e, lc)
self.gmsh_entities[0][i] = gmsh_e
#print gmsh_e, e
return gmsh_e
# dim>0: recursively generate facets and entity itself
facets = _facets(e)
facets = [self.entity_to_gmsh(f, dim-1, lc)
for f in facets]
orient = _orientations(dim-1)
loop = FacetLoop[dim-1]([o+s for o, s in izip(orient, facets)])
if gmshself:
gmsh_e = Entity[dim](loop)
self.gmsh_entities[dim][i] = gmsh_e
#print gmsh_e, e
return gmsh_e
评论列表
文章目录