对于相对简单的问题(如:没有附加模型激活的层流流动),其收敛性已经被压力速度耦合所限制,你通常可以用SIMPLEC算法很快得到收敛解。在SIMPLEC中,压力校正亚松驰因子通常设为1.0,它有助于收敛。但是,在有些问题中,将压力校正松弛因子增加到1.0可能会导致不稳定。对于这种情况,你需要使用更为保守的亚松驰或者使用SIMPLE算法。对于包含湍流和/或附加物理模型的复杂流动,只要用压力速度耦合做限制,SIMPLEC会提高收敛性。它通常是一种限制收敛性的附加模拟参数,在这种情况下,SIMPLE和SIMPLEC会给出相似的收敛速度。
PISO
对于所有的过渡流动计算,强烈推荐使用PISO算法邻近校正。它允许你使用大的时间步,而且对于动量和压力都可以使用亚松驰因子1.0。对于定常状态问题,具有邻近校正的PISO并不会比具有较好的亚松驰因子的SIMPLE或SIMPLEC好。
对于具有较大扭曲网格上的定常状态和过渡计算推荐使用PISO倾斜校正。
当你使用PISO邻近校正时,对所有方程都推荐使用亚松驰因子为1.0或者接近1.0。如果你只对高度扭曲的网格使用PISO倾斜校正,请设定动量和压力的亚松驰因子之和为1.0(比如:压力亚松驰因子0.3,动量亚松驰因子0.7)。如果你同时使用PISO的两种校正方法,推荐参阅PISO邻近校正中所用的方法。
用户输入
你可以在解控制面板(如下图)中指定压力速度耦合方法。菜单:Solve/Controls/Solution...。
在离散框下面的压力速度耦合下拉菜单中选择SIMPLE,SIMPLEC或者PISO。
如果你选择PISO,面板就会扩展到PISO参数设定面板。在默认的情况下,倾斜校正和邻近校正都是打开的。如果你只想使用一种校正,你可以关闭适当的选项。默认的迭代数为1,你不必修改这个值。
用户输入
设定亚松驰因子
如亚松驰一节所述,分离求解器使用亚松驰来控制每一步迭代中的计算变量的更新。这就意味着,使用分离求解器解的方程,包括耦合求解器所解的非耦合方程(湍流和其他标量)都会有一个相关的亚松驰因子。
在FLUENT中,所有变量的默认亚松驰因子都是对大多数问题的最优值。这个值适合于很多问题,但是对于一些特殊的非线性问题(如:某些湍流或者高Rayleigh数自然对流问题),在计算开始时要慎重减小亚松驰因子。
使用默认的亚松驰因子开始计算是很好的习惯。如果经过4到5步的迭代残差仍然增长,你就需要减小亚松驰因子。
有时候,如果发现残差开始增加,你可以改变亚松驰因子重新计算。在亚松驰因子过大时通常会出现这种情况。最为安全的方法就是在对亚松驰因子做任何修改之前先保存数据文件,并对解的算法做几步迭代以调节到新的参数。最典型的情况是,亚松驰因子的增加会使残差有少量的增加,但是随着解的进行残差的增加又消失了。如果残差变化有几个量级你就
需要考虑停止计算并回到最后保存的较好的数据文件。
注意:粘性和密度的亚松驰是在每一次迭代之间的。而且,如果直接解焓方程而不是温度方程(即:对PDF计算),基于焓的温度的更新是要进行亚松驰的。要查看默认的亚松弛因子的值,你可以在解控制面板点击默认按钮。
对于大多数流动,不需要修改默认亚松弛因子。但是,如果出现不稳定或者发散你就需要减小默认的亚松弛因子了,其中压力、动量、k和e的亚松弛因子默认值分别为0.2,0.5, 0.5和0.5。对于SIMPLEC格式一般不需要减小压力的亚松弛因子。在密度和温度强烈耦合的问题中,如相当高的Rayleigh数的自然或混合对流流动,应该对温度和/或密度(所用的亚松弛因子小于1.0)进行亚松弛。相反,当温度和动量方程没有耦合或者耦合较弱时,流动密度是常数,温度的亚松弛因子可以设为1.0。
对于其它的标量方程,如漩涡,组分,PDF变量,对于某些问题默认的亚松弛可能过大,尤其是对于初始计算。你可以将松弛因子设为0.8以使得收敛更容易。
用户输入
你可以在解控制面板中修改亚松驰因子 (Figure 1).。菜单:Solve/Controls/Solution...。 你可以在亚松弛因子的每一个方程名字后面设定相关的亚松弛因子。
注意:如果你使用分离求解器,所有的方程都有相关的亚松弛因子。如果你使用某一耦合求解器,只有在后面解出的方程油压松弛因子。
如果你改变了亚松弛因子,但是你现在想要回到FLUENT的默认设定,你可以点击默认按钮。此时FLUENT会将亚松弛因子改回到默认值,相应的默认按钮变成了重置按钮。要将设定改回你就可以点击重置按钮。
改变Courant数
对于FLUENT的耦合求解器,对时间步进格式的主要控制是Courant数(CFL)。时间步和CFL是成比例的,如显示格式的方程3的定义。
线性稳定性理论确定了CFL的允许值的范围(即:给定数值格式保持稳定的范围)。当你指定了一个允许的CFL值,FLUENT会用显示格式一节中的方程3计算出适当的时间步。一般说来,时间步越大收敛越快,所以在允许的范围内将CFL设定越大越好。
耦合隐式和显式求解器的稳定性极限是相当不同的。显式求解器有更大的限制范围,需要比隐式求解器更小的CFL设置。关于这两种求解器CFL的选择会在下面两节中讨论。
耦合显式求解器的Courant数
线性稳定性分析表明,耦合显式求解器中使用的多步格式所允许的CFL依赖于步的数量以及粘性和耗散项的更新频率(参阅改变多步格式一节)。但是,一般说来,你可以假定多步格式对于Courant数达到2.5时是稳定的。由于控制方程的非线性,在实际中这个稳定性限制通常是较低的。
耦合显式求解器的默认CFL为1.0,但是对于一些二维问题你可以增加它。一般说来你不可以使用高于2.0的CFL数。
如果解是发散的,也就是说残差增加的很快,而且你的问题设定和初始化都没有错误,那么这个时候通常需要减小Courant数。根据启动条件的精确性不同,你可以将CFL减小到0.1至0.5来开始计算。一旦启动的瞬时现象减弱,你就可以再开始增加Courant数了。
耦合隐式求解器的Courant数
线性稳定性理论表面,耦合隐式求解器中使用的点Gauss-Seidel格式是无条件稳定的。但是,和显式求解器一样,控制方程的非线性常常限制了稳定性条件。
耦合隐式求解器默认的CFL为5.0。根据你的问题的复杂性不同,你通常可以将CFL增加到10,20,100甚至更高。你会发现,在问题解算开始启动时需要较小的CFL(在启动时,解的变化是高度非线性的),但是在后面的计算中就可以逐渐增加CFL了。
耦合AMG求解器可以在给定的迭代中检测多重网格循环的收敛性。如果出现问题,它会自动减小CFL并重新迭代,同时向屏幕输出一个消息。五次尝试来成功完成迭代。成功完成当前迭代之后,CFL返回到初始值,迭代程序继续进行所需的计算。
用户输入
Courant数在解控制面板中设置(如下图),菜单:Solve/Controls/Solution...。
Figure 1: 耦合显式求解器的解控制面板
在解参数框中输入Courant数的值。需要注意的是,上面的面板是耦合显式求解器对应的面板。对于耦合隐式求解器,解参数框中只有Courant数一项。
当你在求解器面板中选择耦合显式求解器,FLUENT会自动设置Courant数为1;当你选择耦合隐式求解器时,Courant数会自动变成5。
打开FAS多重网格
如双重时间步进一节中所讨论的,FAS多重网格选项是耦合显式求解器的可选组件(默认情况下,AMG多重网格总是打开的)。因为在几乎所有的耦合显式计算中,如果使用FAS多重网格收敛加速器都会很有用的,因此在开始计算之前通常你都应该设定粗化网格层面是一个非零值。对于大多数问题,你只需要设定FAS多重网格参数。如果遇到收敛性困难,你可以考虑应用一下设定FAS多重网格参数一节所讨论的方法。
注意:对于显式时间步进,你不能使用FAS多重网格,这是因为粗糙网格校正会破坏精细网格解的时间精度。
设定粗糙网格层
如全近似存储(FAS)多重网格一节所述,FAS多重网格在较粗糙的网格层面较好的解决问题,然后将校正解传回到原始的精细网格,因此增加了解的传播速度,并加速收敛。控制多重网格求解器最为基本的方法就是指定所使用的粗糙网格层数。
如全近似存储多重网格一节中所解释的那样,粗糙网格是通过将一组相邻的精细单元聚束成一个粗糙单元形成的。最优的网格层数是和问题相关的。对于大多数问题,你可以以4或5层开始计算。对于大的三维问题,因为粗糙网格层需要附加的内存,所以虽然内存限制可能不让你使用更多的层面,你可能还是要加上更多的层面。如果你确信多重网格会导致收敛性困难,你可以减少层数。
如果FLUENT在达到你所要求的网格层面之前已经到了只有一个单元的粗糙网格,它就会在这里结束。也就是说,如果你设定了5个网格层面,但是第四层就只有一个单元了,那么FLUENT就只创建4层,因为第4层和第5层一样。
要指定你所要的网格层数,在解控制面板(用户输入的图1)的解参数下设定多重网格层数。菜单:Solve/Controls/Solution...。
你可以在多重网格控制面板的FAS多重网格控制中设定最大粗化层。菜单:Solve/Controls/Multigrid...。
在某一个面板中改变粗糙网格层数会自动更新其它面板中网格层数的显示。 当你第一次开始迭代时,粗糙网格层就被创建了。如果你想要检查每一层内有多少个单元,请求一个迭代,然后使用菜单Grid/Info/Size(在网格尺寸一节介绍)列出每一个网格层面的尺寸。如果你觉得满意,可以继续计算,如果不满意你可以改变粗糙网格层面的数量然后再检查。
对于大多数问题,一旦你设定了适当的粗糙网格层数,你不需要修改任何附加的多重网格参数。你可以简单的继续你的计算直至收敛。
设定解的限制
为了控制极端条件下解的稳定性,FLUENT提供了保持解在某一个可接受范围内的限制。你可以用解限制面板(下图)来控制这些限制。菜单:Solve/Controls/Limits...。
Figure 1:解限制面板
FLUENT对压力、温度和湍流量应用了限制值。这些限制的目的就是为了保证在计算中,绝对压力或者温度不是零、负值或者过大,并保证湍流量不会过大。FLUENT还对温度的减小速度作了限制,以避免温度变为零或者负值。
注意:一般说来你不需要改变默认的解的限制。如果压力,温度或者湍流量被重复地重置到限制值,控制台窗口就会出现适当的警告消息,此时你需要检查尺寸,边界条件和属性以确保问题的设定正确,并找出问题中变量为零或如此之大的原因。你可以用标记功能(用于适应中标记单元)来辨别哪个单元的值等于所设定的限制。(用等值适应面板,具体参阅等值适应一节。)在很稀少的情况下,你可能需要改变解的限制,但是如果要这样做的话,你必须清楚求解器会有这种非常情况的原因。比方说,你可能知道流域内温度超过5000K。如果你要将温度的极限设置超过5000K,要确定任何温度相关属性对于这么高的温度都被适当的定义。
限制解变量的值
绝对压力的最小最大值限制在最小最大绝对压力框中显示。如果FLUENT所预测的一个压力值小于最小绝对压力或者大于最大绝对压力,求解器就会用相应的极限值取代预测值。对于能量计算中的温度也做相似处理。
最大的湍流粘性比和最小湍动能用于限制湍流计算。如果计算预测的k值小于最小湍动能,FLUENT就会用相应的极限值取代预测值。对于粘性比限制,FLUENT使用与层流粘性有关的流场的最大湍流粘性(C_m k^2 / e)来作限制。如果FLUENT计算出的比率超出限制值,就会通过将e限制到必要值来将比率设定为极限值。
限制温度减小的速度
在FLUENT耦合求解器中,温度的减小速度由正向速度极限来控制。例如,默认值为0.2就意味着两次迭代之间的温度不可以减少超过20%。如果温度的改变超过这个极限,求解器就会将时间步减小从而将变化改回原来的范围,同时会输出时间步减小的警告。(这个