前言
利用有限元方法计算一些数值问题,经常需要剖网格,得到的网格拓扑信息,如果能图形化显示对我们Debug程序也方便,下面利用Python语言读取文本中的网格拓扑信息,然后图形化显示,且可以选择是否显示节点或者单元编号信息。具体代码和数据可以去我的 Github下载。
数据格式
1. 节点数据格式
id_1 x1 y1
id_2 x2 y2
…
For Example (Node.txt)
1 0 0
2 5 0
3 5 4
4 0 4
5 0 2
6 1 1
7 2 1
8 2 2
9 1 2
10 1 1.5
2. 单元编号数据格式
id_1 tri_id1 tri_id2 tri_id3 tag
id_2 tri_id1 tri_id2 tri_id3 tag
…
注:tag 有时可以表示这个三角形单元的一些特殊信息,画图时亦可以用其显示三角形颜色。
For Example (Triangles.txt)
1 41 42 46 3.7
2 29 7 43 3.7
3 34 14 38 3.7
4 42 35 46 3.7
5 11 44 59 3.7
6 35 42 49 3.7
7 34 38 43 3.7
8 38 29 43 3.7
9 41 24 42 3.7
10 41 46 61 3.7
程序
1 读取节点信息
def read_Nodes(node_file):
Nodes = []
f = open(node_file)
lines = f.readlines()
for line in lines:
data = re.findall(r'\d+\.?\d*', line)
#line = line.strip('\n')
#line = line.split(' ')
id = int(data[0])
x = float(data[1])
y = float(data[2])
da = [x, y]
Nodes.append(da)
return Nodes
2 读取网格拓扑信息
def read_Triangles(triangle_file):
Triangles = []
Tags = []
f = open(triangle_file)
lines = f.readlines()
for line in lines:
data = re.findall(r'\d+\.?\d*', line)
id = int(data[0])
id_1 = int(data[1])
id_2 = int(data[2])
id_3 = int(data[3])
tag = float(data[4])
da = [id_1, id_2, id_3]
Triangles.append(da)
Tags.append(tag)
return Triangles, Tags
3 网格图形化
def plotMesh(Nodes, Triangles, Tags, showNodeId = True, showTriangleId = True, showTriangleTag = False):
fig, ax = plt.subplots()
pa

该博客介绍如何使用Python读取有限元方法计算的网格数据,并进行图形化显示。通过读取节点和单元文件,实现网格的二维可视化,同时提供了是否显示节点和单元编号的选项。代码已在GitHub上提供。
最低0.47元/天 解锁文章
769

被折叠的 条评论
为什么被折叠?



