内容发布更新时间 : 2024/11/8 6:52:51星期一 下面是文章的全部内容请认真阅读。
.
这个可选的第四个部分列出了区域的属性(分配给一个区域中的所有四面体)和关于最大四面体体积的区域约束。在调用tetgen时如果使用了参数-A后者-a并且没有带数值,那么Tetgen将读入这个区域。对于洞来说,区域属性和体积约束以同样的方式传播。
如果在x,y,z坐标所在行后面写了两个值,这个形式tetgen会将它们前者当作一个区域属性(只有选
项-A开启才能使用),并且后者会被认为是一个区域体积约束(只有在-a被使用的时候才有用)。读入在坐标后面只使用一个值也是可能的,此时它既被当作区域属性也被当作体积约束,最终是哪个还得看调用了哪个参数。一个负的最大体积约束允许使用-A和-a而不用在这个特殊的区域内强加一个体积约束。
下面是.poly文件中的格式,它描述了一个立方体。
# Part 1 - node list
# node count, 3 dim, no attribute, no boundary marker 8300
# Node index, node coordinates 1 0.0 0.0 0.0 2 1.0 0.0 0.0 3 1.0 1.0 0.0 4 0.0 1.0 0.0 5 0.0 0.0 1.0 6 1.0 0.0 1.0 7 1.0 1.0 1.0 8 0.0 1.0 1.0
# Part 2 - facet list
# facet count, no boundary marker 60
# facets
1 # 1 polygon, no hole, no boundary marker 4 1234 # front 1
4 5678 # back 1
4 1265 # bottom 1
4 2376 # right 1
4 3487 #top 1
4 4158 # left # Part 3 - hole list 0 # no hole
# Part 4 - region list 0 # no region
4.1.3 .smesh files
.smesh文件代表一个PLC的特殊类型——网格表面。.smesh文件格式是.poly文件格式的简化版。每一面只有一个确切的多边形,没有洞,没有段和内部点。它没有.poly文件的格式灵活,但是当网格表面是由其他程序调用创建时更简单、更有用。
和.poly文件格式一样,.smesh文件格式也是由四部分组成,分别是点,面,洞,和区域。其中只有关于
面部分的描述和.poly文件是不一样的。它的描述如下:
Part 2 面列表
One line: <# of facets>
<# of corners>
...
每一个面只由一个确切的多边形组成。每一个多边形的角列表位于同一行。每一个面的可选边界标识符
在是角列表的结尾给出来的。
下面的例子示例了单位立方体面部分的布局。(图17)
# Part 2 - facet list
# facet count, no boundary marker 60
# facets
4 1234 # front 4 5678 # back 4 1265 # bottom 4 2376 # right 4 3487 #top 4 4158 # left
4.1.4 ele文件格式如下:
第一行三个数字分别对应变量:
Numberoftetrahedra numberofcorners numberoftetrahedronattributes 四面体个数 每个四面体顶点个数
四面体属性个数
接下来是四面体列表:
四面体编号 节点1 节点2 节点3 节点4 [可选项四面体属性]
ele文件包含一个四面体列表。每一个四面体有四个角(如果-o2选项开启的话可能是10个角)。节点是对应于的.node文件中。第一次四个节点是角点。如果使用了选项-o2,剩下的六个节点为位于四面体六条边上的中点。图18展示了节点的数目。
如果第一行的区域属性为1,每一个四面弹在最后一列会另外有一个区域属性。四面体的区域属性主要是
用来做为识别哪些四面体和PLC的面约束区域相关的标记。它是位于.poly或者是.smesh文件的第四部分。区域属性没有分散面,同一个区域的所有四面体仍然是有相同的区域属性。区域属性最广泛的用途是决定四面体是哪一个材质。
如果tetgen产生一个网格或者是四面体剖分,.ele文件是默认的输出文件。然而,使用-E选项可以忽略。
如果使用了-r选项,tetgen会读入.ele文件,并且会依据它重构一个四面体网格。下面的例子说明了ele文件的布局。
154 4 0 1 4 107 3 50 2 4 108 3 107 3 9 97 95 94 4 4 107 50 93 5 56 1 50 47 6 94989795 7 97 9 95 55 85255551 ...
4.1.5 face文件格式
第一行两个数字分别标识face(三角形面)的个数与三角形标识符列表(1为非空0为空) 接下来是三角形列表:
face 文件包含一系列的三角形面列表,这些面可能是边界面(使用了选项-P或者是-r),可能是凸壳面。每一个面有三个角,可能还有边界标识符。节点索与.node 文件里一致。
三角形编号
顶点1 顶点2 顶点3 face标识符
在产生一个网格或者是德洛内四面体剖分后,tetgen默认是把边界面或者是凸壳输出到 .face文件。然而,
这个文件可以通过-F来忽略。如果使用了-r选项,tetgen也可以读入.face文件来识别在重构网格中的边界面。-B选项可以用来禁止边界标识符的可选列。
如果在第一行的边界标识符为1,每一个面在最后一列有一个另外的边界标识符。面的边界标识符是
由.poly 和.smesh文件定义的。它们主要是用来识别哪些四面体剖分面和哪一个PLC面相关的标记。其最广泛的使用是决定哪儿为不同的边界条件。
4.1.6 .edge文件
First line: <# of edges>
Remaining lines list # of edges:
.edge file包含边的列表,这些边是PLC的段或者是字段。每一条边有两条终端节点,索引对应于.node文件中相应的点。 它是tetgen的输出部分(使用-e选项)。
4.1.7 .vol files
First line: <# of tetrahedra>
Remaining lines list # of maximum volumes:
.vol文件与每一个四面体的最大体积相关,最大体积是用于优化网格的。在使用-r选项时,tetgen将会读入此文件。
和其他的文件格式一样,每一个四面体必须有编号,并且是连续编号的。如果给一个四面体分配一个符的
最大体积,四面体可能是没有约束的。
4.1.8 .var files
One line: <# of facet constraints>
Remaining lines list # of facet constraints:
One line: <# of segment constraints>
Remaining lines list # of segment constraints:
Var 文件允许你对面和段设置可变的约束。像对一个区域设置最大体积一样,每一面都可以有最大面积限制。在输出中,子表面的面积都小于之前的对应平面面积限制。同样地,每一个段都有最大长度限制,因此,这个段的字段将不会比它长。
设定面的面约束是通过设置边界标识符,面边界标识符是一个整数,分布在面对应的.poly或.smesh文件
中。设定一个段的段约束是通过设置段的两个终点索引。
下面的例子说明了.var文件的布局。它可以和包含的example.poly文件一起使用。
# Facet constraints 1 # 1 constraint
1 2 0.5 # Set maximum area constraint (0.5) on all facets # having boundary marker 2. # Segment constraints 10 # 10 constraints
1 32 33 0.05 # Set maximum edge length constraint (0.05) on # segment with endpoints 32 and 33. 2 33 34 0.05 3 34 35 0.05 4 35 36 0.05 5 36 37 0.05 6 37 38 0.05 7 38 39 0.05 8 39 40 0.05 9 40 41 0.05 10 41 42 0.05
4.1.9 .neigh files
First line: <# of tetrahedra> <# of nei. per tet. (always 4)> Following lines list # of neighbors:
.neigh文件和每一个四面体相邻的四面体有关,索引对应的四面体在.ele 文件中。 索引为-1时标识四面体没有相邻的四面体(此时四面体位于网格域的外界)。四面体i的第一个邻居与四面体i的第一个角是相反的。当使用-n选项时,tetgen会输出这个文件。
4.2 支持的文件格式
Tetgen也支持一些多面体文件格式。表3列出了支持的文件格式。Tetgen通过文件扩展名来识别这些文件。 4.2.1 .off files
Off文件一种综述文件格式,它是一个为unix/linux系统开发的交互式三维图形显示器。它包含可能共顶点的共面多边形集,它是一种描述多面体非常方便的方式。多面体可能是凹形的但没有规定多面体一定包含洞。
对于off文件格式在描述可以在网上查到。下面是对这种文件格式的一个简单描述。
provisionOFF numVertices numFaces numEdges xyz xyz
... numVertices like above NVertices v1 v2 v3 ... vN MVertices v1 v2 v3 ... vM ... numFaces like above
注意这个顶点编号是从0开始的,边也是从0开始编号的。
4.2.2 .ply files