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)可视化输出文件。
[版权声明] :本文文字、代码及图片版权归原作者所有,任何媒体、网站或个人未经本网协议授权不得采集、整理、转载或以其他方式复制发表。已经本站协议授权的媒体、网站,在使用时必须注明“稿件来源:学研谷”。