代数多重网格

随着网格尺寸的增加,雅可比、高斯-赛德尔或 ILU(不完全 LU)等传统迭代求解算法的收敛速度明显降低。反过来,收敛缓慢会导致计算时间呈二次性增加。为加速求解器收敛,Simcenter STAR-CCM+ 采用代数多重网格 (AMG) 法。多重网格法的概念基于以下事实:迭代求解算法可有效减少其波长对应于网格单元尺寸(高频误差)的数值误差分量。但对于此类方法,长波长(低频)误差的降幅相当缓慢。

在连继粗糙化的线性系统的层次结构上,多重网格法通过迭代过程减少低频误差。代数多重网格衍生粗糙层方程组,而不参考基础网格几何。粗糙网格方程从精细网格系数的算术组合衍生得出。几次迭代之后,多重网格算法将计算从精细线性系统传递到粗糙线性系统。这些迭代也称为平滑迭代,因为误差函数稍后将会平滑(即,不含误差的高频分量)。由于求解过程传递到更粗糙的线性系统,因此误差现在相对网格单元尺寸而言频率增高并可有效减少。在更粗糙的线性系统上,为减少精细线性系统求解的误差,定义了缺陷方程。

多重网格算法采用以下步骤:

  • 聚结网格单元,形成粗糙网格级别。
  • 将残差从精细级别传递到更粗糙的级别(称为限制)。
  • 将校正从粗糙级别传递回更精细的级别(称为延长)。

Simcenter STAR-CCM+ 提供了两种加速线性求解器的方法,即:适用于不可压缩流的预处理共轭梯度法和适用于所有其他流的稳定双共轭梯度法。

多重网格循环

多重网格方法支持通过在粗糙网格序列上使用简单校正扫掠,显著加速高斯-赛德尔等基本迭代格式的运行。粗糙级别访问策略可能会对该算法的效率产生很大的影响。Simcenter STAR-CCM+ 中使用的 AMG 求解器提供了两个循环策略,即固定和可变:

  • 固定循环 — 完整的多重网格循环表示递归应用由以下步骤组成的单一循环:
    1. (预)平滑
    2. 限制
    3. 再循环
    4. 延长
    5. (后)平滑

    这些步骤将应用于一系列连续粗糙化的网格或方程组。平滑表示将任意数量的迭代松弛扫掠应用于当前精细级别上的方程,计算一组新校正。限制是指将现有残差向下传递到应用了新循环的下一个最粗糙级别。随后,结果校正将延长,即,传递回同样应用了平滑的当前精细级别。

    有以下三种类型的固定循环:

    • F 固定循环
    • V 固定循环
    • W 固定循环
  • 可变循环 — 对于非刚性线性系统,此类循环是一种更经济的循环策略。每次在给定网格级别上扫掠后都会监视残差,而非按规则模式使用所有多重网格级别。如果残差减少率超出给定阈值,会继续在更粗糙的级别上求解。如果给定级别上的残差降幅超过指定阈值,则求解将转到更精细的级别。任何级别允许的扫掠数将进一步受到限制。
F 循环

F 循环是 W 循环的一种变体。此循环如下所示,涉及的粗糙级别扫掠数少于 W 循环,但仍多于 V 循环。



V 循环

V 循环是最简单的固定循环类型,只有两个分支。在第一个分支中,用户对最精细的级别执行大量松弛扫掠并将残差传递到下一个级别。然后,对粗糙级别相继重复该操作,直至达到最粗糙的级别为止。粗糙“网格”通常仅包含几个“网格单元”。在最粗糙的级别上完成扫掠之后,使用得到的解校正下一个更精细级别上的求解。先在该级别执行一些松弛扫掠,然后重复此过程,直至达到最精细的级别为止。下图显示了此过程。



W 循环

对于刚性方程组,V 循环有时不能满足需要,进行更多粗糙迭代非常有用。W 循环会增加粗糙松弛扫掠数,如下所示。



AMG 求解器

上述离散化方法的结果是一个线性系统:

1. EQUATION_DISPLAY
A x  = b
(977)

表示每个计算网格单元的代数方程。矩阵 A 表示线性系统的系数,例如,Eqn. (920) 左侧的系数 a p a n ,矢量 x 表示每个网格单元中的未知量(Eqn. (920) 中的 Δ ϕ ),矢量 b 表示每个网格单元中的残差(请参见 Eqn. (921))。

可使用雅可比、高斯-赛德尔或不完全上下三角分解松弛格式(更平滑)求解结果线性方程组。

雅可比和高斯-赛德尔

迭代方法背后的一般原则是:给定近似求解 x k ,找到更精确的近似值 x k + 1 ,然后重复该过程。

如果迭代 k 的误差定义为:

2. EQUATION_DISPLAY
e k = x - x k
(978)

其中, x 将精确解和残差表示为:

3. EQUATION_DISPLAY
r k = b - Ax k
(979)

由此得出:

4. EQUATION_DISPLAY
A e k = r k
(980)

因此,继续迭代且直到残差趋向于较小的值为止,从而得出一个较小的误差值。

最基本的迭代方法是雅可比和高斯-赛德尔迭代。这些方法涉及按顺序访问每个网格单元,然后使用 n 个相邻网格单元的系数更新每个网格单元中的 x i 值 i,如下所示:

5. EQUATION_DISPLAY
xi=1Ai,i( b-neighbors n Ai,nxn)
(981)

雅可比和高斯-赛德尔迭代之间的区别很小:雅可比使用 x n 的“旧”值,而高斯-赛德尔则使用已更新的可用值,从而改进收敛。

不完全上下三角 (ILU)

ILU(不完全 LU)法 Saad [283] 使用以下方程迭代求解 x k + 1

6. EQUATION_DISPLAY
A~(xk+1-xk)=b-Axk
(982)

其中

7. EQUATION_DISPLAY
A~=LU=(D+LA)(I+D-1UA)
(983)

其中, I 为单位矩阵, L A U A 为原始矩阵 A 的上下三角矩阵, D 为使用 MILU(0) 方法计算得出的对角矩阵。

与高斯-赛德尔方法相比,ILU 方法的计算成本更高,但更稳定。ILU 方法的稳定性意味着可以在三个维度中处理组尺寸 8 或更大,而高斯-赛德尔方法只能处理组尺寸 4。使用 ILU 方法处理复杂问题,改进收敛和并行可扩展性。对于三维问题,可将其用于组尺寸 8。

加速方法

预处理共轭梯度法

为了在压力求解器中加速线性系统的迭代求解收敛,提供了共轭梯度法,该方法使用 AMG 求解器作为预调节器。此方法用于不可压缩流(恒密度模型)和分离流模型。

要求解线性系统 A x  = b ,预处理共轭梯度 (PCG) 采用以下形式:

8. EQUATION_DISPLAY
r 0 = b - Ax 0
(984)
9. EQUATION_DISPLAY
z 0 AMG fixed cycle  ( A , r 0 )
(985)
10. EQUATION_DISPLAY
p 0 = z 0
(986)
11. EQUATION_DISPLAY
k = 0
(987)

每次迭代涉及到通过 Eqn. (994) 计算 Eqn. (988)

12. EQUATION_DISPLAY
α k = ( r k T z k ) ( p k T A p k )
(988)
13. EQUATION_DISPLAY
x k + 1 = x k + α k p k
(989)
14. EQUATION_DISPLAY
r k + 1 = r k - α k A p k
(990)

如果 | r k + 1 | < ε ,则迭代将结束。

15. EQUATION_DISPLAY
z k + 1 AMG fixed cycle  ( A , r k + 1 )
(991)
16. EQUATION_DISPLAY
β k = ( r k + z k + 1 ) ( r k z k )
(992)
17. EQUATION_DISPLAY
p k + 1 = z k + 1 + β k r k
(993)
18. EQUATION_DISPLAY
k = k + 1
(994)

线性系统的解为 x k + 1

收敛 PCG 算法的必要条件是矩阵 A (在这里也是预调节器)为对称正定 (SPD)。在纯不可压缩案例中,压力求解器的线性系统矩阵满足此条件。

迭代过程中的 Eqn. (985)Eqn. (991) 是预调节器求解器计算,它们涉及一个 AMG 固定循环,用于近似估计辅助线性系统:

19. EQUATION_DISPLAY
Az k = r k            k = 0 , 1 ,
(995)

正如已实施的那样,PCG 可加速收敛并提高压力求解器的并行可扩展性。正常情况下(不存在非线性不稳定性),PCG 预计不会显著改变 Simcenter STAR-CCM+ 的整体非线性收敛。如果由于压力求解器的线性系统缺乏完全收敛而导致数值不稳定,PCG 可以提供稳定收敛。

稳定双共轭梯度法

如今已开发稳定双共轭梯度 (BiCGStab) 法,用于求解非对称(常规)线性系统。Simcenter STAR-CCM+ 采用 AMG 预处理 BiCGStab 算法提高求解器生成的线性系统的稳定性和收敛速度。

要求解常规线性系统 A x  = b ,预处理 BiCGStab 执行以下步骤:

20. EQUATION_DISPLAY
r 0 = b - Ax 0
(996)
21. EQUATION_DISPLAY
r ~ = r 0
(997)
22. EQUATION_DISPLAY
i = 0
(998)

每次迭代 i 涉及到通过 Eqn. (1012) 计算 Eqn. (999)

23. EQUATION_DISPLAY
ρ i - 1 = r ~ T r i - 1
(999)

如果 ρ i - 1 = 0 ,则该方法将失败。

如果 i = 1

24. EQUATION_DISPLAY
p i = r i - 1
(1000)

否则,根据 Eqn. (1001)Eqn. (1002)

25. EQUATION_DISPLAY
β i - 1 = ( ρ i - 1 ρ i - 2 ) ( α i - 1 ω i - 1 )
(1001)
26. EQUATION_DISPLAY
p i = r i - 1 + β i - 1 ( p i - 1 - ω i - 1 v i - 1 )
(1002)
27. EQUATION_DISPLAY
p ˆ = AMG fixed cycle  ( A , p i )
(1003)
28. EQUATION_DISPLAY
v i = A p ˆ
(1004)
29. EQUATION_DISPLAY
α i = ρ i - 1 ( r ~ T v i )
(1005)
30. EQUATION_DISPLAY
S = r i - 1 - ( α i v i )
(1006)

如果 ( | S | < ε ) ,根据 Eqn. (1007)

31. EQUATION_DISPLAY
x i = x i - 1 + α i p ˆ
(1007)

迭代将结束。

否则,迭代将继续,如下所示:

32. EQUATION_DISPLAY
S ˆ = AMG fixed cycle  ( A , S )
(1008)
33. EQUATION_DISPLAY
t = A S ˆ
(1009)
34. EQUATION_DISPLAY
ω i = t T S t T t
(1010)
35. EQUATION_DISPLAY
x i = x i - 1 + α i p ˆ + ω i S
(1011)
36. EQUATION_DISPLAY
r i = S - ω i t
(1012)

如果 | r i | < ε ,则迭代将结束。

如果 ω i 0 ,则迭代将继续。

线性系统的解为 x i

迭代过程中的 Eqn. (1003)Eqn. (1008) 是预调节器求解器计算,它们涉及一个 AMG 固定循环,分别用于获得以下两个方程的近似求解:

37. EQUATION_DISPLAY
A p ˆ = p i         and         A S ˆ = S         respectively
(1013)

正如预处理共轭梯度法一样,如果由于线性系统收敛不足而导致数值不稳定,BiCGStab 可以提高并行可扩展性并改进收敛。

预处理广义最小残差法
与预处理稳定双共轭梯度法类似,广义最小残差法 (GMRes) 方法可以求解一般、不一定对称的线性系统。Simcenter STAR-CCM+ 采用 AMG 预处理 GMRes 算法提高求解器生成的线性系统的稳定性和收敛速度,如 [283] 第 9.3.1 章所述。
注意,与预处理共轭梯度和稳定双共轭梯度方法相比,预处理 GMRes 法提高了内存需求。