1 引言
结构化网格只能包含六面体,结构化网格在拓扑结构上是均匀的网格,单元之间有规则的连接,这样使得复杂外形的边界网格难以生成;而非结构化网格可以包含四面体,没有规则的拓扑结构,网格节点的分布是随机的。相对而言,结构化网格比非结构化网格能提供更精确的应力计算结果,但非结构化网格的生成速度要快得多。FLAC3D使用2D Extruder可以产生相对简单的非结构化网格,对于复杂的几何形状,使用Griddle生成网格(Griddle---FLAC3D和3DEC的高级网格划分工具)。这个笔记试验了Griddle生成FLAC3D和3DEC的非结构化网格。
2 Griddle组件
Griddle是Rhino的一个插件, 其主要用途是为FLAC3D和3DEC模型进行网格划分。基本的工作原理是在Rhino生成几何形状的基础之上,Griddle进行表面网格和体积网格划分,然后输出为网格数据文件。Griddle共有10个可操作的组件,如下图所示。这10个组件从左到右分别为:
(1) BlockRanger (BR) 对实体划分成结构化的六面体网格
(2) GInt 对表面网格相交的部分进行调整,
(3) GSurf 非结构化的表面网格划分,以指定的参数创建非结构化表面网格
(4) GVol 非结构化的四面体/六面体为主的网格划分
(5) GHeal 一组用于识别和修复表面网格问题的工具
(6) GExtract 一组根据用户指定的准则提取部分表面网格的工具
(7) GExtend 一组用于沿指定边界扩展表面网格的工具
(8) GExtrude 一组沿其边界挤压表面网格的工具,用来创建一个密封的区域
(9) NonManifoldMerge---Rhino命令合并表面网格,创建单一的非流形网格
(10) ColorizeObjects---为对象分配随机颜色
为了产生非结构化网格,需要使用GSurf和GVol这两个组件。
3 产生非结构化网格
(1) 首先需要产生出几何形状,Rhino的操作方式与AutoCAD的操作方式基本相同。使用_Cylinder命令产生一个半径为2,高度为10的圆柱体,使用_Mesh命令三角化圆柱体的表面,
网格的密度可以根据下面的显示框调节。
(2) 使用_GSurf命令重新划分初始的三角形网格。GSurf共有5个选项, 设置前三项的值,后两项保持默认值:
Mode=QuadDom
MinEdgeLength=0.5
MaxEdgeLength=0.5
RidgeAngle=20
AdvancedParameters
(3) 使用_GVol命令产生体积网格。GVol共有4个选项:
MeshSettings=Tet
OutputFormat=FLAC3D
FormatType=Binary
AutoOutputName=N/A
设置MeshSettings的Mode=HexDom,其它选项保持默认值:
Mode=HexDom
MaxGradation=0.5
TargetSize=0
Optimization=5
ShapeQuality=0.75
IniErrorCheck=Yes
产生的网格文件默认值为cylinder_GVol_Binary.f3grid,共生成1433个单元和1542网格点。值得注意的是,虽然我们设置要生成六面体单元(HecDom),但实际生成的不完全是六面体,
六面体: 1095 (76.41% of total, 94.58% of volume)
棱柱体: 69 (4.82% of total, 2.56% of volume)
金字塔体: 155 (10.82% of total, 2.10% of volume)
四面体: 114 (7.96% of total, 0.77% of volume)。
在FLAC3D中输入生成的网格,如下图所示。
(4) 对于3DEC,Griddle不能输出六面体单元,只能输出四面体单元,由于默认的文件格式是二进制文件,因而在3DEC中导入的速度比使用block zone list poly 命令输入的速度要快很多( 粘合块体模拟BBM---Bonded Block Modeling)。