Fluent 动网格实例具体操作步骤.docx
《Fluent 动网格实例具体操作步骤.docx》由会员分享,可在线阅读,更多相关《Fluent 动网格实例具体操作步骤.docx(13页珍藏版)》请在冰豆网上搜索。
Fluent动网格实例具体操作步骤
Fluent动网格实例具体操作步骤
Fluent动网格实例具体操作步骤
在Fluent中,动网格模型可以用来模拟由于流域边界运动引起流域形状随时间变化的流动情况,动网格在求解过程中计算网格要重构,例如汽车发动机中的气缸运动、阀门的开启与关闭、机翼的运动、飞机投弹等等。
CFD中的动网格大体分为两类:
(1)显式规定的网格节点速度。
配合瞬态时间,即可很方便的得出位移。
当然一些求解器(如FLUENT)也支持稳态动网格,这时候可以直接指定节点位移。
(2)网格节点速度是通过求解得到的。
如6DOF模型基本上都属于此类。
用户将力换算成加速度,然后将其积分成速度。
在Fluent中,动网格涉及的内容包括:
(1)运动的定义。
主要是PROFILE文件与UDF中的动网格宏。
(2)网格更新。
FLUENT中关于网格更新方法有三种:
网格光顺、动态层、网格重构。
需要详细了解这些网格更新方法的运作机理,每个参数所代表的具体含义及设置方法,每种方法的适用范围。
动网格的最在挑战来自于网格更新后的质量,避免负体积是动网格调试的主要目标。
在避免负网格的同时,努力提高运动更新后的网格质量。
拉格朗日网格(固体有限元计算)
网格
欧拉网格(流体计算)
实例:
Profile定义运动
I、参数说明
本次实例采用的场景来自于流体中高速飞行的物体。
如子弹、火箭、导弹等。
这里只是为了说明profile在动网格运动定义中的应用,因此为了计算方便不考虑高速问题。
问题描述如下图所示:
图1(1为运动刚体,2为计算域)
图2
计算说明:
由于不考虑也没办法考虑刚体的变形,因此在构建面域的时候,将1中的部分通过布尔运算去除。
计算域总长度300mm,其中固体运动最大位移为:
300-40-30-6mm=224mm。
为了防止固体边界与计算域边界发生重叠,我们使运动最大距离为200mm。
运动速度v=0.4t,这样可能计算运动完200mm需要的时间为1s。
采取5个时间数据点分别为:
0,0.25,0.5,0.75,1s,相对应的速度为:
0,0.1,0.2,0.3,0.4m/s。
profile文件如下:
((moveVelocitytransient50)
(time00.250.50.751)
(v_x00.10.20.30.4))
解释:
在记事本中按下列格式编写,保存为.txt文本即可。
其中,moveVelocity为profile文件名,transient表示瞬态,5为表示所取速度及时间变化点数,这里取5个点;time后所述为所取点的时刻值;x后所述为所取点的x坐标;v_x为所取点的x向速度;所取的五个点组成速度与时间的线性关系,如图2所示。
注意:
虽然瞬态profile文件可以在一定程度上定义网格运动,然而其存在着一些缺陷。
最主要的一些缺陷存在于以下一些方面:
(1)PROFILE无法精确的定义连续的运动。
其使用离散的点值进行插值。
如果想获得较为精确的运动定义,势必要定义很多点。
(2)一些情况下无法使用profile。
比如稳态动网格。
在FLUENT中定义网格运动,更多的是采用UDF宏,此处不在详细叙述。
详细实例可参阅FLUENTUDF手册p182-p188。
II、操作步骤
一、将计算域离散为网格
在ICEMCFD中将计算域离散为网格,由于三角形网格非常适合于2D动网格,因此本例使用三角形网格。
若要使用四边形网格,则需要进行滑移面处理。
详细的说明将留待以后网格更新的时候进行。
同样的,也不进行边界层处理。
简化问题描述,设定四周为wall壁面,中间区域为rigidwall(如图3所示),在动网格中进行设定。
全局网格尺寸为2mm,运动边界网格尺寸1mm,
图3parts设置
网格单元总数为:
19698
节点总数:
9845
二、Fluent操作步骤
1.启动Fluent14.5求解器
双击桌面上的Fluent图标,打开启动对话框,如图4所示,选择选择2D求解器,勾选双精度选项,点击OK启动Fluent14.5。
图4
2.初始设置
找到并选择网格msh文件,完成将网格文件输入Fluent的操作。
检查并修改单位,点击General面板中的Scale确保使用的单位为mm,如下图所示。
点击Check检查网格质量,注意MinimumVolume应大于0。
图5
设置求解器,由于在动网格的应用中,稳态情况比较少见,所以选择瞬态求解器,General中的其它选项采取默认设置,如下图所示。
图6
3.选择湍流模型
选择Models面板中的标准k-e湍流模型,如下图所示。
图7
4.设置流体物性
选择Materials面板中的air,打开材料设置对话框,如下图所示,将液体材料改为水,具体操作如下。
1)在Name栏内输入water。
2)在属性栏内输入流体的物理属性如下:
密度1000
动力黏度0.01
等压比热4182
导热系数0.6
3)点击Change/Create
4)在弹出的对话框内,点击No;此项操作将使名为water的流体添加到材料选择列表中,可以在材料列表内查看到,同时保留系统默认的流体air。
5)点击Close
图8
5.设置边界条件
设置工作流体为水,即设定CellZoneCondition将默认域介质设定为water,具体操作如下。
1)在Zone栏内选择Edit,即编辑默认域设定,打开Fluid设置对话框,如下图所示。
2)在MaterialsName下拉列表中选择water。
3)点击OK,关闭材料选择对话框。
图9
由于本例使用全封闭计算域,所有边界类型为wall,所以BoundaryCondition采用默认设置即可。
将编辑好的轮廓文件(profile)导入到Fluent中,具体操作如下。
1)单击选择BoundaryCondition面板中的Profile选项,打开Profile设置对话框,如下图所示。
2)点击Read,在文件类型中选择AllFiles,选择profile文件储存成文本文档text的形式。
3)点击Apply,关闭Profile设置对话框。
图11
6.动网格设置
6.1MeshMethods(网格更新方法)
在DynamicMesh面板中找到DynamicMesh选项,并勾选激活动网格选项。
勾选MeshMethods目录下的Smoothing,Layering,Remeshing选项。
各选项的参数设置分别如下图所示。
在Smoothing中,有两种网格光顺的方法,弹簧光顺与离散光顺两个模型。
激活弹簧光顺模型,相关参数设置位于Smoothing(光顺)标签下,可以设置的参数包括SpringConstantFactor(弹簧弹性系数)、LaplaceNodeRelaxation(边界点松弛因子)、ConvergenceTolerance(迭代精度)和NumberofIterations(迭代次数)。
弹簧常数因子:
取值范围[0,1]。
可以通过该值来调整弹簧刚度的大小。
该值为0表示弹簧间没有阻尼,边界运动会影响到更多的内部节点。
该参数的默认值为1。
在实际应用中,若发现运动边界附近网格堆积严重,可适当调小此参数,将位移扩散出去。
边界点松弛因子:
网格位置更新时使用的参数。
取值范围[0,1]。
0表示没有进行网格节点保持不变,1表示不使用松弛处理。
该参数默认为1。
调整该参数可以控制每次网格更新的节点位置。
通常使用默认值即可。
迭代精度:
网格节点位移值是通过求解平衡方程得到的。
本参数即控制方程的求解精度。
一般保持默认值。
迭代次数:
与迭代精度作用相同。
用于平衡方程的求解控制。
迭代方程如下。
通常该参数保持默认即可。
扩散光顺方法在此不作详细叙述,只简述其适应的情况:
能够应用于任何类型的运动或变形网格;扩散光顺方法比弹簧光顺计算开销要大(隐式求解扩散方程,而弹簧光顺是显式计算节点位移),但是能够得到较好的网格质量(特别是对于非四面体/非三角形网格及多面体网格);更适合于平移运动;扩散光顺方法与边界层光顺方法及面区域重构方法不兼容。
在Layering(动态层)标签下,可以设置与动态层模型相关的参数。
SplitFactor(分割因子)和CollapseFactor(合并因子)与DynamicMeshZones中的CellHeight相关,定义其乘积下的分割与合并属性。
在Remeshing(重划网格)标签下,设置与局部重划模型相关的参数。
ANSYSFluent包含有很多种网格重构方法,主要有以下几种:
局部单元重构、局部区域重构、局部面重构(只用于3D)、面域重构、cutcell域重构(仅3D)以及2.5D面重构(3D中)。
网格重构方法适合于以下网格类型:
(1)局部网格及局部面重构方法只对区域中的三角形及四面体网格有效。
(例如混合网格区域中,非三角形/四面体网格将会被忽略)
(2)区域重构方法会将其它所有类型网格替换为三角形四面体网格(分别在2D及3D区域中),并且在3D边界层中生成楔形、棱柱形网格。
(3)面域重构方法在2D中只用于三角形网格,在3D模型中只用于四面体网格。
并且在3D边界层中能够产生楔形/棱柱形网格。
(4)切割单元区域重构方法能够对所有网格类型有效。
(5)2.5D重构方法只在六面体网格或由三角形拉伸形成的楔形/棱柱型单元上有效。
可以设置的其他参数还包括MaximumCellSkewness(最大畸变率)、MaximumCellVolume(最大网格体积)和MinimumCellVolume(最大网格体积),主要用于确定哪些网格需要被重新划分。
MeshScaleInfo用于设定时参考网格内的参数。
在缺省设置中,如果重新划分的网格优于原网格,则用新网格代替旧网格;否则,将保持原网格划分不变。
如果无论如何都要采用新网格的话,则可以在Options(选项)下面选择MustImproveSkewness(必须改善畸变率)选项。
如果Options(选项)下面的SizeFunction(尺寸函数)被激活,则还可以用网格尺寸分布函数标志需要重新划分的网格。
对于3D模型,还包括in-cylinder、six-dof、ImplicitUpdate三种选项。
其中in-cyliner用于发动机气缸模拟,six-dof主要用于流体作用于刚体,预测刚体运动。
implicitupdate用于设定网格更新方式。
默认采用显式方式,勾选此选项可设定网格以隐式方式更新。
6.2动态网格域
在DynamicMeshZones中定义运动区域,即定义中间刚体壁面为rigidbody,具体操作如下。
1)点击Create/Edit选项,打开DynamicMeshZones设置对话框,如下图所示。
2)在ZoneNames下选择rigidwall,在Type中选择RigidBody。
3)在MeshingOptions中,设置CellHeight中的值为1mm。
4)点击Create,并关闭DynamicMeshZones设置对话框。
图11
此动态网格域用于定义网格运动的区域及运动类型。
FLUENT中网格运动类型主要有:
静止、刚体运动、变形区域、用户自定义域、耦合域(依次)。
静止域在网格运动过程中,区域内节点位置保持不变。
虽然说默认情况下不设定区域运动,则该区域为静止,但是一些情况下还是需要显式设定某些区域为静止域,尤其是在一些与刚体域相连的区域处理上。
刚体运动域:
这是fluent动网格中最常见的运动类型。
通过规定刚体的速度或位移来控制运动。
变形域:
由于边界运动导致节点变形。
变形域通常与刚体域是相连的。
自定义域:
用户可以使用UDF定义自己需要的域
耦合域:
节点位移由耦合求解器计算,在流固耦合计算中,耦合面上通常设定为耦合域类型。
6.3网格预览
点击PreviewMeshMotion可以设置预览网格运动,具体操作如下。
1)点击PreviewMeshMotion选项,打开设置对话框。
2)设置时间步长和步数,具体设置如下图所示。
3)设置完成后,点击Preview。
图15
注意:
在这一步中,需要提醒一下,使用动网格进行正式计算之前,最好养成预览动网格更新的习惯;就是在正式计算前,浏览一下动网格的更新情况,这样可以避免在计算过程中出现动网格更新本身的问题。
在预览更新时,很多人都说会出现负体积的警告,更新不成功,出现这样的问题时,最好先把时间步长改的更小点儿试试,一般来讲,排除UDF本身的原因,出现更新出错的原因都与时间步长有关,这需要结合所使用的更新方法多琢磨。
在预览动网格前先保存动网格设置,预览后将造成不可逆的计算结果。
7.设置其它选项
对于非定常问题,推荐使用PISO算法。
时间步长设置为0.01,计算步数设置为100。
Solution面板中的设置此处不在详细叙述。