Gmsh 是三维开源有限元网格生成器,但其脚本语言编写比较难,本文介绍基于 Python 的 Pygmsh 程序包。Pygmsh 的目标是将 Gmsh 的功能与 Python 的多功能性相结合,并提供来自 Gmsh 脚本语言的有用功能,以便可以更轻松地创建复杂的几何图形。

要创建上述网格,只需执行:
import pygmsh
import numpy as np
geom = pygmsh.built_in.Geometry()
# Draw a cross.
poly = geom.add_polygon([[0.0, 0.5, 0.0],
[-0.1, 0.1, 0.0],
[-0.5, 0.0, 0.0],
[-0.1, -0.1, 0.0],
[0.0, -0.5, 0.0],
[0.1, -0.1, 0.0],
[0.5, 0.0, 0.0],
[0.1, 0.1, 0.0]
],
lcar=0.05
)
axis = [0, 0, 1]
geom.extrude(
poly,
translation_axis=axis,
rotation_axis=axis,
point_on_axis=[0, 0, 0],
angle=2.0 / 6.0 * np.pi
)
mesh = pygmsh.generate_mesh(geom)
# mesh.points, mesh.cells, ……
检索指定几何图形的网格的所有点和单元。要存储网格,可以使用 meshio ; 例如:
import meshio
meshio.write("test.vtk", mesh)
可以使用各种工具(例如 ParaView)可视化输出文件。
[版权声明] :本文文字、代码及图片版权归原作者所有,任何媒体、网站或个人未经本网协议授权不得采集、整理、转载或以其他方式复制发表。已经本站协议授权的媒体、网站,在使用时必须注明“稿件来源:学研谷”。