流函数 — 故障排除指南
更丰富的内容请在 stream-function.html 查看。
涡度-流函数法的典型故障
我正在编写涡度-流函数法的代码,但一直出问题。能告诉我常见的故障吗?
让我总结一下代表性的问题和对策。
1. Poisson方程不收敛
我用SOR法求解Poisson方程,但迭代了几万次还是不收敛。
请按顺序检查以下内容。
- 松弛系数的确认: SOR的最优松弛系数可以近似为 $\omega_{SOR} = \frac{2}{1 + \sin(\pi h / L)}$ 。当$N=100$ 时 $\omega_{SOR} \approx 1.94$ 。$\omega > 2$ 时会发散
- 边界条件的一致性: 检查所有边界上 $\psi$ 值的总和是否与质量守恒相矛盾
- 残差的定义: 用相对残差 $\|r\|/\|b\| < 10^{-6}$ 来判定。绝对残差会受到数值尺度的影响
- 初始估计: 使用前一个时间步的解作为初始估计(热启动)可以大幅减少迭代次数
2. 壁面涡度产生振荡
用Thomson公式计算壁面涡度时,数值在每个时间步都在振荡。
壁面涡度的更新和Poisson方程的解相互耦合,容易导致不稳定。对策是
- 子迭代(sub-iteration): 在每个时间步内重复3~5次Poisson方程和壁面涡度的更新
- 欠松弛(under-relaxation): 对壁面涡度的更新应用松弛。$\omega_{wall}^{new} = \alpha \omega_{wall}^{calc} + (1-\alpha) \omega_{wall}^{old}$,$\alpha \approx 0.5$
- 隐式处理: 将壁面涡度隐式地融入Poisson方程(Napolitano et al., 1999)
3. 高Reynolds数发散
当Re=1000以上时,计算开始发散。
在高Re数时,对流项占主导,会出现以下问题。
| 症状 | 原因 | 对策 |
|---|---|---|
| 涡度波形(波状振动) | 中心差分 + 高$Re_h$ | 风上差分或QUICK切换 |
| 全体发散 | CFL条件违反 | 将 $\Delta t$ 调整为 CFL < 0.5 |
| 壁面附近不稳定 | 网格不足 | 将壁面附近的网格细分2倍 |
| 不收敛到定常解 | 流场本质上非定常 | 切换到非定常计算(Re>10000时典型) |
商用工具中的流线可视化故障
用Fluent画流线时,发现流线穿过壁面或在中途消失。
这是流线积分因数值误差而变得不准确的情况。
- 最大步数: 默认值(500)可能太小。增加到2000~5000
- 步长: 保持默认值太粗糙。减少到0.001~0.01
- 穿过壁面: 在网格质量差的区域发生。检查是否有单元的非正交性 > 70度
- 流线与粒子轨迹: 在非定常流中,流线(瞬时流场)和粒子轨迹不一致。应根据目的区分使用
OpenFOAM的 streamFunction postProcess 报错"Stream function is not available for 3D cases"。
OpenFOAM的streamFunction只能在2D网格(1单元厚度、使用empty补丁)上使用。3D问题无法使用。建议改用ParaView的 Stream Tracer 过滤器来可视化流线。
常见的物理错误
物理设置的错误也会导致奇怪的结果吧?
让我列举与流函数相关的典型物理错误。
- 边界条件不足: Poisson方程是椭圆型的,需要在全部边界上施加Dirichlet条件。如果忘记在流出边界指定$\psi$的值,解就会不确定
- 入口流量与壁面条件矛盾: 入口 $\psi$ 的值与壁面的 $\psi$ 矛盾会导致质量不守恒
- Reynolds数的定义: 确保$Re = UL/\nu$中的特征长度$L$和特征速度$U$的定义与问题设置相符。对于Lid-driven cavity,$L$ = 腔体边长,$U$ = 盖子速度
- 无量纲化的不一致: 如果代码用无量纲化实现,检查所有变量是否使用相同的基准进行了无量纲化
原来很容易在基础地方出错啊。
特别是单位制和无量纲化是初学者最容易出错的地方。强烈建议先在纸上写出无量纲化的方程,然后确认代码的每一行对应哪一项。
流线不闭合·流线交叉——CFD后处理流线绘制错误的诊断
在CFD后处理中出现"流线中途断裂""流线看起来相交"的视觉问题,通常不是物理异常,而是后处理步骤的问题。主要原因:①流线积分精度不足——提高积分步长即可解决(ParaView中调整MaximumStepLength设置)。②在非定常流场的瞬时快照上绘制流线时,粒子轨迹(Pathline)与流线(Streamline)不一致而"看起来相交"——这不是异常,而是非定常流的本质特性。③在周期边界附近流线越界绕回时,后处理软件无法识别边界而导致断裂。准确的流线可视化需要首先确保速度场的收敛品质(质量守恒)。
相关主题
价值
更详细
错误