You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:用Gmsh生成三角形网格,meshio读取却识别为线单元

解决Gmsh生成三角形网格但meshio仅读取到线单元的问题

问题根源

你的.geo文件仅将边界曲线标记为物理组,没有把需要网格划分的平面曲面标记为物理表面。Gmsh默认仅导出被标记为物理组的几何实体对应的网格单元,因此生成的网格文件中只有边界线单元,没有内部三角形面单元。

解决方案

修改.geo文件,添加平面曲面的物理组定义:

SetFactory("OpenCASCADE");
Circle(1) = {0, 0, 0, 1, 0, 2*Pi};
Curve Loop(1) = {1};
Plane Surface(1) = {1};
Physical Curve("circle", 2) = {1};
# 新增:将平面曲面标记为物理表面,确保三角形单元被导出
Physical Surface("disk", 1) = {1};

重新生成网格

执行原命令重新生成网格:

gmsh -2 circle.geo

验证读取结果

修改后的网格文件会包含两种单元类型:

  • line:边界的2节点线单元
  • triangle:内部的3节点三角形单元

你的Python代码在遍历msh.cells时,会自动获取到三角形单元,满足需求。如果不需要边界线单元,可删除Physical Curve的定义,仅保留Physical Surface即可。

内容的提问来源于stack exchange,提问作者efirvida

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 22:50:34