当前位置:文档之家› 非结构动网格生成的弹簧_插值联合方法

非结构动网格生成的弹簧_插值联合方法

非结构动网格生成的弹簧_插值联合方法
非结构动网格生成的弹簧_插值联合方法

 第31卷 第7期航 空 学 报

Vol 131No 17 2010年 7月ACTA A ERONAU TICA ET ASTRONAU TICA SIN ICA J uly 2010

收稿日期:2009207217;修订日期:2009212219基金项目:国家“973”计划(2007CB714603,2010CB832701)通讯作者:李水乡E 2mail :lsx @https://www.doczj.com/doc/ec14889338.html,

文章编号:100026893(2010)0721389207

非结构动网格生成的弹簧2插值联合方法

周璇,李水乡,陈斌

(北京大学工学院力学与空天技术系湍流与复杂系统国家重点实验室,北京 100871)

Spring 2interpolation Approach for G enerating U nstructured Dynamic Meshes

Zhou Xuan ,Li Shuixiang ,Chen Bin

(State Key Laboratory for Turbulence and Complex Systems ,Department of Mechanics and Aerospace

Engineering ,College of Engineering ,Peking University ,Beijing 100871,China )

摘 要:提出了基于弹簧法的两点改进,以解决边界发生大变形时的非结构网格变形问题。为了使边界运动引起的网格变形能更好地由边界传递到内部网格中,提出了一种新的基于Delaunay 网格插值的弹簧倔强系数逐层改进方法。为了提高弹簧法的计算效率,引入背景网格和直接插值方法,提出了弹簧2插值法。弹簧2插值法首先生成计算域的背景网格(粗网格),然后由弹簧法求解边界运动引起的背景网格变形,最后利用变形后的背景网格直接插值得到计算网格的变形。算例结果表明:改进后的方法一方面有效地提高了动网格的变形能力和变形后的网格质量;另一方面通过降低弹簧法的求解规模,显著地提高了动网格的变形效率。关键词:动网格;网格变形;非结构网格;弹簧法;背景网格;Delaunay 网格中图分类号:V211.3 文献标识码:A

Abstract :The article presents two improvements on the spring analogy for unstructured mesh deformation in engineering applications in which large boundary motions are encountered.A gradually updating scheme which generates gradient spring stiff ness by the interpolation method on Delaunay graph is proposed to improve the deformation spread.The spring 2interpolation approach is proposed to improve the efficiency of the spring ana 2logy.The approach first generates a background mesh (coarse mesh )of the solution domain.Then the defor 2mation of the background mesh caused by boundary movements is solved by a spring analogy.Finally ,the de 2formation of the computational mesh is obtained by an interpolation method on the background mesh.Exam 2ples demonstrate that the presented method significantly improves the deforming ability of meshes as well as the mesh quality after deformation.Additionally ,examples also show that the proposed approach improves the efficiency of mesh deformation effectively by reducing the order of the equations of the spring analogy.K ey w ords :dynamic meshes ;mesh deformation ;unstructured mesh ;spring analogy ;background grid ;Delau 2nay graph

在工程实际问题的数值模拟中,常常需要求

解边界运动等非定常流动问题。如自由表面问题、多体分离问题、强迫振动问题及流固耦合问题等。求解这类非定常问题需要改变流场计算网格以适应边界的运动。动网格方法是解决这类问题的关键技术,尤其对于多体作相对运动或边界作不规则变形运动的非定常问题。

弹簧近似法(下文简称弹簧法)是目前被广泛应用的网格变形方法。弹簧法简单易于实现,但需要迭代求解方程组,而且变形量有限。文献[1]~文献[4]通过增加扭转弹簧、虚拟弹簧或结合边界改进等方法来约束节点位移以提高弹簧法

的网格变形能力。但这些改进在提高网格变形能力时都不可避免地增加了计算量和算法复杂性。类似于弹簧法的弹性体法[5]把网格变形当成连续介质力学问题来求解,使网格的变形能力最小。弹性体法的网格变形能力和网格质量都优于弹簧法,但实现复杂、计算量大。

X 1Q 1Liu 等[6]提出基于Delaunay 网格的直接插值法(直接插值法),边界运动对网格的扰动由Delaunay 网格的变形实现,通过Delaunay 网格和计算网格间的映射关系得到最后的动网格。直接插值法不需要迭代计算,因此效率很高。但是对于边界局部变形(如本文中可变形飞行器算例),由于Delaunay 网格的局部性,不能将边界扰动很好地传递到网格内部,变形能力有限。直接插值法中的Delaunay 网格分布不均衡,存在明显

航 空 学 报第31卷

的挤压现象,易出现非法网格。此外每个时间步需重构Delaunay网格也将附加额外的工作量。文献[7]~文献[9]采用增加辅助节点、双重Delaunay图映射法以及混合网格等技术,提高了网格的变形质量。但是,这些改进都需要额外的工作生成混合网格或分层网格。径向基函数(Radial Basis Functions)插值法[10]也是一种应用较多的代数方法。但该方法需要通过解方程来计算插值函数的系数,计算量较大,而且网格质量和径向基函数的选取有关。

可变形飞行器是近空间飞行器研究的重要组成部分,其目的是利用机翼和机身变形来改变飞行器外形以适应不同飞行状态的需要,使其在全飞行包线内都具有优良的飞行性能。可变形飞行器由于其机翼和机身的大变形,对总体设计、结构与材料、控制与稳定以及气动弹性等领域提出了前所未有的挑战。其中在计算流体力学(CFD)计算中带来的主要困难之一是由于翼身大变形引起的计算网格变形问题。就目前的动网格技术而言,由于其计算速度相对较慢、变形范围有限,对于可变形飞行器带来的大变形,其计算量是难以接受的。因此,高效快速的动网格生成方法对可变形飞行器的研究极其重要。近年来,可变形飞行器中的动网格技术研究得到重视。张来平等[7]采用基于Delaunay网格的直接插值法和局部网格重构方法实现了昆虫翼扑动的动网格变形,肖天航等[11]则采用双重Delaunay图映射方法实现了复杂构形扑翼的动网格变形。

本文一方面在弹簧法中引入弹簧倔强系数的逐层改进方法,将边界变形更好地传递到内部网格中,以改善变形后的网格质量;另一方面,通过引入背景网格和直接插值法,提出弹簧2插值法,通过减小弹簧法的求解规模来提高网格变形的效率。E1Lefrancois[12]提出了一种类似的基于背景网格的改进方法,但其主要的局限性在于所采用的弹性体法实现复杂而且计算量大。本文算例结果表明,改进后弹簧法的变形能力已能满足边界发生大变形情况下的网格变形要求。因此,本文采用了弹簧法来实现背景网格变形。

1 弹簧法及边界改进

111 半扭转弹簧法

在弹簧近似法[1]中,把整个计算网格认为是一张达到平衡的弹簧网。通过求解椭圆型平衡方程,把因为边界变形而形成的扰动均匀到整个网格中。但是,线弹簧法不能保证避免网格边的互相交叉现象。对于大变形情况,线弹簧法往往会过早出现非法网格。弹性体法因为同时考虑了网格边的伸缩和扭转作用,使网格具有较强的变形能力。因此,在弹簧法中加入表示扭转的弹簧,使网格边的扭转变形也受到约束,即半扭转弹簧法[3]。半扭转弹簧法中网格边εi j的弹簧倔强系数k i j定义为

k i j=k i j L+k i j T(1)式中:k i j L为线弹簧刚度;k i j T为扭转弹簧刚度。对于每个迭代步,在节点坐标发生变化后,都需要更新弹簧倔强系数,从而更新方程的系数矩阵。

112 弹簧倔强系数的逐层改进

F1J1Blo m[1]指出,弹簧法和椭圆型结构网格生成方法相似,由弹簧法得到的方程为椭圆型方程,即局部扰动只在局部产生影响。计算网格的变形是由边界运动引起的。因此,弹簧法所得到的计算网格中往往只有边界附近区域的网格有较大的变形。

文献[1]、文献[3]和文献[13]提出了边界改进方法,能在一定程度上提高网格变形能力,但主要存在以下局限:①仅对紧靠物面边界的网格改进;②若对网格的弹簧刚度逐层改进,需要考虑复杂的网格拓扑关系,而且计算节点到物面的最小距离将带来相当的计算量。本文提出一种新的网格弹簧倔强系数逐层改进方法,该方法不需要考虑网格复杂的拓扑结构,也不需要计算点到物面的距离。

(1)用于计算权值Ra的Delaunay网格

为了描述计算网格内部节点相对物面(内边界)的距离,将内部节点映射到计算域的Delau2 nay网格中,然后由直接插值的方法计算得到表示相对物面距离的权值Ra。

生成Delaunay网格时,所有物面网格点必须都是Delaunay网格的节点,而远场(外边界)通常只选取具有代表性的点。以NACA0012翼型为例,选取生成Delaunay网格的边界节点,如图1(a)所示;Delaunay网格生成采用快速Delaunay逐点插入生成方法[14],所生成的网格满足Delaunay特性,如图1(b)所示。

0931

 第7期周旋等:非结构动网格生成的弹簧2插值联合方法 图1 边界节点和Delaunay 网格

Fig 11 Boundary nodes and Delaunay graph

(2)计算Ra 的插值方法

为了计算表示计算网格中内部节点与物面边界相对位置的Ra ,可假设物面边界节点Ra =r 1,远场边界节点Ra =r 2。r 1和r 2为给定的已知量,需经过试算确定。如本文翼型转动算例中:

r 1=0,r 2=10。

为了计算网格内部节点的Ra ,先将内部节点映射到Delaunay 网格中,计算内部节点在其所在Delaunay 网格单元中的面积坐标(二维)。采用

随机方向算法[14]可快速地把网格内部节点映射到Delaunay 网格中。由于Delaunay 网格仅连接边界节点,其节点的Ra 均已知,由类似于有限单元法的插值方法可得到内部节点的Ra ,以下介绍具体实现方法。

查找计算网格内部节点P 所在的Delaunay 网格单元A B C ,并计算P 在单元A B C 中的面积坐标(e 1,e 2,e 3):

e i =S i

S

(i =1,2,3)(2)

S 1

=12

x P

y P 1x B y B 1x C y C 1,S 2=12

x A y A 1x P y P 1x C y C 1S 3=

12

x A

y A 1

x B y B 1x P

y P

1

,S =1

2

x A y A 1x B y B 1x C

y C

1

(3)

P 点的Ra 可由下式得到

Ra P =

3

i =1

e i

Ra i

(4)

式中:Ra i 为单元A B C 顶点的Ra 。三维情形的Ra 计算与二维类似。对于物面边界有凹区域的

计算网格,需要对凹区域的边界分别考虑,如文中可变形飞行器算例。另外,对于大变形情况,可分步完成边界的变形并在每一步计算网格变形后,

重构Delaunay 网格并更新Ra 。

(3)弹簧倔强系数的改进

对弹簧倔强系数加以改进,将半扭转弹簧法的弹簧倔强系数式(1)改写为

k i j =<(k i j L +k i j T )

(5)

式中:<为Ra 的函数,其意义是使网格单元的弹簧倔强系数随着网格节点相对物面距离的增加而

减小。<的具体形式需经试算确定。在本文翼型转动算例中,网格单元边的Ra 平均,<为网格边权值Ra 与最小边权值Ra 的比值,可理解为该边距离物面的层数。这样可以快速地实现弹簧倔强系数的逐层改进,使得远场边界附近的网格更容易变形,而物面边界的网格能保持更好的网格质量。算例表明,逐层改进的方法可以有效地提高网格变形能力和变形后的网格质量。

2 弹簧2插值法

弹簧2插值法通过引入背景网格和直接插值法,减小弹簧法的计算规模以提高网格变形效率。弹簧法仅用于求解背景网格的变形,计算网格的变形则是通过对背景网格直接插值实现。211 背景网格及其变形

文献[6]中的Delaunay 网格(见图1)仅连接远场边界的4个角点和物面所有边界节点,存在明显的“挤压”现象。尽管能快速实现背景网格变形,但对物面边界局部变形(可变形飞行器)的情况,局部变形对网格局部产生较大影响,不能将变形很好地扩散到整个计算网格中。因此,考虑在Delaunay 网格中增加内部节点,由网格生成程序

生成包含适当数量内部节点的计算域粗网格,即背景网格。为减小计算量,背景网格仅包括部分物面边界节点。如图2(a )所示,这样得到的背景网格相比Delaunay 网格要均匀得多,背景网格质量也有显著改善。由此带来的是计算网格变形后

图2 背景网格和计算网格

Fig 12 Background grid and computational mesh

1

931

航 空 学 报第31卷

质量的提高以及网格过渡的平滑,并允许更大的

变形范围,计算网格如图2(b)所示。

由于此时的背景网格包含了内部节点,所以

不能采用Delaunay网格直接移动边界节点的方

法得到背景网格的变形。本文中采用112节弹簧

倔强系数逐层改进后的半扭转弹簧法求解背景网

格的变形。显然,背景网格的单元规模远远小于

计算网格,因此弹簧法的求解规模大大减小,仅附

加生成背景网格和插值计算的工作。

212 计算网格的变形

计算网格的变形采用112节所述的插值方法,由背景网格在计算域边界变形或运动后的位移插值得到整个计算网格的变形。首先将计算网格内部节点映射到背景网格中,并计算节点在其所在的背景网格单元中的面积坐标。然后,由前面得到的面积坐标和背景网格节点的位移,插值得到计算网格内部节点的位移。插值计算是代数方法,其效率远高于迭代求解的弹簧法。

3 算 例

给出了翼型转动、矩形平动和可变形飞行器3个算例。前两个算例的目的是与现有方法及文献结果相比较,以验证本文算法的有效性。可变形飞行器算例则显示了本文算法对复杂大变形问题的处理能力。算例是在一台HP Z800工作站(Intel Xeon W5580,主频3120GHz)上完成的。

311 NACA0012翼型转动

翼型外形采用NACA0012翼型,转动步长为5°。相应的背景网格和计算网格如图2所示。背景网格节点数为273,单元数为489,计算网格节点数为1861,单元数为3530。

图3为采用弹簧2插值法得到的翼型转动75°后的计算网格的局部放大图。弹簧2插值法得到的网格质量和变形效率分别与弹簧法和直接插值法进行了比较,结果如图4和图5所示。这里直

图3 翼型转动75°后的计算网格局部放大图

Fig13 Local views of computational mesh after75°rotation

图4 翼型转动算例中弹簧2插值法与弹簧法、直接插值法的最差网格质量对比

Fig14 Comparison of the worst mesh quality of spring2 interpolation,spring analogy and interpolation

method in example of airfoil rotation

图5 翼型转动算例中弹簧2插值法与弹簧法变形效率(迭代步数)对比

Fig15 Comparison of deformation efficiency(itera2 tions)of spring2interpolation and spring ana2

logy in example of airfoil rotation

接插值法的网格变形结果是在其背景网格不重构的前提下得到的。图5中的迭代步数是指求解弹簧法中平衡方程的迭代步数。本文中的网格质量指标定义为三角形单元内切圆和外接圆半径比值的两倍。

由图4可见,随着翼型转动角度的增加,弹簧法的最差网格质量下降速度最快,最大翼型转动角为55°。在Delaunay网格不重构的前提下,直接插值法的翼型转动角度很有限,仅为30°。而弹簧2插值法的最大翼型转动角为75°。文献[13]中改进后弹簧法的最大翼型转动角为60°,文献[5]中弹簧法的最大翼型转动角为55161°,文献[2]仅给出了45°翼型转角时的网格变形图。因此,弹簧2插值法无论是网格变形能力,还是变形后的网格质量均优于弹簧法和直接插值法

2931

 第7期周旋等:非结构动网格生成的弹簧2插值联合方法 

(Delaunay网格不重构)。

由图5可知,弹簧法迭代求解中平衡方程的迭代步数与网格规模成正比。由于背景网格的网格规模远小于计算网格,背景网格求解的迭代步数也远小于计算网格。此外,背景网格每一迭代步的时间花费也远小于计算网格。因此,弹簧2插值法在计算效率上明显优于弹簧法。

312 矩形平移

考虑矩形物体在计算域内向上平动,每次平动的位移量为矩形高度的1/2,矩形的高为单位长度,计算域高度为30。背景网格、Delaunay网格和计算网格如图6所示。背景网格节点数为154,单元数为264;计算网格节点数为1062,单元数为1998。弹簧2插值法、弹簧法和直接插值法的计算网格最终变形如图7所示,x为位移量。显然,弹簧2插值法的变形能力是3种方法中最好的。与文献[5]中采用弹性体法实现的矩形平移比较,本文中矩形的平移量约为计算域高度的87%,而文献[5]中弹性体法所实现的矩形平移量约为计算域高度的80%,弹簧2插值法的网格变形能力已和弹性体法相当。由图7(a)可以看出,弹簧2插值法可以很好地控制矩形边界附近的网格质量,并将变形均匀传递到远场边界。每步变

图6 背景网格、计算网格和Delaunay网格

Fig16 Background grid,computational mesh and Delaunay graph

图7 矩形平移算例中弹簧2插值法、弹簧法和直接插值法的网格变形能力比较

Fig17 Comparison of mesh deformation ability of spring2interpolation,spring analogy and in2

terpolation method in example of rectangle

translation 形后弹簧法、直接插值法和弹簧2插值法的计算网格最差网格质量的变化和对比如图8所示,从图中可以看出采用弹簧2插值法变形后的网格质量是3种方法中最好的。

图8 矩形平移算例中弹簧2插值法与弹簧法、直接插值法的最差网格质量对比

Fig18 Comparison of the worst mesh quality in spring2 interpolation,spring analogy and interpolation

method in example of rectangle translation

313 可变形飞行器

选取美国Next Gen航空技术公司的可变形飞行器变形方案作为算例。可变形飞行器的机翼变形属大变形,且变形复杂。分6步完成该变形,对应的变形后计算网格如图9所示。计算网格节

图9 可变形飞行器的计算网格变形过程Fig19 Deforming steps of computational mesh

of a morphing aircraft

3931

航 空 学 报第31卷

点数为3093,单元数为5805。图10为最终变形

计算网格边界局部放大图,对应的背景网格和

Delaunay网格如图11所示,背景网格采用细化

凹区域后的粗网格。表1和表2分别是弹簧2插

值法、弹簧法和直接插值法的网格质量与变形效

率的比较,从表中可以看到与弹簧法相比,弹簧2

插值法在网格质量和网格变形效率上都有很大的

提高。需要注意的是,这里弹簧2插值法的背景网

格对边界凹区域局部加密,以获得质量更好的背

景网格并提高其网格变形质量。同时,本文还比

较了弹簧2插值法和直接插值法在更大网格规模

下动网格生成的网格质量和变形效率。此时,网

格节点数为54320,单元数为107190,弹簧2插值

法的背景网格节点数为1578,Delaunay背景网格

节点数为242,计算结果如表3所示。

图10 最终变形计算网格局部放大图

Fig110 Local view of final deformed computational mesh

图11 Delaunay网格和背景网格

Fig111 Delaunay graph and background grid

表1 最差网格质量的对比

T able1 Comparison of the w orst mesh qu ality

步 数

最差网格质量

弹簧法直接插值法弹簧2插值法

1013920157301588 2012110130701457 3011330114801323 4010870114001226 5010690113801167 6010370109601127

表2 网格变形的计算时间对比

T able2 Comparison of time costs of mesh deformation 步 数

计算时间/s

弹簧法直接插值法弹簧2插值法13410710103201203

23210580104701202

33211200106301203

43319770103101203

53510840103101234

63515050106301218

表3 弹簧2插值法和直接插值法的比较

T able3 Comparison betw een spring2interpolation and interpolation method

步数

直接插值法弹簧2插值法

最差网格质量时间花费/s最差网格质量时间花费/s 101434013430155961848

201189014220139561505

301081014220126061662

401082014210118961365

501060014370114261318

601045014370105961724

平均01148014140126761570由表1可见,弹簧法和直接插值法的最差网格质量均低于弹簧2插值法,本算例中直接插值法在每个时间步均重构了Delaunay网格。由表2可见,弹簧2插值法的网格变形效率远优于弹簧法,并且接近直接插值法。表3的数据表明,在较大网格规模的情况下,弹簧2插值法的网格质量仍优于直接插值法。

4 结 论

(1)本文提出了基于弹簧法的两点改进:通过Delaunay网格插值实现弹簧法的弹簧倔强系数逐层改进;提出了结合背景网格和直接插值的弹簧2插值法。

(2)弹簧倔强系数逐层改进方法采用随机方向算法能快速地将内部节点映射到Delaunay网格单元中。其计算量远远小于计算内部节点到物面的最小距离,而且不用考虑网格拓扑关系。

(3)弹簧2插值法中由内部节点和边界节点生成的背景网格不仅在网格质量和变形能力上优于Delaunay网格,而且可以局部细化所关心的区域或变形较大的边界区域,以得到更好的网格质量并提高网格变形能力。

(4)本文算例表明,弹簧2插值法不仅在网格

4931

 第7期周旋等:非结构动网格生成的弹簧2插值联合方法 

变形效率上远远优于弹簧法,而且在变形后网格质量和网格变形能力上也优于弹簧法和直接插值法。

参 考 文 献

[1] Blom F J.Considerations on t he spring analogy[J].Inter2

national Journal for Numerical Met hods in Fluids,2000,

32(6):6472668.

[2] Murayamaa M,Nakahashi K,Mat sushima K.A robust

met hod for unstructured volume/surface mesh movement

[J].Transactions of t he J apan Society for Aeronautical

and Space Sciences,2003,46(152):1042112.

[3] Zenga D,Et hier C R.A semi2torsional spring analogy

model for updating unstructured meshes in3D moving do2

mains[J].Finite Element s in Analysis and Design,2005,

41(11212):111821139.

[4] Markou G A,Mouroutis Z S.The ort ho2semi2torsional

(OST)spring analogy met hod for3D mesh moving bound2

ary problems[J].Computer met hods in Applied Mechan2

ics and Engineering,2007,196(426):7472765.

[5] 张军,谭俊杰,褚江,等.一种新的非结构动网格的生成

方法[J].南京航空航天大学学报,2005,39(5):6332

636.

Zhang J un,Tan J unjie,Chu Jiang,et al.New met hod for

generating unstructured moving grids[J].Journal of Nan2

jing University of Aeronautics and Astronautics,2005,39

(5):6332636.(in Chinese)

[6] Liu X Q,Qin N,Xia H.Fast dynamic grid deformation

based on Delaunay graph mapping[J].Journal of Compu2

tational Physics,2006,211(2):4052423.

[7] 张来平,段旭鹏,常兴华,等.基于Delaunay背景网格插

值和局部网格重构的变形体动态混合网格生成技术[J].

空气动力学学报,2009,27(1):32240.

Zhang Laiping,Duan Xupeng,Chang Xinghua,et al.A

hybrid dynamic grid generation technique for morphing

bodies based on Delaunay graph and local remeshing[J].

Acta Aerodynamica Sinica,2009,27(1):32240.(in Chi2

nese)

[8] Zhang L P,Chang X H,Duan X P,et al.A block L U2

SGS implicit unsteady incompressible flow solver on hy2

brid dynamic grids for2D external bio2fluid simulations

[J].Computers&Fluids,2009,38(2):2902308.

[9] Xiao T H,Ang H https://www.doczj.com/doc/ec14889338.html,bination of mesh deformation

and overset grid for simulating unsteadyflow of insect

flight[J].Modern Physics Letters B,2009,23(3):5252

528.[10] Rendall T C S,Allen C B.Efficient mesh motion using ra2

dial basis functions wit h data reduction algorit hms[J].

Journal of Computational Physics,2009,228(17):62312

6249.

[11] 肖天航,昂海松,周新春.柔性扑翼非定常流场的数值计

算方法[J].航空学报,2009,30(6):9902999.

Xiao Tianhang,Ang Haisong,Zhou Xinchun.Numerical

met hod for unsteady flows of flexible flapping2wings[J].

Acta Aeronautica et Astronautica Sinica,2009,30(6):

9902999.(in Chinese)

[12] Lefrancois E.A simple mesh deformation technique for

fluid2struct ure interaction based on a submesh approach

[J].International Journal for Numerical Met hods in Engi2

neering,2008,75(9):108521101.

[13] 郭正,刘君,瞿章华.非结构动网格在三维可动边界问题

中的应用[J].力学学报,2003,35(2):1412146.

Guo Zheng,Liu J un,Qu Zhanghua.Dynamic unstruc2

tured grid met hod wit h applications to3D unsteady flow

involving moving boundaries[J].Acta Mechanica Sinica,

2003,35(2):1412146.(in Chinese)

[14] 李水乡,陈斌,赵亮,等.快速Delaunay逐点插入网格生

成算法[J].北京大学学报:自然科学版,2007,43(3):

3022306.

Li Shuixiang,Chen Bin,Zhao Liang,et al.A fast mesh

generation algorit hm wit h point2by2point Delaunay inser2

tion[J].Acta Scientiarum Naturalium Universitatis Pekin2

ensis,2007,43(3):3022306.(in Chinese)

作者简介:

周璇(1986-) 女,博士研究生。主要研究方向:非结构动网格生成技术。

Tel:010*********

E2mail:zhouxuan@https://www.doczj.com/doc/ec14889338.html,

李水乡(1968-) 男,博士,副教授,博士生导师。主要研究方向:网格生成和动网格技术、填充理论和数值模拟。

Tel:010*********

E2mail:lsx@https://www.doczj.com/doc/ec14889338.html,

陈斌(1973-) 男,硕士,讲师。主要研究方向:网格生成和动网格技术、CA E、可视化。

Tel:010*********

E2mail:bc@https://www.doczj.com/doc/ec14889338.html,

(编辑:鲍亚平)

5931

建筑结构模型的四边形网格生成算法

第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页)

动网格的入门专题

题记:在学习使用Fluent的时候,有不少朋友需要使用动网格模型(Dynamic Mesh Model),因此,本版推出这个专题,进行大讨论,使大家在使用动网格时尽量少走弯路,更快更好地掌握;也欢迎使用过的版友积极参与讨论指导,谢谢! 该专题主要包括以下的主要内容: ##1. 动网格的相关知识介绍; ##2. 以NACA0012翼型俯仰振荡实例进行讲解动网格的应用过程; ##3. 与动网格应用有关的参考文献; ##4. 使用动网格进行计算的一些例子。 ##1. 动网格的相关知识介绍 有关动网格基础方面的东西,请具体参考FLUENT User’s Guide或FLUENT全攻略的相关章节,这里只给出一些提要性的知识要点。 1、简介 动网格模型可以用来模拟流场形状由于边界运动而随时间改变的问题。边界的运动形式可以是预先定义的运动,即可以在计算前指定其速度或角速度;也可以是预先未做定义的运动,即边界的运动要由前一步的计算结果决定。网格的更新过程由FLUENT 根据每个迭代步中边界的变化情况自动完成。在使用动网格模型时,必须首先定义初始网格、边界运动的方式并指定参予运动的区域。可以用边界型函数或者UDF 定义边界的运动方式。FLUENT 要求将运动的描述定义在网格面或网格区域上。如果流场中包含运动与不运动两种区域,则需要将它们组合在初始网格中以对它们进行识别。那些由于周围区域运动而发生变形的区域必须被组合到各自的初始网格区域中。不同区域之间的网格不必是正则的,可以在模型设置中用FLUENT软件提供的非正则或者滑动界面功能将各区域连接起来。 注:一般来讲,在Fluent中使用动网格,基本上都要使用到UDF,所以你最好具备一定的C语言编程基础。 2、动网格更新方法 动网格计算中网格的动态变化过程可以用三种模型进行计算,即弹簧近似光滑模型(spring-based smoothing)、动态分层模型(dynamic layering)和局部重划模型(local remeshing)。 弹簧近似光滑模型 在弹簧近似光滑模型中,网格的边被理想化为节点间相互连接的弹簧。移动前的网格间距相当于边界移动前由弹簧组成的系统处于平衡状态。在网格边界节点发生位移后,会产生与位移成比例的力,力量的大小根据胡克定律计算。边界节点位移形成的力虽然破坏了弹簧系统原有的平衡,但是在外力作用下,弹簧系统经过调整将达到新的平衡,也就是说由弹簧连接在一起的节点,将在新的位置上重新获得力的平衡。从网格划分的角度说,从边界节点的位移出发,采用虎克定律,经过迭代计算,最终可以得到使各节点上的合力等于零的、新的网格节点位置,这就是弹簧光顺法的核心思想。 原则上弹簧光顺模型可以用于任何一种网格体系,但是在非四面体网格区域(二维非三角形),最好在满足下列条件时使用弹簧光顺方法: (1)移动为单方向。 (2)移动方向垂直于边界。 如果两个条件不满足,可能使网格畸变率增大。另外,在系统缺省设置中,只有四面体网格(三维)和三角形网格(二维)可以使用弹簧光顺法,如果想在其他网格类型中激活该模型,

结构化网格和非结构化网格

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。作网格的时候,把所有的面全部合成一个虚面的做法不好,特别是对于复杂外形的网格生成,你最好在模型变化剧烈的地方多分几个面,这样会更有效的控制网格能够在模型表面曲率比较大的地方能够生成规则的结构或者非结构网格。

动网格

FLUENT6.1全攻略 图10-16 转子定子模型的静压等值线图 在显示速度矢量时,同样有绝对速度和相对速度两种形式。另外需要注意的是,后处理过程不能在交界区中的壁面、内部、周期等类型的边界上建立数据显示面(surface),但是可以在交界面上建立数据显示面,但结果将是单边的,就是只显示交界面一侧的结果。而且在跨越交接面时,等值线中可能会有细微的不连续。在画三维填充等值线时,图形中可能会出现一些小缝,但是这些缝只是图形显示问题,与解的连续性无关。 10.6 动网格模型 10.6.1 简介 动网格模型可以用来模拟流场形状由于边界运动而随时间改变的问题。边界的运动形式可以是预先定义的运动,即可以在计算前指定其速度或角速度;也可以是预先未做定义的运动,即边界的运动要由前一步的计算结果决定。网格的更新过程由FLUENT根据每个迭代步中边界的变化情况自动完成。在使用移动网格模型时,必须首先定义初始网格、边界运动的方式并指定参予运动的区域。可以用边界型函数或者UDF定义边界的运动方式。 FLUENT要求将运动的描述定义在网格面或网格区域上。如果流场中包含运动与不运动两种区域,则需要将它们组合在初始网格中以对它们进行识别。那些由于周围区域运动而发生变形的区域必须被组合到各自的初始网格区域中。不同区域之间的网格不必是正则 21

FLUENT6.1全攻略 22 的,可以在模型设置中用FLUENT 软件提供的非正则或者滑动界面功能将各区域连接起来。 10.6.2 动网格守恒方程 在任意一个控制体中,广义标量Φ的积分守恒方程为: ()∫∫∫∫??+??=??+V V Φg V V dV S A d ΦΓA d u u ρΦV ρΦd dt d G G G G (10-7) 式中ρ为流体密度,u G 为速度向量,g u G 移动网格的网格速度,Γ为扩散系数,ΦS 为 源项,V ?代表控制体V 的边界。 方程(10-7)中的时间导数项,可以用一阶后向差分格式写成: ()()t V V dV dt d n n V ΔΦ?Φ=Φ+∫ρρρ1 (10-8) 式中n 和n+1代表不同的时间层。n+1层上的V n+1由下式计算: t dt dV V V n n Δ+=+1 (10-9) 式中dV/dt 是控制体的时间导数。为了满足网格守恒定律,控制体的时间导数由下式计算: ∫∑??=?=V n j j j g g f A u A d u dt dV G G G G , (10-10) 式中n f 是控制体积的面网格数,j A G 为面j 的面积向量。点乘j j g A u G G ?,由下式计算: t V A u j j j g Δ=?δG G , (10-11) 式中j δV 为控制体积面j 在时间间隔Δt 中扫过的空间体积。 10.6.3 动网格更新方法 动网格计算中网格的动态变化过程可以用三种模型进行计算,即弹簧光滑模型、动态层模型和局部重划模型。

结构和非结构网格

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工程师的首选。非结构化六面体网格也还凑合,四面体网格我就不喜欢了。数量多,计算慢,后处理难看。简单说,如果非结构化即快又好,结构化网格早就被淘汰了。总 结一下,

动网格流沙版完美整理.

动网格 让网格动起来(1)—闲谈动网格 在固体有限元计算中,网格运动实非什么稀奇事儿。而且在绝多数固体计算的基本物理量是网格的节点位移,所以,固体计算中,网格节点运动是对的,没有运动反而不正常了。也可以这么说:正因为计算域内部节点间的相对运动,才导致了内应力的产生。 流体计算与固体完全不同。其根源在于它们使用的网格类型不同。当前固体有限元计算采用的是拉格朗日网格,而流体计算则大多数采用的欧拉网格。如果说把拉格朗日网格中的节点点看作是真实世界的物质原子的话,那么欧拉网格的节点则好比是真实世界中的一个个传感器,它们总是呆在相同的位置,真实的记录着各自位置上的物理量。正常情况下,欧拉网格系统是这样的:计算域和节点保持位置不变,发生变化的是物理量,网格节点就像一个个布置在计算域中的传感器,记录该位置上的物理量。这其实是由流体力学研究方法所决定的。宏观与微观的差异决定了固体力学计算采用拉格朗日网格,流体计算采用欧拉网格。关于这部分的详细解说,可以参阅任何一本计算流体动力学书籍。 世界是公平的。有利必有弊。朗格朗日网格适合计算节点位移,然而对于过大的网格变形却难以处理。欧拉网格生来可以处理大变形(因为节点不动),然而对于对于节点运动的处理,则是其直接软肋。然而很不幸的是,现实生活中有太多网格边界运动的实例。如汽车发动机中的气缸运动、阀门开启与关闭、机翼的运动、飞机投弹等等等等举不胜举。 计算流体动力学计算的基本物理量通常为:速度、温度、压力、组分。并不计算网格节点位移。因此要让网格产生运动,通常给节点施加的物理约束是速度。CFD中的动网格大体分为两类:(1)显式规定的网格节点速度。配合瞬态时间,即可很方便的得出位移。当然一些求解器(如FLUENT)也支持稳态动网格,这时候可以直接指定节点位移。(2)网格节点速度是通过求解得到的。如6DOF模型基本上都属于此类。用户将力换算成加速度,然后将其积分成速度。 对于第一类动网格问题,在fluent中通常可以使用profile与UDF进行网格设置,通过规定节点或区域的速度、角速度或位移等方式来显式确定网格的运动,通常大部分的动网格问题都归于此类。而对于第二类问题,通常涉及到力的计算,力在流体中通常是对压力进行积分而来。将力转换为速度或位移,一般涉及到加速度、转动惯量等物理量的计算。在fluent 中,可以使用6DOF模型进行处理,在CFX中,可以使用刚体模型(13.0以上版本才有)。在FLUENT中,动网格涉及的内容包括: (1)运动的定义。主要是PROFILE文件与UDF中的动网格宏。 (2)网格更新。FLUENT中关于网格更新方法有三种:网格光顺、动态层、网格重构。 需要详细了解这些网格更新方法的运作机理,每个参数所代表的具体含义及设置方法,每种方法的适用范围。 动网格的最在挑战来自于网格更新后的质量,避免负体积是动网格调试的主要目标。在避免负网格的同时,努力提高运动更新后的网格质量。

关于结构化网格和非结构网格的适用性问题

? 傲雪论坛 ? 『 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 听楼上一席话,胜读一年书。

Fluent 结构化网格与非结构化网格

简单地说:结构化网格只包含四边形或者六面体,非结构化网格是三角形和四面体。 结构网格再拓扑结构上相当于矩形域内的均匀网格,器节点定义在每一层的网格线上,且每一层上节点数都是相等的,这样使复杂外形的贴体网格生成比较困难。非结构网格没有规则的拓扑结构,也没有层的概念,网格节点的分布是随意的,因此具有灵活性。不过非结构网格计算的时候需要较大的内存。 在计算流体动力学中,按照一定规律分布于流场中的离散点的集合叫网格(Grid),分布这些网格节点的过程叫网格生成(Grid Generation)。网格生成对CFD至关重要,直接关系到CFD计算问题的成败。 非结构三角形网格方法 复杂外形网格生成的第二方向是最近应用比较广泛的非结构三角形网格方法,它利用三角形(二维)或四面体(三维)在定义复杂外形时的灵活性,以Delaunay法或推进波阵面法为基础,全部采用三角形(四面体)来填充二维(三维)空间,它消除了结构网格中节点的结构性限制,节点和单元的分可控性好,因而能较好地处理边界,适用于模拟真实复杂外型。非结构网格生成方法在其生成过程中采用一定的准则进行优化判断,因而能生成高质量的网格,很容易控制网格的大小和节点的密度,它采用随机的数据结构有利于进行网格自适应。一旦在边界上指定网格的分布,在边界之间可以自动生成网格,无需分块或用户的干预,而且不需要在子域之间传递信息。因而,近年来非结构网格方法受到了高度的重视,有了很大发展。 非结构网格方法的一个不利之处就是不能很好地处理粘性问题,在附面层内只采用三角形或四面体网格,其网格数量将极其巨大。现在比较好的方法就是采用混合网格技术,即先贴体生成能用于粘性计算的四边型或三棱柱网格,然后以此为物面边界,生成三角形非结构网格,但是生成复杂外型的四边形或三棱柱网格难度很大。 非结构网格方法的另一个不利之处就是对于相同的物理空间,网格填充效率不高,在满足同样流场计算条件的情况下,它产生的网格数量要比结构网格的数量大得多(一个长方体要划分为5个四面体)。随机的数据结构也增加了流场参数交换的时间,因此此方法要求较大的计算机内存,计算时间长。在物面附近,非结构网格方法,特别是对于复杂外形如凹槽、细缝等处比较难以处理。 非结构网格与结构网格一样都属于贴体网格,模型表面网格的好坏直接关系到空间网格的质量,因而它们的模型表面网格必须同时与网格拓扑结构和当地的几何外形特性相适应,为了更好地适应其中一方面,有时不得不在另一方面作出让步,因而往往顾此失彼。因此,在生成非结构网格和结构网格时,处理模型表面又成为一个关键而费时的工作。 计算精度,主要在于网格的质量(正交性,长宽比等),并不决定于拓扑(是结构化还是非结构化)。个人感觉采用结构化网格还是非结构化网格,主要看解决什么问题,如果是无粘欧拉方程的话,只要合理布局,结构和非结构都能得到较为理想的结果。但如果涉及到粘性影响的话,尤其在壁面处,结构网格有一定优势,并且其对外形适应性差的缺点,也可以通过多块拼接网格解决。事实上,目前有的非结构网格软件,也开始借鉴结构网格的优点,在壁面处进行了类似结构网格的处理,如cfx的壁面加密功能。 一般来说,网格节点走向(这里假设计算过程中物理量定义在网格节点上)贴近流动方向,那么计算的结果就要好一些。对于不是非常复杂的流动。例如气体的喷管流动,使用四边形(二维)网格就比较三角形网格要好。不过即便是四边形网格,fluent也是按照无结构网格进行处理的。 非结构和结构网格的计算结果如何取决于算法,除非网格实在惨不忍睹。我觉得现在已发展到了基于结构网格与非结构网格上的计算,各自的优势相差越来越不是很明显了。

Fluent动网格专题讨论

Fluent动网格专题讨论(-) 题记:在学习使用Fluent的时候,有不少朋友需要使用动网格模型(Dynamic Mesh Model),因此,本版推出这个专题,进行大讨论,使大家在使用动网格时尽量少走弯路,更快更好地掌握;也欢迎使用过的版友积极参与讨论指导,谢谢! 该专题主要包括以下的主要内容: ##1. 动网格的相关知识介绍; ##2. 以NACA0012翼型俯仰振荡实例进行讲解动网格的应用过程; ##3. 与动网格应用有关的参考文献; ##4. 使用动网格进行计算的一些例子。 ##1. 动网格的相关知识介绍 有关动网格基础方面的东西,请具体参考FLUENT User’s Guide或FLUENT全攻略的相关章节,这里只给出一些提要性的知识要点。 1、简介 动网格模型可以用来模拟流场形状由于边界运动而随时间改变的问题。边界的运动形式可以是预先定义的运动,即可以在计算前指定其速度或角速度;也可以是预先未做定义的运动,即边界的运动要由前一步的计算结果决定。网格的更新过程由FLUENT 根据每个迭代步中边界的变化情况自动完成。在使用动网格模型时,必须首先定义初始网格、边界运动的方式并指定参予运动的区域。可以用边界型函数或者UDF 定义边界的运动方式。FLUENT 要求将运动的描述定义在网格面或网格区域上。如果流场中包含运动与不运动两种区域,则需要将它们组合在初始网格中以对它们进行识别。那些由于周围区域运动而发生变形的区域必须被组合到各自的初始网格区域中。不同区域之间的网格不必是正则的,可以在模型设置中用FLUENT软件提供的非正则或者滑动界面功能将各区域连接起来。 注:一般来讲,在Fluent中使用动网格,基本上都要使用到UDF,所以你最好具备一定的C语言编程基础。 2、动网格更新方法 动网格计算中网格的动态变化过程可以用三种模型进行计算,即弹簧近似光滑模型(spring-based smoothing)、动态分层模型(dynamic layering)和局部重划模型(local remeshing)。 弹簧近似光滑模型 在弹簧近似光滑模型中,网格的边被理想化为节点间相互连接的弹簧。移动前的网格间距相当于边界移动前由弹簧组成的系统处于平衡状态。在网格边界节点发生位移后,会产生与位移成比例的力,力量的大小根据胡克定律计算。边界节点位移形成的力虽然破坏了弹簧系统原有的平衡,但是在外力作用下,弹簧系统经过调整将达到新的平衡,也就是说由弹簧连接在一起的节点,将在新的位置上重新获得力的平衡。从网格划分的角度说,从边界节点的位移出发,采用虎克定律,经过迭代计算,最终可以得到使各节点上的合力等于零的、新的网格节点位置,这就是弹簧光顺法的核心思想。 原则上弹簧光顺模型可以用于任何一种网格体系,但是在非四面体网格区域(二维非三角形),最好在满足下列条件时使用弹簧光顺方法: (1)移动为单方向。 (2)移动方向垂直于边界。 如果两个条件不满足,可能使网格畸变率增大。另外,在系统缺省设置中,只有四面体网格(三维)和三角形网格(二维)可以使用弹簧光顺法,如果想在其他网格类型中激活该模型,需要在dynamic-mesh-menu 下使用文字命令spring-on-all-shapes?,然后激活该选项即可。 动态层模型 对于棱柱型网格区域(六面体和或者楔形),可以应用动态层模型。动态层模型的中心思想是根据紧邻运动边界网格层高度的变化,添加或者减少动态层,即在边界发生运动时,如果紧邻边界的网格层高度增大到一定程度,就将其划分为两个网格层;如果网格层高度降低到一定程度,就将紧邻边界的两个网格层合并为一个层: 如果网格层j扩大,单元高度的变化有一临界值:

结构化网格与非结构化网格

对于连续的物理系统的数学描述,如航天飞机周围的空气的流动,水坝的应力集中等等,通常是用偏微分方程来完成的。为了在计算机上实现对这些物理系统的行为或状态的模拟,连续的方程必须离散化,在方程的求解域上(时间和空间)仅仅需要有限个点,通过计算这些点上的未知变量既而得到整个区域上的物理量的分布。有限差分,有限体积和有限元等数值方法都是通过这种方法来实现的。这些数值方法的非常重要的一个部分就是实现对求解区域的网格剖分。 网格剖分技术已经有几十年的发展历史了。到目前为止,结构化网格技术发展得相对比较成熟,而非结构化网格技术由于起步较晚,实现比较困难等方面的原因,现在正在处于逐渐走向成熟的阶段。下面就简要介绍一些这方面的情况。 1.1结构化网格 从严格意义上讲,结构化网格是指网格区域内所有的内部点都具有相同的毗邻单元。结构化网格生成技术有大量的文献资料[1,2,3,4]。结构化网格有很多优点: 1.它可以很容易地实现区域的边界拟合,适于流体和表面应力集中等方面的计算。 2.网格生成的速度快。 3.网格生成的质量好 4.数据结构简单 5.对曲面或空间的拟合大多数采用参数化或样条插值的方法得到,区域光滑,与实际的模型更容易接近。 它的最典型的缺点是适用的范围比较窄。尤其随着近几年的计算机和数值方法的快速发展,人们对求解区域的复杂性的要求越来越高,在这种情况下,结构化网格生成技术就显得力不从心了。 结构化网格的生成技术只要有: 代数网格生成方法。主要应用参数化和插值的方法,对处理简单的求解区域十分有效。PDE网格生成方法。主要用于空间曲面网格的生成。 1.2非结构化网格 同结构化网格的定义相对应,非结构化网格是指网格区域内的内部点不具有相同的毗邻单元。即与网格剖分区域内的不同内点相连的网格数目不同。从定义上可以看出,结构化网格和非结构化网格有相互重叠的部分,即非结构化网格中可能会包含结构化网格的部分。 非结构化网格技术从六十年代开始得到了发展,主要是弥补结构化网格不能够解决任意形状和任意连通区域的网格剖分的缺欠.到90年代时,非结构化网格的文献达到了它的高峰时期.由于非结构化网格的生成技术比较复杂,随着人们对求解区域的复杂性的不断提高,对非结构化网格生成技术的要求越来越高.从现在的文献调查的情况来看,非结构化网格生成技术中只有平面三角形的自动生成技术比较成熟(边界的恢复问题仍然是一个难题,现在正在广泛讨论),平面四边形网格的生成技术正在走向成熟。而空间任意曲面的三角形、四边形网格的生成,三维任意几何形状实体的四面体网格和六面体网格的生成技术还远远没有达到成熟。需要解决的问题还非常多。主要的困难是从二维到三维以后,待剖分网格的空间区非常复杂,除四面体单元以外,很难生成同一种类型的网格。需要各种网格形式之间的过度,如金字塔形,五面体形等等。 非结构化网格技术的分类,可以根据应用的领域分为应用于差分法的网格生成技术(常常成为grid generation technology)和应用于有限元方法中的网格生成技术(常常成为mesh generation technology),应用于差分计算领域的网格要除了要满足区域的几何形状要求以外,还要满足某些特殊的性质(如垂直正交,与流线平行正交等),因而从技术实现上来说就更困难一些。基于有限元方法的网格生成技术相对非常自由,对生成的网格只要满足一些形状

ICEM CFD动网格学习

FLUENT动网格教程 该专题主要包括以下的主要内容: §一、动网格的相关知识介绍; §二、以NACA0012翼型俯仰振荡实例进行讲解动网格的应用过程; §三、与动网格应用有关的参考文献; §四、使用动网格进行计算的一些例子。 §一、动网格的相关知识介绍 有关动网格基础方面的东西,请具体参考FLUENT User’s Guide或FLUENT全攻略的相关章节,这里只给出一些提要性的知识要点。 1、简介 动网格模型可以用来模拟流场形状由于边界运动而随时间改变的问题。边界的运动形式可以是预先定义的运动,即可以在计算前指定其速度或角速度;也可以是预先未做定义的运动,即边界的运动要由前一步的计算结果决定。网格的更新过程由FLUE NT 根据每个迭代步中边界的变化情况自动完成。在使用动网格模型时,必须首先定义初始网格、边界运动的方式并指定参予运动的区域。可以用边界型函数或者UDF定义边界的运动方式。FLUENT 要求将运动的描述定义在网格面或网格区域上。如果流场中包含运动与不运动两种区域,则需要将它们组合在初始网格中以对它们进行识别。那些由于周围区域运动而发生变形的区域必须被组合到各自的初始网格区域中。不同区域之间的网格不必是正则的,可以在模型设置中用FLUENT软件提供的非正则或者滑动界面功能将各区域连接起来。 注:一般来讲,在Fluent中使用动网格,基本上都要使用到UDF,所以你最好具备一定的C语言编程基础。 2、动网格更新方法 动网格计算中网格的动态变化过程可以用三种模型进行计算,即 弹簧近似光滑模型(spring-based smoothing)、 动态分层模型(dynamic layering) 局部重划模型(local remeshing)

FLUENT动网格技术简介

FLUENT动网格简介 在固体有限元计算中,网格运动实非什么稀奇事儿。而且在绝多数固体计算的基本物理量是网格的节点位移,所以,固体计算中,网格节点运动是对的,没有运动反而不正常了。也可以这么说:正因为计算域内部节点间的相对运动,才导致了内应力的产生。 流体计算与固体完全不同。其根源在于它们使用的网格类型不同。当前固体有限元计算采用的是拉格朗日网格,而流体计算则大多数采用的欧拉网格。如果说把拉格朗日网格中的节点点看作是真实世界的物质原子的话,那么欧拉网格的节点则好比是真实世界中的一个个传感器,它们总是呆在相同的位置,真实的记录着各自位置上的物理量。正常情况下,欧拉网格系统是这样的:计算域和节点保持位置不变,发生变化的是物理量,网格节点就像一个个布置在计算域中的传感器,记录该位置上的物理量。这其实是由流体力学研究方法所决定的。宏观与微观的差异决定了固体力学计算采用拉格朗日网格,流体计算采用欧拉网格。关于这部分的详细解说,可以参阅任何一本计算流体动力学书籍。 世界是公平的。有利必有弊。朗格朗日网格适合计算节点位移,然而对于过大的网格变形却难以处理。欧拉网格生来可以处理大变形(因为节点不动),然而对于对于节点运动的处理,则是其直接软肋。然而很不幸的是,现实生活中有太多网格边界运动的实例。如汽车发动机中的气缸运动、阀门开启与关闭、机翼的运动、飞机投弹等等等等举不胜举。 计算流体动力学计算的基本物理量通常为:速度、温度、压力、组分。并不计算网格节点位移。因此要让网格产生运动,通常给节点施加的物理约束是速度。CFD中的动网格大体分为两类:(1)显式规定的网格节点速度。配合瞬态时间,即可很方便的得出位移。当然一些求解器(如FLUENT)也支持稳态动网格,这时候可以直接指定节点位移。(2)网格节点速度是通过求解得到的。如6DOF 模型基本上都属于此类。用户将力换算成加速度,然后将其积分成速度。 对于第一类动网格问题,在fluent中通常可以使用profile与UDF进行网格设置,通过规定节点或区域的速度、角速度或位移等方式来显式确定网格的运动,通常大部分的动网格问题都归于此类。而对于第二类问题,通常涉及到力的计算,力在流体中通常是对压力进行积分而来。将力转换为速度或位移,一般涉及到加

结构化网格和非结构化网格

结构化网格只包含四边形或者六面体,非结构化网格是三角形和四面体。 结构网格在拓扑结构上相当于矩形域内的均匀网格,器节点定义在每一层的网格线上,且每一层上节点数都是相等的,这样使复杂外形的贴体网格生成比较困难。非结构网格没有规则的拓扑结构,也没有层的概念,网格节点的分布是随意的,因此具有灵活性。不过非结构网格计算的时候需要较大的内存。 非结构网格不利之处就是不能很好地处理粘性问题,在附面层内只采用三角形或四面体网格,其网格数量将极其巨大。现在比较好的方法就是采用混合网格技术,即先贴体生成能用于粘性计算的四边型或三棱柱网格,然后以此为物面边界,生成三角形非结构网格,但是生成复杂外型的四边形或三棱柱网格难度很大。在物面附近,非结构网格方法,特别是对于复杂外形如凹槽、细缝等处难以处理。 到空间网格的质量, 几何外形特性相适应,为了更好地适应其中一方面,有时不得不在另一方面做出让步,因而往往顾此失彼。 计算精度,主要在于网格的质量(正交性,长宽比等),并不决定于拓扑(是结构化还是非结构化)。采用结构化网格还是非结构化网格,主要看解决什么问题,如果是无粘欧拉方程的话,只要合理布局,结构和非结构都能得到较为理想的结果。但如果涉及到粘性影响的话,尤其在壁面处,结构网格有一定优势,并且其对外形适应性差的缺点,也可以通过多块拼接网格解决。目前有的非结构网格软件,也开始借鉴结构网格,如cfx的壁面加密功能。 网格节点走向(这里假设计算过程中物理量定义在网格节点上)贴近流动方向,那么计算的结果就要好一些。对于不是非常复杂的流动。例如气体的喷管流动,使用四边形(二维)网格就比三角形网格要好。不过即便是四边形网格,fluent 也是按照无结构网格进行处理的。主要是看流向是否与网格平行如果是平行的则计算中不容易出现假扩散,计算的结果就好,但是成角度的时候计算的结果搞不好就有扩散现象,所以不在于结构和非结构。 非结构和结构网格的计算结果如何取决于算法。GRIDGEN在结构网格方面有着强大的生命力,很多非常复杂的几何形状用它没问题;基于非结构网格方面的计算格式得到的结果的准确度也不次于基于结构网格的结果了。

结构化网格和非结构化网格特点

关于网格的经典文献你可以参看thomphson的Numecrial grid generation那本书,讲的有pde 和参数化代数方法.书后附有算例和代码. NURBS参数化曲线和曲面在自由曲线和曲面的cad造型广泛应用,也见到国内外的文献提到用这种方法生成网格,国内可能还没用这种方法来生成网格的实例. 如果网格生成算法感兴趣,可以看看。 关于结构和非结构网格,各有应用场合。个人比较喜欢结构网格。通过观察IDEAS中结构网格生成的步骤及要求,我觉得对于复杂的几何体,生成结构网格也是可以的,前提是采用适当的partition方法,将几何体分解成规则的基本几何体。而分解几何体是几何建模的任务。 个人感觉:生成网格的软件名目繁多,但是网格生成基本原理和算法可以归成下列所述的类别。 主要差别可能在于辅助的几何建模方法不同。网格生成应当辅以几何建模,只有与几何建模结合,才可以对复杂几何体生成高质量的网格。 网格生成的另外一个要素就是物体的参数化表示技术,当采用适当的参数化表示实体表面时,同样的网格生成技术有时候可以得到非常好的网格。NURBS是我所知道的CDA/CAM中应用较为广泛的构造复杂曲面的参数化表示技术。 不知道哪位朋友可以提供一些关于网格生成基本算法的源代码。 对于连续的物理系统的数学描述,如航天飞机周围的空气的流动,水坝的应力集中等 等,通常是用偏微分方程来完成的。为了在计算机上实现对这些物理系统的行为或状态的模拟,连续的方程必须离散化,在方程的求解域上(时间和空间)仅仅需要有限个点,通过 计算这些点上的未知变量既而得到整个区域上的物理量的分布。有限差分,有限体积和有 限元等数值方法都是通过这种方法来实现的。这些数值方法的非常重要的一个部分就是实 现对求解区域的网格剖分。 网格剖分技术已经有几十年的发展历史了。到目前为止,结构化网格技术发展得相对 比较成熟,而非结构化网格技术由于起步较晚,实现比较困难等方面的原因,现在正在处 于逐渐走向成熟的阶段。下面就简要介绍一些这方面的情况。 1.1结构化网格 从严格意义上讲,结构化网格是指网格区域内所有的内部点都具有相同的毗邻单元。 结构化网格生成技术有大量的文献资料[1,2,3,4]。结构化网格有很多优点: 1.它可以很容易地实现区域的边界拟合,适于流体和表面应力集中等方面的计算。 2.网格生成的速度快。 3.网格生成的质量好 4.数据结构简单 5.对曲面或空间的拟合大多数采用参数化或样条插值的方法得到,区域光滑,与实际 的模型更容易接近。 它的最典型的缺点是适用的范围比较窄。尤其随着近几年的计算机和数值方法的快速 发展,人们对求解区域的复杂性的要求越来越高,在这种情况下,结构化网格生成技术就 显得力不从心了。 结构化网格的生成技术只要有:代数网格生成方法。主要应用参数化和插值的方法,对处理简单的求解区域十分有效。

Fluent中的动网格

Fluent中的动网格 动网格是目前求解计算域变化问题的常用方法。参考Fluent帮助,可以知道动网格技术与一般流动计算设置的主要区别在于网格更新方法和更新域设置。这里就这两方面问题的一点体会作一简单记录。 一、网格更新方法 弹簧近似光滑法将任意两网格节点之间的连线理想地看成一条弹簧,并通过近似弹簧的压缩或拉伸实现网格和计算域的改变。该方法网格拓扑不变,无需网格的插值处理,对结构化(四边形、六面体)和非结构化(三角形、四面体)网格同样适用。但不适合于大变形情况,当计算区域变形较大时,变形后的网格质量变差,严重影响计算精度。 动态分层法在运动边界相邻处根据运动规律动态增加或减少网格层数,以此来更新变形区域的网格。该方法适用于结构化网格,通过设置适当的分层和缩减系数,更新后的网格依然为较为均匀的结构化网格,对计算精度影响较小。对于运动域具有多自由度和任意变形情况,该方法处理起来非常困难。 网格重生方法在整个网格更新区域内依据设定的最大和最小网格尺寸判断需要进行网格重生的网格,并依据设置的更新频率进行网格重生处理。该方法适用于非结构化网格,能够较好的应用于任意变形的计算区域处理。 二、更新域设置 更新域设置是动网格设置中的一项重要工作,最常用的设置是刚体运动域和变形域,这里针对这两种域的设置注意事项和技巧作一简单介绍。 1、域动网格 一般来讲,设置为刚体运动域的区域一般为壁面类边界,通过设置固壁的运动,模拟计算域内物体的运动。 由于固壁边界有时形状较为复杂,壁面附近网格尺度与周围网格尺度存在较大差别,网格更新时变形较大。在这种情况下,可以设置一个包含固壁运动边界的计算域,通过该计算域的整体运动模拟域内物体的运动,在有的地方将这种方法称为域动网格法。在域动网格法中,需要设置包含运动物体的内部计算域、内部计算域界面均为刚体运动域。如下图所示。

相关主题
文本预览
相关文档 最新文档