王家林,段红俊
(重庆交通大学 土木工程学院,重庆 400074)
基于TetGen的箱梁三维四面体网格自动划分分析
王家林,段红俊
(重庆交通大学 土木工程学院,重庆 400074)
以VC++为平台,利用四面体网格生成接口软件TetGen,研究了单箱单室变截面箱梁的高质量四面体网格生成方法。用多连通平面多边形面片描述横截面、用字符串函数描述箱梁截面上各特征点的坐标变化规律,将平面横截面面片映射为空间横截面面片,再自动生成相邻空间面片的连接面片,从而获得箱梁的空间多面体。利用四面体网格划分接口软件TetGen对箱梁空间多面体进行四面体网格剖分,自动生成高质量的四面体网格;通过将网格数据写为inp文件导入Abaqus 软件进行可视化检查和有限元计算验证了网格的有效性。
桥梁工程;TetGen;四面体网格;三维实体网格划分
随着我国经济的飞速发展,作为基础设施的桥梁工程也在不断发展,箱型梁桥也日益受到关注。箱梁有截面抗扭刚度大,截面效率高,有效地抵抗正负弯矩等优点[1]。基于以上优点,箱型梁桥在我国得到广泛的使用。
在桥梁计算中,大多采用有限元软件(桥梁博士[2]、GQJS[3]、Midas Civil[4]等)对桥梁进行建模。这些软件的建模与分析一般采用梁单元进行。但梁单元模型难以揭示箱梁的多种复杂变形效应,例如扭转畸变、翘曲、剪力滞等。随着计算机硬、软件技术的发展和分析要求逐步地提高,采用空间实体单元对桥梁进行高精度分析逐渐成为一种新的发展趋势。赵安等[5]对桥梁结构空间模型进行了有限元分析;交通部公路科学研究院利用空间实体单元对桥梁三维预应力空间进行分析,并研发出针对这一问题的BridgeKF系统[6];刘艳萍[7]利用空间实体单元模型对桥梁预应力钢筋混凝土结构局部进行了ANSYS二次开发;余钱华等[8]利用实体单元模拟了连续刚构桥的施工过程。
基于VC++面向对象技术,笔者通过研究单箱单室箱型桥梁的结构特点,首先利用典型截面自动生成空间多面体,再利用成熟的四面体网格划分接口软件TetGen[9]对箱梁的多面体进行四面体剖分,自动生成高质量的四面体网格,最后导入Abaqus 软件完成有限元计算来验证网格的有效性。
TetGen能对三维实体结构四面体剖分,其目的是为了产生合适的四面体网格。TetGen的代码采用VC++编写,这些代码可被编译成直接运行的程序,也可被编译成静(动)态连接库。目前的操作系统基本都能运行TetGen,如Macos,Windows等。TetGen使用的算法约束delaunay四面体剖分。
1.1 约束delaunay四面体剖分
约束delaunay四面体剖分是用一个个四面体网格将三维区域Ω进行划分。三维区域Ω可能有着很多形状上的变化,可能包含内边界,或包含洞。
点集V中的两个点p,q可见,但若有一个约束平面f,且点p,q两点分别位于平面f的两边,p,q间的线段交叉于平面f(图1),那么顶点p,q将不可见。那么约束delaunay四面体则就是由这个点集V的顶点组成。像这样一个四面体剖分被称作是约束delaunay四面体剖分。
图1 约束delaunay四面体剖分示意Fig.1 Constraint delaunay tetrahedral subdivision schemes
1.2 四面体网格质量
TetGen处理四面体网格质量问题的算法是利用shewchuk的delaunay优化算法。给出一系列三维的顶点、约束段、不少于90°的输入角和小平面,则利用delaunay优化算法就能够产生delaunay四面体网格,并且这个delaunay四面体网格的半径边缘比不大于2。该算法产生的网格普遍比较合适,并且对消除最小或最大二面角的四面体非常有效。
网格划分中需要有质量衡量标准。一般情况下,用边界纵横比来衡量网格划分的质量。边界纵横比η(t)是最大边的长度lmax与最小高度hmin的比值,即η(t)=lmax/hmin。判断四面体网格质量,边界纵横比要愈小愈好。在TetGen衡量网格划分质量的标准中则采用Miller,Teng,Wang Talmor 和Walkington提出的半径边缘比的标准。
一个四面体t有且只有一个外接球,令r为四面体外接球的半径,d为四面体最短边的长度,则这个四面体的半径边缘比ρ(t)为
(1)
式中:θmin为四面体t的最小面角。
在判断四面体网格质量的应用中,半径边缘比要愈小愈好。
2.1 平面横截面面片几何特征分析
用多连通平面多边形面片描述横截面(以单箱单室梁横截面为例),可分为外围平面多边形与内围平面多边形,将其特征点依次编号。
笔者利用VC++编程对此截面面片节点进行编号,步骤如下:
1)利用AutoCAD画出箱梁截面面片,将其保存成dxf形式。
2)由于dxf文件存取着所画截面的线段信息,故编写了函数,用来从dxf文件中读取线段信息到线链表中。
3)利用函数将各线段生成平面面片,再将其节点进行编号。
(1)定义一个具有x,y两个坐标的点列表;
(2)将线链表中的线段连入点列表中;
(3)读取一条线段作为多边形的首尾,读取下一段线段时,若这条线段与多边形首尾的点有相同的坐标,将其添加到多边形中,连接的线段将从线段列表中删除;若这条线段与多边形首尾的点没有相同的坐标,则接着读取再下一条线段,此线段将不从线段列表中删除;
(4)若点列表已闭合,说明一个多边形已生成。则需生成一个新的多边形,如此循环(3),(4)两步,直至线段列表为空;
(5)计算多个多边形的面积,若出现面积为负值,则表示多边形为顺时针连接而成,取面积为其相反数,并将多边形调整为逆时针连接;
(6)将多边形的面积从大到小排列,并从大到小对各个多边形的各个点进行编号,并存储其所对应的坐标(图2)。
图2 截面面片节点编号Fig.2 Section node number
2.2 箱梁截面特征及处理方法
对等截面而言,直接利用函数将全局坐标从二维变为三维,则所有特征点均发生变化。而对变截面而言,首先将全局坐标从二维变为三维,然后将用字符串函数描述箱梁截面上各关键点的y坐标变化规律。y坐标变化规律包括箱梁根部高度的变化曲线、箱梁底板厚度变化曲线。例如变化的点包括1,2,17,18,19,20;而1,2点的变化规律为箱梁根部高度的变化曲线;17~20点的变化规律为箱梁底板厚度变化曲线。
2.3 将平面横截面面片映射为空间横截面面片
利用函数在z坐标每隔一定距离得到一个空间面片(仅包含两个空间面片),如图3。
图3 空间面片示意Fig.3 Space diagram
2.4 生成连接面片
以VC++为平台利用函数自动生成相邻空间面片的连接面片,即可生成箱梁的空间多面体,如图4。
图4 箱梁空间多面体示意Fig.4 Box girder polyhedron space diagram
在Windows系统中,将TetGen编译为静态库“Tetgen.lib”。创建一个“Tetgenio”的输入对象“Win”,将数据导入输入对象“Win”,调用函数“Tetrahedralize()”创建四面体网格,并将结果输出到对象“Wout”中,实现了三维实体结构网格划分。
3.1 Tetgenio结构的输入与输出数组
用多连通平面多边形面片描述横截面(以单箱单室梁横截面为例),可分为外围平面多边形与内围平面多边形,将其特征点依次编号。Tetgenio结构的作用是传入空间实体的数据并输出四面体及其数据。Tetgenio结构的输入与输出数组用来保存点、多边形、面片和四面体等内容。它为一个C++类,包括一些数据域和函数。Tetgenio结构的输入输出数组如下:
1)“REAL *pointlist”顶点的坐标数组
第一个顶点的x坐标是index[0],y坐标是index [1],z坐标是index[2];第二个顶点的x坐标是index[3],y坐标是index [4],z坐标是index[5],依次类推,每个顶点占3个REALS。
2)“REAL *pointattributelist”顶点的属性数组
每一个顶点的属性占用一个“numberofpointat tributes”的REALS。
3)“int *pointmarkerlist”顶点标识符数组
每一个点的标识符为一个整数。
4)“facet *facetlist”面片数组
每一个面都是一个面类型的对象。
5)“int *facetmarkerlist”面片标识符数组
每个面的一个标识符占一个整数。
6)“REAL *holelist”孔洞的数组
第一个洞的x坐标是index[0],y坐标是index [1],z坐标是index[2];第二个洞的x坐标是index[3],y坐标是index [4],z坐标是index[5],依次类推,每个洞占3个REALS。
7)“int *tetrahedronlist”四面体角数组
第一个四面体的第一个角为index[0],一个四面体一共有4个角。每个四面体占用numberofcorners整型。
8)“REAL *tetrahedronvolumelist”四面体体积列表
每一个四面体占一个REAL。
3.2 TetGen命令行选项
TetGen有多个命令行选项,它通过对命令行选项设置参数来实现四面体网格的自动划分。以下为常用的命令行选项:
1)-p:对三维实体模型进行约束delaunay四面体剖分;
2)-q:网格控制参数,主要设置最小半径边缘比,默认为2;
3)-a:控制产生四面体的最大体积;
4)-r:重构和优化之前产生的网格文件。
该连续刚构桥采用单箱单室。箱梁高度是由距离根部高7.5 m处按照1.9次抛物线变化至端部及跨中高3.0 m处。箱梁底板厚度是由距离根部厚100 cm处按照二次抛物线变化至端部及跨中厚30 cm处。
根据图纸,利用AutoCAD画出单箱单室梁横截面图。利用VC++编程对此单箱单室梁横截面面片节点进行编号,如图5。
图5 截面面片节点编号Fig.5 Section node number
以VC++为平台,利用映射点的原理,根据变截面变形曲线,映射出新的单箱单室截面面片;其中1,2点变形曲线为y—z1.9×3.519 7×10-5;17~20变形曲线为y—z1.9×3.519 7×10-5+z2×2.31 4×10-6。
将网格数据写为inp文件导入到Abaqus[8]中,便得到了三维实体网格效果见图6。
图6 箱梁的三维网格Fig.6 Three-dimensional grid section of box girder
为检查三维网格划分的准确性,笔者将导入的空间四面体进行有限元计算。将梁的一端设为固定端,另一端的中间位置施加垂直向下的荷载1 000 N,计算结果如图7。
图7 一跨梁的有限元计算结果Fig.7 Finite element calculation results for girder of one span
基于VC++面向对象技术,笔者通过研究单箱单室箱型桥梁的横截面特征和截面的变化规律,建立了一种变截面箱型桥梁空间四面体自动生成方法;利用成熟的四面体网格划分接口软件TetGen对箱梁的空间多面体进行四面体剖分,自动生成高质量的四面体网格;通过将网格数据写为inp文件导入Abaqus 软件,进行可视化检查;并用有限元计算验证了网格的有效性。
笔者以单箱单室箱梁为例检验了基于TetGen的箱梁三维四面体网格自动划分的思想,但文中思想并不局限于单箱单室,对于双箱等也适用,仅仅是特征点增多。
[1] 郭金琼,房贞政,郑振.箱形梁设计理论[M].北京:人民交通出版社,2008. GUO Jinqiong, FANG Zhenzheng, ZHENG Zhen.DesignTheoryofBoxGirder[M]. Beijing: China Communications Press,2008.
[2] 周水兴,王小松,田维峰,等.桥梁结构电算[M].北京:人民交通出版社,2013. ZHOU Shuixing, WANG Xiaosong, TIAN Weifeng, et al.ComputingforBridgeStructures[M]. Beijing: China Communications Press,2013.
[3] 交通部公路科学研究所.公路桥梁结构设计计算系统CQJS用户手册[M].北京:交通部公路科学研究所,1999. The Ministry of Communications Highway Research Institute.HighwayBridgeStructureDesignandCalculationSystemCQJSUserManual[M]. Beijing: The Ministry of Communications Highway Research Institute,1999.
[4] 邱顺冬.桥梁工程软件Midas Civil应用工程实例[M].北京:人民交通出版社,2011. QIU Shundong.BridgeEngineeringApplicationSoftwareMidasCivilEngineeringPractice[M]. Beijing: China Communications Press,2011.
[5] 赵安,吕建鸣.桥梁试验的结构空间有限元分析—桥梁荷载试验分析系统BLT的研究[J].土木建筑工程信息技术,2013,5(1):33-40. ZHAO An, LV Jianming. Finite element analysis of spatial structure in bridge testing—study of bridge load testing analysis system BLT[J].JournalofInformationTechnologyinCivilEngineeringandArchitecture,2013,5(1):33-40.
[6] 杨昀,向学建,王磊.连续刚构桥预应力仿真分析系统BridgeKF的研究[C]//中国公路学会桥梁和结构工程分会.中国公路学会桥梁和结构工程分会2004年全国桥梁学术会议论文集.北京:人民交通出版社,2004:764-772. YANG Yun, XIANG Xuejian, WANG Lei. Prestressed concrete continuous rigid-frame bridges owing to the simulation analysis system of BridgeKF research [C]// The Chinese Institution of Highway Bridge and Structures Engineering Branch.ChinaRoadBridgeandStructuresEngineeringBranch2004NationalConferenceonBridgeAcademic. Beijing: China Communications Press,2004:764-772.
[7] 刘艳萍.桥梁预应力钢筋混凝土结构局部有限元分析的ANSYS二次开发[D].武汉:华中科技大学,2005. LIU Yanping.PartialPrestressedConcreteBridgeStructureFiniteElementAnalysisofANSYSSecondaryDevelopment[D]. Wuhan: Huazhong University of Science and Technology,2005.
[8] 余钱华,朱鹏志,周伟,等.连续刚构桥实体建模方法介绍与结果分析[J].中外公路,2007,27(2):69-73. YUN Qianhua, ZHU Pengzhi, ZHOU Wei, et al. Entity modeling method is introduced and the result analysis of long span continuous rigid frame[J].JournalofChina&ForeignHighway,2007,27(2):69-73.
[9] SI Hang.TetGen:AQualityTetrahedralMeshGeneratorandA3DDelaunayTriangulator(Version1.5:User’sManual)[R]. Berlin: Weierstrass Institute for Applied Analysis and Stochastics, 2013.
Automatic Meshing of Box Girder Based on TetGen 3D Tetrahedral Element
WANG Jialin,DUAN Hongjun
(School of Civil Engineering,Chongqing Jiaotong University,Chongqing 400074,P.R.China)
Based on VC++ platform, the tetrahedral mesh generation interface software—TetGen was used to study high quality tetrahedral element generation method of box girder with varied cross section of generation single box with single cell. The girder cross section was described with facet of multiply connected plane polygon and letter and symbol string function was used to describe coordinate variation at respective feature points on the box girder cross section. First of all, it was mapped from plane cross-section facet to space cross-section facet. Secondly the connected facet of adjacent space facet was generated automatically, thus spacial polyhedron of box girder was achieved. The tetrahedral mesh generation interface software—TetGen was used to subdivide spacial polyhedron. High quality tetrahedron element was generated automatically. The network data was written in inp document which was subscribed in software Abaqus which allowed for visual inspection and verification of effectiveness of this grid.
bridge engineering;TetGen; tetrahedral mesh; the mesh of three-dimensional entity
10.3969/j.issn.1674-0696.2016.05.01
2015-05-20;
2015-11-03
王家林(1968—),男,重庆人,教授,博士,主要从事土木工程、结构力学方面的研究。E-mail:jialinwang@163.com。
段红俊(1991—),女,山东烟台人,硕士,主要从事土木工程、结构力学方面的研究。E-mail:1091782733@qq.com。
U448.21+3
A
1674-0696(2016)05-001-04