有关fluent求解收敛的问题收集【转发】

2018-01-11  by:CAE仿真在线  来源:互联网

【引用】有关fluent求解收敛的问题收集

1.问:

如何监视FLUENT的计算结果?

如何判断计算是否收敛?

在FLUENT中收敛准则是如何定义的?

分析计算收敛性的各控制参数,并说明如何选择和设置这些参数?

解决不收敛问题通常的几个解决方法是什么?

答:

结果监视:

可采用残差控制面板来显示;

或采用通过某面的流量控制,如监控出口上流量的变化;

或采用某点或者面上受力的监视,涡街中计算达到收敛时,绕流体的面上受的升力为周期交变,而阻力为平缓的直线。

判断计算结果是否收敛:

观察点处的值不再随计算步骤的增加而变化;

各个参数的残差随计算步数的增加而降低,最后趋于平缓;

满足质量、能量(如果有的话)守恒;

特别注意点:即使前两个判据都已经满足了,也不表示已经得到合理的收敛解了,因为,如果松弛因子设置得太紧,各参数在每步计算的变化都不是太大,也会使前两个判据得到满足,此时就要再看第三个判据了。

还需说明的就是:一般我们都希望在收敛的情况下,残差越小越好,但是残差曲线是全场求平均的结果,有时其大小不代表计算结果的好坏,有时即使计算的残差很大,结果也可是好的,关键是要看计算结果是否符合物理事实。即残差的大小与模拟的物理现象本身的复杂性有关,必须从实际物理现象上看计算结果。比如说一个全机模型,在大攻角情况下,其解震荡得非常厉害,而且残差的量级也总下不去,但这仍然是正确的。为什么呢,因为大攻角下实际流动情形就是这样的,不断有涡的周期性脱落,流场本身就是非定常的,所以解也是波动的,处理的时候取平均就可以了。


2.问:

什么叫松弛因子?

松弛因子对计算结果有什么样的影响?

它对计算的收敛情况又有什么样的影响?

答:

亚松驰(Under Relaxation):所谓亚松驰就是将本层次计算结果与上一层次结果的差值作适当缩减,以避免由于差值过大而引起非线性迭代过程的发散。用通用变量来写出时,为松驰因子(Relaxation Factors)。

FLUENT中的亚松驰:由于FLUENT所解方程组是非线性的,我们有必要控制其解的变化。一般用亚松驰方法来实现控制,该方法在每一部迭代中减少了变化量。亚松驰最简单的形式为:单元内变量等于原来的值加上亚松驰因子与变化量的积,分离解算器使用亚松驰来控制每一步迭代中的计算变量的更新。这就意味着使用分离解算器解的方程,包括耦合解算器所解的非耦合方程(湍流和其他标量)都会有一个相关的亚松驰因子。在FLUENT中,所有变量的默认亚松驰因子都是对大多数问题的最优值。这个值适合于很多问题,但是对于一些特殊的非线性问题(如:某些湍流或者高Rayleigh数自然对流问题),在计算开始时要慎重减小亚松驰因子。使用默认的亚松驰因子开始计算是很好的习惯。如果经过4到5步的迭代残差仍然增长,你就需要减小亚松驰因子。有时候,如果发现残差开始增加,你可以改变亚松驰因子重新计算。在亚松驰因子过大时通常会出现这种情况。最为安全的方法就是在对亚松驰因子做任何修改之前先保存数据文件,并对解的算法做几步迭代以调节到新的参数。最典型的情况是,亚松驰因子的增加会使残差有少量的增加,但是随着解的进行残差的增加又消失了。如果残差变化有几个量级你就需要考虑停止计算并回到最后保存的较好的数据文件。注意:粘性和密度的亚松驰是在每一次迭代之间的。而且,如果直接解焓方程而不是温度方程(即:对PDF计算),基于焓的温度的更新是要进行亚松驰的。要查看默认的亚松弛因子的值,你可以在解控制面板点击默认按钮。对于大多数流动,不需要修改默认亚松弛因子。但是,如果出现不稳定或者发散你就需要减小默认的亚松弛因子了,其中压力、动量、k和e的亚松弛因子默认值分别为0.2,0.5,0.5和0.5。对于SIMPLEC格式一般不需要减小压力的亚松弛因子。在密度和温度强烈耦合的问题中,如相当高的Rayleigh数的自然或混合对流流动,应该对温度和/或密度(所用的亚松弛因子小于1.0)进行亚松弛。相反,当温度和动量方程没有耦合或者耦合较弱时,流动密度是常数,温度的亚松弛因子可以设为1.0。对于其它的标量方程,如漩涡,组分,PDF变量,对于某些问题默认的亚松弛可能过大,尤其是对于初始计算。你可以将松弛因子设为0.8以使得收敛更容易。


3.算法: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邻近校正中所用的方法。


4.问:

什么叫求解的初始化?

在FLUENT中初始化的方法对计算结果有什么样的影响?

初始化中的“patch”怎么理解?

答:

初始化就是在做计算时,给流场一个初始值,包括压力、速度、温度和湍流系数等。理论上,给的初始场对最终结果不会产生影响,因为随着跌倒步数的增加,计算得到的流场会向真实的流场无限逼近,但是,由于Fluent等计算软件存在像离散格式精度(会产生离散误差)和截断误差等问题的限制,如果初始场给的过于偏离实际物理场,就会出现计算很难收敛,甚至是刚开始计算就发散的问题。因此,在初始化时,初值还是应该给的尽量符合实际物理现象。这就要求我们对要计算的物理场,有一个比较清楚的理解。

初始化中的patch就是对初始化的一种补充,比如当遇到多相流问题时,需要对各相的参数进行更细的限制,以最大限度接近现实物理场。这些就可以通过patch来实现,patch可以对流场分区进行初始化,还可以通过编写简单的函数来对特定区域初始化。


5.残差

残差波动的主要原因:高精度格式、网格太粗、网格质量差、流场本身边界复杂、流动复杂、模型的不恰当使用。

问:在进行稳态计算时候,开始残差线是一直下降的,可是到后来各种残差线都显示为波形波动,是不是不收敛阿?

答:有些复杂或流动环境恶劣情形下确实很难收敛。计算的精度(2阶),网格太疏,网格质量太差,等都会使残差波动。经常遇到,一开始下降,然后出现波动,可以降低松弛系数,我的问题就能收敛,但如果网格质量不好,是很难的。通常,计算非结构网格,如果问题比较复杂,会出现这种情况,建议作网格时多下些功夫。理论上说,残差的震荡是数值迭代在计算域内传递遭遇障碍物反射形成周期震荡导致的结果,与网格亚尺度雷诺数有关。例如,通常压力边界是主要的反射源,换成OUTFLOW边界会好些。这主要根据经验判断。所以我说网格和边界条件是主要因素。

例如:流场内部存在尖点等突变,导致网格在局部质量存在问题,影响收敛。可以调整一下courant number,courant number实际上是指时间步长和空间步长的相对关系,系统自动减小courant数,这种情况一般出现在存在尖锐外形的计算域,当局部的流速过大或者压差过大时出错,把局部的网格加密再试一下。在fluent中,用courant number来调节计算的稳定性与收敛性。一般来说,随着courant number的从小到大的变化,收敛速度逐渐加快,但是稳定性逐渐降低。所以具体的问题,在计算的过程中,最好是把courant number从小开始设置,看看迭代残差的收敛情况,如果收敛速度较慢而且比较稳定的话,可以适当的增加courant number的大小,根据自己具体的问题,找出一个比较合适的courant number,让收敛速度能够足够的快,而且能够保持它的稳定性。

另外,Fluent官方论坛上有一个管理员这么解释的:

http://university.fluent.com/forum/viewtopic.php?t=1887&sid=5228995e41f4763b95368f660d1a671b

1. Residual pattern in an unsteady simulation will be oscillatory. At each time-step, Fluent will try to converge residual values below the default limits set in the Residual Monitors panel.

2. In a steady simulation, ideally the residuals should not oscillate.

Oscillating residuals may be due to wrong case setup. Following comments should help in reducing convergence trouble.

a.Make sure that grid is of good quality. Please refer the section 6.2.2 of Fluent 6.3 Users Guide for more details on the grid quality.

http://www.fluentusers.com/fluent/doc/ori/html/ug/node155.htm

b. Recheck all the boundary condition.

c. If you are using turbulence model, please check the turbulence parameters on all inlet / outlet boundaries. Please refer to the following white paper for more details regarding the different turbulent boundary conditions:

http://www.fluent.com/software/university/whitepapers/turbulent.pdf

d. Try with better initial guess.

3. The detail about Grid Adaption is available in Chapter 26 of Fluent Users Guide:

http://www.fluentusers.com/fluent6326/doc/ori/html/ug/node1071.htm


本人觉得可以重点参考这个回答。另外,如果出现连续方程残差很高收敛慢的情况,首先应该检查的是网格质量;由于现在大量使用分块网格,这时要看看两相邻块处的网格大小是不是相差较大,也就是看看有没有出现cell jump的情况,相邻网格的大小最好不要超过2倍的关系,这时出现高连续方程残差的一个主要原因,这需要在划分网格时做好规划。

有关Courant数的:

对于FLUENT的耦合解算器,对时间步进格式的主要控制是Courant数(CFL),那么Courant数对计算结果有何影响?

courant number实际上是指时间步长和空间步长的相对关系,系统自动减小courant数,这种情况一般出现在存在尖锐外形的计算域,当局部的流速过大或者压差过大时出错,把局部的网格加密再试一下。

在Fluent中,用courant number来调节计算的稳定性与收敛性。一般来说,随着courant number的从小到大的变化,收敛速度逐渐加快,但是稳定性逐渐降低。所以具体的问题,在计算的过程中,最好是把courant number从小开始设置,看看迭代残差的收敛情况,如果收敛速度较慢而且比较稳定的话,可以适当的增加courant number的大小,根据自己具体的问题,找出一个比较合适的courant number,让收敛速度能够足够的快,而且能够保持它的稳定性。

courant数:在模拟高压的流场的时候,迭代的时候总是自动减小其数值,这是什么原因造成的,为什么?怎么修改?

这是流场的压力梯度较大,Fluent自身逐步降低时间步长,防止计算发散。我一般的处理办法是:先将边界条件上的压力设置较低点,使得压力梯度较小一点,等到收敛的感觉差不多,在这个基础上,逐渐把压力增大,这样就不容易发散。


开放分享:优质有限元技术文章,助你自学成才

相关标签搜索:有关fluent求解收敛的问题收集【转发】 Fluent培训 Fluent流体培训 Fluent软件培训 fluent技术教程 fluent在线视频教程 fluent资料下载 fluent分析理论 fluent化学反应 fluent软件下载 UDF编程代做 Fluent、CFX流体分析 HFSS电磁分析 

编辑
在线报名:
  • 客服在线请直接联系我们的客服,您也可以通过下面的方式进行在线报名,我们会及时给您回复电话,谢谢!
验证码

全国服务热线

1358-032-9919

广州公司:
广州市环市中路306号金鹰大厦3800
电话:13580329919
          135-8032-9919
培训QQ咨询:点击咨询 点击咨询
项目QQ咨询:点击咨询
email:kf@1cae.com