在求解复杂问题时,有时无论怎么调网格和调参数,计算始终难以平稳进行下去,此时可以考虑调整AMG参数中的稳定性方法。Fluent中可以使用的稳定性方法包括:BCGSTAB、RPM及GMRES。如下图所示。

注意:AMG参数并不是首选调整的参数,只有当其他的方法实在控制不了残差振荡发散的时候,才考虑调整AMG参数。
”
1 BCGSTAB
BCGSTAB(Bi-Conjugate Gradient Stabilized,双共轭梯度稳定)算法是对经典 BiCG 算法的改进。BiCG 算法在求解非对称系统时残量极易出现剧烈震荡甚至发散。BCGSTAB 通过引入一个低阶的局部最小残量多项式,极大地平滑了收敛曲线,增强了稳定性。
BCGSTAB算法的主要优势包括:
-
内存极其节省: 它是短复现(Short Recurrence)算法,每一步迭代只需要存储固定数量的几个向量,内存消耗是 O(1)(不随迭代步数增长)。 -
计算效率高: 不需要像 GMRES 那样进行昂贵的全局正交化,每步迭代的计算量也是恒定的。
BCGSTAB算法的主要缺点在于:
-
缺乏理论单调收敛保证: 虽然比 BiCG 稳定得多,但在矩阵特征值具有很大虚部、或者接近奇异时,BCGSTAB 仍可能会出现残量震荡、停滞甚至崩塌(Breakdown)。 -
不适合极其病态的系统: 严重依赖良好的预处理(Preconditioning),否则容易失效。
2 RPM
RPM(Recursive Projection Method,递归投影法)与其他两者有本质不同。RPM 最初并不是纯粹为了解 Ax=b 设计的,而是由 Shroff 和 Keller 提出,专门用于稳定不稳定不动点迭代、求解分叉问题(Bifurcation)以及加速非线性系统的收敛。
RPM算法的核心思想为:系统收敛慢(或不稳定)通常是因为少数几个特征值(主导特征值)跨过了稳定边界或非常接近 1。RPM 通过递归地将空间投影为两个子空间:不稳定/慢子空间(广义本征空间)和稳定/快子空间。在快子空间用普通的不动点迭代,在慢子空间用牛顿法或 Krylov 法特殊对待。
RPM的优势包括:
-
能够处理不稳定系统: 能够使原本发散的迭代系统(如某些非线性不动点迭代)重新收敛。 -
揭示系统动力学特性: 自动提取出导致系统不稳定或收敛慢的少数关键特征向量,非常适合参数分叉分析。 -
定点加速: 当系统大部分特征值很平庸、极少数特征值很糟糕时,RPM 效率极高。
RPM算法的主要缺点包括:
-
通用线性方程组求解不如 GMRES/BCGSTAB: 如果矩阵的特征值均匀分布,没有明显的“快慢分离”特性,RPM 的优势就无法发挥。 -
算法复杂度高: 需要动态监测特征值并递归调整投影空间,实现起来比标准的 Krylov 子空间算法复杂得多。
3 GMRES
GMRES(Generalized Minimal Residual Method,广义最小残量法)是一种基于 Krylov 子空间的投影方法。它的核心思想是通过 Gram-Schmidt 正交化构造一组正交基,并在该子空间内寻找一个使残量 最小的解。
GMRES算法的优势包括:
-
理论收敛性极佳: 具有单调收敛性(残量每一步都会严格递减或保持不变),绝对不会像某些算法那样出现剧烈的残量震荡。 -
适用面广: 对任意非对称、不定矩阵 A,只要条件数不是太恶劣,GMRES 都能稳定求解。
GMRES算法的主要缺点包括:
-
工作量与存储随迭代步数线性/二次方增长: 随着迭代步数 k 的增加,需要存储所有历史基向量,内存消耗为 O(k),计算量为 O(k^2)。 -
必须使用重启技术(Restarted GMRES, 如 GMRES(m)): 为了防止内存耗尽,通常迭代 m 步后就要清空历史并重启。但重启可能导致算法停滞,即残量不再下降。
4 总结
简单总结一下。
|
|
|
|
|
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(完)

本篇文章来源于微信公众号: CFD之道








评论前必须登录!
注册