分离流求解器

分离流求解器可按顺序求解质量和动量的积分守恒方程。对于如 u,v,w,p 等求解变量,将以迭代方式逐个求解非线性控制方程。

分离求解器使用压力-速度耦合算法,其中将通过求解压力校正方程满足对速度场的质量守恒约束。压力校正方程基于连续性方程和动量方程而构建,以便通过校正压力寻找满足连续性方程的预测速度场。此方法也称为预估校正法。可通过压力校正方程获得作为变量的压力。

Simcenter STAR-CCM+ 可实现以下压力-速度耦合算法:
  • SIMPLE
  • SIMPLEC
  • PISO

该分离求解器在恒密度流中有自己的根。虽然它可以处理轻微可压缩流和低瑞利数自然对流,但不适用于激波捕捉、高马赫数和高瑞利数应用。

在很大程度上,提供的方法基于 [224][235][236][267][268][276]

动量方程的离散化

通用传输方程中所述,通过设置 ϕ=u,v,w,动量方程能够以类似方式离散化为标量传输方程:
1. EQUATION_DISPLAY
t(ρvV)0+f[ρvva]f=-f(pIa)f+fTa
(922)

对流通量扩散通量中所述,将离散化对流和扩散通量。需要特别注意压力梯度的离散化。

面压力计算

在动量方程中,压力显示为压力梯度。为了计算 Eqn. (922) 中的压力梯度项,必须计算每个面上的压力。

2. EQUATION_DISPLAY
pf=a0¯pf0+a1¯pf1a0¯+a1¯
(923)

其中, a 0 ¯ a 1 ¯ 分别是网格单元 0 和网格单元 1 的所有动量分量的动量系数平均值。 p f 0 p f 1 根据 Eqn. (911) 从网格单元值和重构梯度进行插值。

δ-V 耗散专家属性打开时,面压力计算中将计入耗散项,如下所示:

3. EQUATION_DISPLAY
pf=a0¯pf0+a1¯pf1a0¯+a1¯+2a0¯a1¯a0¯+a1¯(vf0vf1)a4(aa)
(924)

其中,vf0vf1 也根据 Eqn. (911) 计算得出。

在边界处,网格单元 1 部分来自虚构的“虚拟网格单元”,其中速度已反映在边界面上。因此 Eqn. (923) 将变为:

4. EQUATION_DISPLAY
pf=pf0
(925)

δ-V 耗散打开时,在边界处,Eqn. (924) 将变为:

5. EQUATION_DISPLAY
pf=pf0+a0¯vf0a2(aa)
(926)

压力校正方程

通过根据质量通量校正 m˙f 重新编写连续性方程,可获得压力-速度耦合:

6. EQUATION_DISPLAY
fm˙f=f(m˙f*+m˙f)=0
(927)

对离散动量方程求解之后,将计算未校正的面质量通量 m˙f*。动量方程使用假定的压力场 p* 进行求解,这不满足连续性。需要校正质量流量 m˙f 以满足连续性。

内部面上未校正的质量通量可根据网格单元变量写为:

7. EQUATION_DISPLAY
m˙f*=ρfa(v0*+v1*2)-ϒf
(928)

其中,v0*v1* 是已对离散动量方程求解之后的网格单元速度。网格单元中心到面的速度线性插值会导致出现压力的非物理棋盘格化。为了防止出现此棋盘格化,将引入 Rhie-Chow 耗散 ϒf

8. EQUATION_DISPLAY
ϒf=Qf(p1-p0-pf*¯ds)
(929)

其中:

9. EQUATION_DISPLAY
Qf=ρf(V0+V1a¯0+a¯1)αa
(930)
其中:
V 0 , V 1 网格单元 0 和网格单元 1 的网格单元体积
a ¯ 0 , a ¯ 1 网格单元 0 和网格单元 1 的所有动量分量的动量系数平均值
p 0 网格单元 0 的压力
p 1 网格单元 1 的压力
p f * ¯ 压力的网格单元梯度的体积加权平均值,它使用两个网格单元梯度值之间基于体积的插值计算得出

在多相流中,由于相间相互作用的存在,动量系数形成了矩阵。但是,仅考虑矩阵的对角项。这些值用 Eqn. (930) 中的 a ¯ 0 a ¯ 1 表示。

Rhie-Chow
Rhie-Chow 动量插值方法忽略 Eqn. (930) 中的非对角项,这些项表示相互作用力在不同相之间的相互作用。如果预期没有强大的相间耦合,这就已经足够。
相耦合
相耦合动量插值法 ([472]) 是多相流 Rhie-Chow 插值法的扩展。此方法通过求解用于耗散系数计算的完整矩阵形式 a 来考虑交界面力,其计算方法为:
10. EQUATION_DISPLAY
Q f = ρ f | V × ( a 1 ¯ α ¯ ) | a v g a
(931)

其中, α ¯ 是体积分数(包括每个相的体积分数)的矢量。此方法改进了当离散相具有极小长度尺度时的收敛行为。

非稳态耗散校正

对于系数 ,启用非稳态耗散校正时,将基于声学 CFL 修改系数 。 a ¯ = a ¯ 0 or a ¯ 1 a ¯

  • 使声学 CFL 为 ,其中 为声速, 为模拟时间步, 为局部网格尺寸。CFLa=cΔtΔxcΔtΔx
  • 使 limCFL 为用户指定的限制声学 CFL 值。

然后:

  • 如果 CFL>limCFL,则使用 a¯ 而不进行修改。
  • 否则,a¯ 将替换为 a¯,如下所示:

    a¯=a¯u(1+CFLra¯unsmax(a¯u,1×1020))

    其中:

    • a¯u=a¯a¯uns 且
a¯uns=32ρVolΔt
    • CFLr=min(1.0,CFLlimCFL)

pL 和 为面法向上相对于面形心的压力值,在两个对称点 处进行线性重构计算得出。pR(xL,xR)

xL=xf-dsnxR=xf+dsn

其中:

  • n 是与面积矢量 af 关联的单位矢量。
  • xf 是面形心的位置矢量。
  • ds 是标量距离,其中:
    • 如果 max(V1V0,V0V1)>10,则 ds=0.5|α|
    • 否则,ds=min(ds0,ds1),其中:

      • ds0=dx0ndx0=xf-x0 投影至面网格面积法向)
      • ds1=dx1ndx1=xf-x1 投影至面网格面积法向)。
密度校正

对于可压缩流,将引入密度校正 : ρ′

11. EQUATION_DISPLAY
m˙f=(ρ+ρ′)f(vfn*+v'fn)|a|=(ρfvfn*+ρ′fvfn*+ρfv′fn+ρ'fv′fn)|a|
(932)

其中,下标 "fn" 表示面法向分量。

12. EQUATION_DISPLAY
ρfv'fn|a|-Qf(p1-p0)
(933)

其中的 p1p0 是网格单元压力校正,且:

13. EQUATION_DISPLAY
ρ′fvfn*|a|=m˙f*ρf(ρp)Tp′upwind
(934)

其中:

14. EQUATION_DISPLAY
p′upwind={p0    for m˙f*>0p1    for m˙f*<0
(935)

由于可以选择忽略二阶项 ρ'fvfn',因此可以合并这些方程,将质量流量校正定义为:

15. EQUATION_DISPLAY
m˙f=Qf(p0-p1)+m˙f*ρf(ρp)Tp′upwind
(936)
离散压力校正方程

离散压力校正方程通过 Eqn. (927)Eqn. (936) 得出,并以系数形式写为:

16. EQUATION_DISPLAY
pp+nanpn=r
(937)

残差 r 为进入网格单元的净质量流量:

17. EQUATION_DISPLAY
r=-nm˙f*
(938)

SIMPLE 算法

SIMPLE 算法用于控制总体求解。此算法汇总如下:

  1. 设置边界条件。
  2. 计算速度和压力的重构梯度。
  3. 计算速度和压力梯度。
  4. 求解离散动量方程。这可用于创建中间速度场 v *
  5. 计算面 m˙f* 处的未校正质量通量。
  6. 求解压力校正方程。这可以为压力校正 p′ 生成网格单元值。
  7. 更新压力场:
    18. EQUATION_DISPLAY
    p n + 1 = p n + ω p '
    (939)

    其中, ω 为压力的亚松弛因子。

  8. 更新边界压力校正 p b
  9. 校正面质量通量:
    19. EQUATION_DISPLAY
    m˙fn+1=m˙f*+m˙f
    (940)
  10. 校正网格单元速度:
    20. EQUATION_DISPLAY
    v p n + 1 = v p * - V p′ a p v
    (941)

    其中, p ' 为压力校正的梯度, a p v 为离散速度方程的中央系数矢量, V 为网格单元体积。

  11. 压力变化时更新密度。
  12. 释放所有临时储存。

SIMPLE Consistent (SIMPLEC) 算法

SIMPLEC 遵循的步骤与为 SIMPLE 算法概括的步骤相同。它的不同之处体现在压力校正方程 p 的形式。在 SIMPLE 中,网格单元的速度校正方程根据压力校正写入,忽略邻近网格单元的速度校正。获取此方程的发散,并利用连续性,得出 p 方程。

在速度校正方程中,SIMPLEC 假设相邻网格单元中的速度校正等于中心网格单元处的速度校正。这会导致 的方程不同。 p

另一差异是,与时间步长和速度亚松弛相关的压力亚松弛隐式内置在 方程中,因此没有 Eqn. (939) 中那种显式压力亚松弛。 p

在 SIMPLEC 中,Eqn. (941) 变成:

21. EQUATION_DISPLAY
v p n + 1 = v p * V p a p v n a n v
(942)

其中 为速度相邻系数。 a n v

PISO 算法

PISO 算法适用于对流库朗数较少的瞬态情况。

PISO 与 SIMPLE 对比:

  • 尽管这两种算法具有相同的时间精度级别,但采用短时间步时 PISO 比 SIMPLE 速度更快。[254]
  • PISO 不适用于长时间步的情况,在该情况下,组合 CFL 会高至远超过 10,而 SIMPLE 仍旧保持稳定。
  • 随着时间步长增加,SIMPLE 将失去瞬态求解的时间精度。但是,SIMPLE 仍可以通过使用较大的时间步长,获得精确的稳态求解(如果存在)。

因此,在可以使用大时间步长的情况中使用 SIMPLE,例如在获取稳态求解时,而对于要求使用小时间步长且时间精度要求较高的问题,则使用 PISO。

PISO 算法与 SIMPLE 算法具有许多相同的特点。该算法汇总如下:

  1. 设置边界条件。
  2. 计算速度和压力的重构梯度。
  3. 计算速度和压力梯度。
  4. 求解离散动量方程。此操作会创建中间速度场 v *
  5. 计算面 m˙f* 处的未校正质量通量。
  6. 构建压力校正方程,然后测试 PISO 算法是否收敛。如果 PISO 已收敛,则将最后一次迭代标志设为“真”。
  7. 求解压力校正方程。此操作会得到压力校正 p 的网格单元值。
  8. 更新压力场:
    22. EQUATION_DISPLAY
    p n + 1 = p n + ω p
    (943)

    其中, ω 为压力的亚松弛因子。如果此迭代是最后一个,则 ω 等于 1。

  9. 更新边界压力校正 p b
  10. 校正面质量通量:
    23. EQUATION_DISPLAY
    m˙fn+1=m˙f*+m˙f
    (944)
  11. 校正网格单元速度:
    24. EQUATION_DISPLAY
    vpn+1=vp*Vωpapv
    (945)

    其中, p 为压力校正的梯度, a p v 为表示速度方程的离散线性系统的中央系数矢量, V 为网格单元体积。

  12. 压力变化时更新密度。
  13. 求解任何耦合 PISO 的方程,例如针对组分或能量。
  14. 从状态方程重新计算密度(最后一个修正器除外)。
  15. 如果此迭代是最后一个,则转到第 18 步。
  16. 使用相邻网格单元导致的校正显式更新动量方程。
  17. 转到第 5 步,然后继续操作,直到达到收敛。
  18. 释放所有临时储存。