FLUENT中求解方法的区别与选择
2012-02-11 12:08:37| 分类: 数值模拟|字号 订阅
1.非耦合求解 ( Segregated );2.耦合隐式求解 ( Coupled Implicit );3.耦合显式求解 ( Coupled Explicit )
非耦合求解方法主要用于不可压缩或压缩性不强的流体流动。耦合求解则可以用在高速可压缩流动。FLUENT默认设置是非耦合求解,但对于高速可压流动,有强的体积力(浮力或离心力)的流动,求解问题时网格要比较密,建议采用耦合隐式求解方法,可以耦合求解能量和动量方程,能比较快地得到收敛解。缺点是需要的内存比较大(是非耦合求解迭代时间的1.5-2倍)。如果必须要耦合求解,但是你的机器内存不够,这时候可以考虑用耦合显式解法器求解问题。该解法器也耦合了动量,能量及组分方程,但内存却比隐式求解方法小。缺点是收敛时间比较长。
这里需要指出的是非耦合求解的一些模型在耦合求解解法器里并不都有。耦合解法器没有的模型包括:多相流模型,混合分数/PDF燃烧模型,预混燃烧模型,污染物生成模型,相变模型,Rosseland辐射模型,确定质量流率的周期性流动模型及周期性换热模型等。 隐式( Implicit ):对于给定变量,单元内的未知值用邻近单元的已知和未知值计算得出。因此,每一个未知值会在不止一个方程中出现,这些方程必须同时解来给出未知量。 显式( Explicit ):对于给定变量,每一个单元内的未知量用只包含已知量的关系式计算得到。因此未知量只在一个方程中出现,而且每一个单元内的未知量的方程只需解一次就可以给出未知量的值。
一阶迎风格式( First Order Upwind ):当需要一阶精度时,我们假定描述单元内变量平均值的单元中心变量就是整个单元内各个变量的值,而且单元表面的量等于单元内的量。因此,当选择一阶迎风格式时,表面值被设定等于迎风单元的单元中心值。
二阶迎风格式( Second Order Upwind ):当需要二阶精度时,使用多维线性重建方法来计算单元表面处的值。在这种方法中,通过单元中心解在单元中心处的泰勒展开来实现单元表面的二阶精度值。因此,当使用二阶迎风格式时,用下面的方程来计算表面值;
QUICK格式:对于四边形和六面体网格,我们可以确定它们唯一的上游和下游表面以及单元。FLUENT还提供了计算对流变量在表面处高阶值的QUICK格式。QUICK类型的格式是通过变量的二阶迎风与中心插值加上适当的权因子得到的;
亚松驰( Under-Relaxation ):由于FLUENT所解方程组的非线性,我们有必要控制的变化。一般用亚松驰方法来实现控制,该方法在每一部迭代中减少了f的变化量。亚松驰最简单的形式为:单元内变量f等于原来的值f_old加上亚松驰因子a与f变化的积.
SIMPLE:SIMPLE算法使用压力和速度之间的相互校正关系来强制质量守恒并获取压力场。
一阶与二阶的比较
当流动和网格成一条线时(如:矩形网格或者六面体网格模拟矩形导管的层流流动),可以使用一阶迎风离散格式。但是,当流动和网格不在一条线上时(即:流动斜穿网格线)一阶对流离散增加了对流离散的误差(数值耗散)。对于三角形和四面体网格,流动从来就不会和网格成一条线,此时一般要使用二阶离散来获取更高精度的结果。对于四边形或者六面体网格,如果使用二阶离散格式,尤其是对于复杂流动来说,你可以获取更好的结果。 总而言之,一阶离散一般会比二阶离散收敛得好,但是精度要差,尤其是对于三角形或者四面体网格精度更差。
对于大多数情况,你可以在计算的开始使用二阶格式。对于有些情况,你应该以一阶离散开始计算,在进行了初步迭代之后再转到二阶格式。例如,如果你解高马赫数流动问题,初始解科所预期的解相差较大,你就应该先用一阶格式迭代几步然后打开二阶格式继续计算直至收敛。
对于与网格成一条线的简单流动(如:划分为矩形网格或者六面体网格的矩形导管的层流流动),数值耗散自然会很低,所以一般使用一阶格式替代二阶格式而不损失精度。 最后,如果你使用二阶格式遇到收敛性问题,你就应该尝试使用一阶格式。
选择压力插值格式
如压力插值格式所述,当使用分离求解器时我们可以采用很多压力插值格式。对于大多数情况,标准格式已经足够了,但是对于特定的某些模型使用其它格式可能会更好: l 对于具有较大体积力的问题,推荐使用体积力加权格式。
l 对于具有高涡流数,高Rayleigh数自然对流,高速旋转流动,包含多孔介质的流动和高度扭曲区域的流动,使用PRESTO!格式。 注意:PRESTO!只能用于四边形或者六面体网格。 l 对于可压流动推荐使用二阶格式。
当其它格式不适用时,使用二阶格式来提高精度(如:对于流过具有非六面体或者非四边形网格的曲面边界的流动。)
选择压力速度耦合方法
在分离求解器中,FLUENT提供了压力速度耦合的三种方法:SIMPLE,SIMPLEC以及PISO。定常状态计算一般使用SIMPLE或者SIMPLEC方法,对于过渡计算推荐使用PISO方法。PISO方法还可以用于高度倾斜网格的定常状态计算和过渡计算。需要注意的是压力速度耦合只用于分离求解器,对于耦合求解器你不可以使用它。
SIMPLE与SIMPLEC比较
在FLUENT中,可以使用标准SIMPLE算法和SIMPLEC(SIMPLE-Consistent)算法,默认是SIMPLE算法,但是对于许多问题如果使用SIMPLEC可能会得到更好的结果,尤其是可以应用增加的亚松驰迭代时,具体介绍如下:
对于相对简单的问题(如:没有附加模型激活的层流流动),其收敛性已经被压力速度耦合所限制,你通常可以用SIMPLEC算法很快得到收敛解。在SIMPLEC中,压力校正亚松驰因子通常设为1.0,它有助于收敛。但是,在有些问题中,将压力校正松弛因子增加到1.0可能会导致不稳定。对于这种情况,你需要使用更为保守的亚松驰或者使用SIMPLE算法。对于包含湍流和/或附加物理模型的复杂流动,只要用压力速度耦合做限制,SIMPLEC会提高收敛性。它通常是一种限制收敛性的附加模拟参数,在这种情况下,SIMPLE和SIMPLEC会给出相似的收敛速度。
设定亚松驰因子
分离求解器使用亚松驰来控制每一步迭代中的计算变量的更新。这就意味着,使用分离求解器解的方程,包括耦合求解器所解的非耦合方程(湍流和其他标量)都会有一个相关的亚松驰因子。
在FLUENT中,所有变量的默认亚松驰因子都是对大多数问题的最优值。这个值适合于很多问题,但是对于一些特殊的非线性问题(如:某些湍流或者高Rayleigh数自然对流问题),在计算开始时要慎重减小亚松驰因子。
使用默认的亚松驰因子开始计算是很好的习惯。如果经过4到5步的迭代残差仍然增长,你就需要减小亚松驰因子。有时候,如果发现残差开始增加,你可以改变亚松驰因子重新计算。在亚松驰因子过大时通常会出现这种情况。最为安全的方法就是在对亚松驰因子做任何修改之前先保存数据文件,并对解的算法做几步迭代以调节到新的参数。最典型的情况是,亚松驰因子的增加会使残差有少量的增加,但是随着解的进行残差的增加又消失了。如果残差变化有几个量级你就需要考虑停止计算并回到最后保存的较好的数据文件。
对于大多数流动,不需要修改默认亚松弛因子。但是,如果出现不稳定或者发散你就需要减小默认的亚松弛因子了,其中压力、动量、k和e的亚松弛因子默认值分别为0.2,0.5, 0.5和0.5。对于SIMPLEC格式一般不需要减小压力的亚松弛因子。在密度和温度强烈耦合的问题中,如相当高的Rayleigh数的自然或混合对流流动,应该对温度和/或密度(所用的亚松弛因子小于1.0)进行亚松弛。相反,当温度和动量方程没有耦合或者耦合较弱时,流动密度是常数,温度的亚松弛因子可以设为1.0。
对于其它的标量方程,如漩涡,组分,PDF变量,对于某些问题默认的亚松弛可能过大,尤其是对于初始计算。你可以将松弛因子设为0.8以使得收敛更容易。