예제 #1
0
edge = totalEdge[i0]  # 最终的边数组
print('edge:\n', edge)

E = 3  # 每个三角形有 3 条边
NE = edge.shape[0]  # 获得网格中边的个数, 即 `edge` 的行数
i1 = np.zeros(NE, dtype=np.int32)  # 分配空间
i1[j] = range(3 * NC)  # totalEdge0 的行数是 3*NC, j 的长度也是 3*NC

print('i0:\n', i0)
print('i1:\n', i1)

edge2cell = np.zeros((NE, 4), dtype=np.int32)
edge2cell[:, 0] = i0 // E  # 得到每条边的左边单元
edge2cell[:, 1] = i1 // E  # 得到每条边的右边单元
edge2cell[:, 2] = i0 % E  # 得到每条边的在左边单元中的局部编号
edge2cell[:, 3] = i1 % E  # 得到每条边在其右边单元中的局部编号

print('edge2cell:\n', edge2cell)

mesh = TriangleMesh(node, cell)
mesh.print()
fig = plt.figure()
axes = fig.gca()
mesh.add_plot(axes)
mesh.find_node(axes, showindex=True)
mesh.find_cell(axes, showindex=True)
mesh.find_edge(axes, showindex=True)
plt.savefig('numpy-mesh-edge.png')
plt.show()
예제 #2
0
파일: tri_edge.py 프로젝트: mfkiwl/fealpy
# sedge[j] == stotalEdge
arrayprint("stotalEdge:", stotalEdge)
arrayprint("sedge[j]", sedge[j])
arrayprint("j", j)
arrayprint("cell2edge", cell2edge)

arrayprint("sedge:", sedge)
# sedge == stotalEdge[i0]
arrayprint("stotalEdge[i0]", stotalEdge[i0])
arrayprint("i0", i0)
arrayprint("i1", i1)

arrayprint("node", node)  # (NN, 2)
arrayprint("cell", cell)  # (NC, 3)
arrayprint("edge", edge)  # (NC, 3)
arrayprint("edge2cell", edge2cell)  # (NE, 4)
#edge = mesh.entity('edge')
#arrayprint("edge", edge) # (NE, 2)
#cell2edge = mesh.ds.cell_to_edge()
#arrayprint("cell2edge", cell2edge) # (NC, 3)
#edge2cell = mesh.ds.edge_to_cell()
#arrayprint("edge2cell", edge2cell) # (NE, 4)

fig = plt.figure()
axes = fig.gca()
mesh.add_plot(axes)
mesh.find_node(axes, showindex=True, fontsize=28)
mesh.find_edge(axes, showindex=True, fontsize=30)
mesh.find_cell(axes, showindex=True, fontsize=32)
plt.show()