动网格学习资料汇总.docx

上传人:b****5 文档编号:7300167 上传时间:2023-01-22 格式:DOCX 页数:11 大小:287.20KB
下载 相关 举报
动网格学习资料汇总.docx_第1页
第1页 / 共11页
动网格学习资料汇总.docx_第2页
第2页 / 共11页
动网格学习资料汇总.docx_第3页
第3页 / 共11页
动网格学习资料汇总.docx_第4页
第4页 / 共11页
动网格学习资料汇总.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

动网格学习资料汇总.docx

《动网格学习资料汇总.docx》由会员分享,可在线阅读,更多相关《动网格学习资料汇总.docx(11页珍藏版)》请在冰豆网上搜索。

动网格学习资料汇总.docx

动网格学习资料汇总

动网格学习资料汇总

为了提高流体传动与控制研究室科研助理对FLUENT软件的学习效率,现将有关动网格学习资料进行汇总,资料来源于书籍和网上资源,不能以偏概全,希望科研助理在学习的过程中,多搜集相关资料,作为后续补充,逐渐完善,为以后科研助理的学习提供帮助。

1、动网格简介

动网格模型可以用来模拟流场形状由于边界运动而随时间改变的问题。

边界的运动形式可以是预先定义的运动,即可以在计算前指定其速度或角速度;也可以是预先未做定义的运动,即边界的运动要由前一步的计算结果决定。

网格的更新过程由FLUENT根据每个迭代步中边界的变化情况自动完成。

在使用动网格模型时,必须首先定义初始网格、边界运动的方式并指定参予运动的区域。

可以用边界型函数或者UDF定义边界的运动方式。

FLUENT要求将运动的描述定义在网格面或网格区域上。

如果流场中包含运动与不运动两种区域,则需要将它们组合在初始网格中以对它们进行识别。

那些由于周围区域运动而发生变形的区域必须被组合到各自的初始网格区域中。

不同区域之间的网格不必是正则的,可以在模型设置中用FLUENT软件提供的非正则或者滑动界面功能将各区域连接起来。

 

注:

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

 

2、动网格更新方法 

动网格计算中网格的动态变化过程可以用三种模型进行计算,即弹簧近似光滑模型(spring-basedsmoothing)、动态分层模型(dynamiclayering)和局部重划模型(localremeshing)。

 

Ø弹簧近似光滑模型 

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

(1)移动为单方向。

 

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

 

如果两个条件不满足,可能使网格畸变率增大。

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

 

Ø动态分层模型 

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

 

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

 

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

 

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

 

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

 

如果移动边界为内部边界,则边界两侧的网格都将作为动态层参与计算。

如果在壁面上只有一部分是运动边界,其他部分保持静止,则只需在运动边界上应用动网格技术,但是动网格区与静止网格区之间应该用滑动网格交界面进行连接。

 

Ø局部网格重划模型 

需要注意的是,局部网格重划模型仅能用于四面体网格和三角形网格。

在定义了动边界面以后,如果在动边界面附近同时定义了局部重划模型,则动边界上的表面网格必须满足下列条件:

 

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

 

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

 

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

 

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

动网格的实现在FLUENT中是由系统自动完成的。

如果在计算中设置了动边界,则FLUENT会根据动边界附近的网格类型,自动选择动网格计算模型。

如果动边界附近采用的是四面体网格(三维)或三角形网格(二维),则FLUENT会自动选择弹簧光顺模型和局部重划模型对网格进行调整。

如果是棱柱型网格,则会自动选择动态层模型进行网格调整。

在静止网格区域则不进行网格调整。

动网格问题中对于固体运动的描述,是以固体相对于重心的线速度和角速度为基本参数加以定义的。

既可以用型函数定义固体的线速度和角速度,也可以用UDF来定义这两个参数。

同时需要定义的是固体在初始时刻的位置。

 

注:

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

总结一下:

 

使用弹簧近似光滑法网格拓扑始终不变,无需插值,保证了计算精度。

但弹簧近似光滑法不适用于大变形情况,当计算区域变形较大时,变形后的网格会产生较大的倾斜变形,从而使网格质量变差,严重影响计算精度。

动态分层法在生成网格方面具有快速的优势,同时它的应用也受到了一些限制。

它要求运动边界附近的网格为六面体或楔形,这对于复杂外形的流场区域是不适合的。

使用局部网格重划法要求网格为三角形(二维)或四面体(三维),这对于适应复杂外形是有好处的,局部网格重划法只会对运动边界附近区域的网格起作用。

 

3、动网格问题的建立 

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

 

在Solver(求解器)面板中选择非定常流(unsteady)计算;设定边界条件,即设定壁面运动速度;激活动网格模型,并设定相应参数;指定移动网格区域的运动参数;保存算例文件和数据文件;预览动网格设置,菜单操作为:

Solve->MeshMotion...;应用自动保存功能保存计算结果,在动网格计算中,因为每个计算步中网格信息都会改变,而网格信息是储存在算例文件中的,所以必须同时保存算例文件和数据文件;如果想建立网格运动的动画过程,可以在SolutionAnimation(计算结果动画)面板中进行相关设置。

 

注:

在这一步中,需要提醒一下,使用动网格进行正式计算之前,最好养成预览动网格更新的习惯;就是在正式计算前,浏览一下动网格的更新情况,这样可以避免在计算过程中出现动网格更新本身的问题。

在预览更新时,很多人都说会出现负体积的警告,更新不成功,出现这样的问题时,最好先把时间步长改的更小点儿试试,一般来讲,排除UDF本身的原因,出现更新出错的原因都与时间步长有关,这需要结合所使用的更新方法多琢磨。

 

4、设定动网格参数 

为了使用动网格模型,需要在dynamicmesh(动网格)面板中激活DynamicMesh(动网格)选项。

如果计算的是活塞运动,则同时激活In-Cylinder(活塞)选项。

然后选择动网格模型,并设置相关参数。

 

Ø选择网格更新模型 

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

Ø设置弹簧光顺参数 

激活弹簧光顺模型,相关参数设置位于Smoothing(光顺)标签下,可以设置的参数包括SpringConstantFactor(弹簧弹性系数)、BoundaryNodeRelaxation(边界点松弛因子)、ConvergenceTolerance(收敛判据)和NumberofIterations(迭代次数)。

弹簧弹性系数应该在0到1之间变化,弹性系数等0时,弹簧系统没有耗散过程,在图中算例中,靠近壁面的网格没有被改变,而是保持了原来的网格形状和密度;在弹性系数等于1时,弹簧系统的耗散过程与缺省设置相同,从图中可以发现壁面发生变形,壁面附近网格因为过度加密而质量下降。

因此在实际计算中应该在0到1之间选择一个适当的值。

边界点松弛因子用于控制动边界上网格点的移动。

当这个值为零时,边界节点不发生移动;在这个值为1时,则边界节点的移动计算中不采用松弛格式。

在大多数情况下,这个值应该取为0到1之间的一个值,以保证边界节点以合适的移动量发生移动。

 

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

迭代次数是指网格节点移动计算的最大迭代次数。

 

Ø动态分层 

在Layering(动态分层)标签下,可以设置与动态层模型相关的参数。

通过设定ConstantHeight(常值高度)与ConstantRatio(常值比例)可以确定分解网格的两种方法。

SplitFactor(分割因子)和CollapseFactor(合并因子)则分别为上面介绍的alpha_s和alpha_c。

 

Ø局部网格重新划分网格 

在Remeshing(重划网格)标签下,设置与局部重划模型相关的参数。

可以设置的参数包括MaximumCellSkewness(最大畸变率)、MaximumCellVolume(最大网格体积)和MinimumCellVolume(最大网格体积),其含义如前所述,主要用于确定哪些网格需要被重新划分。

在缺省设置中,如果重新划分的网格优于原网格,则用新网格代替旧网格;否则,将保持原网格划分不变。

如果无论如何都要采用新网格的话,则可以在Options(选项)下面选择MustImproveSkewness(必须改善畸变率)选项。

如果Options(选项)下面的SizeFunction(尺寸函数)被激活,则还可以用网格尺寸分布函数标志需要重新划分的网格。

Ø设定活塞运动参数 

如果在计算中选择使用In-cylinder(活塞)模型,需要指定CrankShaftSpeed(曲柄速度)、StartingCrankSpeed(曲柄起始速度)、CrankPeriod(曲柄周期)以及CrankAngleStepSize(曲柄角度时间步长)。

 

FLUENT中还提供一个内建函数用于计算活塞位置。

这个函数的自变量为曲柄转角,如果选用这个函数,还需要指定PistonStroke(活塞行程)和ConnectingRodLength(连接杆长度)二个参数。

 

注:

以上的一些参数设定对动网格的更新质量影响很大,如果设置不当,可能引起更新不成功,如果不清楚这些设定因子对更新的影响,可以固定一些参数调节一两个参数查看效果。

另外,在这些更新方法中比较容易出问题的就是Remeshing方法中的一些参数设定:

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

 

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

在计算动网格问题时,必须定义动网格区的运动方式。

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

 

上述定义在DynamicZones(动态区域)面板中设置,在这个面板中可以修改动态区域的设置、计算刚体运动区域的重心或删除一个动态区域。

方法是首先在DynamicZones(动态区域)列表中选择一个动网格区,然后修改其设置参数,或计算其重心,或进行删除操作,最后点击Create(创建)按钮保存设置。

 

对于新加入的区域,需要先从ZoneNames(区域名称)下选择相关区域,然后在Type(类型)下选择其运动类型。

可供选择的运动类型包括Stationary(静止)、RigidBody(刚体运动)、Deforming(变形)和User-Defined(用户自定义)四种。

 

补充资料:

FLUENT三种动边界控制实现方法 

1)voidDEFINE_CG_MOTION(UDFname,Dynamic_Thread*dt,realvel[],realomega[],realtime,realdtime)。

 

此函数接口用于控制刚体的运动,用户把刚体质心运动速度和角速度分别赋值给vel和omega,FLUENT根据它们的值来自动计算出边界下一步的位置,从而实现动边界的控制;刚体质心的位置可以在函数接口界面对话框中定义。

DynamicZones中的dwall就是要控制的动边界,MotionUDF/Profile中的就是UDFname,从中可看出它已被制定成用于控制dwall,理论上FLUENT可以通过这种方式实现无穷多个动边界的控制;C.G.Location用于设定初始位置的质心,C.G.Orientation用于设定刚体的初始角度。

一般适用于刚体本身不变形的运动。

 

2)voidDEFINE_GEOM(charname,Domain*d,Dynamic_Thread*dt,real*position)。

 

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

3)voidDEFINE_GRID_MOTION(name,d,dt,time,dtime)。

 

此函数接口也用于控制形体的边界运动。

主要用于更加复杂的控制,用户需要自己利用FLUENT提供的其他函数来遍历运动边界上的节点,并对其位置进行控制,因此UDF编程比前面两种复杂得多。

它甚至可以事先生成好边界数据,在计算中把数据读入,完成复杂形体控制。

 

6、预览动网格 

在设置好动网格模型及动网格区的运动方式后,可以通过预览的方式检查设置效果。

预览功能在MeshMotion(网格运动)面板中进行设置,启动这个面板的菜单操作为:

Solve->MeshMotion... 

预览操作步骤如下:

 

(1)在参数设置完毕后,首先保存算例(case)文件。

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

 

(2)设置迭代时间步数和时间步长。

在计算过程中,当前时间将被显示在CurrentMeshTime(当前网格时间)栏中。

如果在计算中选用了活塞模型选项,则时间步长用曲柄速度(shaftspeed)和曲柄转动步长(crankangelstepsize)计算得出。

 

(3)为了在图形窗口中预览网格变化过程,需要激活DisplayOptions(显示选项)下的DisplayGrid(显示网格),并在DisplayFrequency(显示频率)中设置显示频率,即每分钟显示图幅数量。

如果要保存显示的图形,则同时激活SaveHardcopy(保存硬拷贝)选项。

 

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

在定义了活塞运动时,活塞运动的预览是在ICZoneMotion(活塞运动)面板中实现的,激活这个面板的菜单操作为:

Display->ICZoneMotion... 

预览操作的具体步骤为:

 

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

 

(2)在ICZoneMotion(网格运动)面板中,设置曲柄角度增量(Increment)和迭代步数(NumberofSteps)。

 

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

 

注:

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

7、定义活塞事件

在计算活塞运动时,可以通过定义活塞事件(events)的方式,在计算中增加问题的复杂度,使计算更接近真实情况。

这些事件都是以曲柄角度为自变量的,比如可以将打开排气阀的时间定义为曲柄角度的函数,然后在曲柄转到这个角度时,开始打开排气阀操作,等等。

下面介绍定义活塞事件的具体步骤和事件种类,从这些介绍中可以了解活塞事件的基本概念和使用方法。

1)活塞事件的设置步骤

活塞事件在DynamicMeshEvents(动网格事件)面板中定义。

启动这个面板的菜单操作次序为:

Define->DynamicMesh->Events...

活塞事件设置步骤为:

(1)在NumberofEvents(事件数量)栏中输入需要定义的事件数量。

(2)在Name(名称)下面输入事件名称。

(3)在AtCrankAngel(曲柄角度)下输入事件发生的曲柄角度。

(4)点击Define(定义)按钮进入DefineEvent(定义事件)面板做详细定义

(5)在Type(类型)下面选择动网格运动类型,可供选择的运动类型包括ChangeZoneType(改变网格区域类型)、CopyZoneBC(拷贝网格区域边界条件)、CreateSlidingInterface(创建滑动网格交界面)、DeleteSlidingInterface(删除滑动网格交界面)、ChangeMotionAttribute(改变运动属性)、ChangeTimeStepSize(改变时间步长)、InsertBoundaryLayer(插入边界层)、RemoveBoundaryLayer(删除边界层)、InsertInteriorLayer(插入内部网格层)和RemoveInteriorLayer(删除内部网格层)等。

在确定了事件类型后,还需要对所选运动类型做进一步设置,详细情况请参见下一小节中的内容。

(6)对其他事件重复

(2)到(5)的设置过程。

(7)将所有事件设置完毕后,点击Apply(应用)按钮保存所有设置。

(8)在DynamicMeshEvents(动网格事件)面板中点击Preview(预览)按钮,预览上述设置的事件。

2)活塞事件

在上一小节中讲到的各种事件类型的含义如下:

(1)ChangeZoneType(改变网格区域类型)。

在计算过程中可以改变网格区域的类型,即将网格类型在wall(壁面)、interface(交界面)、fluid(流体)和solid(固体)等类型之间进行转换。

在NewZoneType(新网格区域类型)中指定一种类型,则当曲柄运动到相应位置时,指定网格区域类型就会发生转换。

(2)CopyZoneBC(拷贝网格区域边界条件)。

在网格区域类型改变后,原来设置在网格上的边界条件也要发生相应的变化,这种变化可以通过拷贝另一个区域的边界条件实现,即在设定改变网格区类型的同时,设定拷贝边界条件事件,在网格类型发生改变时,随即从另一个边界上拷贝其边界条件作为新类型下网格区域的边界条件。

(3)CreatingSlidingInterface(创建滑动网格交界面)。

在选择了这个事件类型后,需要定义构成交界面的两个面,即两个相邻网格区域InterfaceZone1(交界面区1)和InterfaceZone2(交界面区2)。

在这里不用考虑界面类型转换的问题,系统会自动将定义为交界面区的网格区域转换为内部面类型。

(4)DeletingSlidingInterface(删除滑动网格交界面)。

在选择了这个事件类型后,需要在InterfaceName(界面名称)中指定将被删除的交界面。

在删除界面后,界面所在网格区域将被自动转换为壁面,如果不准备采用系统缺省设置的壁面条件的话,可以考虑如

(2)中提示的那样,从其他壁面上拷贝边界。

(5)ChangeMotionAttribute(改变运动属性)。

可以用这个事件类型修改网格运动类型。

选择了这个事件类型后,需要在Attribute(运动属性)中指定一种运动类型,可以选择的类型包括sliding(滑动)、moving(移动)和remesh(网格重划),同时在Status(状态)中选择enable(激活)或disable(关闭)。

(6)ChangeTimeStep(改变时间步长)。

在CrankAngelStepSize(曲柄角度步长)中输入新的步长,可以修改迭代的时间步长)。

(7)InsertBoundaryCellLayer(插入边界网格层)。

选择这个事件类型后,需要指定BaseDynamicZone(基础动网格区)和SideDynamicZone(临近动网格区)。

边界层网格将以基础动网格区为起点生成,临近动网格区就是网格即将发生变形的区域。

(8)DeletingBoundaryCellLayer(删除边界网格层)。

这个事件类型选项与(7)中的事件相对应,在选择这个选项后,只要指定BaseDynamicZone(基础动网格区)就可以将插入的边界网格删除。

(9)InsertInteriorCellLayer(插入内部网格层)。

如同插入边界网格层一样,这项操作也需要指定BaseDynamicZone(基础动网格区)和SideDynamicZone(临近动网格区),不同的是还需要为新生成的界面命名,即指定InternalZone1Name(内部网格区1名称)和InternalZone2Name(内部网格区2名称)。

(10)RemoveInteriorCellLayer(删除内部网格层)。

选择这个事件选项后,只要指定被删除的网格区名称,InternalZone1Name(内部网格区1名称)和InternalZone2Name(内部网格区2名称)即可。

3)输入输出活塞事件

在DynamicMeshEvents(动网格事件)面板上,点击Write...(输出)按钮可以将设置好的活塞事件以文件形式输出到磁盘上;点击Read...(输入)按钮可以将活塞事件文件读入计算模型。

4)活塞计算中初始网格的生成

可以在dynamesh-mesh-control文本菜单下,用文本命令设置活塞的初始位置,例如:

/define/models/dynamic-mesh-controls>position-starting-mesh

StartCrankAngle(deg)[0]340即将初始位置设置在曲柄转角为340°处。

在进行活塞计算的设置中,需要妥善处理动网格的拓扑关系、活塞和阀门的运动属性、进气阀和排气阀的开关以及活塞事件的先后次序,尽量全面、合理地进行设置,以保证计算能顺利完成。

8、动网格实例

Ø旋转式动网格

Ø《FLUENT技术基础与应用实例》中动网格实例

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1