1、建议大家一起讨论一下湍流边界条件该如何设置本人也是刚刚接触 Fluent 系列软件不久,在应用它来求解 CFD 问题时遇到了不少问题,也得到了很多宝贵经验,其中湍流边界条件的设置就是一个很棘手的问题。最近对该问题总结经验如下:在入口、出口或远场边界流入流域的流动,FLUENT 需要指定输运标量的值。本节描述了对于特定模型需要哪些量,并且该如何指定它们。也为确定流入边界值最为合适的方法提供了指导方针。使用轮廓指定湍流参量在入口处要准确的描述边界层和完全发展的湍流流动,你应该通过实验数据和经验公式创建边界轮廓文件来完美的设定湍流量。如果你有轮廓的分析描述而不是数据点,你也可以用这个分析描述来创建边
2、界轮廓文件,或者创建用户自定义函数来提供入口边界的信息。一旦你创建了轮廓函数,你就可以使用如下的方法: Spalart-Allmaras 模型:在湍流指定方法下拉菜单中指定湍流粘性比,并在在湍流粘性比之后的下拉菜单中选择适当的轮廓名。通过将 m_t/m 和密度与分子粘性的适当结合, FLUENT 为修改后的湍流粘性计算边界值。 k-e 模型:在湍流指定方法下拉菜单中选择 K 和 Epsilon 并在湍动能(Turb. Kinetic Energy)和湍流扩散速度(Turb. Dissipation Rate)之后的下拉菜单中选择适当的轮廓名。 雷诺应力模型:在湍流指定方法下拉菜单中选择 K 和
3、 Epsilon 并在湍动能(Turb. Kinetic Energy)和湍流扩散速度( Turb. Dissipation Rate)之后的下拉菜单中选择适当的轮廓名。在湍流指定方法下拉菜单中选择雷诺应力部分,并在每一个单独的雷诺应力部分之后的下拉菜单中选择适当的轮廓名。湍流量的统一说明在某些情况下流动流入开始时,将边界处的所有湍流量指定为统一值是适当的。比如说,在进入管道的流体,远场边界,甚至完全发展的管流中,湍流量的精确轮廓是未知的。在大多数湍流流动中,湍流的更高层次产生于边界层而不是流动边界进入流域的地方,因此这就导致了计算结果对流入边界值相对来说不敏感。然而必须注意的是要保证边界值不
4、是非物理边界。非物理边界会导致你的解不准确或者不收敛。对于外部流来说这一特点尤其突出,如果自由流的有效粘性系数具有非物理性的大值,边界层就会找不到了。你可以在使用轮廓指定湍流量一节中描述的湍流指定方法,来输入同一数值取代轮廓。你也可以选择用更为方便的量来指定湍流量,如湍流强度,湍流粘性比,水力直径以及湍流特征尺度,下面将会对这些内容作一详细叙述。湍流强度 I 定义为相对于平均速度 u_avg 的脉动速度 u的均方根。小于或等于 1%的湍流强度通常被认为低强度湍流,大于 10%被认为是高强度湍流。从外界,测量数据的入口边界,你可以很好的估计湍流强度。例如:如果你模拟风洞试验,自由流的湍流强度通常
5、可以从风洞指标中得到。在现代低湍流风洞中自由流湍流强度通常低到 0.05%。. 对于内部流动,入口的湍流强度完全依赖于上游流动的历史,如果上游流动没有完全发展或者没有被扰动,你就可以使用低湍流强度。如果流动完全发展,湍流强度可能就达到了百分之几。完全发展的管流的核心的湍流强度可以用下面的经验公式计算:例如,在雷诺数为 50000 是湍流强度为 4%湍流尺度 l 是和携带湍流能量的大涡的尺度有关的物理量。在完全发展的管流中,l 被管道的尺寸所限制,因为大涡不能大于管道的尺寸。L 和管的物理尺寸之间的计算关系如下: 其中 L 为管道的相关尺寸。因子 0.07 是基于完全发展湍流流动混合长度的最大值
6、的,对于非圆形截面的管道,你可以用水力学直径取代 L。如果湍流的产生是由于管道中的障碍物等特征,你最好用该特征长度作为湍流长度 L 而不是用管道尺寸。 注意:公式 并不是适用于所有的情况。它只是在大多数情况下得很好的近似。对于特定流动,选择 L 和 l 的原则如下: 对于完全发展的内部流动,选择强度和水力学直径指定方法,并在水力学直径流场中指定 L=D_H。 对于旋转叶片的下游流动,穿孔圆盘等,选择强度和水力学直径指定方法,并在水力学直径流场中指定流动的特征长度为 L 对于壁面限制的流动,入口流动包含了湍流边界层。选择湍流强度和长度尺度方法并使用边界层厚度 d_99 来计算湍流长度尺度 l,在
7、湍流长度尺度流场中输入 l=0.4 d_99 这个值湍流粘性比 m_t/m 直接与湍流雷诺数成比例 (Re_t ?k2/(e n)。Re_t 在高湍流数的边界层,剪切层和完全发展的管流中是较大的(100 到 1000)。然而,在大多数外流的自由流边界层中 m_t/m 相当的小。湍流参数的典型设定为 1 m_t/m 10。要根据湍流粘性比来指定量,你可以选择湍流粘性比(对于 Spalart-Allmaras 模型)或者强度和粘性比(对于 k-e 模型或者 RSM)。推导湍流量的关系式要获得更方便的湍流量的输运值,如:I, L,或者 m_t/m,你必须求助于经验公式,下面是FLUENT 中常用的几
8、个有用的关系式。要获得修改的湍流粘性,它和湍流强度 I 长度尺度l 有如下关系:在 Spalart-Allmaras 模型中,如果你要选择湍流强度和水力学直径来计算 l 可以从前面的公式中获得。湍动能 k 和湍流强度 I 之间的关系为:其中 u_avg 为平均流动速度除了为 k 和 e 指定具体的值之外,无论你是使用湍流强度和水力学直径,强度和长度尺度或者强度粘性比方法,你都要使用上述公式。如果你知道湍流长度尺度 l 你可以使用下面的关系式:其中 是湍流模型中指定的经验常数(近似为 0.09),l 的公式在前面已经讨论了。除了为 k 和 e 制定具体的值之外,无论你是使用湍流强度和水力学直径还
9、是强度和长度尺度,你都要使用上述公式。E 的值也可以用下式计算,它与湍流粘性比 m_t/m 以及 k 有关:其中 是湍流模型中指定的经验常数(近似为 0.09)。除了为 k 和 e 制定具体的值之外,无论你是使用湍流强度和水力学直径还是强度和长度尺度,你都要使用上述公式。 如果你是在模拟风洞条件,在风洞中模型被安装在网格和/或金属网格屏下游的测试段,你可以用下面的公式:其中, 是你希望的在穿过流场之后 k 的衰减(比方说 k 入口值的 10%), 自由流的速度 是流域内自由流的流向长度 Equation 9 是在高雷诺数各向同性湍流中观察到的幂率衰减的线性近似。它是基于衰减湍流中 k 的精确方
10、程 U ?k/?x = - e. 如果你用这种方法估计 e,你也要用方程 7 检查结果的湍流粘性比 m_t/m,以保证它不是太大。虽然这不是 FLUENT 内部使用的方法,但是你可以用它来推导 e 的常数自由流值,然后你可以用湍流指定方法下拉菜单中选择 K 和 Epsilon 直接指定。在这种情况下,你需要使用方程 3 从 I 来计算 k。当使用 RSM 时,如果你不在雷诺应力指定方法的下拉列表中使用雷诺应力选项,明显的制定入口处的雷诺应力值,它们就会近似的由 k 的指定值来决定。湍流假定为各向同性,保证以及(下标 a 不求和 ). 如果你在雷诺应力指定方法下拉列表中选择 K 或者湍流强度,F
11、LUENT 就会使用这种方法。对大涡模拟(LES)指定入口湍流大涡模拟模型一节中所描述的 LES 速度入口中指定的的湍流强度值,被用于随机扰动入口处速度场的瞬时速度。它并不指定被模拟的湍流量。正如大涡模拟模型中介绍的边界条件中所描述的,通过叠加每个速度分量的随机扰动来计算流动入口边界处的随机成分.压力入口边界条件压力入口边界条件用于定义流动入口的压力以及其它标量属性。它即可以适用于可压流,也可以用于不可压流。压力入口边界条件可用于压力已知但是流动速度和/或速率未知的情况。这一情况可用于很多实际问题,比如浮力驱动的流动。压力入口边界条件也可用来定义外部或无约束流的自由边界。对于流动边界条件的概述
12、,请参阅流动入口和出口一节。压力入口边界条件的输入综述对于压力入口边界条件你需要输入如下信息 驻点总压 驻点总温 流动方向 静压 湍流参数(对于湍流计算) 辐射参数(对于使用 P-1 模型、DTRM 模型或者 DO 模型的计算) 化学组分质量百分比(对于组分计算) 混合分数和变化(对于 PDF 燃烧计算) 程序变量(对于预混和燃烧计算) 离散相边界条件(对于离散相的计算) 次要相的体积分数(对于多相计算)所有的值都在压力入口面板中输入(Figure 1),该面板是从边界条件打开的。Figure 1: 压力入口面板压力输入和静压头压力场(p_s)和压力输入 (p_s or p_0)包括静压头 r
13、_0 g x。也就是 FLUENT 以下式定义的压力:或者这一定义允许静压头放进体积力项(r - r_0)g 中考虑,而且当密度一致时,从压力计算中排除了。因此你的压力输入不因该考虑静压的微分,压力(p_s)的报告也不会显示静压的任何影响。有关浮力驱动流动的内容请参阅浮力驱动流动和自然对流的信息定义总压和总温在压力入口面板中的 Gauge Total Pressure field 输入总压值。总温会在 Total Temperature field 中设定。记住,总压值是在操作条件面板中定义的与操作压力有关的的总压值。不可压流体的总压定义为:对于可压流体为:其中:p_0 =总压p_s = 静压
14、M = 马赫数c = 比热比(c_p/c_v)如果模拟轴对称涡流,方程 1 中的 v 包括了旋转分量。如果相邻区域是移动的(即:如果使用旋转参考坐标系,多重参考坐标系,混合平面或者滑移网格),而且你是使用分离解算器。那么方程 1 中的速度(或者方程 3 中的马赫数)将是绝对的,或者相对与网格速度。这依赖于解算器面板中绝对速度公式是否激活。对于耦合解算器,方程 1 中的速度(或者方程 3 中的马赫数)通常是在绝对坐标系下的速度。看了你的问题我也碰到过,你的初始是如何设置的?FLUENT 的初始化面板中有一项是设置从哪个地方开始计算(compute from), 选择从不同的边界开始计算有很大的区
15、别吗? 一般是选取 ALL ZONE,即所有区域的平均处理,通常也可选择有代表性的进口 (如多个进口时)进行初始化。对于一般流动问题,初始值的设定并不重要, 因为计算容易收敛。但当几何条件复杂,而且流动速度高变化快(如音速流动) , 初始条件要仔细选择。如果不收敛,还应试验不同的初始条件,甚至逐次改变边界 条件最后达到所要求的条件。 2 要判断自己模拟的结果是否是正确的,似乎解的收敛性要比那些初始条件和 边界条件更重要,可以这样理解吗?也就是说,对于一个具体的问题,初始条件 和边界条件的设定并不是唯一的,为了使解收敛,需要不断调整初始条件和 边界条件直到解收敛为止,是吗?如果解收敛了,是不是就
16、可以基本确定模拟 的结果是正确的呢? 对于一个具体的问题,边界条件的设定当然是唯一的,只不过初始化时可以选择 不同的初始条件(指定常流),为了使解的收敛比较好,我一般是逐渐的调节边界 条件到额定值( “额定值“ 是指你题目中要求的入口或出口条件,例如计算一个管 内流动,要求入口压力和温度为 10MPa 和 3000K,那么我开始叠代时选择入口压力和 温度为 1MPa 和 500K(假设,这看你自己问题了),等流场计算的初具规模、收敛的 较好了,再逐渐调高压力和温度,经过好几次调节后最终到达额定值 10MPa 和 3000K, 这样比一开始就设为 10MPa 和 3000K 收敛的要好些)这样每
17、次叠代可以比较容易收敛, 每次调节后不用再初始化即自动调用上次的解为这次的初始解,然后继续叠代。 即使解收敛了,这并不意味着就可以基本确定模拟的结果是正确的,还需要和实验 的结果以及理论分析结果进行对比分析。怎样判断计算结果是否收敛!1)观察点处的值不再随计算步骤的增加而变化; 2)各个参数的残差随计算步数的增加而降低,最后趋于平缓; 3)要满足质量守恒(计算中不牵涉到能量)或者是质量与能量守恒(计算中牵涉到能量)。 特别要指出的是,即使前两个判据都已经满足了,也并不表示已经得到合理的收敛解了, 因为,如果松弛因子设置得太紧,各参数在每步计算的变化都不是太大,也会使前两个 判据得到满足。此时就
18、要再看第三个判据了。还需要说明的就是,一般我们都希望在收敛的情况下,残差越小越好,但是残差曲线是 全场求平均的结果,有时其大小并不一定代表计算结果的好坏,有时即使计算的残差 很大,但结果也许是好的,关键是要看计算结果是否符合物理事实,即残差的大小与 模拟的物理现象本身的复杂性有关,必须从实际物理现象上看计算结果。比如说本斑 最近在算的一个全机模型,在大攻角情况下 ,解震荡得非常厉害,而且残差的量级也总 下不去,但这仍然是正确的,为什么呢,因为大攻角下实际流动情形就是这样的,不断有 涡的周期性脱落,流场本身就是非定常的 ,所以解也是波动的 ,处理的时候取平均就可以呢:)残差是 cell 各个 F
19、ace 的通量之和,当收敛后,理论上当单元体内没有源相时各个面流入的通 量也就是对物理量的输运之和应该为 0。最大残差或者 RSM 残差反映流场与所要模拟流场(指收敛后 应该得到的流场,当然收敛后得到的流场与真实流场之间还是存在一定的差距)的差距,残差越小 越好,由于存在数值精度问题,不可能得到 0 残差,对于单精度计算一般应该低于初始残差 1e-03 以下为好,但还要看具体问题。 一般在 Fluent 里可以添加进出口流量监控(print or plot),当残差收敛到一定程度后, 还要看进出口流量是否达到稳定平衡,才可以确认收敛与否。 残差在较高位震荡,需要检查边界条件是否合理,其次检查初
20、始条件是否合适,比如在有激波的 流场,初始条件不合适,会带来流场的震荡。有时流场可能有分离或者回流,这本身是非定常现象, 计算时残差会在一定程度上发生震荡,这时如果进出口流量是否达到稳定平衡,也可以认为流场收敛了 (前提是要消除其他不合理因数)。另外 Fluent 缺损地采用多重网格,在计算后期,将多重网格设置 为零可以避免一些波长的残差在细网格上发生震荡。在进行稳态计算时候,开始残差线是一直下降的,可是到后来各种残差线都显示为波形波动,是不是不收敛阿?有些复杂或流动环境恶劣情形下确实很难收敛。计算的精度(2 阶),网格太疏,网格质量太差, 等都会使残差波动。 经常遇到,一开始下降,然后出现波
21、动,可以降低松弛系数,我的问题就能收敛,但如果网格质 量不好,是很难的。通常,计算非结构网格,如果问题比较复杂,会出现这种情况, 建议作网格时多下些功夫 。 理论上说,残差的震荡是数值迭代在计算域内传递遭遇障碍物反射形成周期震荡导致的结果, 与网格亚尺度雷诺数有关。例如,通常压力边界是主要的反射源,换成 OUTFLOW 边界会好些。 这主要根据经验判断。所以我说网格和边界条件是主要因素。不知道你进行计算时,残差是如何变化的,我个人认为总是出现turbulent viscosity limited to viscosity ratio of 1.000000e+005 in 2931 cells
22、 reversed flow in 130 faces on outflow 8. reversed flow in 267 faces on outflow 9. turbulent viscosity limited to viscosity ratio of 1.000000e+005 in 2838 cells reversed flow in 115 faces on outflow 8. reversed flow in 267 faces on outflow 9. turbulent viscosity limited to viscosity ratio of 1.000000e+005 in 2743 cells 这样的提示结果如果叠代到左后不出现上面提示,结果汉可以接受reversed flow in 115 faces on outflow 8. reversed flow in 267 faces on outflow 9. 其实计算有回流现象倒没什么,只是湍流粘度比总是超限结果不可信吧!