如图所示,总共有Nx×Ny个单元格,压强的未知量个数为(Nx+2)×(Ny+2),速度分量u的未知量个数为(Nx+1)×(Ny+2),速度分量v的未知量个数为(Nx+2)×(Ny+1)。单元格(i,j)的中心的未知量为pi−21,j−21,对应数组成员为p[i+1,j+1]
,下边界中点为vi−21,j−1v[i+1,j]
,上边界中点为vi−21,jv[i+1,j+1]
,左边界中点为vi−1,j−21u[i,j+1]
,右边界中点为vi,j−21u[i+1,j+1]
。
边界上的数据存储在一个数组中,那么它们一定是按照[下, 上, 左, 右]的顺序存储的。
投影方法
求解压强
空间离散
Δpn+1=ρ(Δt∇⋅u∗−sn+1)(8)
(pb)i−21,j−21=Δtρ(Δxui,j−21−ui−1,j−21+Δyvi−21,j−vi−21,j−1−si−21,j−21)(9)
hx2pi−23,j−21−2pi−21,j−21+pi+21,j−21+hy2pi−21,j−23−2pi−21,j−21+pi−21,j+21=(bp)i−21,j−21(10)
Gauss-Seidel迭代
a=hx22+hy22
b=hx2pi−23,j−21+pi+21,j−21+hy2pi−21,j−23+pi−21,j+21−(bp)i−21,j−21
pi−21,j−21=ab
边界条件
边界索引
四条边界分别为
- 下 pi−21,−21,i∈[1,Nx],
- 上 pi−21,Ny−21,i∈[1,Nx],
- 左 p−21,j−21,j∈[1,Ny],
- 右 pNx−21,j−21,j∈[1,Ny],
其中,四个角点不包含在内。分别对四条边界进行处理:
Dirichlet 类型
- 下 pi−21,21+pi−21,−21=2gi,0 , pi−21,−21=2gi−21,0−pi−21,21
- 上 pi−21,Ny+21+pi−21,Ny−21=2gi−21,Ny, pi−21,Ny+21=2gi−21,Ny−pi−21,Ny−21
- 左p21,j−21+p−21,j−21=2g0,j−21, p−21,j−21=2g0,j−21−p21,j−21
- 右pNx+21,j−21+pNx−21,j−21=gNx,j, pNx+21,j−21=g0,j−21−pNx−21,j−21
Neumann 类型(暂无)
求解速度分量u
速度方程为
ρ(Δtu∗−un+un⋅∇un)=μΔu∗+fn+1(3)
Δt1u∗−ρμΔu∗=Δt1un+ρ1fn+1−un⋅∇un(7)
先去掉对流项
Δt1u∗−ρμΔu∗=Δt1un+ρ1fn+1(7)
空间离散
Δt1ui,j−21∗−ρμ(hx2ui−1,j−21∗−2ui,j−21∗+u∗i+1,j−21∗+hy2ui,j−23−2ui,j−21∗∗+ui,j+21∗)=(b1)i,j−21(3.1)
Gauss-Seidel迭代
[Δt1+ρ2μ(hx21+hy21)]ui,j−21∗=(b1)i,j−21+ρμ(hx2ui−1,j−21∗+ui+1,j−21∗+hy2ui,j−23∗+ui,j+21∗)(3.2)
其中
(b1)i,j−21=Δt1ui,j−21n+ρ1(f1)i,j−21n+1
边界索引
方程(3.1)中,uh的个数为Nx+1×Ny+2,四条边界分别为
- 下 ui,−21,i∈[0,Nx]
- 上 ui,Ny+21,i∈[0,Nx]
- 左 u0,j−21,j∈[0,Ny+1]
- 右 uNx,j−21,j∈[0,Ny+1]
其中,四个角点分别包含在左右两条边界中。
Dirichlet类型
- 下 ui,21+ui,−21=2gi,0 , ui,−21=2gi,0−ui,21
- 上 ui,Ny+21+ui,Ny−21=2gi,Ny, ui,Ny+21=2gi,Ny−ui,Ny−21
- 左 u0,j−21=g0,j−21
- 右 uNx,j−21=gNx,j−21
Neumann类型
- 下 hyui,21−ui,−21=gi,0, ui,−21=ui,21−hygi,0
- 上hyui,Ny+21−ui,Ny−21=gi,Ny, ui,Ny+21=ui,Ny−21+hygi,Ny
- 左 2hxu1,j−21−u−1,j−21=g0,j−21, ughost=u−1,j−21=u1,j−21−2hxg0,j
u0,j−21=2hy2+2hx2(ughost+u1,j−21)hy2+(u0,j−23+u0,j−21)hx2−hx2hy2f0,j−21,
- 右 2hxuNx+1,j−21−uNx−1,j−21=gNx,j−21, ughost=uNx+1,j−21=uNx−1,j−21+2hxgNx,j
uNx,j−21=2hy2+2hx2(uNx+1,j−21+ughost)hy2+(uNx,j−23+uNx,j−21)hx2−hx2hy2fNx,j−21,