Gmsh 与 Python 的多功能性相结合:Pygmsh

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

1. 调用案例

attachments-2020-07-1Apa1GWy5f028653276c1.png

要创建上述网格,只需执行:

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)可视化输出文件。

  • 发表于 · 2020.07.06 10:12 · 阅读 · 1641

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

0 条评论

请先 登录 后评论
猜猜我是谁
王玥琪

14
提问
18
回答
13
文章