continuity不收敛的问题

1)连续性方程不收敛是怎么回事? 

    在计算过程中其它指数都收敛了,就continuity不收敛是怎么回事。
   
这和fluent程序的求解方法SIMPLE有关。SIMPLE根据连续方程推导出压力修正方法求解压力。由于连续方程中流场耦合项被过渡简化,使得压力修正方程不能准确反映流场的变化,从而导致该方程收敛缓慢。
   
你可以试验SIMPLEC方法,应该会收敛快些。

    在计算模拟中,continuity不收敛,除了加密网格,还有别的办法吗?别的条件都已经收敛了,就差它自己了,还有收敛的标准是什么?是不是到了一定的尺度就能收敛了,比如10e5具体的数量级就收敛了

continuity是质量残差,具体是表示本次计算结果与上次计算结果的差别,如果别的条件收敛了,就差它。可以点report,打开里面FLUX选项,算出进口与出口的质量流量差,看它是否小于0.5%.如果小于,可以判断它收敛.

 

(2) fluent残差曲线图中continuity是什么含义?

是质量守恒方程的反映,也就是连续性的残差。这个收敛的快并不能说明你的计算就一定正确,还要看动量方程的迭代计算。表示某次迭代与上一次迭代在所有cells积分的差值,continuty表示连续性方程的残差

 

(3) 正在学习Fluent,模拟圆管内的流动,速度入口,出口outflow运行后xy的速度很快就到1e-06了,但是continuity老是降不下去,维持在1e-001e-03之间,减小松弛因子好像也没什么变化大家有什么建议吗?

    你查看了流量是否平衡吗?在report->flux里面操作,mass flow rate,把所有进出口都选上,compute一下,看看nut flux是什么水平,如果它的值小于总进口流量的1%,并且其他检测量在继续迭代之后不会发生波动,也可以认为你的解是收敛的。

 

造成连续方程高残差不收敛的原因主要有以下几点:

1.网格质量,主要可能是相邻单元的尺寸大小相差较大,它们的尺寸之比最好控制在1.2以内,不能超过1.4.

2.离散格式及压力速度耦合方法,如果是结构网格,建议使用高阶格式,如2阶迎风格式等,如果是非结构网格,除pressure保持standard格式不变外,其他格式改用高阶格式;压力速度耦合关系,如果使用SIMPLESIMPLECPISOsegerated solver对联系方程收敛没有提高的话,可以尝试使用coupled solver。另外,对于梯度的计算,不论使用结构或非结构网格,都可以改用node-based来提高计算精度。

一些情况:

1.监测流场某个变量来判断收敛更合理一些.
2.
网格质量.
3.Velocity inlet boundary conditions are not appropriate for compressible flow
problems.

 

4)要加速continuity收敛该设置那些参数?

 

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

个人认为这应该和你采用的算法有关
SIMPLE
算法是根据连续方程推导出压力修正方法求解压力。
由于连续方程中流场耦合项被过渡简化,使得压力修正方程不能准确反映流场的变化,从而导致该方程收敛缓慢。试着用SIMPLEC算法看看。

 

 

FLUENT求解器设置

FLUENT求解器设置主要包括:1、压力-速度耦合方程格式选择2、对流插值 3、梯度插值 4、压力插值

下面对这几种设置做详细说明。

一、压力-速度耦合方程求解算法

FLUENT中主要有四种算法:SIMPLESIMPLECPISOFSM

(1)SIMPLE(semi-implicit method for pressure-linked equations)半隐式连接压力方程方法,是FLUENT的默认格式。

(2)SIMPLEC(SIMPLE-consistent)。对于简单的问题收敛非常快速,不对压力进行修正,所以压力松弛因子可以设置为1

(3)Pressure-Implicit with Splitting of Operators (PISO)。对非定常流动问题或者包含比平均网格倾斜度更高的网格适用

(4)Fractional Step Method (FSM)对非定常流的分步方法。用于NITA格式,与PISO具有相同的特性。

二、对流插值(动量方程)

FLUENT有五种方法:一阶迎风格式、幂率格式、二阶迎风格式、MUSL三阶格式、QUICK格式

1FLUENT默认采用一阶格式。容易收敛,但精度较差,主要用于初值计算。

2Power Lar.幂率格式,当雷诺数低于5时,计算精度比一阶格式要高。

3)二阶迎风格式。二阶迎风格式相对于一阶格式来说,使用更小的截断误差,适用于三角形、四面体网格或流动与网格不在同一直线上;二阶格式收敛可能比较慢。

4MUSL(monotone upstream-centered schemes for conservation laws).当地3阶离散格式。主要用于非结构网格,在预测二次流,漩涡,力等时更精确。

5QUICKQuadratic upwind interpolation)格式。此格式用于四边形/六面体时具有三阶精度,用于杂交网格或三角形/四面体时只具有二阶精度。

三、梯度插值梯度插值主要是针对扩散项。

FLUENT有三种梯度插值方案:green-gauss cell-basedGreen-gauss node-basedleast-quares cell based.

1)格林-高斯基于单元体。求解方法可能会出现伪扩散。

2)格林-高斯基于节点。求解更精确,最小化伪扩散,推荐用于三角形网格上

3)基于单元体的最小二乘法插值。推荐用于多面体网格,与基于节点的格林-高斯格式具有相同的精度和格式。

四、压力插值压力基分离求解器主要有五种压力插值算法。

1)标准格式(Standard)。为FLUENT缺省格式,对大表妹边界层附近的曲线发现压力梯度流动求解精度会降低(但不能用于流动中压力急剧变化的地方——此时应该使用PRESTO!格式代替)

2PRESTO!主要用于高旋流,压力急剧变化流(如多孔介质、风扇模型等),或剧烈弯曲的区域。

3Linear(线性格式)。当其他选项导致收敛困难或出现非物理解时使用此格式。

4second order(二阶格式)。用于可压缩流动,不能用于多孔介质、阶跃、风扇、VOF/MIXTURE多相流。

5Body Force Weighted体积力。当体积力很大时,如高雷诺数自然对流或高回旋流动中采用此格式。

 

### Fluent 中实现收敛的参数设置与调整 #### 压力-速度耦合方程格式的选择 为了提高求解效率稳定性,在FLUENT中可以选择适当的压力-速度耦合方案。常用的选项有SIMPLE、SIMPLER、PISO等,其中SIMPLE算法适用于大多数稳态流动问题;对于瞬态流动,则推荐使用PISO算法[^2]。 #### 对流项离散化格式设定 对流传质过程中的数值扩散误差会影响最终结果的质量以及迭代次数。因此合理选择对流项离散化方式至关重要。迎风格式虽然具有良好的稳健性但是精度较低;而二阶迎风或QUICK格式能够提供更高的分辨率但可能引入振荡现象。通常建议先采用较为保守的迎风格式获得初步解后再切换至高格式继续优化求解过程。 #### 梯度及压力插值方法配置 梯度计算压力插值同样影响着整个系统的稳定性准确性。默认情况下FLUENT会自动选取合适的策略,但在某些特殊应用场景下手动指定更精确的方法可能会带来更好的效果。例如当遇到复杂几何结构时可以尝试修改这些参数来改善局部区域内的表现。 #### 实时监控残差变化趋势 除了上述技术层面的因素外,及时观察各物理量随时间步推进的变化情况也是保障顺利达到收敛状态可或缺的部分工作。具体操作上可以通过图形界面查看同变量对应的曲线图,旦发现异常波动就需要考虑调整相关控制参数直至恢复正常范围之内[^1]。 ```python # Python伪代码展示如何读取并处理Fluent日志文件以监测残差 import re def parse_residuals(log_file_path): residuals = {} with open(log_file_path, 'r') as file: lines = file.readlines() for line in lines: match = re.search(r'Continuity\s+=\s+(\d+\.\d+E[\+-]\d+)', line) if match: continuity_res = float(match.group(1)) match = re.search(r'Momentum-X\s+=\s+(\d+\.\d+E[\+-]\d+)', line) if match: momentum_x_res = float(match.group(1)) # Add more matches here... # Store the latest residual values into dictionary residuals['continuity'] = continuity_res residuals['momentum-x'] = momentum_x_res return residuals ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值