CFD网格及其生成方法概述 作者:王福军 网格是CFD模型的几何表达形式,也是模拟与分析的载体。网格质量对CFD计算精度和计算效率有重要影响。对于复杂的CFD问题,网格生成极为耗时,且极易出错,生成网格所需时间常常大于实际CFD计算的时间。因此,有必要对网格生成方式给以足够的关注。 1 网格类型 网格(grid)分为结构网格和非结构网格两大类。结构网格即网格中节点排列有序、邻点间的关系明确,如图1所示。对一于复杂的儿何区域,结构网格是分块构造的,这就形成了块结构网格(block-structured grids)。图2是块结构网格实例。 图1 结构网格实例 图2 块结构网格实例 与结构网格不同,在非结构网格(unstructured grid)中,节点的位置无法用一个固定的法则予以有序地命名。图3是非结构网格示例。这种网格虽然生成过程比较复杂,但却有着极好的适应性,尤其对具有复杂边界的流场计算问题特别有效。非结构网格一般通过专门的
程序或软件来生成。 图3 非结构网格实例 2 网格单元的分类 单元(cell)是构成网格的基本元素。在结构网格中,常用的ZD网格单元是四边形单元,3D网格单元是六面体单元。而在非结构网格中,常用的2D网格单元还有三角形单元,3D 网格单元还有四面体单元和五面体单元,其中五面体单元还可分为棱锥形(或楔形)和金字塔形单元等。图4和图5分别示出了常用的2D和3D网格单元。 图4 常用的2D网格单元 图5 常用的3D网格单元
3 单连域与多连域网格 网格区域(cell zone)分为单连域和多连域两类。所谓单连域是指求解区域边界线内不包含有非求解区域的情形。单连域内的任何封闭曲线都能连续地收缩至点而不越过其边界。如果在求解区域内包含有非求解区域,则称该求解区域为多连域。所有的绕流流动,都属于典型的多连域问题,如机翼的绕流,水轮机或水泵内单个叶片或一组叶片的绕流等。图2及图3均是多连域的例子。 对于绕流问题的多连域内的网格,有O型和C型两种。O型网格像一个变形的圆,一圈一圈地包围着翼型,最外层网格线上可以取来流的条件,如图6所示。C型网格则像一个变形的C字,围在翼型的外面,如图7所示。这两种网格部属于结构网格。 图6 O型网格 图7 C型网格 4 生成网格的过程
第1期陈沸镔,等:建筑结构模型的四边形网格生成算法2l L1+L2+£3+L4=偶数,所以L3=Ll+N×2(Ⅳ≥0) 根据N=0及N>0这2种情况,分别采用不同模板 进行网格划分.图11~13分别是L3=L。,L3=L,+2 和L。=L,+4这3种情况的网格划分方式. L3L3 £:[]c。≥L2匝唧上。 £1L1 图11狭长四边形单元网格划分(L,=L。) 三3上3 Lz[]£。≥上z压酗c。 LtLi 图12狭长四边形单元网格划分(L,=L,+2) 图13狭长四边形单元网格划分(L,=L。+4) 3算例 将上述算法用VC++.NET及OpenGL在VisualStudio2005编译环境编程实现,实验效果见图14~16.图14为将图2中框架剪力墙墙体模型进行四边形网格生成的结果,图15为某框架剪力墙高层结构模型进行四边形网格生成的结果,图16为某多塔楼高层结构模型进行四边形网格生成的结果. 图16某多塔楼高层结构的四边形网格划分 表2为图14~16这3种结构模型使用模板法生成网格耗费的时间.由表2可知,使用模板法进行模型内部网格生成效率较高.图17为图14网格生成的局部放大图,从该图可见由于建筑结构模型初始单元较为规则,使用模板法生成网格的质量较好.总之,本文的四边形网格生成算法在建筑结构模型方面有较好的适应性. 表2模板法生成网格时间 模型名称区域单元数边界单元数生成网格时间/ms框架剪力墙墙体6661984125 剪力墙高层结构5274139682031 多塔楼高层结构346695551516 图17图14网格划分的局部放大 图14图2框架剪力墙墙体的四边形网格划分5结论 图15某框架剪力墙高层结构的四边形网格划分 阐述用有限元分析建筑结构模型特点、设计快速建立结构模型索引信息的算法,根据四边形网格划分的要求,给出调整单元边界划分节点的算法,在内部网格划分时,采用分区域模板法生成网格,算法理论简单可行、效率较高. 下一步将考虑初始板单元为复杂多边形的情况,以及内部网格的生成优化和网格质量改进等方面一J,以期得到适用性更好、通用性更强的算法. (下转第26页)
网格划分主要软件 网格划分——连续空间的离散化。 主要软件: ICEM-CFD(Ansys Inc): 最NB的网格划分软件,主要四个模块:Tetra(水平最高)、Hexa(用起来方便)、Global(难得的笛卡尔网格划分软件)、AutoHexa(算是垃圾,有那幺一点点用处)。接口贼多,几乎支持所有流行的CFD软件!!!使用方便,一个月内可以学会,两个月就可以针对课题努力了。这个软件还有后处理模块Visual3,但是目前说来还没有听过哪个兄弟用过,我也没用过。 Gridgen(Poinwise Inc): 你要学习网格理论,用它比较好,你要和它一起来完成网格,不能靠它自动给你个复杂网格。结构网格划分很好。帮助文档有些标新立异了,很多术语就是难为大家这些入门级别的,实体不叫实体,它非得说是Database,何必呢! Gambit(Fluent Inc): 好学、好用。就是要拖着一个Exceed当靠山,功能强大。但是占用内存比较多,常常会跑死机(不是个别的问题)。 CFX-build(Ansys Inc): 基于Patran的非结构网格划分软件,会Patran就会它!功能自不用说,Patran有多猛,搞FEA/CAE的兄弟都知道。 CFD-Geom(CFDRC Inc): 好学,不过有些概念要仔细领会,最好是对拓扑与网格结构、类型比较熟悉。 Patran(Msc Inc)、Hypermesh(Altair Inc): 这两个不说了FEA方面的猛将,CFD也可以借鉴。 以上按功能和在CFD领域的适用范围分类。 TrueGrid六面体网格划分工具 TrueGrid六面体网格划分工具 中文名称:TrueGrid六面体网格划分工具 英文名称:Scientific.Truegrid
1. 什么是结构化网格和非结构化网格 1.1结构化网格 从严格意义上讲,结构化网格是指网格区域内所有的内部点都具有相同的毗邻单元。 它可以很容易地实现区域的边界拟合,适于流体和表面应力集中等方面的计算。它的主要优点是: 网格生成的速度快。 网格生成的质量好。 数据结构简单。 对曲面或空间的拟合大多数采用参数化或样条插值的方法得到,区域光滑,与实际的模型更容易接近。 它的最典型的缺点是适用的范围比较窄,只适用于形状规则的图形。尤其随着近几年的计算机和数值方法的快速发展,人们对求解区域的几何形状的复杂性的要求越来越高,在这种情况下,结构化网格生成技术就显得力不从心了。 1.2非结构化网格 同结构化网格的定义相对应,非结构化网格是指网格区域内的内部点不具有相同的毗邻单元。即与网格剖分区域内的不同内点相连的网格数目不同。从定义上可以看出,结构化网格和非结构化网格有相互重叠的部分,即非结构化网格中可能会包含结构化网格的部分。 2.如果一个几何造型中既有结构化网格,也有非结构化网格,分块完成的,分别生成网格后,也可以直接就调入fluent中计算。 3.在fluent中,对同一个几何造型,如果既可以生成结构化网格,也可生成非结构化网格,当然前者要比后者的生成复杂的多,那么应该选择哪种网格,两者计算结果是否相同,哪个的计算结果更好些呢? 一般来说,结构网格的计算结果比非结构网格更容易收敛,也更准确。但后者容易做。 影响精度主要是网格质量,和你是用那种网格形式关系并不是很大,如果结构话网格的质量很差,结果同样不可靠,相对而言,结构化网格更有利于计算机存储数据和加快计算速度。
结构化网格据说计算速度快一些,但是网格划分需要技巧和耐心。非结构化网格容易生成,但相对来说速度要差一些。 4.在gambit中,只有map和submap生成的是结构化网格,其余均为非结构化网格。 采用分块网格划分的时候,在两个相邻块之间设置了connected,但是这两个块我要用不同尺寸的网格来划分。比如说我用结构化的六面体网格来划分,一遍的尺寸为2,另一边的尺寸为3,这时候公共边界面该怎么处理?如果采用cooper 的格式来划分这个网格,尺寸就是前面所说的,该怎么来做呢? 我用单独的两个块试过,就是在公共边界上采用interface的格式,但是由于与这个公共边界相邻的另一个边界也不得不用interface格式,结果导入fluent 的时候就说can not creat a bound loop,也不清楚这是什么问题。 如果中间面两侧的面网格一致,可以直接在fluent中merge,如果不一致,可以设interface 网格的正交性是指三个方向上的网格边之间互相垂直的程度。一般而言,三维网格单元中,三个方向上的网格边之间的夹角越接近90度则质量越好。这一点在规则区域(例如正方形方腔)很容易实现,但对于流动区域比较复杂的问题则非常困难。但一般情况下,应当保证所有的网格单元内的网格边夹角大于10度,否则网格本身就会引入较大的数值误差。 EquiSize Skew(尺寸扭曲率)和EquiAngle Skew(角度扭曲率)是评判网格质量最主要标准,其值越小,网格质量越高 一般来说,Fluent要求扭曲率3D小于0.85,2D小于0.75。 关于复杂模型和gambit中的实体及虚体 模型比较复杂,是在pro/E中建的模,然后用igs导入gambit,不过这样就产生了很多碎线和碎面并且在一些面交界的地方还存在尖角。我曾经做成功过把它们统统merge成一个虚面,中间设置了一个可以容忍尖角的参数,也可以划分网格,但把生成的msh文件导入fluent就会出错,这是virtual geometry的原因还是因为尖角的原因?还有,virtual geometry和普通的真实的几何体到底有什么区别?好像最大的区别是virtual geometry不能进行布尔操作,布尔操作(boolean operation)又是什么?使用virtual geometry需要注意哪些问题?virtual geometry是很头疼的问题。你把它们统统merge成一个虚面 按理说全是虚的也是可以算的。可能是因为尖角的原因,虚实最大差别:是virtual geometry不能进行布尔操作,boolean operation即是并 对于复杂外形的网格生成,不可避免的会用到virtual geometry,virtual face ,和virtual edge等, 1。作网格的时候,把所有的面全部合成一个虚面的做法不好,特别是对于复杂外形的网格生成,你最好在模型变化剧烈的地方多分几个面,这样会更有效的控制网格能够在模型表面曲率比较大的地方能够生成规则的结构或者非结构网格。
网格生成及修正技巧 1引言 网格是CFD 模型的几何表达形式,也是模拟与分析的载体。网格质量对CFD 计算精度和计算效率有着重要的影响。对于复杂的CFD 问题,网格的生成极为耗时,并且极易出错,生成网格所需的时间常常大于实际CFD 计算的时间。因此,有必要对网格生成以及修正方法进行足够的研究。 考虑到目前的CFD 计算多是通过专用的网格生成软件来划分所需要的网格,因此,本文就如何利用专用前处理软件GAMBIT 来介绍网格的生成和修正技巧。 2 网格类型 网格主要有两种:结构网格和非结构网格[1] [2]在结构网格中,常用的2D 网格单元是四边形单元,3D 网格单元是六面体单元。而在非结构网格中,常用的2D 网格单元还有三角形单元,3D 网格单元还有四面体单元和五面体单元,其中五面体单元还分为棱锥形(或楔形)和金字塔形单元等。结构网格的最大特点在于网格中节点排列有序,邻点间关系明确,结构简单,构造方便,与计算机语言自然匹配,容易计算,网格生成速度快,质量好,数据结构简单等优点;缺点是适用的范围比较窄,只适用于形状规则的图形,对复杂几何形状的适应能力差。非结构网格舍去了网格节点的结构性限制,易于控制网格单元的大小、形状及节点位置,灵活性好,对复杂外形的适应能力强——流场变化比较大的地方,可以进行局部网格加密。但其无规则性也导致了在模拟计算中存储空间增大,寻址时间增长,计算效率低于结构化网格,计算时间长等缺点。 [1]。 (a )三角形 (b )四边形 图1 常用的2D 网格单元 (a )四面体 (b )六面体 (c )五面体(凌锥) (d )五面体(金字塔) 图2 常用的3D 网格单元 3 单连域与多连域网格 网格区域分为单连域和多连域两类。所谓单连域是指求解区域边界线内不包含有非求解
有限元设计软件生成网格的PAVING算法 一、简介 使用有限元软件分析计算几何体的物理性质,其计算的过程可以划分为几个大的模块,输入几何体区域→为该区域生成一个网格→对生成的网格施加一个干扰→从受到干扰的网格开发分析数据→确定几何体的物理行为。分析计算流程图如图1所示。 图1 有限元分析的模块 在有限元分析的前处理模块中,网格生成时很重要的一个步骤。生成网格的质量会影响后处理计算结果的精度。当前,行业内流行多种网格生成的算法,各有各自的特点,该部分内容在本文国内外研究现状一节中已经详细阐述。其中paving算法健壮性良好,计算速度快,而且生成的网格质量好。本节主要阐述采用C++语言实现paving算法的实现过程。如图2所示,采用paving算法生成网格的算法流程图,从输入边界数据到最后输出划分好的网格,其中主要有生成新行,平滑处理,缝合处理,边界相交处理等几个子模块。
图2 Flow chart of paving algorithm 为了清晰理解上述paving算法的流程,以图3所示为例,图a当中为输入的原始外边界数 据,围成待划分网格的区域。选择边界上的一行节点为基础,添加生成一行新的浮动节点, 生成顺序为沿着外边界按逆时针方向进行。对新生成的浮动节点进行平滑处理, 使节点围成的单元的internal angle以及aspect ratio变得更为合理,单元更趋近于规则四边形。对剩余的待划分网格区域进行缝合,检查单元是否相交,对相交的单元进行处理,对单元进行调整,直到整个区域生成高质量的网格为止。 图3 paving算法铺筑单元示意图 依据图2所示流程图,生成相应的伪代码: Do Row choise While add row is not complete Add row portion Smooth row portion Seam boundary If intersection occurs then Connect overlaps Seam boundary End if Row adjustment
CFD网格的分类,如果按照构成形式分,可以分为结构化和非结构化 结构化:只能有六面体一种网格单元,六面体顾名思义,也就是有六个面,但这里要区分一下六 面体和长方体。长方体(也就是所有边都是两两正交的六面体)是最理想完美的六面体网格。但如 果边边不是正交,一般就说网格单元有扭曲(skewed). 但绝大多数情况下,是不可能得到完全没有 扭曲的六面体网格的。一般用skewness来评估网格的质量,sknewness=V/(a*b*c). 这里V是网格 的体积,a,b,c是六面体长,宽和斜边。sknewness越接近1,网格质量就越好。很明显对于长 方体,sknewness=1. 那些扭曲很厉害的网格,sknewness很小。一般说如果所有网格sknewness>0.1也就可以了。结构化网格是有分区的。简单说就是每一个六面体单元是有它的坐标的,这些坐标用,分区号码(B),I,J,K四个数字代表的。区和区之间有数据交换。比如一个单元,它的属性是B=1, I=2,J=3,K=4。其实整个结构化单元的概念就是CFD计算从物理空间到计算空间mapping的概念。I,J,K可以认为是空间x,y,z在结构化网格结构中的变量。 非机构化:可以是多种形状,四面体(也就三角的形状),六面体,棱形。对任何网格,都是希 望网格单元越规则越好,比如六面体希望是长方形,对于四面体,高质量的四面体网格就是正四 面体。sknewness的概念这里同样适用,sknewness越小,网格形状相比正方形或者正四面体就越 扭曲。越接近1就越好。 很明显非结构化网格也可以是六面体,但非结构化六面体网格没有什么B,IJK的概念,他们就是充 满整个空间。 对于复杂形状,结构化网格比较难以生成。主要是生成时候要建立拓扑,拓扑是个外来词,英语 是topology,所以不要试图从字面上来理解它的意思。其实拓扑就是指一种有点和线组成的结构。工人建房子,需要先搭房粱,立房柱子,然后再砌砖头。拓扑其实就是房子的结构。这么理解拓 扑比较容易些,以后认识多了,就能彻底通了。 生成结构化网格的软件gridgen,icem等等都是需要你去建立拓扑,也就是结构,然后软件好根据 你的机构来建立网格,或者砌砖头,呵呵。 非结构化网格的生成相对简单,四面体网格基本就是简单的填充。非结构化六面体网格生成还有 些复杂的。但仍然比结构化的建立拓扑简单多。比如 gambit的非结构化六面体网格是建立在从一 个面到另外一个面扫描(sweep)的基础上的。Numeca公司的hexpress的非结构化六面体网格是用 的一种吸附的方法。反正你还是要花点功夫。 另外一点就是,结构化网格可以直接应与于各种非结构化网格的CFD软件,比如你在gridgen里 面生成了一个结构化网格,用fluent读入就可以了。fluent是非结构化网格CFD软件,它会忽略 那些结构化网格的结构信息(也就是B,I,J,K),当成简单的非结构网格读入。非结构化六面体网格 就不能用在结构化网格的CFD求解器了. 结构化网格仍然是CFD工程师的首选。非结构化六面体网格也还凑合,四面体网格我就不喜欢了。数量多,计算慢,后处理难看。简单说,如果非结构化即快又好,结构化网格早就被淘汰了。总 结一下,
? 傲雪论坛 ? 『 Fluent 专版 』 打印话题 寄给朋友 作者 关于结构化网格和非结构网格的适用性问题 [精华] 翱翔蓝天 发帖: 22 积分: 0 雪币: 22 于 2005-07-23 22:58 有些前辈认为,数值计算中应采用结构化网格,如果非结构网格则计算结果将“惨不忍睹”。搞压气机计算的同行也认为,必须用结构化网格。然而, 对复杂的计算域,如果采用结构化网格必然造成网格质量的急剧下降,扭曲加大等问题。我觉得这时,不如采用非结构网格。诸位,请提出自己的意见 waterstone 我为人人,人人为我 发帖: 78 积分: 0 雪币: 78 于 2005-07-24 09:51 我是这样看的:非结构网格使用很方便,外型越复杂就越显示出其优越性;至于计算结果的精度,就要看 非结构网格在单元网格面、体积处理上方法是不是比结构网格要差。就fluent 软件,它是用体积积分法求 解雷诺平均方程的,在单元网格面、体积处理上方法好像是按非结构网格方法处理的。你就是按结构网格方法来生成网格,进入fluent 中,进行数值计算时都是按非结构网格来处理,所以在fluent 中,你用结构化网格方法生网格,和用非结构网格计算没多大区别!我说说我个人看法。 liuhuafei 于 2005-07-25 13:53
发帖: 872 积分: 6 雪币: 158 来自: 上海 waterstone wrote: 我是这样看的:非结构网格使用很方便,外型越复杂就越显示出其优越性;至于计算结果的 精度,就要看非结构网格在单元网格面、体积处理上方法是不是比结构网格要差。就fluent 软件,它是用体积积分法求解雷诺平均方程的,在单元网格面、体积处理上方法好像是按非 结构网格方法处理的。你就是按结构网格方法来生成网格,进入fluent 中,进行数值计算时都是按非结构网格来处理,所以在fluent 中,你用结构化网格方法生网格,和用非结构网格计算没多大区别!我说说我个人看法。 计算精度,主要在于网格的质量(正交性,长宽比等),并不决定于拓扑(是结构化还是非结构化)。 例如同样的2d 的10×10的正交网格,fluent 采用非结构化方式对网格编号,另一种软件按结构化网格处理,如果其它条件相同,二者的精度应该是一样的。 我们通常所说的非结构化网格,第一映象就是网格质量差,不正交的,编排无规律的网格的三角形网格或四面体网格,实际上一个二维区域的三角形网格,如果控制得好(如相邻控制 体中心的连线与公共边基本接近正交的话),其不结构化网格(网格正交性好)的精度是一致的 翱翔蓝天 发帖: 22 积分: 雪币: 22 于 2005-07-25 23:00 谢了,有收获,受益匪浅 edwardzhu 发帖: 60 积分: 1 于 2005-08-05 11:08 听楼上一席话,胜读一年书。
I 目录 1 概述 (1) 2 结构网格 (3) 2.1 贴体坐标法 (3) 2.2 块结构化网格 (11) 3 非结构网格 (16) 3.1 概述 (16) 3.2 阵面推进法 (16) 3.3 Delaunay三角划分 (19) 3.4 四叉树(2D)/八叉树(3D)方法 (21) 3.5 阵面推进法和Delaunay三角划分结合算法 (22) 4 其他网格生成技术 (23) 4.1 自适应网格 (23) 4.2 混合网格 (25) 4.3 动网格 (26) 4.4 曲面网格 (27) 4.5 重叠网格 (28) 5 网格生成软件 (29) 5.3 Gambit (29) 5.2 ICEM CFD (30) 5.1 TrueGrid (32) 5.2 Gridgen (34)
1 概述 计算流体力学作为计算机科学、流体力学、偏微分方程数学理论、计算几何、数值分析等学科的交叉融合,它的发展除依赖于这些学科的发展外,更直接表现于对网格生成技术、数值计算方法发展的依赖。 在计算流体力学中,按照一定规律分布于流场中的离散点的集合叫网格(Grid),分布这些网格节点的过程叫网格生成(Grid Generation)。网格生成是连接几何模型和数值算法的纽带,几何模型只有被划分成一定标准的网格才能对其进行数值求解,所以网格生成对CFD至关重要,直接关系到CFD计算问题的成败。一般而言,网格划分越密,得到的结果就越精确,但耗时也越多。1974年Thompson等提出采用求解椭圆型方程方法生成贴体网格,在网格生成技术的发展中起到了先河作用。随后Steger等又提出采用求解双曲型方程方法生成贴体网格。但直到20世纪80年代中期,相比于计算格式和方法的飞跃发展,网格生成技术未能与之保持同步。从这个时期开始,各国计算流体和工业界都十分重视网格生成技术的研究。上个世纪90年代以来迅速发展的非结构网格和自适应笛卡尔网格等方法,使复杂外形的网格生成技术呈现出了更加繁荣发展的局面。现在网格生成技术已经发展成为CFD的一个重要分支,它也是计算流体动力学近20年来一个取得较大进展的领域。也正是网格生成技术的迅速发展,才实现了流场解的高质量,使工业界能够将CFD的研究成果——求解Euler/NS方程方法应用于型号设计中。 随着CFD在实际工程设计中的深入应用,所面临的几何外形和流场变得越来越复杂,网格生成作为整个计算分析过程中的首要部分,也变得越来越困难,它所需的人力时间已达到一个计算任务全部人力时间的60%左右。在网格生成这一“瓶颈”没有消除之前,快速地对新外形进行流体力学分析,和对新模型的实验结果进行比较分析还无法实现。尽管现在已有一些比较先进的网格生成软件,如ICEM CFD、Gridgen、Gambit等,但是对一个复杂的新外形要生成一套比较合适的网格,需要的时间还是比较长,而对于设计新外形的工程人员来说,一两天是他们可以接受的对新外形进行一次分析的最大周期。要将CFD从专业的研究团体中脱离出来,并且能让工程设计人员应用到实际的设计中去,就必须首先解决网格生成的自动化和即时性问题,R.Consner等人在他们的一篇文章中,详细地讨论了这些方面的问题,并提出:CFD研究人员的关键问题是“你能把整个设计周期缩短多少天?”。而缩短设计周期的主要途径就是缩短网格生成时间和流场计算时间。因此,生成复杂外形网格的
简单地说:结构化网格只包含四边形或者六面体,非结构化网格是三角形和四面体。 结构网格再拓扑结构上相当于矩形域内的均匀网格,器节点定义在每一层的网格线上,且每一层上节点数都是相等的,这样使复杂外形的贴体网格生成比较困难。非结构网格没有规则的拓扑结构,也没有层的概念,网格节点的分布是随意的,因此具有灵活性。不过非结构网格计算的时候需要较大的内存。 在计算流体动力学中,按照一定规律分布于流场中的离散点的集合叫网格(Grid),分布这些网格节点的过程叫网格生成(Grid Generation)。网格生成对CFD至关重要,直接关系到CFD计算问题的成败。 非结构三角形网格方法 复杂外形网格生成的第二方向是最近应用比较广泛的非结构三角形网格方法,它利用三角形(二维)或四面体(三维)在定义复杂外形时的灵活性,以Delaunay法或推进波阵面法为基础,全部采用三角形(四面体)来填充二维(三维)空间,它消除了结构网格中节点的结构性限制,节点和单元的分可控性好,因而能较好地处理边界,适用于模拟真实复杂外型。非结构网格生成方法在其生成过程中采用一定的准则进行优化判断,因而能生成高质量的网格,很容易控制网格的大小和节点的密度,它采用随机的数据结构有利于进行网格自适应。一旦在边界上指定网格的分布,在边界之间可以自动生成网格,无需分块或用户的干预,而且不需要在子域之间传递信息。因而,近年来非结构网格方法受到了高度的重视,有了很大发展。 非结构网格方法的一个不利之处就是不能很好地处理粘性问题,在附面层内只采用三角形或四面体网格,其网格数量将极其巨大。现在比较好的方法就是采用混合网格技术,即先贴体生成能用于粘性计算的四边型或三棱柱网格,然后以此为物面边界,生成三角形非结构网格,但是生成复杂外型的四边形或三棱柱网格难度很大。 非结构网格方法的另一个不利之处就是对于相同的物理空间,网格填充效率不高,在满足同样流场计算条件的情况下,它产生的网格数量要比结构网格的数量大得多(一个长方体要划分为5个四面体)。随机的数据结构也增加了流场参数交换的时间,因此此方法要求较大的计算机内存,计算时间长。在物面附近,非结构网格方法,特别是对于复杂外形如凹槽、细缝等处比较难以处理。 非结构网格与结构网格一样都属于贴体网格,模型表面网格的好坏直接关系到空间网格的质量,因而它们的模型表面网格必须同时与网格拓扑结构和当地的几何外形特性相适应,为了更好地适应其中一方面,有时不得不在另一方面作出让步,因而往往顾此失彼。因此,在生成非结构网格和结构网格时,处理模型表面又成为一个关键而费时的工作。 计算精度,主要在于网格的质量(正交性,长宽比等),并不决定于拓扑(是结构化还是非结构化)。个人感觉采用结构化网格还是非结构化网格,主要看解决什么问题,如果是无粘欧拉方程的话,只要合理布局,结构和非结构都能得到较为理想的结果。但如果涉及到粘性影响的话,尤其在壁面处,结构网格有一定优势,并且其对外形适应性差的缺点,也可以通过多块拼接网格解决。事实上,目前有的非结构网格软件,也开始借鉴结构网格的优点,在壁面处进行了类似结构网格的处理,如cfx的壁面加密功能。 一般来说,网格节点走向(这里假设计算过程中物理量定义在网格节点上)贴近流动方向,那么计算的结果就要好一些。对于不是非常复杂的流动。例如气体的喷管流动,使用四边形(二维)网格就比较三角形网格要好。不过即便是四边形网格,fluent也是按照无结构网格进行处理的。 非结构和结构网格的计算结果如何取决于算法,除非网格实在惨不忍睹。我觉得现在已发展到了基于结构网格与非结构网格上的计算,各自的优势相差越来越不是很明显了。
MIKE21 FM网格生成器培训教程
目录 17简介 (1) 17.1概念 (2) 17.2边界定义 (3) 18开始 (3) 18.1介绍 (3) 18.2数据位置 (4) 18.3 步骤1 - 建立一个工作区域 (4) 18.4步骤2 - 导入模型边界线 (5) 18.5步骤3 - 编辑陆地边界线 (7) 18.6 步骤4 - 定义开边界 (9) 18.7步骤5 - 生成网格 (9) 18.8步骤6 - 对陆地边界进行光滑处理 (10) 18.9步骤7 - 网格地形插值 (12) 18.10 步骤8 - 对网格进行光滑处理 (15) 18.11 步骤9 - 使用多边形来控制节点密度 (15)
MzGeneric.pdf手册中Mesh Generator部分 17 简介 网格生成器(mesh generator)为制作三角网格提供了工作平台。 创建合理的网格是模型获得可靠结果的重要条件。基于 MIKE Zero 之上的MIKE 21 Flow Model FM, MIKE 3 Flow Model FM 和 MIKE 21 Spectral Wave Model FM,都是以三角网格为基础的。 图 17.1 全球模型的陆地/海洋边界 网格的生成包括选择适当的模拟范围,确定地形网格的分辨率,考虑流场,风场和波浪场的影响,为开边界和陆地边界确定边界代码。此外,在考虑稳定性的前提下,确定地理空间的分辨率。 生成网格文件可以使用MIKE Zero网格生成器。网格文件是一个ASCII文件(扩展名*.mesh),其中包括地理位置信息和在网格中每一个节点的水深。文件还包括三角形的节点连通性信息。所有关于生成网格文件的配置信息都在网格定义文件(扩展名*.mdf) 中, 文件可以被修改和再利用。 网格生成器的功能包括从不同的外部信息源(例如. XYZ 水深点,XYZ等值线,MIKE 21矩形网格地形,MIKE C-MAP数据) 输入原始数据,或是用内置的制图工具手动创建地形数据。用户可以在网格生成器中导入背景图片,例如地图,在数据编辑时使用它们,或用来提高图形的后处理效果。
对于连续的物理系统的数学描述,如航天飞机周围的空气的流动,水坝的应力集中等等,通常是用偏微分方程来完成的。为了在计算机上实现对这些物理系统的行为或状态的模拟,连续的方程必须离散化,在方程的求解域上(时间和空间)仅仅需要有限个点,通过计算这些点上的未知变量既而得到整个区域上的物理量的分布。有限差分,有限体积和有限元等数值方法都是通过这种方法来实现的。这些数值方法的非常重要的一个部分就是实现对求解区域的网格剖分。 网格剖分技术已经有几十年的发展历史了。到目前为止,结构化网格技术发展得相对比较成熟,而非结构化网格技术由于起步较晚,实现比较困难等方面的原因,现在正在处于逐渐走向成熟的阶段。下面就简要介绍一些这方面的情况。 1.1结构化网格 从严格意义上讲,结构化网格是指网格区域内所有的内部点都具有相同的毗邻单元。结构化网格生成技术有大量的文献资料[1,2,3,4]。结构化网格有很多优点: 1.它可以很容易地实现区域的边界拟合,适于流体和表面应力集中等方面的计算。 2.网格生成的速度快。 3.网格生成的质量好 4.数据结构简单 5.对曲面或空间的拟合大多数采用参数化或样条插值的方法得到,区域光滑,与实际的模型更容易接近。 它的最典型的缺点是适用的范围比较窄。尤其随着近几年的计算机和数值方法的快速发展,人们对求解区域的复杂性的要求越来越高,在这种情况下,结构化网格生成技术就显得力不从心了。 结构化网格的生成技术只要有: 代数网格生成方法。主要应用参数化和插值的方法,对处理简单的求解区域十分有效。PDE网格生成方法。主要用于空间曲面网格的生成。 1.2非结构化网格 同结构化网格的定义相对应,非结构化网格是指网格区域内的内部点不具有相同的毗邻单元。即与网格剖分区域内的不同内点相连的网格数目不同。从定义上可以看出,结构化网格和非结构化网格有相互重叠的部分,即非结构化网格中可能会包含结构化网格的部分。 非结构化网格技术从六十年代开始得到了发展,主要是弥补结构化网格不能够解决任意形状和任意连通区域的网格剖分的缺欠.到90年代时,非结构化网格的文献达到了它的高峰时期.由于非结构化网格的生成技术比较复杂,随着人们对求解区域的复杂性的不断提高,对非结构化网格生成技术的要求越来越高.从现在的文献调查的情况来看,非结构化网格生成技术中只有平面三角形的自动生成技术比较成熟(边界的恢复问题仍然是一个难题,现在正在广泛讨论),平面四边形网格的生成技术正在走向成熟。而空间任意曲面的三角形、四边形网格的生成,三维任意几何形状实体的四面体网格和六面体网格的生成技术还远远没有达到成熟。需要解决的问题还非常多。主要的困难是从二维到三维以后,待剖分网格的空间区非常复杂,除四面体单元以外,很难生成同一种类型的网格。需要各种网格形式之间的过度,如金字塔形,五面体形等等。 非结构化网格技术的分类,可以根据应用的领域分为应用于差分法的网格生成技术(常常成为grid generation technology)和应用于有限元方法中的网格生成技术(常常成为mesh generation technology),应用于差分计算领域的网格要除了要满足区域的几何形状要求以外,还要满足某些特殊的性质(如垂直正交,与流线平行正交等),因而从技术实现上来说就更困难一些。基于有限元方法的网格生成技术相对非常自由,对生成的网格只要满足一些形状
自动网格生成法 二维网格生成—Advancing Front方法 从概念上来讲,Advancing front方法是最简洁的方法之一。单位元素生成算法始于一个特殊边界条件所定义的“front”,此算法逐级地生成各个元素,同时“front”元素离散地前进,直至整个区域都被元素所覆盖。 网格生成过程包括三个主要步骤: 1、在边界上生成节点,形成一个离散的区域边界。 2、在离散区域边界内生成元素(亦或节点)。 3、强化节点形状以提高网格图形清晰度。 在介绍这个方法之前我们先介绍以下有关于二维空间地几何表示。 一、二维网格的几何特征 我们利用网格参数(一般是空间的函数)来表征网格的一些性质,诸如节点尺寸,节点形状和节点方向等等。网格参数包括两个相互正交的单位矢量a1和a2表示的方向参数,和由两个相互正交代表节点形状的矢量的模值h1和h2。前者表征网格节点伸展的方向,注意的是,只有在生成的是非各向同性的网格内,方向参数才有定义,否则方向矢量是常单位矢量,而尺寸参数有h1=h2,这样就定义了各向同性的平凡网格。 二、区域的几何表示 边界曲线的表示: 我们一般用组合参数样条线表示曲线边界单位,利用参数t,我们利用二维矢量函数表达出曲线边界: r t=x t,y t,0≤t≤1 一般来讲,一条组合样条曲线至少是C1连续的,以保证边界曲线平滑和算法要求的数学连续性。我们下面将要用厄米三阶样条线,当然还有许多就不一一举例了。 样条线的参数表达式如下: X t=H0t,H1t,G0t,G1t?x0,x1,x,t0,x,t1T,0≤t≤1 转置的前两项是曲线的两个端点,而后两项是它们对t求导现在端点处的值。另外G和H分别是四个三阶厄米多项式: H0t=1?3t2+2t3 ; H1t=3t2?2t3 G0t=t?2t2+t3 ; G1t=?t2+t3 此时,参数表达式可以通过一个系数矩阵来描述: X t=1,t,t2,t3M x0,x1,x,t0,x,t1T,0≤t≤1 其中M矩阵读者很容易写出,是一个4*4的方阵,而每一列是这些厄米多项式的系数排列而成。我们把这个表示称之为样本表示。每个边界都包含n个这样的数据点: x i,i=1,2,3,……,n 利用内插法可以构造出如下形式的关系式: X u=H0t x u i?1+H1t x u i+Δi G0t x,t u i?1+Δi G1t x,t u i 其中Δi是单位区间的长度。同时参数t也变为离散的取值是单位区间从原点到任意点所有的个数。如果参数的离散取值正好是i,那么u的表达式将简化为:
基于映射法的六面体网格生成算法 王东风,翟建军,陈文亮 (南京航空航天大学机电学院,江苏南京 210016) 摘要:六面体网格划分技术是三维有限元仿真软件处理的关键环节之一,等参映射法既可适应特殊的区域边界形状,又可控制所生成单元的形状和密度。对基于等参映射法的六面体网格划分原理进行了深入研究,并在此研究基础上对等参映射法的计算过程进行了细致的分析,利用VC++开发了该算法的相应程序,最后给出了2个等参映射法具体的应用实例,计算结果表明该程序的计算精度已经达到了工程要求。 关键词:等参映射法;六面体网格;有限元 中图分类号:TP391 文献标识码:A 文章编号:1672-1616(2009)05-0025-03 在有限元仿真过程中,单元类型的选择对整个有限元仿真的计算效率、自动化程度、计算精度都将产生重要影响。六面体单元由于变形特性好、计算精度高等优点在三维有限元仿真领域中得到了广泛应用[1]。 映射法是三维网格划分中最早使用的方法,和扫略法、基于栅格法等其他方法相比,该方法生成网格速度快、生成的网格单元质量好、网格密度可控制[2~4]。映射法对复杂实体生成三维有限元网格有两大难点,一是子区域划分问题,二是子区域之间网格相容性问题。Price与Armstrong等提出中面法,将三维复杂区域分解成可映射子区域[5~7],但是该算法存在一些问题,特别是几何适应能力问题。李华和程耿东提出了三维组合式模板,一定条件下解决了子区域之间的网格相容性问题[2]。还有学者提出了Embedded Voronoi Graph[8]和BLOBs[9],对复杂实体利用映射法划分六面体网格。映射法在众多有限元分析软件中占有重要地位,美国Altair公司Hyper-Mesh软件中的Solid Mesh Panel就是利用映射法生成六面体网格。 本文对基于等参映射法的六面体网格划分技术进行了详细研究。通过形函数映射技术将物理域映射到参数空间域,对规则参数域进行网格剖分,将参数域的网格反向映射回物理空间,从而得到物理空间六面体网格。利用VC++实现了映射过程,在输入边界信息和划分信息后,即得到了六面体网格的节点信息和单元信息。 1 映射法生成四边形网格和六面体网格 本文主要讨论的是怎样在一个子区域中划分 六面体网格。这里的子区域指的是具有6个面12条边,每条边的特征点已知的区域。 求子区域六面体网格节点的步骤:(1)利用积累弦长参数化法对每条边进行参数化。(2)利用拉格朗日插值公式求边界函数。(3)利用边界函数,由双线性混合孔斯曲面片公式求曲面节点坐标。 (4)由孔斯线性混合插值公式求子区域节点坐标。 在计算的过程中要用到2种坐标系,即笛卡尔坐标系和自然坐标系。笛卡尔坐标系用x,y,z表示,自然坐标系用一组不超过1的无量纲参数r,s, t表示,边界点分别对应自然坐标等于1或0的点。如图1所示。 图1 自然坐标和笛卡尔坐标之间的变换 收稿日期:2008-08-08 作者简介:王东风(1979-),男,河南商丘人,南京航空航天大学硕士研究生,主要研究方向为CAD/CAM/CAE。
有限元网格剖分方法概述 在采用有限元法进行结构分析时,首先必须对结构进行离散,形成有限元网格,并给出与此网格相应的各种信息,如单元信息、节点坐标、材料信息、约束信息和荷载信息等等,是一项十分复杂、艰巨的工作。如果采用人工方法离散对象和处理计算结果,势必费力、费时且极易出错,尤其当分析模型复杂时,采用人工方法甚至很难进行,这将严重影响高级有限元分析程序的推广和使用。因此,开展自动离散对象及结果的计算机可视化显示的研究是一项重要而紧迫的任务。 有限元网格生成技术发展到现在, 已经出现了大量的不同实现方法,列举如下: 映射法 映射法是一种半自动网格生成方法,根据映射函数的不同,主要可分为超限映射和等参映射。因前一种映射在几何逼近精度上比后一种高,故被广泛采用。映射法的基本思想是:在简单区域内采用某种映射函数构造简单区域的边界点和内点,并按某种规则连接结点构成网格单元。也就是根据形体边界的参数方程,利用映射函数,把参数空间内单元正方形或单元三角形(对于三维问题是单元立方体或单元四面体)的网格映射到欧氏空间,从而生成实际的网格。这种方法的主要步骤是,首先人为地把分析域分成一个个简单可映射的子域,每个子域为三角形或四边形,然后根据网格密度的需要,定义每个子域边界上的节点数,再根据这些信息,利用映射函数划分网格。 这种网格控制机理有以下几个缺点: (1)它不是完全面向几何特征的,很难完成自动化,尤其是对于3D区域。 (2)它是通过低维点来生成高维单元。例如,在2D问题中,先定义映射边界上的点数,然后形成平面单元。这对于单元的定位,尤其是对于远离映射边界的单元的定位,是十分困难的,使得对局部的控制能力下降。 (3)各映射块之间的网格密度相互影响程度很大。也就是说,改变某一映射块的网格密度,其它各映射块的网格都要做相应的调整。 其优点是:由于概念明确,方法简单,单元性能较好,对规则均一的区域,适用性很强,因此得到了较大的发展,并在一些商用软件如ANSYS等得到应用。 2 。拓扑分解法 拓扑分解法较其它方法发展较晚, 它首先是由Wordenwaber提出来的。该方法假设最后网格顶点全部由目标边界顶点组成, 那么可以用一种三角化算法将目标用尽量少的三角形完全分割覆盖。这些三角形主要是由目标的拓扑结构决定, 这样目标的复杂拓扑结构被分解成简单的三角形拓扑结构。该方法生成的网格一般相当粗糙, 必须与其它方法相结合, 通过网格加密等过程, 才能生成合适的网格。该方法后来被发展为普遍使用的目标初始三角化算法, 用来实现从实体表述到初始三角化表述的自动化转换。 单一的拓扑分解法因只依赖于几何体的拓扑结构使网格剖分不理想,有时甚至很差。 3.连接节点法 这类方法一般包括二步:区域内布点及其三角化。早期的方法通常是先在区域内布点, 然后再将它们联成三角形或四面体, 在三角化过程中, 对所生成的单元形状难于控制。随着Delaunay三角化(简称为DT ) 方法的出现, 该类方法已成为目前三大最流行的全自动网格生成方法之一。 DT法的基本原理:任意给定N个平面点Pi(i=1,2,…,N)构成的点集为S,称满足下列条件的点集Vi为Voronoi多边形。其中,Vi满足下列条件: Vi ={ X:|X- Pi|(|X- Pj|,X(R2,i(j,j=1,2,…,N }Vi为凸多边形,称{ Vi}mi=1为Dirichlet Tesselation
结构化网格只包含四边形或者六面体,非结构化网格是三角形和四面体。 结构网格在拓扑结构上相当于矩形域内的均匀网格,器节点定义在每一层的网格线上,且每一层上节点数都是相等的,这样使复杂外形的贴体网格生成比较困难。非结构网格没有规则的拓扑结构,也没有层的概念,网格节点的分布是随意的,因此具有灵活性。不过非结构网格计算的时候需要较大的内存。 非结构网格不利之处就是不能很好地处理粘性问题,在附面层内只采用三角形或四面体网格,其网格数量将极其巨大。现在比较好的方法就是采用混合网格技术,即先贴体生成能用于粘性计算的四边型或三棱柱网格,然后以此为物面边界,生成三角形非结构网格,但是生成复杂外型的四边形或三棱柱网格难度很大。在物面附近,非结构网格方法,特别是对于复杂外形如凹槽、细缝等处难以处理。 到空间网格的质量, 几何外形特性相适应,为了更好地适应其中一方面,有时不得不在另一方面做出让步,因而往往顾此失彼。 计算精度,主要在于网格的质量(正交性,长宽比等),并不决定于拓扑(是结构化还是非结构化)。采用结构化网格还是非结构化网格,主要看解决什么问题,如果是无粘欧拉方程的话,只要合理布局,结构和非结构都能得到较为理想的结果。但如果涉及到粘性影响的话,尤其在壁面处,结构网格有一定优势,并且其对外形适应性差的缺点,也可以通过多块拼接网格解决。目前有的非结构网格软件,也开始借鉴结构网格,如cfx的壁面加密功能。 网格节点走向(这里假设计算过程中物理量定义在网格节点上)贴近流动方向,那么计算的结果就要好一些。对于不是非常复杂的流动。例如气体的喷管流动,使用四边形(二维)网格就比三角形网格要好。不过即便是四边形网格,fluent 也是按照无结构网格进行处理的。主要是看流向是否与网格平行如果是平行的则计算中不容易出现假扩散,计算的结果就好,但是成角度的时候计算的结果搞不好就有扩散现象,所以不在于结构和非结构。 非结构和结构网格的计算结果如何取决于算法。GRIDGEN在结构网格方面有着强大的生命力,很多非常复杂的几何形状用它没问题;基于非结构网格方面的计算格式得到的结果的准确度也不次于基于结构网格的结果了。