关于Gmsh生成的.msh文件中第五节点及相关边未显示的疑问
Gmsh .msh文件元素解析疑问解答
问题背景
用户使用以下Gmsh脚本生成网格:
Point(1) = {0, -0, 0, 1.0}; //+ Point(2) = {1, 0, 0, 1.0}; //+ Point(3) = {1, 1, 0, 1.0}; //+ Point(4) = {0., 1, 0, 1.0}; //+ Line(1) = {1, 2}; //+ Line(2) = {2, 3}; //+ Line(3) = {3, 4}; //+ Line(4) = {4, 1}; //+ Curve Loop(1) = {4, 1, 2, 3}; //+ Plane Surface(1) = {1};
该脚本生成的网格包含5个节点、8条边和4个单元,对应的版本2.2的.msh文件内容如下:
$MeshFormat 2.2 0 8 $EndMeshFormat $Nodes 5 1 0 -0 0 2 1 0 0 3 1 1 0 4 0 1 0 5 0.5 0.5 0 $EndNodes $Elements 12 1 15 2 0 1 1 2 15 2 0 2 2 3 15 2 0 3 3 4 15 2 0 4 4 5 1 2 0 1 1 2 6 1 2 0 2 2 3 7 1 2 0 3 3 4 8 1 2 0 4 4 1 9 2 2 0 1 1 2 5 10 2 2 0 1 4 1 5 11 2 2 0 1 2 3 5 12 2 2 0 1 3 4 5 $EndElements
用户疑问:能看到文件中的5个节点,但在元素部分仅能看到正方形的4个顶点和4条边,未发现第五个节点及其相关边,想知道是操作有误还是正常现象。
解答
这是正常现象,具体解释:
- 第5个节点(编号5)已经包含在.msh的元素部分里,就是第9到12号元素:
- 第9号元素类型编号为
2,对应三角形单元,包含节点1、2、5 - 第10号元素是三角形单元,包含节点4、1、5
- 第11号元素是三角形单元,包含节点2、3、5
- 第12号元素是三角形单元,包含节点3、4、5
- 第9号元素类型编号为
- 你所说的“相关边”,是这些内部三角形单元的公共边,Gmsh默认不会单独存储内部边的元素信息——只有边界边(第5到8号元素,类型编号
1对应线单元)会被明确列出,内部边由相邻单元共享,无需重复存储。 - 另外,第1到4号元素是类型编号
15的点单元,对应正方形的4个顶点节点,这是Gmsh为完整表达几何拓扑而存储的内容。
综上,你的操作没有问题,当前.msh文件的输出完全符合Gmsh的规范,第5个节点已通过内部三角形单元被正确包含。
内容的提问来源于stack exchange,提问作者Taendyr
相关产品推荐
相关产品推荐

