CFD的时间积分法

分类:CFD求解方法 | 2026-10-01 改写
CAE visualization for time integration cfd theory - technical simulation diagram
CFD的时间积分法

理论:显式与隐式格式

概述

🙋

我用CFD算圆柱后的卡门涡,涡很快消失,变成了稳态流动。哪里出错了?

🎓

检查一下时间积分方法。很多软件默认用一阶隐式(后向欧拉),非常稳定,但使振荡逐渐减弱的“数值阻尼”很强。配合大时间步长,可能连本应持续的涡脱落都被削弱。显式格式时间步长受CFL条件严格限制,隐式大步长也稳定,但能否正确保持振荡取决于方法和步长。用简单振荡模型比较,差别一目了然。

每步放大率

$$ y' = i\omega y:\quad G_{EE} = 1 + z,\ \ G_{IE} = \frac{1}{1 - z},\ \ G_{CN} = \frac{1 + z/2}{1 - z/2},\ \ (3 - 2z)G_{BDF2}^2 - 4G_{BDF2} + 1 = 0,\ \ z = i\omega\Delta t $$

把各方法用于振荡方程时的每步放大率 $G$。$|G| = 1$ 振幅保持,$|G| < 1$ 衰减,$|G| > 1$ 发散。

时间步长限制

$$ CFL = \frac{U\,\Delta t}{\Delta x}, \qquad \Delta t_{diff} \le \frac{\Delta x^2}{2\nu} $$

显式格式要求每步流体不越过一个单元(CFL约≤1),还有扩散限制。

Coffee Break 随笔闲谈

时间步进始于天气预报

1922年理查森尝试用手算做天气预报,6小时的预报花了几周,结果还大错特错。原因之一是当时不知道时间步长与网格的关系决定计算的稳定性。1928年库朗、弗里德里希斯和列维证明,显式格式的时间步长若不小于由网格和波速决定的值,解就会发散(CFL条件)。为避开这一限制发展了隐式方法,代价是要面对数值阻尼这个新问题。

算例:用振荡模型比较

用不同的每周期步数求解无阻尼振荡(振幅本应不变),比较10个周期后剩余振幅和每周期相位误差:

每周期步数显式欧拉隐式欧拉BDF2Crank-Nicolson
10发散6×10⁻⁸0.141.00
20发散8×10⁻⁵0.681.00
40发散(131倍)0.00760.9441.00
80发散(11.7倍)0.0860.9931.00

每周期相位误差:40步时后向欧拉和BDF2为2.9°,Crank-Nicolson为0.7°;80步时分别为0.7°和0.2°。

🙋

一阶隐式即使40步,10个周期后振幅也不到1%。

🎓

对。一阶隐式每步都削减一点振幅,算得越久影响越大。实际卡门涡靠流动不稳定性自己产生振荡,不一定完全消失,但强度和频率会改变。BDF2为二阶精度,阻尼小得多,是实务非稳态计算的标准。Crank-Nicolson保持振幅,但在剧烈变化处容易残留振荡。比如直径0.1 m圆柱在10 m/s流动中,涡脱落频率约20 Hz,每周期40步时时间步长1.25 ms;单元1 mm时CFL为12.5,显式无法求解,只能用隐式。

选择参考

  1. 估算要解析的最快变化(涡脱落、脉动等)的周期。
  2. 要看非稳态结果,用BDF2等二阶方法而非一阶隐式。
  3. 按每周期20~40步以上确定时间步长,并确认CFL。
  4. 把时间步长减半,确认频率和振幅不变。
  5. 也要确认每步内的迭代(外迭代)充分收敛。
Coffee Break 随笔闲谈

“频率对了,幅值只有一半”

某研究桥梁断面气动振动的CFD,涡脱落频率与风洞实验吻合,但升力脉动幅值只有一半左右。时间积分用的是一阶隐式,每周期约15步。改为BDF2、每周期40步后,脉动幅值与实验相差一成以内。频率反映相位误差,幅值反映振幅衰减,频率对了不代表幅值也对。

常见错误

错误与对策

错误后果对策
非稳态用一阶隐式振荡衰减或消失BDF2等二阶
时间步长太粗相位与振幅误差每周期20~40步以上
显式忽略CFL发散确认CFL
只用频率验证漏掉振幅误差也比较振幅
步内迭代不足时间精度下降确认残差
🙋

我想了解相关内容。

关联模拟器

在本领域的交互式模拟器中体验理论

模拟器列表

相关领域

热解析V&V·质量保证结构解析
本文的评价
感谢您的回答!
有帮助
希望更
详细
报告
错误
有帮助
0
希望更详细
0
报告错误
0