点击“CFD之仿真区”关注公 众号交流学习
概述
在非稳态(非定常)问题中,涉及到时间变量的设置会比较纠结,主要是求解器中的时间步长(Time Step Size)、时间步数(Number of Time Steps)和单位时间最大迭代次数(Max Iterations per Time Step)三个参数如何设定?他们之间有何关系?本文对此三个概念作些讨论,并以FLUENT软件为例,其他CFD模拟软件类似。
FLUENT中只有选择用密度基(Density Based)求解器,Formulation选择显式差分(Explicit)才能对时间项使用显式差分格式。其他情况下都只能选择隐式差分(implicit),因此绝大部分情况下都用隐式差分。在此我们重点讨论隐式差分。
非稳态情况下,FLUENT是从前一个时间段算到下一个时间段,时间段就是“Time Step Size”,即差分格式下的△t。每个时间段内就相当于一个准稳态。准稳态的最大迭代次数就是稳态计算时的迭代次数。如果在最大迭代次数之内达到收敛就提前完成该时间步长,进入下一时间步长,否则就会算到所设定的最大迭代次数,然后强制进入下一时间步长。
时间步数就是总共要计算几个时间步长,因此,物理总时间=时间步长×时间步数,与最大迭代次数无关。
Time Step Size怎么设定?
FLUENT帮助文件中有估算公式,即特征长度除以特征速度所得的时间小两个量级或者更小,比如流体以入口速度1m/s要经过1米的计算段,那么这个time step size就是0.01秒或者更小。当然如果是封闭体系,没有进/出口(例如换热导致内部密度变化引起的流动),则可以粗算一个稳态结果,然后用“Report→Volume Integral”计算体积平均速度,以此为特征速度估算大致的时间步长。
注:其他方法
1、先计算出沿流向最小的网格长度
2、用该网格长度除以进口速度等于非稳态的时间步长,能够较好的表现流动特征,特别在计算升力、阻力系数时,能够使你的数据与实验对比较好
当然,这三个值是需要调整的。在FLUENT计算中,缩小Time Step Size、增大Max Iterations per Time Step,都能增加精度和收敛性,同时也都会增加计算时间,但是一般来说,后者不如前者作用大。默认的最大迭代次数20步是比较合理的。因此调值的整体思路是,调整Time Step Size,使得每一段的计算步长尽量在15-20步内收敛。因为开始的时候要充分收敛,因此一开始Time Step Size要设置的充分小,到后面再逐渐增大Time Step Size。
如果一开始不知道如何设定的时候最好是打开Adaptive让他自动定义时间步长跑最好了。其中最小的时间尺度也只能小到这个比例的1/100的这个水平上。
如果发现收敛达不到要求,需要把Time Step Size调小,保证Max Iterations per Time Step在20步内,实在不行,再调大Max Iterations per Time Step。