搜档网
当前位置:搜档网 › 动网格学习方法

动网格学习方法

动网格学习方法
动网格学习方法

题记:在学习使用Fluent的时候,有不少朋友需要使用动网格模型(Dynamic Mesh M odel),因此,本版推出这个专题,进行大讨论,使大家在使用动网格时尽量少走弯路,更快更好地掌握;也欢迎使用过的版友积极参与讨论指导,谢谢!

该专题主要包括以下的主要内容:

§一、动网格的相关知识介绍;

§二、以NACA0012翼型俯仰振荡实例进行讲解动网格的应用过程;

§三、与动网格应用有关的参考文献;

§四、使用动网格进行计算的一些例子。

§一、动网格的相关知识介绍

有关动网格基础方面的东西,请具体参考FLUENT User’s Guide或FLUENT全攻略的相关章节,这里只给出一些提要性的知识要点。

1、简介

动网格模型可以用来模拟流场形状由于边界运动而随时间改变的问题。边界的运动形式可以是预先定义的运动,即可以在计算前指定其速度或角速度;也可以是预先未做定义的运动,即边界的运动要由前一步的计算结果决定。网格的更新过程由FLUENT 根据每个迭代步中边界的变化情况自动完成。在使用动网格模型时,必须首先定义初始网格、边界运动的方式并指定参予运动的区域。可以用边界型函数或者UDF 定义边界的运动方式。FLUENT 要求将运动的描述定义在网格面或网格区域上。如果流场中包含运动与不运动两种区域,则需要将它们组合在初始网格中以对它们进行识别。那些由于周围区域运动而发生变形的区域必须被组合到各自的初始网格区域中。不同区域之间的网格不必是正则的,可以在模型设置中用FLUENT软件提供的非正则或者滑动界面功能将各区域连接起来。

注:一般来讲,在Fluent中使用动网格,基本上都要使用到UDF,所以你最好具备一定的C语言编程基础。

2、动网格更新方法

动网格计算中网格的动态变化过程可以用三种模型进行计算,即弹簧近似光滑模型(spr ing-based smoothing)、动态分层模型(dynamic layering)和局部重划模型(local reme shing)。

弹簧近似光滑模型

原则上弹簧光顺模型可以用于任何一种网格体系,但是在非四面体网格区域(二维非三角形),最好在满足下列条件时使用弹簧光顺方法:

(1)移动为单方向。

(2)移动方向垂直于边界。

如果两个条件不满足,可能使网格畸变率增大。另外,在系统缺省设置中,只有四面体网格(三维)和三角形网格(二维)可以使用弹簧光顺法,如果想在其他网格类型中激活该模型,需要在dynamic-mesh-menu 下使用文字命令spring-on-all-shapes?,然后激活该选项即可。

动态分层模型

动态分层模型的应用有如下限制:

(1)与运动边界相邻的网格必须为楔形或者六面体(二维四边形)网格。

(2)在滑动网格交界面以外的区域,网格必须被单面网格区域包围。

(3)如果网格周围区域中有双侧壁面区域,则必须首先将壁面和阴影区分割开,再用滑动交界面将二者耦合起来。

(4)如果动态网格附近包含周期性区域,则只能用FLUENT 的串行版求解,但是如果周期性区域被设置为周期性非正则交界面,则可以用FLUENT 的并行版求解。

如果移动边界为内部边界,则边界两侧的网格都将作为动态层参与计算。如果在壁面上只有一部分是运动边界,其他部分保持静止,则只需在运动边界上应用动网格技术,但是动网格区与静止网格区之间应该用滑动网格交界面进行连接。

局部网格重划模型

需要注意的是,局部网格重划模型仅能用于四面体网格和三角形网格。在定义了动边界面以后,如果在动边界面附近同时定义了局部重划模型,则动边界上的表面网格必须满足下列条件:

(1)需要进行局部调整的表面网格是三角形(三维)或直线(二维)。

(2)将被重新划分的面网格单元必须紧邻动网格节点。

(3)表面网格单元必须处于同一个面上并构成一个循环。

(4)被调整单元不能是对称面(线)或正则周期性边界的一部分。

动网格的实现在FLUENT 中是由系统自动完成的。如果在计算中设置了动边界,则FLUE NT 会根据动边界附近的网格类型,自动选择动网格计算模型。如果动边界附近采用的是四面体网格(三维)或三角形网格(二维),则FLUENT 会自动选择弹簧光顺模型和局部重

划模型对网格进行调整。如果是棱柱型网格,则会自动选择动态层模型进行网格调整。在静止网格区域则不进行网格调整。

动网格问题中对于固体运动的描述,是以固体相对于重心的线速度和角速度为基本参数加以定义的。既可以用型函数定义固体的线速度和角速度,也可以用UDF 来定义这两个参数。同时需要定义的是固体在初始时刻的位置。

注:这一小节主要讲述了动网格的更新方法,最好能掌握,尤其是各种方法的适用范围,通常来讲,在一个case中,我们使用的更新方法都是根据网格类型以及和要实现的运动来选择的,很多时候都是几种更新方法搭配起来使用的。总结一下:

使用弹簧近似光滑法网格拓扑始终不变,无需插值,保证了计算精度。但弹簧近似光滑法不适用于大变形情况,当计算区域变形较大时,变形后的网格会产生较大的倾斜变形,从而使网格质量变差,严重影响计算精度。动态分层法在生成网格方面具有快速的优势,同时它的应用也受到了一些限制。它要求运动边界附近的网格为六面体或楔形,这对于复杂外形的流场区域是不适合的。使用局部网格重划法要求网格为三角形(二维)或四面体(三维),这对于适应复杂外形是有好处的,局部网格重划法只会对运动边界附近区域的网格起作用。

3、动网格问题的建立

设置动网格问题的步骤中需要注意的如下:

在Solver(求解器)面板中选择非定常流(unsteady)计算;设定边界条件,即设定壁面运动速度;激活动网格模型,并设定相应参数;指定移动网格区域的运动参数;保存算例文件和数据文件;预览动网格设置,菜单操作为:Solve -> Mesh Motion...;应用自动保存功能保存计算结果,在动网格计算中,因为每个计算步中网格信息都会改变,而网格信息是储存在算例文件中的,所以必须同时保存算例文件和数据文件;如果想建立网格运动的动画过程,可以在Solution Animation(计算结果动画)面板中进行相关设置。

注:在这一步中,需要提醒一下,使用动网格进行正式计算之前,最好养成预览动网格更新的习惯;就是在正式计算前,浏览一下动网格的更新情况,这样可以避免在计算过程中出现动网格更新本身的问题。在预览更新时,很多人都说会出现负体积的警告,更新不成功,出现这样的问题时,最好先把时间步长改的更小点儿试试,一般来讲,排除UDF本身的原因,出现更新出错的原因都与时间步长有关,这需要结合所使用的更新方法多琢磨。

4、设定动网格参数

为了使用动网格模型,需要在dynamic mesh(动网格)面板中激活Dynamic Mesh(动网格)选项。如果计算的是活塞运动,则同时激活In-Cylinder(活塞)选项。然后选择动网格模型,并设置相关参数。

1)选择网格更新模型

在Mesh Methods(网格划分方法)下面选择Smothing(弹簧光顺模型),Layering (动态层模型)和(或)Remshing(局部网格重划模型)。

2)设置弹簧光顺参数

激活弹簧光顺模型,相关参数设置位于Smoothing(光顺)标签下,可以设置的参数包括Spring Constant Factor(弹簧弹性系数)、Boundary Node Relaxation(边界点松弛因子)、Convergence Tolerance(收敛判据)和Number of Iterations(迭代次数)。弹簧弹性系数应该在0 到1 之间变化,弹性系数等于0 时,弹簧系统没有耗散过程,在图中算例中,靠近壁面的网格没有被改变,而是保持了原来的网格形状和密度;在弹性系数等于1 时,弹簧系统的耗散过程与缺省设置相同,从图中可以发现壁面发生变形,壁面附近网格因为过度加密而质量下降。因此在实际计算中应该在0 到1 之间选择一个适当的值。边界点松弛因子用于控制动边界上网格点的移动。当这个值为零时,边界节点不发生移动;在这个值为1 时,则边界节点的移动计算中不采用松弛格式。在大多数情况下,这个值应该取为0 到1 之间的一个值,以保证边界节点以合适的移动量发生移动。

收敛判据就是网格节点移动计算中,迭代计算的判据。迭代次数是指网格节点移动计算的最大迭代次数。

3)动态分层

在Layering(动态分层)标签下,可以设置与动态层模型相关的参数。通过设定Const ant Height(常值高度)与Constant Ratio(常值比例)可以确定分解网格的两种方法。S plit Factor(分割因子)和Collapse Factor(合并因子)则分别为上面介绍的alpha_s和a lpha_c。

4)局部网格重新划分网格

在Remeshing(重划网格)标签下,设置与局部重划模型相关的参数。可以设置的参数包括Maximum Cell Skewness(最大畸变率)、Maximum Cell Volume(最大网格体积)和Minimum Cell Volume(最大网格体积),其含义如前所述,主要用于确定哪些网格需要被重新划分。在缺省设置中,如果重新划分的网格优于原网格,则用新网格代替旧网格;否则,将保持原网格划分不变。如果无论如何都要采用新网格的话,则可以在Options(选

项)下面选择Must Improve Skewness(必须改善畸变率)选项。如果Options(选项)下面的Size Function(尺寸函数)被激活,则还可以用网格尺寸分布函数标志需要重新划分的网格。假设在某点附近的理想网格尺寸为L ,而某个网格的尺寸为L' ,如果:

L’不属于[0.8*gamma*L,1.25*gamma*L]则网格被标志为需要重新划分的网格,并在随后的计算中被重新划分。式中的gamma 用下面的公式计算:

当alpha>0时,gamma=1+alpha*d_b^(1+2*beta)

当alpha<0时,gamm a=1+alpha*d_b^[(1-beta)^-1]

式中d_b为网格到壁面边界的最小距离,alpha和beta就是需要设置的Size Function Variation(尺寸函数增量)和Size Function Rate(尺寸函数变化率)。

以上两式中,alpha以边界网格尺寸为基准控制内部网格的大小,alpha等于0.5表示内部网格的尺寸至少是边界网格的1.5倍,alpha等于-0.5表示内部网格的尺寸等于边界网格的0.5倍,如果alpha等于0则表示内部网格与边界网格大小相同;bata的取值在-1到1之间,用于控制网格从边界到内部区域的变化速率。Beta取正值表示网格变化速率较慢取负值则表示变化速率较快,取0 则表示网格从边界到内部区域呈线性变化。

另外一个选项Size Function Resolution(尺寸函数分辨率)用于定义尺寸分布函数对网格大小的分辨率,其参照值是最小网格尺寸。

点击Use defaults(使用缺省值)按钮,可以恢复系统缺省设置。

5)设定活塞运动参数

如果在计算中选择使用In-cylinder(活塞)模型,需要指定Crank Shaft Speed(曲柄速度)、Starting Crank Speed(曲柄起始速度)、Crank Period(曲柄周期)以及Cran k Angle Step Size(曲柄角度时间步长)。

FLUENT 中还提供一个内建函数用于计算活塞位置。这个函数的自变量为曲柄转角,如果选用这个函数,还需要指定Piston Stroke(活塞行程)和Connecting Rod Length(连接杆长度)二个参数。

注:以上的一些参数设定对动网格的更新质量影响很大,如果设置不当,可能引起更新不成功,如果不清楚这些设定因子对更新的影响,可以固定一些参数调节一两个参数查看效果。另外,在这些更新方法中比较容易出问题的就是Remeshing方法中的一些参数设定:Remeshing中的参数Minimum length scale和Maximum Length Scale,这两个参数你

可以参考mesh scale info中的值,仅是参考,因为mesh scale info中的值是整个网格的评价值,设置的时候看一下动网格附近的网格和整个网格区域的大小比较,然后确定这两个参数,一般来讲,动网格附近的网格较密,这些值都比整体的小,所以在设置时通常设置为比mesh scale info中的Minimum length scale大一点,比Maximum Length Scale小一点。

5、定义动网格的运动方式

在计算动网格问题时,必须定义动网格区的运动方式。在动网格区为刚体运动时,可以用型函数和UDF 来定义其运动;在动网格区为变形区域时,则需要定义其几何特征及局部网格重划参数;如果动网格区既做刚体运动又有变形发生,则只能用UDF 来定义其几何形状的变化和运动过程。

上述定义在Dynamic Zones(动态区域)面板中设置,在这个面板中可以修改动态区域的设置、计算刚体运动区域的重心或删除一个动态区域。方法是首先在Dynamic Zones (动态区域)列表中选择一个动网格区,然后修改其设置参数,或计算其重心,或进行删除操作,最后点击Create(创建)按钮保存设置。

对于新加入的区域,需要先从Zone Names(区域名称)下选择相关区域,然后在Typ e(类型)下选择其运动类型。可供选择的运动类型包括Stationary(静止)、Rigid Body (刚体运动)、Deforming(变形)和User-Defined(用户自定义)四种。

补充资料:FLUENT三种动边界控制实现方法

1) void DEFINE_CG_MOTION (UDFname,Dynamic_Thread * dt,real vel[ ], real omega[ ], real time,real dtime)。

此函数接口用于控制刚体的运动,用户把刚体质心运动速度和角速度分别赋值给vel和o mega, FLUENT根据它们的值来自动计算出边界下一步的位置,从而实现动边界的控制; 刚体质心的位置可以在函数接口界面对话框中定义。Dynamic Zones中的dwall就是要控制的动边界,Motion UDF/Profile中的就是UDFname,从中可看出它已被制定成用于控制dw all,理论上FLUEN T可以通过这种方式实现无穷多个动边界的控制; C.G.Location用于设定初始位置的质心,C.G.Orientation用于设定刚体的初始角度。一般适用于刚体本身不变形的运动。

2) void DEFINE_GEOM(char name,Domain * d,Dynamic_Thread * dt,real * po sition)。

此函数接口用于控制变形体的边界运动, position就是运动边界上某网格节点的位置值,用户可以通过对其赋值达到控制效果, position [0]对应边界节点的x坐标, position [1]对应y 坐标, position [2]对应z坐标; FLUENT自动遍历所有的边界节点,因此适用于有规律的可以用函数描述的运动边界。

3) void DEFINE_ GRID_MOTION(name,d,dt,time,dtime)。

此函数接口也用于控制形体的边界运动。主要用于更加复杂的控制,用户需要自己利用FLUENT提供的其他函数来遍历运动边界上的节点,并对其位置进行控制,因此UDF编程比前面两种复杂得多。它甚至可以事先生成好边界数据,在计算中把数据读入,完成复杂形体控制。

6、预览动网格

在设置好动网格模型及动网格区的运动方式后,可以通过预览的方式检查设置效果。预览功能在Mesh Motion(网格运动)面板中进行设置,启动这个面板的菜单操作为:Solve -> Mesh Motion...

预览操作步骤如下:

(1)在参数设置完毕后,首先保存算例(case)文件。因为与网格设置有关的记录都保存在算例文件中,在预览过程中伴随着网格的更新,与网格有关的记录也不断被刷新,如果不进行保存,则无法恢复原始设置状态,在发现参数设置问题后就无法进行更改了。

(2)设置迭代时间步数和时间步长。在计算过程中,当前时间将被显示在Current Me sh Time(当前网格时间)栏中。如果在计算中选用了活塞模型选项,则时间步长用曲柄速度(shaft speed)和曲柄转动步长(crank angel step size)计算得出。

(3)为了在图形窗口中预览网格变化过程,需要激活Display Options(显示选项)下的Display Grid(显示网格),并在Display Frequency(显示频率)中设置显示频率,即每分钟显示图幅数量。如果要保存显示的图形,则同时激活Save Hardcopy(保存硬拷贝)选项。

(4)点击Preview(预览)按钮开始预览。

在定义了活塞运动时,活塞运动的预览是在IC Zone Motion(活塞运动)面板中实现的,激活这个面板的菜单操作为:Display -> IC Zone Motion...

预览操作的具体步骤为:

(1)在Display Grid(显示网格)面板中选择准备预览的网格区域。

(2)在IC Zone Motion(网格运动)面板中,设置曲柄角度增量(Increment)和迭代步数(Number of Steps)。

(3)点击Preview(预览)按钮开始预览。

注:在动网格的建立内容中,已经说到了预览动网格在整个计算之中的重要性,请参考。

§二、以NACA0012翼型俯仰振荡实例进行讲解动网格的应用过程;

首先需要声明的是,这个例子也是来源于网络,原作者不详,在此向他表示感谢。

1、问题描述

本例是想对作简谐振荡运动的NACA0012翼型的气动特性(升力系数,阻力系数和力矩系数)进行数值计算,来流速度为V,攻角的变化规律为:

Alpha(t)=A/2*sin(omega*t)

其中,A=10度,omega=10*pi 弧度/秒。

2、该例需要使用动网格来实现,首先需要编写刚体运动UDF实现翼型的俯仰运动,由于在FLUENT的UDF中只能指定速度,角速度;所以,需要将攻角对时间求导,得到转动角速度的规律:

D(alpha)/dt=A*omega/2*cos(omega*t)

编写的UDF在附件中。

3、由于本例只是为了讲述动网格的实现,至于其他方面的设置及分析就不再讨论;这里详细讲述下动网格的建立以及动网格的预览的结果。步骤如下:

1)将mesh文件读入到FLUENT中,Grid:check,scale…,Smooth/Swap…;Displ ay Grid;

2)定义求解器为,Define:pressure-based,2D,unsteady,Implicit,Green-Gauss Node Based(因本例使用的是三角形单元).

3)编译UDF,Define->User-Defined->Functions->Complied…

此时打开了Complied UDFs的窗口,Add…在选择UDF的对话框中找到NACA0012D M文件夹中的airfoil.c文件,选中,ok;此时返回到Complied UDFs的窗口点击Build,FLUENT开始进行编译,可以在FLUENT窗口看到编译的一些过程提示;等编译完成,点击Load;就将已经编译好的UDF加载到FLUENT中了。

4)定义动网格参数,Define->Dynamic Mesh(选勾,激活动网格模型)->Parameter s…

此时打开了Dynamic Mesh Parameters 窗口,在Models中只选取Dynamic Mesh,本例的网格类型为三角形单元,要实现的运动为小幅度的转动,因此选用的动网格更新方法为Smoothing+Remeshing;开始依次对这两种更新方法进行参数设定:

Smoothing中的参数设定:

Spring Constant Factor(弹簧倔强系数),该值设定为一个较小的值,在0.01到0.1之间,本例选取0.08;

Boundary Node Relaxation(边界节点松弛),设定为0.5;

Convergence Tolerance(收敛判据),保持默认的0.001;

Number of Iterations(迭代次数),保持默认的20;

Remeshing中的参数设定:

为了得到较好的网格更新,本例在使用局部网格重新划分方法时,使用尺寸函数,也就是Remeshing+Must Improve Skewness+Size Function的策略。

将Minimum Length Scale及Maximum Length Scale均设置为0,为了使所有的区域都被标记重新划分;

Maximum Cell Skewness(最大单元畸变),参考Mesh Scale Info…中的参考值0.5 1,将其设定为0.4,以保证更新后的单元质量;

Size Remesh Interval(依照尺寸标准重新划分的间隔),将这个值设定为1,在FLU ENT,不满足最大网格畸变的网格在每个时间步都会被标记,而后重新划分,而不满足最小,最大及尺寸函数的网格,只有在Current Time=(Size Remesh Interval)*delta t的时候,才根据这些尺寸的标准标记不合格的单元进行重新划分,为了保证每步的更新质量,将其修改为1,就是每个时间都根据尺寸的标准标记及更新网格。

Size Function Resolution(尺寸函数分辨率),保持默认的3;

Size Function Variation(尺寸函数变量):建议使用一个小值,在0.1到0.5之间,本例将其设置为0.3;

Size Function Rate(尺寸函数变化率),保持默认的0.3。

5)定义动网格区域,Define->Dynamic Mesh->Zones…

此时打开了Dynamic Mesh Zones窗口,本例是使用UDF控制翼型上下边的刚体运动,因此,在Zone Names的下拉菜单中选中airfoil的边界,在Type中选择Rigid Body,而编译好的airfoil UDF已经在Motion UDF/Profile中了,不用管它;在Center of Gravit y Location中定义刚体重心的初始位置(在这里其实该坐标就是转动点坐标,翼型绕这个

点俯仰,本应该设定在1/4弦线点,但由于不清楚模型情况,在此让翼型绕原点俯仰。);Center of Gravity Orientation定义重力在惯性系中的方向,均保持默认,这两项如果需要跟踪物体运动的质心位置变化规律则比较有用,如在6DOF中,这里由于不清楚模型情况,保持默认。Meshing Options中Cell Height设定为0.001,用于定义局部网格重新划分时与边界相邻网格的理想尺寸,由于不知道网格划分间距,大致填写。

到此,动网格已经定义完成,接下来,预览动网格更新情况。

6)预览动网格,Solve->Mesh Motion…设置Time Step Size(时间步长)为0.001秒,Number of Time Steps(时间步数)设置为400,之后点击Preview就可以看动网格的更新情况了。

初始网格如图:

此主题相关图片如下:

由以上的图可以看出,此次网格更新的质量很好,可以用于计算。

4、关于计算的其他设置,不再介绍。

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扩大,单元高度的变化有一临界值:

FLUENT 动网格教程

FLUENT动网格教程 摘自https://www.sodocs.net/doc/3f5452540.html,/dvbbs/dispbbs.asp?boardid=61&id=1396题记:在学习使用Fluent的时候,有不少朋友需要使用动网格模型(Dynamic Me sh Model),因此,本版推出这个专题,进行大讨论,使大家在使用动网格时尽量少走弯路,更快更好地掌握;也欢迎使用过的版友积极参与讨论指导,谢谢!。 该专题主要包括以下的主要内容: §一、动网格的相关知识介绍; §二、以NACA0012翼型俯仰振荡实例进行讲解动网格的应用过程; §三、与动网格应用有关的参考文献; §四、使用动网格进行计算的一些例子。 §一、动网格的相关知识介绍 有关动网格基础方面的东西,请具体参考FLUENT User’s Guide或FLUENT全攻略的相关章节,这里只给出一些提要性的知识要点。 1、简介 动网格模型可以用来模拟流场形状由于边界运动而随时间改变的问题。边界的运动形式可以是预先定义的运动,即可以在计算前指定其速度或角速度;也可以是预先未做定义的运动,即边界的运动要由前一步的计算结果决定。网格的更新过程由FLUE NT 根据每个迭代步中边界的变化情况自动完成。在使用动网格模型时,必须首先定义初始网格、边界运动的方式并指定参予运动的区域。可以用边界型函数或者UDF定义边界的运动方式。FLUENT 要求将运动的描述定义在网格面或网格区域上。如果流场中包含运动与不运动两种区域,则需要将它们组合在初始网格中以对它们进行识别。那些由于周围区域运动而发生变形的区域必须被组合到各自的初始网格区域中。不同区域之间的网格不必是正则的,可以在模型设置中用FLUENT软件提供的非正则或者滑动界面功能将各区域连接起来。 注:一般来讲,在Fluent中使用动网格,基本上都要使用到UDF,所以你最好具备一定的C语言编程基础。

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

Fluent中的动网格

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

一个动网格的例子

一个动网格的例子 BY HOTSON 花了一个下午的时间看了一点关于动网格的培训资料,颇受启发,于是想自己做一个例子,问题描述如下: 一个10cm*10cm 的二维空间,顶部有一个2cm 的开口,其余全部为壁面,其中底下的壁面上下往返运动(见profile 文件),里面充满空气air ,想要模拟出类似于针筒抽吸空气的效果。模型及其网格如图1所示,网格大小为0.4mm 。 图1 模型以及网格 以下详细描述fluent 中关于动网格的设定 首先,导入网格,当然注意单位的换算啦,按系统默认的m 作为单位,因此进行scale ,如图 2 图2 单位确定 出口 静止壁面 变形壁面 运动壁面

模型(model)以及材料(material)按默认的不做修改。勾选Dynamic Mesh,以及remeshing,如图3 图3 选择动网格模型 Smoothing和remeshing的设定都先采用默认的值,如图4 图4 动网格策略设定 下面,建立动网格区域(Dynamic mesh zone) 顶面和出口面均设定为静止网格(stationary),在mesh option中,cell height设定为0.0004m(即初始网格的大小,官方教程建议如此设定),如图5所示

A 顶面 B 出口面 图5 静止网格的设定 由于地面上下往复运动时,侧壁是变形的,因此两个侧壁设定为变形区域(deforming),将maximum length scale设定为0.01(当然,你也可以尝试其他值),maximum skewness设定为0.75。官方教程建议对于三角形网格,remeshing 的最大畸变度设定为0.75。如图6所示 图6 变形网格的设定 将底面设定为运动壁面,运动类型为刚体运动(Rigid body),同样cell height设

Fluent建模教程

目录 1.理论知识 1.1Gambit软件的介绍 1.2Fluent软件的介绍 1.3Exceed.13+Gambit.V 2.4.06+Fluent.6.3安装介绍 2.建模过程 2.1Gambit 启动 2.2建立几何模型 3.网格划分 3.1划分网格 3.2检查网格划分情况 3.3设置边界类型 3.4输出网格文件 4.计算求解 4.1检查网格并定义长度单位 4.2设置计算模型 4.3设置流体材料属性 4.4设置边界条件 4.5求解初始化 4.6设置残差监视 4.7保存case文件 4.8求解计算 4.9保存计算结果 5.后期处理 5.1读入case和data文件 5.2显示网格 5.3创建相关面 5.4计算各单电池获得的质量流率 5.5绘制图表 6.参考链接

第一章理论知识 1.1Gambit软件的介绍 GAMBIT是为了帮助分析者和设计者建立并网格化计算流体力学(CFD)模型和其它科学应用而设计的一个软件包。GAMBIT通过它的用户界面(GUI)来接受用户的输入。GAMBIT GUI简单而又直接的做出建立模型、网格化模型、指定模型区域大小等基本步骤,然而这对很多的模型应用已是足够了。 面向CFD分析的高质量的前处理器,其主要功能包括几何建模和网格生成。由于GAMBIT本身所具有的强大功能,以及快速的更新,在目前所有的CFD前处理软件中,GAMBIT稳居上游。 GAMBIT软件具有以下特点: ☆ACIS内核基础上的全面三维几何建模能力,通过多种方式直接建立点、线、面、体,而且具有强大的布尔运算能力,ACIS内核已提高为ACIS R12。该功能大大领先于其它CAE软件的前处理器; ☆可对自动生成的Journal文件进行编辑,以自动控制修改或生成新几何与网格; ☆可以导入PRO/E、UG、CATIA、SOLIDWORKS、ANSYS、PATRAN等大多数CAD/CAE软件所建立的几何和网格。导入过程新增自动公差修补几何功能,以保证GAMBIT与CAD软件接口的稳定性和保真性,使得几何质量高,并大大减轻工程师的工作量; ☆新增PRO/E、CATIA等直接接口,使得导入过程更加直接和方便; ☆强大的几何修正功能,在导入几何时会自动合并重合的点、线、面;新增几何修正工具条,在消除短边、缝合缺口、修补尖角、去除小面、去除单独辅助线和修补倒角时更加快速、自动、灵活,而且准确保证几何体的精度; ☆G/TURBO模块可以准确而高效的生成旋转机械中的各种风扇以及转子、定子等的几何模型和计算网格; ☆强大的网格划分能力,可以划分包括边界层等CFD特殊要求的高质量网格。GAMBIT中专用的网格划分算法可以保证在复杂的几何区域内直接划分出高质量的四面体、六面体网格或混合网格; ☆先进的六面体核心(HEXCORE)技术是GAMBIT所独有的,集成了笛卡尔网格和非结构网格的优点,使用该技术划分网格时更加容易,而且大大节省网格数量、提高网格质量; ☆居于行业领先地位的尺寸函数(Size function)功能可使用户能自主控制网格的生成过程以及在空间上的分布规律,使得网格的过渡与分布更加合理,最大限度地满足CFD分析的需要;

动网格相关知识--1

https://www.sodocs.net/doc/3f5452540.html,/dvbbs/dispbbs.asp?boardid=61&Id=1396 题记:在学习使用Fluent的时候,有不少朋友需要使用动网格模型(Dynamic Mesh M odel),因此,本版推出这个专题,进行大讨论,使大家在使用动网格时尽量少走弯路,更快更好地掌握;也欢迎使用过的版友积极参与讨论指导,谢谢! 该专题主要包括以下的主要内容: §一、动网格的相关知识介绍; §二、以NACA0012翼型俯仰振荡实例进行讲解动网格的应用过程; §三、与动网格应用有关的参考文献; §四、使用动网格进行计算的一些例子。 §一、动网格的相关知识介绍 有关动网格基础方面的东西,请具体参考FLUENT User’s Guide或FLUENT全攻略的相关章节,这里只给出一些提要性的知识要点。 1、简介 动网格模型可以用来模拟流场形状由于边界运动而随时间改变的问题。边界的运动形式可以是预先定义的运动,即可以在计算前指定其速度或角速度;也可以是预先未做定义的运动,即边界的运动要由前一步的计算结果决定。网格的更新过程由FLUENT 根据每个迭代步中边界的变化情况自动完成。在使用动网格模型时,必须首先定义初始网格、边界运动的方式并指定参予运动的区域。可以用边界型函数或者UDF 定义边界的运动方式。FLUENT 要求将运动的描述定义在网格面或网格区域上。如果流场中包含运动与不运动两种区域,则需要将它们组合在初始网格中以对它们进行识别。那些由于周围区域运动而发生变形的区域必须被组合到各自的初始网格区域中。不同区域之间的网格不必是正则的,可以在模型设置中用FLUENT软件提供的非正则或者滑动界面功能将各区域连接起来。 注:一般来讲,在Fluent中使用动网格,基本上都要使用到UDF,所以你最好具备一定的C语言编程基础。 2、动网格更新方法 动网格计算中网格的动态变化过程可以用三种模型进行计算,即弹簧近似光滑模型(spr ing-based smoothing)、动态分层模型(dynamic layering)和局部重划模型(local reme shing)。 弹簧近似光滑模型 原则上弹簧光顺模型可以用于任何一种网格体系,但是在非四面体网格区域(二维非三

fluent 动网格

Remeshing方法中的一些参数设定:Remeshing中的参数Minimum length scale和Maximum Length Scale,这两个参数你可以参考mesh scale info中的值,仅是参考,因为mesh scale info中的值是整个网格的评价值,设置的时候看一下动网格附近的网格和整个网格区域的大小比较,然后确定这两个参数,一般来讲,动网格附近的网格较密,这些值都比整体的小,所以在设置时通常设置为比mesh scale info中的Minimum length scale大一点,比Maximum Length Scale小一点。 以上是一般来讲的设置思路。下面是我在NACA0012翼型动网格例子中的设置: Remeshing中的参数设定: 为了得到较好的网格更新,本例在使用局部网格重新划分方法时,使用尺寸函数,也就是Remeshing+Must Improve Skewness+Size Function的策略。 将Minimum Length Scale及Maximum Length Scale均设置为0,为了使所有的区域都被标记重新划分; Maximum Cell Skewness(最大单元畸变),参考Mesh Scale Info…中的参考值0.51,将其设定为0.4,以保证更新后的单元质量; Size Remesh Interval(依照尺寸标准重新划分的间隔),将这个值设定为1,在FLUENT,不满足最大网格畸变的网格在每个时间步都会被标记,而后重新划分,而不满足最小,最大及尺寸函数的网格,只有在Current Time=(Size Remesh Interval)*delta t的时候,才根据这些尺寸的标准标记不合格的单元进行重新划分,为了保证每步的更新质量,将其修改为1,就是每个时间都根据尺寸的标准标记及更新网格。 Size Function Resolution(尺寸函数分辨率),保持默认的3; Size Function Variation(尺寸函数变量):建议使用一个小值,在0.1到0.5之间,本例将其设置为0.3;Size Function Rate(尺寸函数变化率),保持默认的0.3。 动网格(dynamic mesh)是CFD中专有的概念。由于当前流体计算多采用欧拉坐标系,该坐标系区别于拉格朗日坐标系的一个最直观特点是:计算过程中网格保持静止。因此,在CFD计算中应用动网格,具有其特别的难处。 1、动网格控制方式 最主要的困难在于边界运动后的网格质量控制。由于边界的运动,不可避免的导致网格变形。我们知道,求解器对于网格质量的容忍是有限度的。当网格扭曲过大引起网格质量的急剧下降,可能导致计算发散、形成负网格,进而终止计算。因此,在边界运动过程中,对网格质量进行控制尤为重要。在fluent软件中动网格主要有三种控制方式:smoothing,layering,remeshing。其中layering主要应用与四边形网格及六面体网格,remeshing主要应用于三角形网格及四面体网格等费结构网格中,至于smoothing方法则在各类网格中均可应用。 layering方法应用于结构网格也是有条件限制的:边界运动最好是沿着某单一方向。如若是旋转,最好还是采用非结构网格配合remeshing方式。 非结构网格是最适合应用动网格模型的,但是网格质量不好控制,通常需要仔细调节。结构网格采用layering 方法,能够很好的控制网格质量,但是几何适应性差。具体采用何种网格类型以及何种控制方式,还是要

FLUENT实例-搅拌桨-动网格讲解

搅拌桨底部十字挡板流场分析 动网格实例教程 搅拌设备在各个行业运用的十分广泛,搅拌就是为了更够更快速更高效的将物质与介质充分混合,发生充分的反应,而搅拌中存在着许多不利于混合的情况,比如液体旋流。为了解决这个问题,之前很多人提出在罐体的侧壁上增加挡板,可以抵消大部分旋流,然后大部分都是研究侧挡板的,对于底部挡板的研究十分少,本文就在椭圆底部挡板增加十字型挡板,对罐体中进行流场分析。 1.Gambit建模 首先用Gambit建模图形如下: 图1:Gambit建立的模型 分为两个区域,里面的圆柱为动区域,外面包着的大圆柱设为静区域,静区域划分网格大,划分粗糙,内部动区域划分网格小,划分精细。边界条件主要设置了轴,搅拌桨,底部挡板,上层液面。以下就是fluent进行数值模拟。 2.fluent数值模拟

2.1导入case文件 2.2对网格进行检查 Minimum volume的数值大于0即可。 图2网格检查2.3调节比例 单位选择mm单位。 图3比例调节2.4定义求解器参数 设置如图4所示

图4设置求解器参数2.5设置能量线 图5能量线 2.6设置粘度模型,选择k-e模型 k-e模型对该模型模拟十分实用。

图6粘度模型2.7定义材料 介质选择液体水。 2.8定义操作条件

由于存在着终于,建模时的方向向上,所以在Z轴增加一个重力加速度。 图8操作条件 2.9定义边界条件 在边界设置重,动区域如图所示,将材料设成水,motion type设成moving reference frame (相对滑动),转速设为10rad/s,单位可在Define中的set unit中的angular-velocity设置。而在在轴的设置中,如上图所示,将wall motion设成moving wall,motion设成Absolute,速度设成-10,由于轴跟动区域速度是相对的,所以设成反的。

归纳整理-动网格

一、动网格 该专题主要包括以下的主要内容: §一、动网格的相关知识介绍; §二、以NACA0012翼型俯仰振荡实例进行讲解动网格的应用过程; §三、与动网格应用有关的参考文献; §四、使用动网格进行计算的一些例子。 §一、动网格的相关知识介绍有关动网格基础方面的东西,请具体参考FLUENT User’s Guide 或FLUENT全攻略的相关章节,这里只给出一些提要性的知识要点。 1、简介动网格模型可以用来模拟流场形状由于边界运动而随时间改变的问题。边界的运动形式可以是预先定义的运动,即可以在计算前指定其速度或角速度;也可以是预先未做定义的运动,即边界的运动要由前一步的计算结果决定。网格的更新过程由FLUENT 根据每个迭代步中边界的变化情况自动完成。在使用动网格模型时,必须首先定义初始网格、边界运动的方式并指定参予运动的区域。可以用边界型函数或者UDF 定义边界的运动方式。FLUENT 要求将运动的描述定义在网格面或网格区域上。如果流场中包含运动与不运动两种区域,则需要将它们组合在初始网格中以对它们进行识别。那些由于周围区域运动而发生变形的区域必须被组合到各自的初始网格区域中。不同区域之间的网格不必是正则的,可以在模型设置中用FLUENT软件提供的非正则或者滑动界面功能将各区域连接起来。注:一般来讲,在Fluent中使用动网格,基本上都要使用到UDF,所以你最好具备一定的C语言编程基础。 2、动网格更新方法动网格计算中网格的动态变化过程可以用三种模型进行计算,即弹簧近似光滑模型(spring-based smoothing)、动态分层模型(dynamic layering)和局部重划模型(local remeshing)。对于3D模型,还包括in-cylinder、six-dof、Implicit Update三种选项。 其中in-cyliner用于发动机气缸模拟,six-dof主要用于流体作用于刚体,预测刚体运动。implicit update用于设定网格更新方式。默认采用显式方式,勾选此选项可设定网格以隐式方式更新。 弹簧近似光滑模型原则上弹簧光顺模型可以用于任何一种网格体系,但是在非四面体网格区域(二维非三角形),最好在满足下列条件时使用弹簧光顺方法:(1)移动为单方向。(2)移动方向垂直于边界。如果两个条件不满足,可能使网格畸变率增大。另外,在系统缺省设置中,只有四面体网格(三维)和三角形网格(二维)可以使用弹簧光顺法,如果想在其他网格类型中激活该模型,需要在dynamic-mesh-menu 下使用文字命令spring-on-all-shapes?,然后激活该选项即可。 动态分层模型动态分层模型的应用有如下限制: (1)与运动边界相邻的网格必须为楔形或者六面体(二维四边形)网格。 (2)在滑动网格交界面以外的区域,网格必须被单面网格区域包围。 (3)如果网格周围区域中有双侧壁面区域,则必须首先将壁面和阴影区分割开,再用滑动交界面将二者耦合起来。 (4)如果动态网格附近包含周期性区域,则只能用FLUENT 的串行版求解,但是如果周期性区域被设置为周期性非正则交界面,则可以用FLUENT 的并行版求解。如果移动边界为内部边界,则边界两侧的网格都将作为动态层参与计算。如果在壁面上只有一部分是运动边

fluent动网格算例设置

前段时间曾有网友问过该cas的做法,拖的时间太长了,实在不好意思,今天上午就抽空做了一下(这可是工作时间,真对不住给我人民币的老板了!) 闲话少说,直插正题: 制作该cas需要用到以下软件: gambit(做网格的,网上有的下) fluent (计算用的,网上也有的下) fluent小工具(就是可以在编译udf不用装vc的,我的blog上有的下) 计算边界定义说明: 1.生成网格,本文采用的是非结构网格,相信这个过程就不需要我赘述了吧,如果不会的话,请参阅gambit生成网格的文献。 2.将本文的udf附件(box.c)复制到你的工作文件夹(也就是你放mesh的文件夹)。启动fluent,读入网格。选择define/User-defined/s/compiled。如图:

在source files中 add 你的udf(也就是box.c),点击build,然后点击load。 3.在Define/models/solver选择非定常求解器unstead. 4.在Material面板中选择fluent database,在左侧的菜单中选择water,点击copy。 5.在Dynamic Mesh中点击parameters,激活Dynamic Mesh,选中soomthing和remesh,具体参数如下图所示:

6.在dynamic mesh选项下选择zones,设置box为rigid body。

设置wall为

deforming 7.在boundary conditons 将in设置为速度入口,速度为2m/s,out设置为outflow或者压力出口都可以。 8.初始化。 9.将时间步长设为0.05(或者更小),时间步设为200,开始计算。 附件:udf:box.txt cas:feijiegou.rar 网格变化过程的动画:sequence-2.rar 后记:由于论坛上传附件格式的限制,麻烦各位下载box.txt后,将后缀txt改为c即可食用。该udf直接copy自该网友的帖子,我觉得该udf有点问题的:它将box所受的压力看成是所受x方向上的合力。我认为最合适的还是直接将6dof的udf稍加改造即可。该教程

相关主题