我正在尝试解决Python中的FE问题,但我陷入了网格生成阶段。我已经使用pip安装了MeshPy v2014.1(因此应该整理所有依赖项),但是the MeshPy website上给出的以下示例似乎不起作用。
from meshpy.tet import MeshInfo, build
mesh_info = MeshInfo()
mesh_info.set_points([
(0,0,0), (2,0,0), (2,2,0), (0,2,0),
(0,0,12), (2,0,12), (2,2,12), (0,2,12),
])
mesh_info.set_facets([
[0,1,2,3],
[4,5,6,7],
[0,4,5,1],
[1,5,6,2],
[2,6,7,3],
[3,7,4,0],
])
mesh = build(mesh_info)
print "Mesh Points:"
for i, p in enumerate(mesh.points):
print i, p
print "Point numbers in tetrahedra:"
for i, t in enumerate(mesh.elements):
print i, t
mesh.write_vtk("test.vtk")
我完全复制/粘贴了代码。该示例运行,但不会生成站点上列出的结果。相反,我得到
Mesh Points:
0 [0.0, 0.0, 0.0]
1 [2.0, 0.0, 0.0]
2 [2.0, 2.0, 0.0]
3 [0.0, 2.0, 0.0]
4 [0.0, 0.0, 12.0]
5 [2.0, 0.0, 12.0]
6 [2.0, 2.0, 12.0]
7 [0.0, 2.0, 12.0]
8 [2.0, 2.0, 6.0]
9 [0.0, 0.0, 6.0]
10 [0.0, 2.0, 6.0]
11 [2.0, 0.0, 6.0]
Point numbers in tetrahedra:
0 [2, 10, 0, 8]
1 [2, 0, 1, 8]
2 [4, 11, 9, 8]
3 [0, 10, 9, 8]
4 [6, 10, 4, 7]
5 [4, 11, 8, 5]
6 [0, 11, 1, 8]
7 [2, 10, 3, 0]
8 [6, 10, 8, 4]
9 [5, 4, 6, 8]
10 [0, 11, 8, 9]
11 [4, 10, 8, 9]
VtkData.__init__.warning:
No data defined
写入输出文件(test.vtk)但仅包含点(无网格)。我假设built(mesh_info)
命令不起作用,但我找不到跟踪问题的方法。 MeshPy文档列出了几个可以传递给build()
的标志,但没有提到它们的作用。我试过build(mesh_info,verbose=True)
但没有额外的输出。然后我尝试了build(mesh_info,diagnose=True)
,它因以下错误而停止:
ValueError: Cell 'tetra' requires exactly 4 points but got 0: <meshpy._tetgen.IntArray object at 0x7f288bba54b0>
我似乎无法找到同样问题的任何其他实例。任何帮助将不胜感激!
答案 0 :(得分:0)
您需要使用名为Paraview的程序来可视化输出文件。昨天我测试了meshpy,它运行正常。
答案 1 :(得分:0)
生成vtk输出,代码&#34; meshpy&#34;需要在系统上安装pyvtk。 你可以使用pip和meshpy
轻松安装它