MENU

pygmsh的网格生成记录(1):geo模块完成网格划分

• December 23, 2022 • Read: 7588 • Python,Finitie Element Method Theory

geo 模块

pygmsh 中的 geo 模块,是最基本的几何生成方法,在这个模块中,Geometry 这个类会被在最开始就建立,生成一个几何对象实例,这个对象可以是任意的,具体的几何形状可以通过类的方法进行生成,比如多边形用 add_polygon() 这个方法,圆可以用 add_circle() 方法。当然,也可以从最基本的点开始生成,在点的基础上生成线(这个线可以是直线,也可以是曲线或者贝塞尔曲线)。

geo 模块中,在二维几何对象的基础上,可以进行一些简单的拉伸,旋转、扭转等操作,从而生成三维对象。

  • import pygmsh
  • with pygmsh.geo.Geometry() as geom:
  • geom.add_polygon(
  • [
  • [0.0, 0.0],
  • [1.0, -0.2],
  • [1.1, 1.2],
  • [0.1, 0.7],
  • ],
  • mesh_size=0.1,
  • )
  • mesh = geom.generate_mesh()
  • with pygmsh.geo.Geometry() as geom:
  • geom.add_circle([0.0, 0.0], 1.0, mesh_size=0.2)
  • mesh = geom.generate_mesh()

mesh 对象的操作

geom 对象的 generate_mesh () 方法能够进行几何模型的网格划分,划分后会返回一个结果,这个结果这里就先称之为 mesh。mesh 中包含了节点坐标,单元的节点组成等等信息,当然 node 和 element 是最关心的数据。当然 python 是一种完全的面向对象的编程语言,这里的 mesh 实际上也是一种类,他的属性,以及它的方法都被用于体现表征数据信息。查看网格节点的坐标可以用 points 属性,但是网格单元组成的信息,并不是被封装为属性,似乎是一个更为复杂的结构体,mesh.cells 是一个 meshio 对象,mesh.cells_dict["triangle"] 可以用于查看三角单元的信息。

  • mesh.points # 获取节点坐标
  • mesh.cells_dict["triangle"] # 获取单元节点组成

由于 mesh 是 meshio 中的对象,它可以方便的输出为 vtk 文件,采用 write 方法即可完成。

  • mesh.write("xxx.vtk")

输出的 vtk 文件,可以直接采用 paraview 打开查看。

paraview1paraview2

Archives Tip
QR Code for this page
Tipping QR Code
Leave a Comment

10 Comments
  1. ydl ydl

    您好 请问您了解 pygmsh 支持导入模型文件的网格划分吗

  2. 你的文章让我感受到了不一样的风景,谢谢分享。 http://www.55baobei.com/eZ0LzPTTL7.html

  3. 你的文章让我心情愉悦,真是太棒了! https://www.yonboz.com/video/80617.html

  4. 你的才华让人瞩目,期待你的更多文章。 http://www.55baobei.com/d2zOiLTyEX.html

  5. 真好呢

  6. 你的才华让人瞩目,期待你的更多文章。 http://www.55baobei.com/d2zOiLTyEX.html

  7. 你的文章让我心情愉悦,每天都要来看一看。 https://www.4006400989.com/qyvideo/33863.html

  8. 你的文章内容非常专业,让人佩服。 https://www.4006400989.com/qyvideo/38664.html

  9. 你的文章让我心情愉悦,每天都要来看一看。 http://www.55baobei.com/SSbcmIYdGr.html

  10. 《麻辣女生》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/4359.html