Fluent动网格系列篇
- 格式:pdf
- 大小:610.51 KB
- 文档页数:17
FLUENT动网格之弹性光顺上次讲到,光顺方法计算网格节点位移并不是依赖于网格质量。
因此,仅使用光顺方法,只能处理一些小变形的情况。
倘若变形量过大,则会造成网格质量降低,轻则影响收敛,重则出现负网格,导致计算出错。
1、问题描述边长120mm的正方形空腔,内有一个边长30mm的正方形固体。
研究固体以角速度1rad/s旋转时对内部流场的扰动。
1、网格方案由于四边形网格在刚体变形时会发生较大的扭曲,不太适合于使用弹簧光顺方法,因此本例中使用三角形网格。
使用全局尺寸2mm,生成网格如下图所示。
2、指定运动可以使用profile文件或DEFINE_CG_MOTION宏来定义运动。
我们这里利用udf 宏来定义运动。
UDF宏文件如下:#include “udf.h”DEFINE_CG_MOTION(RotationVel , dt , vel , omega , time , dtime){omega[2] = 1;}omega[2]表示z方向的角速度。
本例中以恒定的角速度旋转。
将内部四条边定义为rigid body。
并把赋予运动速度。
3、动网格参数勾选Dynamic Mesh选项,激活动网格。
本例只考虑网格光顺,因此只勾选Smoothing。
(说明:通常动网格应用中不会只使用一种网格更新方法,此处只是考虑光顺,所以才会这样。
正常情况下本例应当使用到网格重构)。
点击setting…按键进行smoothing设置面板。
如右下图所示。
采用弹簧光顺需要设置的参数一共有四个:弹簧常数因子、边界节点松弛、收敛精度及迭代次数。
通常需要设置的参数为弹簧常数因子及边界节点松弛,其它两个参数采用默认即可。
(1)弹簧常数因子:该参数取值范围[0,1],取值越大表示阻尼越大,也表示边界运动对内部网格的影响越小。
(2)边界节点松弛:取值范围[0,1],1表示无松弛,0表示禁止节点位移。
这里先将两参数取中间值0.5。
3、其它设置创建运动区域。
Fluent中的动网格动网格是目前求解计算域变化问题的常用方法。
参考Fluent帮助,可以知道动网格技术与一般流动计算设置的主要区别在于网格更新方法和更新域设置。
这里就这两方面问题的一点体会作一简单记录。
一、网格更新方法弹簧近似光滑法将任意两网格节点之间的连线理想地看成一条弹簧,并通过近似弹簧的压缩或拉伸实现网格和计算域的改变。
该方法网格拓扑不变,无需网格的插值处理,对结构化(四边形、六面体)和非结构化(三角形、四面体)网格同样适用。
但不适合于大变形情况,当计算区域变形较大时,变形后的网格质量变差,严重影响计算精度。
动态分层法在运动边界相邻处根据运动规律动态增加或减少网格层数,以此来更新变形区域的网格。
该方法适用于结构化网格,通过设置适当的分层和缩减系数,更新后的网格依然为较为均匀的结构化网格,对计算精度影响较小。
对于运动域具有多自由度和任意变形情况,该方法处理起来非常困难。
网格重生方法在整个网格更新区域内依据设定的最大和最小网格尺寸判断需要进行网格重生的网格,并依据设置的更新频率进行网格重生处理。
该方法适用于非结构化网格,能够较好的应用于任意变形的计算区域处理。
二、更新域设置更新域设置是动网格设置中的一项重要工作,最常用的设置是刚体运动域和变形域,这里针对这两种域的设置注意事项和技巧作一简单介绍。
1、域动网格一般来讲,设置为刚体运动域的区域一般为壁面类边界,通过设置固壁的运动,模拟计算域内物体的运动。
由于固壁边界有时形状较为复杂,壁面附近网格尺度与周围网格尺度存在较大差别,网格更新时变形较大。
在这种情况下,可以设置一个包含固壁运动边界的计算域,通过该计算域的整体运动模拟域内物体的运动,在有的地方将这种方法称为域动网格法。
在域动网格法中,需要设置包含运动物体的内部计算域、内部计算域界面均为刚体运动域。
如下图所示。
2、动态分层法中的分界面在应用动态分层网格更新方法时,当分层界面在计算域内部时,需要采用Split interface(这里称分界面)将运动域运动范围与固定计算域区分开来,以保证动态分层网格处理(如果运动域网格与固定域网格没有分界面,动态分层无法执行)。
FLUENT 6 动网格技巧一、动网格简介CFD动网格大致分为两类:第一类为显式规定网格节点速度,配合瞬态时间,即可很方便的得出位移,当然一些求解器(如FLUENT)也支持稳态动网格,这时候可以直接指定网格节点的位移。
第二类为网格节点速度是通过求解得到的,如6DOF模型基本上都属于此类,用户将力换算成加速度,然后将其积分成速度。
对于第一类动网格问题,在FLUENT中通常可以使用Profile与UDF进行网格设置,通过规定节点或区域的速度、角速度或位移等方式来显式确定网格的运动,通常大部分的动网格问题都归于此类。
而对于第二类问题,通常涉及到力的计算,力在流体中通常是对压力进行积分而来。
将力转换为速度或位移,一般涉及到加速度、转动惯量等物理量的计算。
在FLUENT中,可以使用6DOF模型进行处理,在CFX中,可以使用刚体模型(13.0以上版本才有)。
在FLUENT中,动网格涉及的内容包括:1)运动的定义。
主要是PROFILE文件与UDF中的动网格宏。
2)网格更新。
FLUENT中关于网格更新方法有三种:网格光顺、动态层、网格重构。
需要详细了解这些网格更新方法的运作机理,每个参数所代表的具体含义及设置方法,每种方法的适用范围。
动网格的最在挑战来自于网格更新后的质量,避免负体积是动网格调试的主要目标。
在避免负网格的同时,努力提高运动更新后的网格质量。
二、第一类动网格操作0打开FLUENT双击桌面快捷方式→ 选择2D或3D模式(FLUENT和GAMBIT默认单位为米)1导入网格文件File → Read → Case → 选择mesh文件2检查网格文件Grid > Check(可以查看网格的大致情况,如有无负体积等)3定义求解器Define → Models → Solver → 在Time项里点选Unsteady(非稳态求解器)4编译UDF文件Define → User-Defined → Functions → Compiled → 单击Add添加UDF文件(*.C)→点击Build按钮→ 点击Load按钮→ 点击Close按钮(如果不关闭编译对话框,在调试程序时可随时对程序进行编译)5设定动网格参数Define → Dynamic Mesh → Parameters→ 勾选Dynamic Mesh> Models(模型)Dynamic Mesh(动网格,默认勾选)In-Cylinder(气缸)2.5DSix DOF Solver(六自由度)> Mesh Methods(网格方法)Smoothing(网格光顺,默认勾选)Layering(动态分层)Remeshing(网格重构)> Smoothing(网格方法)Spring Constant Factor(弹簧常数因子,默认为1)Boundary Node Relaxation(边界节点松弛,默认为1)Convergence Tolerance(收敛容差,默认为0.001)Number of Iterations(迭代次数,默认为20)> Layering(网格方法)Constant Height(固定高度)Constant Ratio(固定比例)Split Factor(分割因子)Collapse Factor(收缩因子)> Remeshing(网格方法)Size Function(尺寸函数)Must Improve Skewness(必须提高扭曲度)Face Remeshing(面网格重构)Minimum Length Scale(最小长度缩放,默认为0)Maximum Length Scale(最大长度缩放,默认为1000)Maximum Cell Skewness(最大单元扭曲度,默认为0.6)Maximum Face Skewness(最大面扭曲度,默认为0.7)Size Remeshing Interval(尺寸重构间隔,默认为10)Size Function Resolution(尺寸函数分辨率,默认为3)Size Function V ariation(尺寸函数变异,默认为1.581787)Size Function Rate(尺寸函数比率,默认为0.3)6设定动网格区域Define → Dynamic Mesh → Zones> Zone Names(在下拉列表里选择要运动的区域或边界)> Type(点选区域或移动边界的类型)Stationary(静止的)Rigid Body(刚体,默认勾选)Deforming(变形)User-Defined(用户自定义)> Motion Attributes(运动属性)Motion UDF/Profile(运动自定义文件,一般UDF文件编译后,会在下拉列表中显示)Center of Gravity Location(全部设置为0)Center of Gravity Orientation(全部设置为0)> Geometry Definition(几何定义,一般不设置)> Meshing Options(网格划分选项)Adjacent Zone(毗邻区域,默认为fluid)Cell Height(单元高度,一般设定为网格单元最小尺寸)→ 单击Create按钮→ 单击Draw按钮→ 单击Update按钮→ 单击Close按钮(这一步非常关键,否则无法预览动态网格)7显示网格Display → Grid(弹出网格显示窗口)8预览动网格Solve → Mesh Motion> Time(时间设置)Current Mesh Times(当前时间,即瞬态运动的时间)Time Step Sizes(时间步长,每个子步的时间)Number of Time Steps(时间步,即总的时间步数)> Display Options(显示选项)Display Grid(显示网格,默认勾选)Save Hardcopy(保存硬拷贝)Enable Autosave(启动自动保存)Display Frequency(显示频率,默认为1)三、第二类动网格操作Number of Iterations(最大迭代步数,在每个时间子步内迭代的次数,即在一个时间步内计算稳态的过程)。
主要包括两部分内容:(1)Mesh Methods (2)Dynamic Mesh Zones。
该部分主要用于网格或网格域在运动过程中,设置计算域中网格节点位置更新方法。
fluent中有三种主要网格更新方法:(1)网格光顺方法(2)动态层方法(3)网格重构。
对于3D模型,还包括in-cylinder、six-dof、Implicit Update
三种选项。
其中in-cyliner用于发动机气缸模拟,six-dof主要用于流体作用于刚体,预测刚体运动。
implicit update用于设定网格更新方式。
默认采用显式方式,勾选此选项可设定网格以隐式方式更新。
2、动态网格域
用于定义网格运动的区域及运动类型。
FLUENT中网格运动类型主要有:静止、刚体运动、变形区域、用户自定义域、耦合域。
静止域在网格运动过程中,区域内节点位置保持不变。
虽然说默认情况下不设定区域运动,则该区域为静止,但是一些情况下还是需要显式设定某些区域为静止域,尤其是在一些与刚体域相连的区域处理上。
刚体运动域:这是fluent动网格中最常见的运动类型。
通过规定刚体的速度或位移来控制运动。
变形域:由于边界运动导致节点变形。
变形域通常与刚体域是相连的。
自定义域:用户可以使用UDF定义自己需要的域
耦合域:节点位移由耦合求解器计算,在流固耦合计算中,耦合面上通常设定为耦合域类型。
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。
FLUENT动网格之铺层1与光顺方法类似,动态层方法同样不是以网格质量作为网格更新判据的。
动态层方法原理很简单,且非常适合于结构网格在某一方向上具有主导运动的情况下。
本例即是这么一种情况。
1、问题描述如下图所示,计算域空间尺寸160mmx50mm,一个长方形固体块在大的空间沿x轴匀速运动,速度0.05m/s,运动时间2s,可计算出运动位移0.1m。
注意位移不能使边界重叠,否则计算会产生错误以致退出。
2、动网格解决方案若使用四边形网格,由于本例中网格运动具有强烈的方向性,满足动态层方法的应用需求。
若使用三角形网格,可使用动态层方法配合网格重构。
然而,单纯的使用动态层方法是有诸多限制的,若不对本例中的几何进行处理,是不满足动态层应用要求的。
主要问题在于:动态层方法要求运动边界为单侧边界,则同一个域中不能既拉伸又压缩。
本例显然不满足单一的网格运动,因为固体的运动前方网格被压缩,而后方网格被拉伸。
因此可将几何进行切割。
如图所示,将计算域如此切割,分解为四个计算域。
如何在ICEM CFD中对计算域进行处理,以后再说。
也可以将区域切割后分别划分网格。
边界类型:1,2,7,8:interface对类型,且为变形域,1、2伸长,7、8缩短。
3,4:wall类型,且为变形域5,6:wall类型,且为运动域9,10,11,12:计算域边界。
本例中使用wall,表示全封闭模型。
划分网格如图所示。
其中网格尺寸为1mm,共生成7306个网格。
3、定义运动本例使用PROFILE文件定义运动。
profile文件内容如下:((moveVel transient 3 0)(time 0 1 2)(v_x 0.05 0.05 0.05))4、动网格参数本例使用layering网格更新方法。
如下图所示。
只勾选Layering选项。
设置layering方法的参数如右下图所示。
采用分裂因子0.4,收缩因子0.2进行网格更新。
意味着:当网格长度大于1.4时,进行网格分裂,当网格长度小于0.2时,进行风格合并(原始网格长度为1)。