STARCD计算结果不收敛怎么办

更新时间:2023-11-28 15:12:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

计算结果不收敛的原因

——模型、网格、边界条件、迭代方法等都有可能导致结果不收敛。 有时候要让计算结果收敛需要凭经验调整参数,但有时候收敛的计算结果不一定就是一个好的结果。

计算结果不收敛的解决方法——

<1>、一般首先是改变初值,尝试不同的初始化,事实上好像初始化很关键,对于收敛。

<2>、查找网格问题,改善网格质量。 <3>、有时边界条件的设置严重影响收敛性。

<4>、重算至发散前几步,看presure分布,看不出来的话,再算几步, 看看问题大概出在那个区域。然后对这个区域(加密或变稀)进行网格的改善。

<5>、设几个监测点,比如出流或参数变化较大的地方,若这些地方的参数变化很小,就可以认为是收敛了,尽管此时残值曲线还没有降下来。

<6>、调节松弛因子。

怎样判断计算结果是否收敛——

1、监测点处的值不再随计算步骤的增加而变化;

2、各个参数的残差随计算步数的增加而降低,最后趋于平缓; 3、要满足质量守恒(计算中不牵涉到能量)或者是质量与能量守恒

(计算中牵涉到能量)。

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

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

是否可以凭残差来判断是否收敛——

是否收敛不能简单看残差图,我在用FLUENT计算时,多采用监测一个面的速度(或者是压力、紊动能等参数)基本上不随着计算时间的推移而变化,就认为基本达到收敛。还有许多其他的重要标准,比如进出口流量差(进口和出口总量差不得大于1%,而且即使这样子,收敛解也不一定准确,它和网格划分/离散化误差,以及屋里模型的准确性都有关系)、压力系数波动等等。尽管残差仍然维持在较高数值,

但凭其他监测也可判断是否收敛。可以选定流场中具有特征意义的点,监测其速度,压力,温度等的变化情况。如果变化很小,符合你的要求,即可认为是收敛了。一般来说,压力的收敛相对比较慢一些的。最重要的就是是否符合物理事实或试验结论。

据质量守恒,收敛时进、出口的流量数值应大致相等(一般认为进出口质量差值比上入口质量的相对值小于0.5%时收敛,但是对特殊情况可能不同 ),但符号相反,一般出口流量是负值。

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

答:有些复杂或流动环境恶劣情形下确实很难收敛。计算的精度(2阶),网格太疏,网格质量太差,等都会使残差波动。经常遇到,一开始下降,然后出现波动,可以降低松弛系数,我的问题就能收敛,但如果网格质量不好,是很难的。通常,计算非结构网格,如果问题比较复杂,会出现这种情况,建议作网格时多下些功夫。

理论上说,残差的震荡是数值迭代在计算域内传递遭遇障碍物反射形成周期震荡导致的结果,与网格亚尺度雷诺数有关。例如,通常压力边界是主要的反射源,换成OUTFLOW边界会好些。 这主要根据经验判断。所以我说网格和边界条件是主要因素。 fluent帮助提到非定常隐式计算中 在每一个时间步内需要进行多次迭代并判断收敛,如果不收敛还可以减小时间步长。不知道如何对“非定常问题”判断收敛 ???

按时间步长内的计算结果,达到你的收敛要求即可,相当于时间步长内的稳态计算。

我主要对它说的“判断收敛”不知如何做的,因为非定常问题随时间变化的 不能按照两次解的差。

如果认为合理的而采用直接时间步进的话:为何“一个时间步内需要几次迭代”呢?直接用相应更小的时间步长,一次迭代就经历一个时间步长效果不是一样的吗?

可能我还是没有理解“一个时间步内进行的几次迭代”的意义。 确实,这个问题,有时也有些纳闷,不过想当然的认为,每个时间步长,类似求解一次定常结果,需要收敛到判据。

非定常计算时,在每个时间步dt内,进行一次定常计算,要迭代到收敛。收敛判断依据,根据Ferziger 上有误差分析的内容,迭代到残差下降3-4阶就可以了。

计算问题是ghsot叶轮流场模拟fluent残差出现振荡,如图,采用的离散格式是二阶迎风,如果采用一阶迎风则收敛较好,但是结果还不如二阶迎风振荡时精确。

网格总数是25万,加密一倍50万还是如此,原先计算的时候出口总是有逆流,增加计算域后逆流算是消除了,但是但是总有几个收敛不到1e-3以下,用分离求解器时是湍动能和湍流黏性耗散方程收敛不到1e-3,用耦合求解器时是动量方程收敛不到1e-3。边界条件设成压力出口和流量出口都出现振荡。请教高手我该怎么办?

从几方面入手:

首先把网格画得稍微疏些,精度改为一阶,然后把松弛因子改的低一些(在默认的情况下减低0.2-0.3);

另外一种是首先设置为层流,再计算一下层流情况是否收敛; 最后是修改multigrid中的值。

实际中要把三种,特别前两种方法结合使用,在低参数下如果收敛的话再提高网格和精度等,然后在原有基础上计算。如果以上所有的方法都不收敛,可能就是边界条件设置的问题。

一阶精度易收敛, 一个原因是由于截断误差引起的人工粘性大,因此不容易震荡。 如果用层流计算,由于粘性小,更不易收敛. 计算时, 可用一阶精度结果作为初值,用二阶精度计算. 另外,将松弛因子改的低一些, 以及修改multigrid中的值不失为好办法。如果仍不收敛,查一下最大残差所在的网格, 修改网格.

CFX计算结果出现振荡!

我最近用CFX模拟一个cyclone内部的流场,可是无论我用steady还是transient都是在残差接近10^-3时出现较大波动,之后出现peak现象,输出的结果也不可靠,我用的是RSM的SSG model,Auto time scale和Phsical time scale都尝试过,结果都是在10^-3时出现较大波动,之后出现peak现象;

网格我分两部分:一部分非结构(Prisms and Hex core)一部分结构网格,在CFX中定义Interface;

本文来源:https://www.bwwdw.com/article/ix1t.html

Top