Source code for fluidsimfoam.foam_input_files.blockmesh.edges

class Point:
    def __init__(self, x, y, z):
        self.x = x
        self.y = y
        self.z = z

    def format(self):
        return f"( {self.x:18.15g} {self.y:18.15g} {self.z:18.15g} )"


[docs]class ArcEdge: def __init__(self, vnames, name, inter_vertex): """Initialize ArcEdge instance vnames is the vertex names in order descrived in http://www.openfoam.org/docs/user/mesh-description.php # two vertices is needed for Arc cells is number of cells devied into in each direction name is the uniq name of the block grading is grading method. """ self.vnames = vnames self.name = name self.inter_vertex = inter_vertex
[docs] def format(self, vertices): """Format instance to dump vertices is dict of name to Vertex """ index = " ".join(str(vertices[vn].index) for vn in self.vnames) comment = " ".join(self.vnames) v = self.inter_vertex return ( f"arc {index} ({v.x:18.15g} {v.y:18.15g} {v.z:18.15g}) " f"// {self.name} ({comment})" )
[docs]class SplineEdge: def __init__(self, vnames, name, points): """Initialize SplineEdge instance vnames is the vertex names in order descrived in http://www.openfoam.org/docs/user/mesh-description.php # two vertices is needed for Spline """ self.vnames = vnames self.name = name if points and not isinstance(points[0], Point): points = [Point(x, y, z) for x, y, z in points] self.points = points
[docs] def format(self, vertices): """Format instance to dump vertices is dict of name to Vertex """ index = " ".join(str(vertices[vn].index) for vn in self.vnames) comment = " ".join(self.vnames) tmp = [] tmp.append( f"spline {index} // {self.name} ({comment})" ) tmp.append(" (") for p in self.points: tmp.append(" " + p.format()) tmp.append(")") return "\n".join(tmp)