1 现在用FLUENT的UDF来加入模块,但是用compiled udf时,共享库老是连不上?
解决办法:
1〉你的计算机必须安装C语言编译器。
2〉请你按照以下结构构建文件夹和存放文件:
libudf/src/*.c (*.c为你的源程序);
libudf/ntx86/2d(二维为2d,三维为3d)/makefile(由makefile_nt.udf改过来的)
libudf/ntx86/2d(二维为2d,三维为3d)/user_nt.udf(对文件中的SOURCE,VERSION,PARALLEL_NODE进行相应地编辑)
3〉通过命令提示符进入文件夹libudf/ntx86/2d/中,运行C语言命令 nmake,如果C语言编译器按装正确和你的源程序无错误,那么此时会编译出Fluent需要的库文件(*.lib)这时再启动Fluent就不会出错了。
2 在使用UDF中用编译连接,按照帮助文件中给出的步骤去做了,结果在连接中报错“系统找不到指定文件”。
udf 文件可能不在工作目录中,应该把它拷到工作目录下,或者输入它的全部路径.
3这个1e-3或者1e-4的收敛标准是相对而言的。在FLUENT中残差是以开始5步的平均值为基准进行比较的。如果你的初值取得好,你的迭代会很快收敛,但是你的残差却依然很高;但是当你改变初场到比较不同的值时,你的残差开始会很大,但随后却可以很快降低到很低的水平,让你看起来心情很好。其实两种情况下流场是基本相同的。
由此来看,判断是否收敛并不是严格根据残差的走向而定的。可以选定流场中具有特征意义的点,监测其速度,压力,温度等的变化情况。如果变化很小,符合你的要求,即可认为是收敛了。
一般来说,压力的收敛相对比较慢一些的。
是否收敛不能简单看残差图,还有许多其他的重要标准,比如进出口流量差、压力系数波动等等
尽管残差仍然维持在较高数值,但凭其他监测也可判断是否收敛。最重要的就是是否符合物理事实或试验结论。
残差曲线是否满足只是一个表面的现象,还要看进口和出口总量差不得大于1%,而且即使这样子,收敛解也不一定准确,它和网格划分/离散化误差,以及屋里模型的准确性都有关系.所以得有试验数据做对比活着理论分析了
当然最终是否正确是要看是否与实验数据相符合!但既然有残差图的话,总应该可以大概的看出是否收敛吧?是否要残差要小到一定的程度,或者是残差不在增长,就可以一定程度上认为是收敛的
残差的大小不能决定是否收敛,我在用FLUENT计算时,多采用监测一个面的速度(或者是压力、紊动能等参数)基本上不随着计算时间的推移而变化,就认为基本达到收敛
4 据质量守恒,收敛时进、出口的流量数值应大致相等(一般认为进出口质量差值比上入口质量的相对值小于0.5%时收敛,但是对特殊情况可能不同 ),但符号相反,一般出口流量是负值。
5 在进行稳态计算时候,开始残差线是一直下降的,可是到后来各种残差线都显示为波形波动,是不是不收敛阿?
答:
有些复杂或流动环境恶劣情形下确实很难收敛。计算的精度(2阶),网格太疏,网格质量太差,等都会使残差波动。
经常遇到,一开始下降,然后出现波动,可以降低松弛系数,我的问题就能收敛,但如果网格质量不好,是很难的。通常,计算非结构网格,如果问题比较复杂,会出现这种情况,
建议作网格时多下些功夫 。
理论上说,残差的震荡是数值迭代在计算域内传递遭遇障碍物反射形成周期震荡导致的结果,与网格亚尺度雷诺数有关。例如,通常压力边界是主要的反射源,换成OUTFLOW边界会好些。
这主要根据经验判断。所以我说网格和边界条件是主要因素。
6 残差——是cell各个Face的通量之和,当收敛后,理论上当单元体内没有源相时各个面流入的通量也就是对物理量的输运之和应该为0。最大残差或者 RSM残差反映流场与所要模拟流场(指收敛后应该得到的流场,当然收敛后得到的流场与真实流场之间还是存在一定的差距)的差距,残差越小越好,由于存在数值精度问题,不可能得到0残差,对于单精度计算一般应该低于初始残差1e-03
以下为好,但还要看具体问题。
一般在Fluent里可以添加进出口流量监控(print or plot),当残差收敛到一定程度后,还要看进出口流量是否达到稳定平衡,才可以确认收敛与否。
残差在较高位震荡,需要检查边界条件是否合理,其次检查初始条件是否合适,比如在有激波的流场,初始条件不合适,会带来流场的震荡。有时流场可能有分离或者回流,这本身是非定常现象,
计算时残差会在一定程度上发生震荡,这时如果进出口流量是否达到稳定平衡,也可以认为流场收敛了(前提是要消除其他不合理因数)。另外Fluent缺损地采用多重网格,在计算后期,将多重网格设置为零可以避免一些波长的残差在细网格上发生震荡。
7 、模型比较复杂,是在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)作网格的时候,把所有的面全部合成一个虚面的做法不好,特别是对于复杂外形的网格生成,
你最好在模型变化剧烈的地方多分几个面,这样会更有效的控制网格能够在模型表面曲率比较大的
地方能够生成规则的结构或者非结构网格。
2)对于你输入gambit的时候产生很多碎片的问题,你可以适当的把proe里面的模型精度和它的公差降低,因为gambit的建模工具精度本事就不高。
3)布尔运算就是对于面与面,体与体的联合,相减等运算。这个在所有的cad建模过程中是经常见到的问题。
4)对于虚体生成的计算网格,和实体生成的计算网格,在计算的时候没有区别,关键是看你网格生成的质量如何,与实体虚体无关。
我在作复杂模型计算的时候,大部分都是用的虚体,特别是从其他的建模软件里面导进来的复杂模型,基本上不能够生成实体。
至于计算的效果如何,那是你对于fluent的设置问题和网格的质量问题,与模型无关。
可以用gambit里面的check功能检查一下你的网格质量,看看质量怎么样
实体、实面与虚体、虚面的区别
在建模中,经常会遇到实...与虚...,而且虚体的计算域好像也可以进行计算并得到所需的结果,对二者的根本区别及在功能上的不同
对于求解是没有任何区别的,只要你能在虚体或者实体上划分你需要的网格
gambit的实体和虚体在生成网格和计算的时候对于结果没有任何影响,实体和虚体的主要区别有以下几点:
1)实体可以进行布尔运算但是虚体不能,虽然不能进行布尔运算,但是虚体存在merge,split等功能。
2)实体运算在很多cad软件里面都有,但是虚体是gambit的一大特色,有了虚体以后,gambit的建模和网格生成的灵活性增加了很多。
3)在网格生成的过程中,如果有几个相对比较评弹的面,你可以把它们通过merge合成一个,这样,作网格的时候,可以节省步骤,对于曲率比较大的面,可能生成的网格质量不好,这时候,你可以采取用split的方式把它划分成几个小面以提高网格质量
8、问题一:在画体网格时总出现initialization failed perturb boundary nodes and try again.但是还在继续画。我想一定是有问题的。但不知道问题出现在哪里?谨请各位大虾赐教!
问题二:在画面网格时已经定义了spacing,那么在画体网格时再定义,会不会有冲突?还有,究竟怎样定义才是合理的?
第一个问题:在做网格时,所有的错误提示都表明部分网格生成要么有问题没有生成,要么生成的质量很差,要重新检查一下几何体和网格类型.
第二个问题:如果能够生成网格的话,重复定义没有问题,但是可能会出现生成面网格的spacing和体网格的spacing不一致而产生冲突,这种情况下gambit会自动处理,但生成的网格质量未必好.
9 在用gambit生成体网格的时候,出现了问题,提示是
Initialization failed to mesh 23 nodes .
ERROR:TG_mesh_domain failed with error code 1.
ERROR:Tegrahedral meshing has failed for volume v_volume.1.
this is usually caused by problems in the face meshs.
check hte skewnesses of your face meshes and make sure the face
mesh size are not too large in areas of small gaps .
我明白这是因为模型中的狭长面太多,但是在修改了大量的狭长面以后,
还是存在这个问题,每一个面我都挨着做了一下网格,看看生成的质量怎么样,检查应该没有问题了,但是在生成体网格的时候,又出现这个问题,不知道该怎么办
解决办法
1)减小体网格size,当有多个体的时候,体网格从小到大过渡要合理,跨度不要太大
2)合并小面(小面与小面合并,小面并入大面),变成虚体
我觉得合并小面是个很有效的方法,网格质量也可以得到提升
关键是两个小面之间的夹角很大,合并之后会出现一个像角铁一样的拐角面,
做网格的时候效果更差了,老兄说的合并成虚面的情况应该是两个面的夹角不是太大的情况,减小size我也试验了,但是减小了以后,我的网格数量就太多了,算东东的时候机子跑不动那就把夹角很大的那两个小面部分单独切为一个体算了,对这个体给个很小的size再试试吧,不行就把它忽略掉
Gambit生成的网格质量向来让人很头疼的,用ICEM几乎不出现负体积,这可能跟Gambit的算法有关系,对于曲率比较大的区域,只能增加该处的网格密度,只能这样了。
10、初始化
1 )FLUENT的初始化面板中有一项是设置从哪个地方开始计算(compute from),选择从不同的边界开始计算有很大的区别吗?该怎样根据具体问题选择从哪里计算呢?
比如有两个速度入口A和B,还有压力出口等等,是选速度入口还是压力出口?如果选速度入口,有两个,该选哪个呀?有没有什么原则标准之类的东西?
一般是选取ALL ZONE,即所有区域的平均处理,通常也可选择有代表性的进口
(如多个进口时)进行初始化。对于一般流动问题,初始值的设定并不重要,
因为计算容易收敛。但当几何条件复杂,而且流动速度高变化快(如音速流动),
初始条件要仔细选择。如果不收敛,还应试验不同的初始条件,甚至逐次改变边界条件最后达到所要求的条件。
2) 要判断自己模拟的结果是否是正确的,似乎解的收敛性要比那些初始条件和
边界条件更重要,可以这样理解吗?也就是说,对于一个具体的问题,初始条件
和边界条件的设定并不是唯一的,为了使解收敛,需要不断调整初始条件和
边界条件直到解收敛为止,是吗?如果解收敛了,是不是就可以基本确定模拟
的结果是正确的呢?
对于一个具体的问题,边界条件的设定当然是唯一的,只不过初始化时可以选择不同的初始条件(指定常流),为了使解的收敛比较好,我一般是逐渐的调节边界条件到额定值( "额定值"是指你题目中要求的入口或出口条件,例如计算一个管内流动,要求入口压力和温度为10MPa和3000K,那么我开始叠代时选择入口压力和温度为1MPa和500K(假设,这看你自己问题了),等流场计算的初具规模、收敛的较好了,再逐渐调高压力和温度,经过好几次调节后最终到达额定值 10MPa和3000K,这样比一开始就设为10MPa和3000K收敛的要好些)这样每次叠代可以比较容易收敛,每次调节后不用再初始化即自动调用上次的解为这次的初始解,然后继续叠代。
即使解收敛了,这并不意味着就可以基本确定模拟的结果是正确的,还需要和实验的结果以及理论分析结果进行对比分析。
11 shadow从何而来?其边界层应当如何设定?
你定义了属性不同的两个计算域(例如A和B区域),两个区域形成共同的交界面。
其中A计算域的面取以前的名称,而B计算域的面则取该名称.shadow的名字。
在边界条件中将该表面定义为interior,则可以将该两区域结合成相连的计算域。
请问shadow 是自动生成的还是要自己去定义?
自动生成的
******shadow面通常在两种情况下出现:
1.当一个wall两面都是流体域时,那么wall的一面被定义为wall.1,wall的
另一面就会被软件自动定义为wall.1_shadow,它的特性和wall是一样的,
有关它的处理和wall面没有什么区别;
2.另外一种情况就是当你在fluent软件中,把周期性面的周期特性除去时,
也会出现一个shadow面,这种情况比较好理解,shadow面和原来的面分别构
成周期性的两个面.
shadow也出现在wall的一面是流体,而另一面是固体的情况。此时可以
进行流体-固体的耦合计算。
12、静温和总温度
总温即驻点温度,速度完全滞止时的温度
静温即当地的热力学温度
两者有计算关系式的,和总压、静压差不多
也有区别呀……
比如说总温可以看作流体能量的一个度量,总压就不可以……
绝热流总温沿流线不变,总压是下降的(不等熵)……
速度嘛就是流体宏观运动的速度呀,由能量守衡知道,机械能和热能的总和是守衡的,当机械能全部转化为热能,准确点说这里应该指动能全部转化的时候,即速度为0的时候,那一点的温度就是驻点温度,也就是总温,这样的点在实际流场中可能存在,如前驻点,也可能不存在,只是一种换算而已,用来描述流体总能量的参量。
静温就是一般意义上的温度,就是你在那一点能测量出来的温度,比如你说的火场,那么实际温度,比如说1000度,这个就是静温:)静温是区别总温的
13、怎样判断计算结果是否收敛!
1)观察点处的值不再随计算步骤的增加而变化;
2)各个参数的残差随计算步数的增加而降低,最后趋于平缓;
3)要满足质量守恒(计算中不牵涉到能量)或者是质量与能量守恒(计算中牵涉到能量)。
特别要指出的是,即使前两个判据都已经满足了,也并不表示已经得到合理的收敛解了,因为,如果松弛因子设置得太紧,各参数在每步计算的变化都不是太大,也会使前两个判据得到满足。此时就要再看第三个判据了。
还需要说明的就是,一般我们都希望在收敛的情况下,残差越小越好,但是残差曲线是全场求平均的结果,有时其大小并不一定代表计算结果的好坏,有时即使计算的残差很大,但结果也许是好的,关键是要看计算结果是否符合物理事实,即残差的大小与模拟的物理现象本身的复杂性有关,必须从实际物理现象上看计算结果。比如说最近在算的一个全机模型,在大攻角情况下,解震荡得非常厉害,而且残差的量级也总下不去,但这仍然是正确的,为什么呢,因为大攻角下实际流动情形就是这样的,不断有涡的周期性脱落,流场本身就是非定常的,所以解也是波动的,处理的时候取平均就可以.
1. 什么是结构化网格和非结构化网格
1.1结构化网格
从严格意义上讲,结构化网格是指网格区域内所有的内部点都具有相同的毗邻单元。
它可以很容易地实现区域的边界拟合,适于流体和表面应力集中等方面的计算。
它的主要优点是:
网格生成的速度快。
网格生成的质量好。
数据结构简单。
对曲面或空间的拟合大多数采用参数化或样条插值的方法得到,区域光滑,
与实际的模型更容易接近。
它的最典型的缺点是适用的范围比较窄,只适用于形状规则的图形。
尤其随着近几年的计算机和数值方法的快速发展,人们对求解区域的几何
形状的复杂性的要求越来越高,在这种情况下,结构化网格生成技术就显得力不从心了。
1.2非结构化网格
同结构化网格的定义相对应,非结构化网格是指网格区域内的内部点不具有相同的毗邻单元。
即与网格剖分区域内的不同内点相连的网格数目不同。从定义上可以看出,结构化网格和非结构化网格有相互重叠的部分,即非结构化网格中可能会包含结构化网格的部分。
2.如果一个几何造型中既有结构化网格,也有非结构化网格,分块完成的,分别生成网格后,也可以直接就调入fluent中计算。
3.在fluent中,对同一个几何造型,如果既可以生成结构化网格,也可生成非结构化网格,当然前者要比后者的生成复杂的多,那么应该选择哪种网格,两者计算结果是否相同,哪个的计算结果更好些呢?
一般来说,结构网格的计算结果比非结构网格更容易收敛,也更准确。但后者容易做。
影响精度主要是网格质量,和你是用那种网格形式关系并不是很大,如果结构话网格的质量很差,结果同样不可靠,相对而言,结构化网格更有利于计算机存储数据和加快计算速度。
结构化网格据说计算速度快一些,但是网格划分需要技巧和耐心。非结构化网格容易生成,但相对来说速度要差一些。
4.在gambit中,只有map和submap生成的是结构化网格,其余均为非结构化网格。
5 我们经常遇到计算区是对称的问题,如同心圆环内的自然对流,圆柱绕流,
我们为了节省计算资源,许多时候都把计算区域趣味一半,但有些问题的真实情况是 两步分的流场及物理量的分布并不对称呀,问我们如何判断该不该区一般呢?
对称的问题一般用在流场稳态解..需满足1.几何图形对秤..2.边界条件对秤..
也就是物理条件对秤..3.structral网格..所以对秤轴的Flux和properties gradient必须为0...
6 按照算例学习了一段时间,有些简单的问题还可以分析对错,但是对于一些头脑里没有概念的问题,是做出了很多图行了,矢量图了,但是如何比较仔细全面的分析其合理性,觉得有些困难
答:
一般来讲计算应该辅助以高精度的实验作为证明,无法或不容易用实验实现的往往是计算一个经典的或别人算过的例子对比一下。既然已经作出了很多图,可以试试分析一下,看看跟经典的理论一致否。图是做出来了,但是真的想说明问题,恐怕还有一段路。
7 courant number实际上是指时间步长和空间步长的相对关系,系统自动减小courant数,这种情况一般出现在存在尖锐外形的计算域,当局部的流速过大或者压差过大时出错,把局部的网格加密再试一下。
在fluent中,用courant number来调节计算的稳定性与收敛性。一般来说,
随着courant number的从小到大的变化,收敛速度逐渐加快,但是稳定性逐渐降低。
所以具体的问题,在计算的过程中,最好是把courant number从小开始设置,
看看迭代残差的收敛情况,如果收敛速度较慢而且比较稳定的话,可以适当的增加courant number的大小,根据自己具体的问题,找出一个比较合适的courant number,让收敛速度能够足够的快,而且能够保持它的稳定性。
8 FLUENT 中关于松弛因子的解释
由于流体力学中要求解非线性的方程,在求解过程中,控制变量的变化是很必要的,这就通过松弛因子来实现的.它控制变量在每次迭代中的变化.也就是说,变量的新值为原值加上变化量乘以松弛因子.
如:
A1=A0+B*DETA
A1 新值
A0 原值
B 松弛因子
DETA 变化量
松弛因子可控制收敛的速度和改善收敛的状况!
为1,相当于不用松弛因子大于1,为超松弛因子,加快收敛速度
小于1,欠松弛因子,改善收敛的条件
一般来讲,大家都是在收敛不好的时候,采用一个较小的欠松弛因子。
Fluent里面用的是欠松弛,主要防止两次迭代值相差太大引起发散。
松弛因子的值在0~1之间,越小表示两次迭代值之间变化越小,也就越稳定,但收敛也就越慢。
10、fluent生成mpg文件经验
步骤就是先在Solve\Animate下Define一个动画序列,然后算的时候
fluent会记下相应的帧。算完后,用Playback回访或者生成mpg文件。
经验是:此时用那个Playback生成mpg文件时,十次大概能有一次成功!
解决方法是:关了fluent重启,然后再用那个Playback读那个序列,然后生成
mpg文件,这么做的成功率比较高
11.划分体网格时,为了得到高质量的网格,把体分成了几部分,分别划分网格,
是不是导入fluent时要用tmerge合并成一个体网格呀? you can see this example
in fluent 6.1.22 Using Sliding Meshes
答:
不用。
在同一GAMBIT文件中对不同的体划分网格时,最后输出的网格文件包含了所有的网格。
注意:若用split剖分体时,要选择“connected”选项,否则FLUENT会将交界面默认
为壁面(wall)。
面网格划分也是类似的。
12.分块划分网格,定义边界时,交接面还用定义嘛,如果不定义是不是默认为墙呀,
要想使其为内部界面,定义为interface吗?
答:
split出来的区域,如果你不定义边界,gambit会默认为interior.
13 亚松弛因子
1)、亚松驰(Under Relaxation):所谓亚松驰就是将本层次计算结果与上一层次结果的差值作适当缩减,以避免由于差值过大而引起非线性迭代过程的发散。用通用变量 来写出时,为松驰因子(Relaxation Factors)。《数值传热学-214》
2)、FLUENT中的亚松驰:由于FLUENT所解方程组的非线性,我们有必要控制 的变化。一般用亚松驰方法来实现控制,该方法在每一部迭代中减少了 的变化量。亚松驰最简单的形式为:
单元内变量 等于原来的值 加上亚松驰因子a与 变化的积分离解算器使用亚松驰来控制每一步迭代中的计算变量的更新。这就意味着使用分离解算器解的方程,包括耦合解算器所解的非耦合方程(湍流和其他标量)都会有一个相关的亚松驰因子。
在FLUENT中,所有变量的默认亚松驰因子都是对大多数问题的最优值。这个值适合于很多问题,但是对于一些特殊的非线性问题(如:某些湍流或者高Rayleigh数自然对流问题),在计算开始时要慎重减小亚松驰因子。
使用默认的亚松驰因子开始计算是很好的习惯。如果经过4到5步的迭代残差仍然增长,你就需要减小亚松驰因子。
有时候,如果发现残差开始增加,你可以改变亚松驰因子重新计算。在亚松驰因子过大时通常会出现这种情况。最为安全的方法就是在对亚松驰因子做任何修改之前先保存数据文件,并对解的算法做几步迭代以调节到新的参数。最典型的情况是,亚松驰因子的增加会使残差有少量的增加,但是随着解的进行残差的增加又消失了。如果残差变化有几个量级你就需要考虑停止计算并回
到最后保存的较好的数据文件。
注意:粘性和密度的亚松驰是在每一次迭代之间的。而且,如果直接解焓方程而不是温度方程(即:对PDF计算),基于焓的温度的更新是要进行亚松驰的。要查看默认的亚松弛因子的值,你可以在解控制面板点击默认按钮。
对于大多数流动,不需要修改默认亚松弛因子。但是,如果出现不稳定或者发散你就需要减小默认的亚松弛因子了,其中压力、动量、k和e的亚松弛因子默认值分别为0.2,0.5,0.5和0.5。
对于SIMPLEC格式一般不需要减小压力的亚松弛因子。在密度和温度强烈耦合的问题中,如相当高的Rayleigh数的自然或混合对流流动,应该对温度和/或密度(所用的亚松弛因子小于1.0)进行亚松弛。相反,当温度和动量方程没有耦合或者耦合较弱时,流动密度是常数,温度的亚松弛因子可以设为1.0。
对于其它的标量方程,如漩涡,组分,PDF变量,对于某些问题默认的亚松弛可能过大,尤其是对于初始计算。你可以将松弛因子设为0.8以使得收敛更容易。
14 SIMPLE与SIMPLEC比较
在FLUENT中,可以使用标准SIMPLE算法和SIMPLEC(SIMPLE-Consistent)算法,默认是SIMPLE算法,但是对于许多问题如果使用SIMPLEC可能会得到更好的结果,尤其是可以应用增加的亚松驰迭代时,具体介绍如下。
对于相对简单的问题(如:没有附加模型激活的层流流动),其收敛性已经被压力速度耦合所限制,你通常可以用SIMPLEC算法很快得到收敛解。在SIMPLEC中,压力校正亚松驰因子通常设为1.0,它有助于收敛。但是,在有些问题中,将压力校正松弛因子增加到1.0可能会导致不稳定。
对于所有的过渡流动计算,强烈推荐使用PISO算法邻近校正。它允许你使用大的时间步,而且对于动量和压力都可以使用亚松驰因子1.0。对于定常状态问题,具有邻近校正的PISO并不会比具有较好的亚松驰因子的SIMPLE或SIMPLEC好。
对于具有较大扭曲网格上的定常状态和过渡计算推荐使用PISO倾斜校正。
当你使用PISO邻近校正时,对所有方程都推荐使用亚松驰因子为1.0或者接近1.0。
如果你只对高度扭曲的网格使用PISO倾斜校正,请设定动量和压力的亚松驰因子之和为1.0
比如:压力亚松驰因子0.3,动量亚松驰因子0.7)。如果你同时使用PISO的两种校正方法,推荐参阅PISO邻近校正中所用的方法。
[转帖]湍流模型选取的准则
湍流模型选取的准则:流体是否可压、建立特殊的可行的问题、精度的要求、计算机的能力、时间的限制。为了选择最好的模型,你需要了解不同条件的适用范围和限制。
FLUENT软件中提供以下湍流模型:1 Spalart-Allmaras 模型;2 k-ε模型;3 k-ω模型;4 雷诺应力模型(RSM);5 大涡模拟模型(LES)。
1 Spalart-Allmaras 模型应用范围:
Spalart-Allmaras模型是设计用于航空领域的,主要是墙壁束缚(wall-bounded)流动,而且已经显示出很好的效果。在透平机械中的应用也愈加广泛。
在湍流模型中利用Boussinesq逼近,中心问题是怎样计算漩涡粘度。这个模型被Spalart-Allmaras提出,用来解决因湍流动粘滞率而修改的数量方程。
模型评价:
Spalart-Allmaras模型是相对简单的单方程模型,只需求解湍流粘性的输运方程,不需要求解当地剪切层厚度的长度尺度;由于没有考虑长度尺度的变化,这对一些流动尺度变换比较大的流动问题不太适合;比如平板射流问题,从有壁面影响流动突然变化到自由剪切流,流场尺度变化明显等问题。
Spalart-Allmaras模型中的输运变量在近壁处的梯度要比k-ε中的小,这使得该模型对网格粗糙带来数值误差不太敏感。
Spalart-Allmaras模型不能断定它适用于所有的复杂的工程流体。例如不能依靠它去预测均匀衰退,各向同性湍流。
2 k-ε模型① 标准的k-ε模型:
最简单的完整湍流模型是两个方程的模型,要解两个变量,速度和长度尺度。在FLUENT中,标准k-ε模型自从被Launder and Spalding提出之后,就变成工程流场计算中主要的工具了。适用范围广、经济、合理的精度。它是个半经验的公式,是从实验现象中总结出来的。
湍动能输运方程是通过精确的方程推导得到,耗散率方程是通过物理推理,数学上模拟相似原型方程得到的。
应用范围:
该模型假设流动为完全湍流,分子粘性的影响可以忽略,此标准κ-ε模型只适合完全湍流的流动过程模拟。
② RNG k-ε模型:
RNG k-ε模型来源于严格的统计技术。它和标准k-ε模型很相似,但是有以下改进:
a、RNG模型在ε方程中加了一个条件,有效的改善了精度。
b、考虑到了湍流漩涡,提高了在这方面的精度。
c、RNG理论为湍流Prandtl数提供了一个解析公式,然而标准k-ε模型使用的是用户提供的常数。
d、标准k-ε模型是一种高雷诺数的模型,RNG理论提供了一个考虑低雷诺数流动粘性的解析公式。这些公式的作用取决于正确的对待近壁区域。
这些特点使得RNG k-ε模型比标准k-ε模型在更广泛的流动中有更高的可信度和精度。
③ 可实现的k-ε模型:
可实现的k-ε模型是近期才出现的,比起标准k-ε模型来有两个主要的不同点:
·可实现的k-ε模型为湍流粘性增加了一个公式。
·为耗散率增加了新的传输方程,这个方程来源于一个为层流速度波动而作的精确方程。
术语“realizable”,意味着模型要确保在雷诺压力中要有数学约束,湍流的连续性。
应用范围:
可实现的k-ε模型直接的好处是对于平板和圆柱射流的发散比率的更精确的预测。而且它对于旋转流动、强逆压梯度的边界层流动、流动分离和二次流有很好的表现。
可实现的k-ε模型和RNG k-ε模型都显现出比标准k-ε模型在强流线弯曲、漩涡和旋转有更好的表现。由于带旋流修正的k-ε模型是新出现的模型,所以现在还没有确凿的证据表明它比RNG k-ε模型有更好的表现。但是最初的研究表明可实现的k-ε模型在所有k-ε模型中流动分离和复杂二次流有很好的作用。
该模型适合的流动类型比较广泛,包括有旋均匀剪切流,自由流(射流和混合层),腔道流动和边界层流动。对以上流动过程模拟结果都比标准k-ε模型的结果好,特别是可再现k-ε模型对圆口射流和平板射流模拟中,能给出较好的射流扩张。
模型评价:
可实现的k-ε模型的一个不足是在主要计算旋转和静态流动区域时不能提供自然的湍流粘度,这是因为可实现的k-ε模型在定义湍流粘度时考虑了平均旋度的影响。这种额外的旋转影响已经在单一旋转参考系中得到证实,而且表现要好于标准k-ε模型。由于这些修改,把它应用于多重参考系统中需要注意。
3 k-ω模型① 标准的k-ω模型:
标准的k-ω模型是基于Wilcox k-ω模型,它是为考虑低雷诺数、可压缩性和剪切流传播而修改的。标准的k-ε模型的一个变形就是SST k-ω模型,它在FLUENT中也是可用的
应用范围:
Wilcox k-ω模型预测了自由剪切流传播速率,像尾流、混合流动、平板绕流、圆柱绕流和放射状喷射,因而可以应用于墙壁束缚流动和自由剪切流动。
② SST k-ω模型:
SST k-ω模型由Menter发展,以便使得在广泛的领域中可以独立于k-ε模型,使得在近壁自由流中k-ω模型有广泛的应用范围和精度。为了达到此目的,k-ε模型变成了k-ω公式。SST k-ω模型和标准的k-ω模型相似,但有以下改进:
·SST k-ω模型和k-ε模型的变形增长于混合功能和双模型加在一起。混合功能是为近壁区域设计的,这个区域对标准的k-ω模型有效,还有自由表面,这对k-ε模型的变形有效。
·SST k-ω模型合并了来源于ω方程中的交叉扩散。
·湍流粘度考虑到了湍流剪应力的传播。
·模型常量不同。
这些改进使得SST k-ω模型比标准k-ω模型在广泛的流动领域中有更高的精度和可信度。
③ 两个模型的对比
两种模型有相似的形式,有方程k和ω。SST和标准模型的不同之处是:
·从边界层内部的标准k-ω模型到边界层外部的高雷诺数的k-e模型的逐渐转变。
·考虑到湍流剪应力的影响修改了湍流粘性公式。
[概念]Boussinesq假设与Boussinesq近似
Boussinesq, 概念
Boussinesq假设是在湍流模拟中用到的,湍流脉动所造成的附加应力也与层流运动应力那样可以同时均的应变率关联起来。
Boussinesq近似,用在对控制方程中的密度变化近似中:在密度变化不大的浮力流问题中,只在重力项中考虑密度的变化,而控制方程的其它项中不考虑浮力作用。
因此,Boussinesq假设和Boussinesq近似是两回事