网站公告 | 本论坛只支持微信登录!暂时不支持手动注册会员!微信登录可以获取本站所有资源!

 青浦修电脑 青浦笔记本维修 青浦手机维修 青浦电器维修

找回密码
立即注册
搜索
热搜: 活动 交友 discuz
发新帖

5万

积分

0

好友

1万

主题
发表于 2022-9-11 21:05:03 | 查看: 1228| 回复: 0
本文目录
  • 文件结构
  • 块格式本文中的网格文件指的是Gmsh的ASCII文本文件,内容主要参考Gmsh的官方文档:http://gmsh.info/doc/texinfo/gmsh.html#MSH-ASCII-file-format。
    + M1 e( p$ W1 }3 U0 ?- \' [ 文件结构返回目录Gmsh网格文件由一个或多个块(section)构成。块定义以$Name开始,$EndName结尾,例如$Nodes和$EndNodes共同定义一个块。$MeshFormat块是必须的(第一个出现的块),$Nodes, $Elements等块可选。如果定义了$Elements块,则必须给出$Node块。目前$Nodes和$Elements块在一个文件中只允许出现一次(未来版本可能会更改),其他块可重复多次。如果遇到了未定义的块,Gmsh将跳过该块。利用此特性可以为Gmsh网格文件增加注释,例如放在$Comment和$EndComment包裹的块中。' D; P* X$ X7 g- q( Z8 _2 a
    块格式返回目录以下对常见的各个块格式做说明。) J: Y9 l, T+ f2 i" o1 X" t2 ?
    MeshFormat$MeshFormat块给出三部分信息:9 W7 w/ v) m) _$ \& _! ]
    [ol]
  • 文件格式版本号,目前是固定值2.2;
  • 文件类型,在ASCII文件中值为0;
  • 数据长度,即单精度浮点数所占字节数,通常为8。[/ol]一个典型的MeshFormat块:( j: {+ ]' Q1 o) ?* W
    $MeshFormat
    4 T; X5 l6 q! K2.2 0 83 H2 O; |8 g1 m9 ], L  ?
    $EndMeshFormat
    ) V0 p( y' t% I7 f; iNodesNodes块第一行为顶点总数,接下来每一行按照“顶点编号 X坐标 Y坐标 Z坐标”的格式定义一个顶点。Gmsh是三维网格生成器,二维顶点只需把Z坐标设置为常数即可。
    0 e- L$ d  A/ r' o( H/ [8 _  E- c/ T一个典型的Nodes块:
    6 H. V5 G, c% o! B' u7 |) v$Nodes6 T- d* o4 e- J( f
    4
      E; P" L6 @+ a9 m1 0.0 0.0 0.0
    + D0 Y( {; d% M. s& C2 1.0 0.0 0.0
    * ]! D, n3 E* E- D8 \8 p3 1.0 1.0 0.0
    + V! e( l6 a* s9 e. L8 A- x4 0.0 1.0 0.0. e5 l( g1 z( H
    $EndNodes: V1 D4 O8 j8 f6 l5 X+ q/ K( y
    Elements注意:Gmsh默认Nodes块出现在Elements之前。5 f! l# ^+ L) J! c8 v
    Elements块是网格中最关键的块,也是结构定义相对复杂的块。Elements块的结构如下:7 y& J$ k5 o6 z1 Y# \+ h
    网格数
    7 D# G7 G5 l+ C& `网格编号 网格类型 tag数量  tag列表   顶点列表  }+ e+ D7 M( \) X' P! u0 h- }+ w
    网格单元的顶点数由单元类型决定,因此定义行中未出现顶点数字段。
    $ o. m$ ^( S8 p) D2 [0 }3 T理论上,网格的顶点数和tag数可以是不小于0的任意整数,所以定义网格单元的行长度不固定,单元可能有不同数量的tag以及顶点。/ b+ f# X. G; c+ A% ~1 a% ?3 i
    Gmsh支持的主要网格类型编号如下:
    7 X3 h$ d7 ~0 a- F  G1: 两个点组成的线段5 k1 K5 x7 k( ^4 e5 t7 z+ s) R
    2:三个点组成的三角形4 ?, M& D( N+ S. A! B- C
    3:四个点组成的四边形3 K7 ^6 r7 _; s1 ]. G, J
    4:四个点组成的立方体
    + f. `2 [/ S+ ~, s' g+ c5:八个点组成的六面体2 b6 v; J! Z1 r3 C# w
    6:六个点组成的棱柱
    ! I8 ]& g. @/ y5 B6 C6 J3 K7:五个点组成的金字塔体+ e6 ^8 U  b$ e" J1 B$ i2 H6 W
    8:三个点组成的二阶线段 (2个起止顶点+1个边上顶点)
    % @6 d" o* \, N4 p" P$ p" Y9:六个点组成的二阶三角形 (3个顶点+3个边上顶点)5 n& Z+ a/ U3 |! f  |. b
    10:9个点组成的二阶四边形 (4个顶点+4个边上顶点+1个面上顶点)' {1 o+ E2 c# i; b1 ]
    11:10个点组成的二阶立方体 (4个顶点+6个边上顶点)
    1 y# E  ~: b9 e% D. c12:27个点组成的二阶六面体 (8个顶点+12个边上顶点+6个面上顶点+1个体节点)
    ! T. m3 [$ d. e) l8 f/ N13:18个顶点组成的二阶棱柱 (6个顶点+ 9个边上顶点+3个四边形面上顶点)1 c8 O5 _& v5 g* {3 h
    14:14个顶点组成的二阶金字塔 (5个顶点+8个边上节点+1个底面四边形的面上顶点). `! e2 _9 q* e- R# W" e: S
    15:单个顶点
    # A' M% d( R5 t6 v6 ]; J16:8个顶点组成的二阶四边形 (4个顶点+4个边上顶点)  K, h( b- a% T4 P, S( N' b
    17:20个顶点组成的二阶六面体 (8个顶点+12个边上节点)
    . [- E# I, A. x/ w7 W18:15个顶点组成的二阶棱柱(6个顶点+9个边上节点)( A5 L6 @2 W$ _& ]  o
    19:13个顶点组成的二阶金字塔 (5个顶点+8个边上节点).8 ^, v5 w+ N) @4 t
    其他高阶网格定义请参考官方文档
    7 U) b! Z& e7 X4 E( D常规情形下,每个网格单元都包含如下tag:一个指示网格所属的物理实体的tag,个个指示网格所归属的几何实体的tag,一个指示网格单元所在的分区编号的tag。Gmsh和大多数代码要求单元至少包含前两个tag。
    ' s2 _. A4 p0 p0 u% `; O: r& P- e顶点列表给出组成网格单元的顶点编号,其中编号是出现在$Nodes块中的顶点编号。对于高阶网格单元,Gmsh按照如下顺序对顶点进行编号:
    / U2 [1 P1 J" X# n% N8 ][ol]
  • 单元的基本顶点
  • 每个边上的顶点
  • 每个面上的顶点
  • 体顶点[/ol]总体原则即:高阶网格顶点出现在低阶网格顶点之后。不能处理高阶网格的程序,只需要读取低阶网格顶点即可。7 W5 k  K% u3 ]/ T, W( }
    其他块的字段含义请参考官方文档。1 Z4 Q- m3 f7 P" S7 r) \
    效率提示Gmsh没有要求元素的编号是连续的。但出于效率考虑,请尽量使用连续、紧凑的编号。例如两个顶点的编号,不用0和1,而是1, 10000,会导致程序性能下降:Gmsh不得不使用map而非数组来存储和访问元素,后处理程序中会分配10000个单元(大部分是无用的空值)的数组,而这些代价都是可避免的。% j7 {1 T1 y2 C  q) O3 C7 R# @3 M
    AD:【国外VPS推荐】 搬瓦工三网回程CN2 GIA VPS,季付46.87$打赏赞(2)
  • 收藏回复 显示全部楼层 道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    QQ|Archiver|手机版|小黑屋|青浦海洋数码电脑城 ( 沪ICP备18024137号 )

    GMT+8, 2026-8-3 06:27 , Processed in 0.073810 second(s), 28 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表