我使用meshio软件包从一个vtu文件中提取信息,该文件表示流经雷诺号的圆柱体(Von涡)的2d版本。一次的220次。我能够在一个名为data的变量中提取x和y坐标,如下所示:
In[7]: data
Out[7]:
array([[0.02692238, 0.40000474],
[0.02049045, 0.41 ],
[0.03102019, 0.41 ],
...,
[0.27846185, 0.15545069],
[0.04423019, 0.05609254],
[0.04601913, 0.06239963]])
In [9]: np.shape(data)
Out[9]: (12568, 2)此外,我能够提取任何字段变量,例如压力,如下所示:
In [8]: Pressure
Out[8]:
array([ 0.04950621, 0.05545308, 0.04723278, ..., -0.05356851,
0.07954962, 0.08006932])
In [10]: np.shape(Pressure)
Out[10]: (12568,)仿真中采用了triangle 6单元,即每条边中间有3个规则节点和3个额外节点的二次元。这是节点连接的结构。
In [14]: cells['triangle6']
Out[14]:
array([[ 0, 1, 2, 3528, 3527, 3531],
[ 3, 4, 5, 3525, 3239, 3238],
[ 4, 6, 5, 3408, 3237, 3239],
...,
[ 1737, 484, 343, 7316, 4145, 4148],
[ 3204, 3199, 3202, 12296, 12294, 12566],
[ 3200, 3199, 3204, 12295, 12296, 12567]], dtype=int64)
In [15]: np.shape(cells['triangle6'])
Out[15]: (6142, 6)如何使用这些信息绘制模拟?
发布于 2022-07-26 21:33:40
我在一年后回答我自己的问题。所以,如果重点是可视化vtu文件的话。PyVista是你需要的东西。这里,他们有一个关于如何可视化vtu文件的优秀教程系列。
我们还可以使用matplotlib.pyplot.scatter()快速绘制以因变量作为颜色图强度的散射图。
例如,如果我想在2D域中绘制压力。
import matplotlib.pyplot as plt
sc = plt.scatter(x,y, c = pressure)
plt.colormap(sc)如果您想要将plt.imshow()用于更好的绘图,则需要应用内插将数据转换为结构化网格。
https://stackoverflow.com/questions/67009826
复制相似问题