无论是CSD(计算结构力学)、CTD(计算热力学)还是CFD(计算流体动力学)——我们统一称之为工程物理数值计算技术。
来源:节选自百度文库《关于CFD网格的一点儿通俗介绍》,z水木年华
无论是CSD(计算结构力学)、CTD(计算热力学)还是CFD(计算流体动力学)——我们统一称之为工程物理数值计算技术。
支撑这个体系的4大要素就是:材料本构、网格、边界和荷载(荷载问题可以理解为数学物理方程的初值问题),当然,如果把求解技术也看作一个要素,则也可以称之为5大要素。
网格是一门复杂的边缘学科,是几何拓补学和力学的杂交问题,也是支撑数值计算的前提保证。本文不做任何网格理论的探讨(网格理论是纯粹的数学理论),仅限于尽量简单化的应用技术揭秘。
网格出现的思想源于离散化求解思想,离散化把连续求解域离散为若干有限的子区域,分别求解各个子区域的物理变量,各个子区域相邻连续与协调,从而达到整个变量场的协调与连续。离散网格仅仅是物理量的一个“表征符号”,网格是有形的,但被离散对象既可以是有形的(各类固体),也可以是无形的(热传导、气体),最关键的核心在于网格背后隐藏的数学物理列式,因此,简单点说,看得见的网格离散是形式,而看不见的物理量离散才是本质核心。
对计算结构力学问题,网格剖分主要包含几个内容:杆系单元剖分(梁、杆、索、弹簧等)、二维板壳剖分(曲面或者平面单元)、三维实体剖分(非结构化全六面体网格、四面体网格、金字塔网格、结构化六面体网格、混合网格等),计算热力学和计算流体动力学的网格绝大部分是三维问题。对于CAE工程师而言,任何复杂问题域最终均直接表现为网格的堆砌,工程师的任务等同于上帝造人的过程,网格是一个机体,承载着灵魂(材料本构、网格、边界和荷载),求解技术则是一个思维过程。
网格基本要素是由:最基本的节点(node)、单元线(edge)、单元面(face)、单元体(body)构成。
实质上,线、面、体只不过是为了让网格看起来更加直观,在分析求解过程中,线、面、体本质上并没有起多大的作用,数值离散的落脚点在节点(node)上,所有的物理变量均转化为节点变量实现连续和传递。在所有的CAE环境下,网格的基本要素均可以直接构成,但对于复杂问题而言,这是一个在操作上很难实现的事情,因此,基于几何要素的网格划分技术成为现代网格剖分应用的支点,和网格基本要素完全相同,对应的几何要素分别称之为点(point)、线(curve)、面(surface)和实体(solid)。
数值离散求解器是不能识别几何元素的,要对其添加“饲料”,工程师必须对几何元素进行“精加工”,因此,从这个意义上来说,网格剖分的本质就是把几何要素转换为若干离散的元素组,这些元素组堆砌成形态上近似逼近原有几何域的简单网格**体。因此,这里说明了一个网格“加工”质量的基本判别标准——和几何元素的拟合逼近程度,理论上,越逼近几何元素的网格质量越好,当然,几何逼近只是一个基本的判别标准,网格质量判别有一系列复杂的标准,本文不做讨论。
本文专门解释几个基本概念:点网格;一维线网格;二维三角形面网格、二维四边形面网格;三维四面体网格(tetrahedra)、三维金字塔单元(pyramid)、五面体单元(prism)、三维六面体单元(hexahedra);结构化网格(structural grid)、非结构化网格(nonstructural grid)、混合网格(blend grid)。
需要专门说明的是,网格(grid & net)不等同于单元(element),单元是基于有限元思想的一个专用名词,而网格则是网格理论体系下的专用称呼,当网格用于有限元分析的时候,便可以转而称为线单元、面单元、实体单元,因此两者的本质差别在于,单元具有物理意义,一般具有特定的物理列式,而网格只是纯粹几何意义上的基本元素。
1
点网格
主要针对CSD中的质量单元和CTD中的点状热源,通过对几何point直接mesh生成,应用较为简单,属性也较为简单,一般仅仅包含质量特性或者温度特性。值得一提的是,在考虑行波效应的振动分析中,质量单元常被妙用,作为基底无限大质量块,巧妙地将加速度激励转变为力激励,从而达到可以多点施加激励的作用。
2
一维线网格
主要针对计算结构力学问题,主要针对基本的桁架(truss)、梁(frame or beam)、索(cable)、连杆(link)和弹簧(spring)等工程单元。需要特别说明的是,link实际上没有具体的工程构件对号入座(不等同于机械工程的连杆),只是一种单元节点物理量协调的边界单元,常用一维线网格描述。对于梁系单元,理论上通过杆件轴长方向的node描述其物理量变化,node越多,描述相对越精确,对于常用的梁、杆通常达到6~9个节点就具备足够的工程精度(可以捕捉到关键截面位置的力学响应)。一维单元可以根据内力变化随意加密局部网格点。从工程意义上来说,通过加密网格节点,完全可以替代高次一维单元。需要注意的是,杆系构件的一维网格并不是一味的追求增加剖分节点,对于桁架(truss)或者拉索(cable),当划分成多节点一维网格时,如果构件缺少初始刚度(一般是初始张拉刚度),则中间节点会由于缺少转动自由度约束,而形成类似铰链的机构运动,导致计算失败。而弹簧或者link则只需要两个网格节点便可以完全描述其物理特性,这是最简单的一维网格单元。
3
二维网格
主要针对CSD中的板壳单元、平面应力单元、平面应变单元;CTD和CFD中的二维问题也是其应用领域。二维网格包含两类:其一是三角形网格;其二是四边形网格,当然,两种网格也可以混合使用。
三角形网格:一般用于线性二维单元(线性单元只有一个积分点,当然也有3积分点、4积分点的高次三角形单元),因此,精度一般相对较差,同时,单元数量和节点数量均较高,造成计算负荷加大,但其几何逼近的适应性很好,因此对由复杂二维曲面构成的三维问题,有一定的适应性。
四边形网格:是矩形、梯形、斜梯形等四边形网格的总称,四边形网格单元容易增加单元积分点分布(4积分点、8积分点、9积分点、16积分点等),因此,对应单元的精度往往较高。但在其应用之初,限于网格生成技术的原因,对几何域的拟合逼近不如三角形好,网格生成算法也较为复杂,影响了其使用,现在的网格技术已经完美解决这一问题,因此,理论上,任意复杂的曲面几何域均可以采用完全四边形网格构成。但对于很多复杂工程问题,往往存在一些几何尺度变化较剧烈的区域(俗称极短边界、破碎面、破碎线),这些区域如果纯粹用四边形网格填充,会大幅度增加网格数量,且形状逼近也不好,因此可以采用混合三角形——四边形网格的剖分策略,这是一种兼顾网格形状、计算效率和精度的网格组合方式,主要以四边形单元为主,局部填充数量极少的三角形网格。
4
三维实体网格
是最复杂的网格技术,主要针对计算域中的块状体或者空间三维状封闭区域,填充网格形状包括四面体、六面体、棱柱体、四棱锥体(俗称金字塔网格),目前的三维网格剖分技术已经相对完善,四面体网格可以高效填充任意复杂的空间三维域,很多网格生成软件并且已经可以做到自动剖分、自适应加密。
最具挑战性的三维六面体网格剖分技术仍然处于完善发展状态,虽然理论上分块(block)结构化网格可以实现任意形状三维空间的结构化六面体网格填充,但复杂的分块技术对工程师的几何拓补规划能力是一个严重的挑战,往往进行区域分块会花掉工程师整个分析工作过程近80%的时间,同时,由于结构化要求,导致有时候网格质量难以控制,网格数量有时候可能比四面体单元的数量更加巨大,但结构化网格排序简单明了,因此数值离散插值非常方便,往往用线形插值的求解精度就可以达到非结构化网格非线性插值的精度,且结构网格占用内存较低(单个结构化网格占用内存为四面体网格的4倍,但但其节点总数大约为四面体网格的1/6,因此总占用内存较低),因此,结构化网格仍然是网格高端技术的象征,目前,专业网格处理器ICEM-CFD主要以这种技术为主,在CFD和CTD计算领域,结构化网格仍然是网格剖分的首选。针对结构化网格生成技术的难点,非结构化六面体网格逐渐形成CSD领域的主流,非结构化六面体网格的主要生成技术是sweep技术,sweep网格要求剖分区域具有sweep路径和路径两端的边界面,网格生成的一般顺序是先完成路径断面的网格剖分(程序自动完成,很容易),接下来程序往往会自动搜寻出端面的网格影射关系,从而沿着sweep路径形成三维体网格。针对复杂几何区域,非结构化网格也需要预先进行几何域分块,但其分块难度相对很低,一般仅需要工程师寻找出具备近似sweep拓补特征的几何域,直接进行几何域剖分即可。最简单的具备近似sweep拓补特征的几何域包括圆柱体、立方体以及经过异化(梯形化、扭曲化、楔化等)的对应元素,这些分区块共同构成网格剖分的初始几何子域集。值得一提的是,几何域初始剖分过程中各个子域需要保证几何上的连通,对于非常复杂的几何域,这样的连通有些时候是高阶复连通过程,其剖分也比较复杂。
棱柱体不是网格主流形状,一般作为非结构化六面体网格的补充搭配使用——当sweep端面不适合采用全四边形网格填充时,可以局部采用三角形网格——三角形网格沿厚度方向扫略便形成了棱柱体单元(5面体);棱柱体网格另外一个重要的用途便是流场计算的壁面边界层网格,因为流场壁面法向附近变量变化非常剧烈,因此往往要求沿法向网格具有结构化特征,利于数值离散插值,提高计算精度,而如果该区域是非结构四面体单元,要形成结构化排序是非常困难的,因此,一个折中的方案便是对壁面附近四面体网格进行层状化劈分处理(涉及劈层以后的局部网格重构,技术难度很大),经劈分处理得到表层网格便是棱柱体网格。金字体网格在CSD领域应用较少,主要用于CTD和CFD计算——比如某一个几何子域采用四面体网格,另外的子域采用六面体结构化网格,则在两个子域上可以采用金字塔单元进行过渡处理,一般“塔底”(四边形)连接六面体网格,“塔尖”连接四面体网格。
5
结构化网格和非结构化网格
只是针对网格排序方式而言,简单点说,当几何域内部的每一个子域上,其网格针对子域的面或者边线,具有一一对应的网格排序(比如四边形的对边网格具有映射关系,且这样的影射关系在网格路径上也严格满足),一个最简单的例子,便是一个方柱体sweep六面体网格和结构化网格的对比,当路径端面网格上为自由划分四面边形网格(端面的对边方向网格并不具备映射关系)最终形成的sweep网格便是非结构化网格——沿网格路径方向具有映射关系(最终全部是六面体),结构化网格则要求其端面网格也同时满足映射关系(即使这个映射关系经过异化,比如梯形化、扭曲化)。因此,总结来说,结构化网格在空间子域内部满足三维映射,而非结构化网格最多只满足一维映射(sweep网格),同时,四面体、棱柱体、金字塔网格也均属于非结构化网格。
网格节点和积分点是普通CAE工程师很容易混淆的概念,网格节点构成了网格分布和形状,通常,这些节点是数值离散插值、网格“沟通交流”的“基地”,而积分点一般位于网格内部或者节点之间,是“基地”传输过来的变量信息进行“再加工”(积分计算)的“封装测试车间”,最后的结果是积分点计算结果通过插值“回退”到节点上的结果,要增加积分点,要求单元至少是2节点一维杆系单元,同时,2节点单元可以具备2个积分点、3个积分点、4个积分点甚至更多,二维3节点单元(3角形单元)、4节点单元、4节点实体单元、5节点实体单元(金字塔单元)、6节点实体单元(棱柱体单元)、8节点实体单元(六面体单元)也具有类似的属性。通常说的高次单元和线性单元的区别主要体现在积分点的区别上,高次单元理论上具有更高的精度,但对塑性问题不合适。工程上常常通过增加网格数量和节点数量来提高线性单元的计算结果精度。