コード例 #1
0
 def test_rotate_and_chop(self):
     throat_verts = self.geo["throat.vertices"][0]
     throat_normal = self.geo["throat.normal"][0]
     test = vo.rotate_and_chop(throat_verts, throat_normal, [0, 1, 0])
     r, c = sp.shape(test)
     assert r == len(throat_verts)
     assert c == 2
コード例 #2
0
ファイル: VertexOpsTest.py プロジェクト: MichaelHoeh/OpenPNM
 def test_rotate_and_chop(self):
     throat_verts = self.geo["throat.vertices"][0]
     throat_normal = self.geo["throat.normal"][0]
     test = vo.rotate_and_chop(throat_verts, throat_normal, [0, 1, 0])
     r, c = sp.shape(test)
     assert r == len(throat_verts)
     assert c == 2
コード例 #3
0
def voronoi(geometry, **kwargs):
    r"""
    Uses the Voronoi vertices and throat normals to work out the perimeter
    """
    Nt = geometry.num_throats()
    verts = geometry['throat.offset_vertices']
    normals = geometry['throat.normal']
    perimeter = _sp.ndarray(Nt)
    for i in range(Nt):
        if len(verts[i]) > 2:
            verts_2D = vo.rotate_and_chop(verts[i], normals[i], [0, 0, 1])
            # Get in hull order
            hull = ConvexHull(verts_2D, qhull_options='QJ Pp')
            verts_2D = verts_2D[hull.vertices]
            perimeter[i] = vo.PolyPerimeter2D(verts_2D)
        else:
            perimeter[i] = 0.0
    return perimeter
コード例 #4
0
def voronoi(geometry, **kwargs):
    r"""
    Uses the Voronoi vertices and throat normals to work out the perimeter
    """
    Nt = geometry.num_throats()
    verts = geometry['throat.offset_vertices']
    normals = geometry['throat.normal']
    perimeter = _sp.ndarray(Nt)
    for i in range(Nt):
        if len(verts[i]) > 2:
            verts_2D = vo.rotate_and_chop(verts[i], normals[i], [0, 0, 1])
            # Get in hull order
            hull = ConvexHull(verts_2D, qhull_options='QJ Pp')
            verts_2D = verts_2D[hull.vertices]
            perimeter[i] = vo.PolyPerimeter2D(verts_2D)
        else:
            perimeter[i] = 0.0
    return perimeter