在上一篇介绍差分格式可以看到求解不可压缩NS方程,主要是求解速度的动量方程和压力的波松方程。本文介绍一些历史中的算法,下一文介绍目前常用的算法。
一 Marker and Celler (MAC) 算法
在自然差分格式中给出PPE如下: laplace ( p) = laplace ( body_force) - rho * div ( u * grad_u) (1) 。 该方程不保证 div_ u = 0 条件。
MAC 将PPE方程如下定义: laplace(p) = miu * laplace( Div) - (du^2/dxx + duv/dxy + dvu/dyx + dv^2/dyy) - dD/dt (2), 即Div 项不直接扔掉,特别是 dD/dt项。
离散(2)式并令 (n+1) 时步的 Div = 0 (保证div _u = 0 条件),得到 (n+1)时步的压力场;将该压力值带入上一篇介绍的半隐式离散动量方程, 采用forward Euler时间离散求解(n+1)时步的速度场。
边界处理同自然差分格式。
二 SOLA算法
MAC每步都要计算PPE,代价大。考虑 压力-速度耦合,且 速度满足不可压缩条件(div_ u = 0), 那么存在隐函数 Div(P) = 0. 构造不动点迭代(牛顿迭代)如下:
p^(m+1) = p^(m) - D/ D'(p) % p^(m) 表示第m迭代步的压力值。
其中 D‘(p)