进行cfd计算,最核心的问题恐怕就是如何判断收敛了。现在绝大部分人把残值曲线奉为绝对标准,我认为这是不全面的,很多时候并不能得到一条完美的收敛曲线,那这个时候该怎样判断计算是否收敛呢?
收敛曲线,实际上就是残值曲线。求解微分方程的时候,都是采用迭代方法进行迭代。对于同一个节点的同一个物理值,第N次迭代的结果是c1,第N 1次迭代的结果是c2,那改点同一个物理值的残值就可以定义为c2-c1。所以当残值很小的时候,也就是c1和c2基本上一样,即流场参数不变化,达到稳定了,所以就可以认为计算收敛了。一般来说,计算流体力学中残值并不简单的等于c2-c1,应该是单元格的通量项残差,不过作用跟c2-c1是一样的。在fluent的求解中,为了防止残值过大导致计算出错,在迭代中加上了松弛因子,也就是说fluent中的残值应该等于通量项残值*松弛因子。为什么很多网友说残值降不下去,但是把松弛因子调的很小一下就能收敛?通过这个式子就能得到解释,所以说将松弛因子调的很小(比如说0.001),这个时候的收敛是假收敛。
大致了解了残值代表的物理意义之后,我们就可以来分析各种收敛情况了。
定常计算
所谓的定常计算,就是计算条件(主要指边界条件)和计算结果不随时间变化而变化的情况,比如说翼型在小攻角下的流动。该类算例从理论上讲残值曲线应该是能达到10-5下的,当然,具体能达到的收敛标准还与网格质量有关。有的时候也会出现残值曲线震荡的现象,这个时候如何去判断是不是收敛了呢?
1. 残值出现无规律的震荡。导致这种情况绝大部分是由于个别网格质量太差造成的,解决的办法当然是提高网格质量了。如果实在是没办法修改网格,那就在流场中设置几个不同的监测点,监测其流场参数(比如说速度,温度,压强等等),如果这些参数不变化了,可以认为计算是收敛了。
如果你采用的是dpm模型,也有可能出现这种情况的。因为随着粒子的不断进入流场,同时还有粒子被墙壁吸附,反弹,从出口的逃逸等等,这些都导致了流场总质量的变化,所以连续曲线会出现无规律震荡。
2. 残值出现有规律震荡。导致这种情况是由于流场出现了非定常性,也就是说虽然边界条件是定常的,但是实际流场是非定常的,最典型的例子就是卡门涡街——虽然来流速度是不变的,但是流场是变的。这个时候通过残值曲线判断收敛就不太合适了。最合理的方法就是采用非定常计算,设置多个监测点,然后监测其流场参数,如果其参数呈现周期性的变化,那就可以认为是收敛了。
非定常计算
与定常计算相对应的,非定常计算就是计算条件或计算结果随时间变化而变化的情况。因为流场参数是变化的,所以监测其残值曲线已经没有什么意义了。我们关心的是这个过程中流场参数随时间的变化规律,比如说投弹中,弹体随时间的位置等等,所以对于非定常计算,需要根据你的具体要求来设置监测曲线,比如说监测弹**置随时间的变化曲线。当然了,Fluent对于非定常计算采用的是双时间推进(具体的理论请参阅相关资料,我这里三言两语讲不清楚,怕误人子弟),对于伪时间步内的迭代,还是要保证其收敛的,就是将单步迭代步数调大。
综上所述,你首先要搞清楚你计算的问题是定常的还是非定常的,如果是定常的就要看收敛曲线,如果是非定常的,那就不需要看收敛曲线了。