2.4 PIMPLE算法
2.4.1速度的非线性耦合
在2.1节中,我们曾对流动系统的压力速度耦合问题进行过讨论,实际上,在流动系统中除了压力和速度的耦合关系,我们还存在着另一种重要的耦合关系,速度的非线性耦合关系。当我们对速度进行求解时(例如求解动量预测方程),速度是未知量,因此对流项 ∇ ⋅ ( U ⃗ U ⃗ ) \nabla\cdot(\vec U\vec U) ∇⋅(UU)是一个未知量乘以未知量的结果,这样会使得原来呈线性的方程变为非线性方程(即未知数的最高次数从1变为2)。直接求解非线性系统的矩阵方程需要调用非线性求解器,然而非线性求解器相对线性求解器来说相对复杂,计算成本较高。在实际中,我们一般对非线性项进行线性化处理:
我们回顾以下之前对对流项的离散过程:
∫ V P ∇ ⋅ ( ρ ϕ U ⃗ ) d V = ∑ f [ S f ⋅ ( ρ ϕ U ⃗ ) f ] = ∑ f [ S f ⋅ ( ρ U f ⃗ ) ϕ f ] = ∑ f ( F ϕ f ) (1.28) \int_{V_P}\nabla\cdot(\rho\phi\vec U) dV=\sum_f\left[ {S_f}\cdot\left(\rho\phi\vec U\right)_f\right]=\sum_f\left[ {S_f}\cdot(\rho\vec {U_f})\phi_f\right]\\=\sum_f(\mathbf{F}\phi_f) \tag{1.28} ∫VP∇⋅(ρϕU)dV=f∑[Sf⋅(ρϕU)f]=f∑[Sf⋅(ρUf)ϕf]=f∑(Fϕf)(1.28)
上式中 F = S f ⋅ ( ρ U f ⃗ ) \mathbf{F}={S_f}\cdot(\rho\vec {U_f}) F=Sf⋅(ρUf)为质量通量(mass flux)。
为了与相关文献中的表述一致,在本节后,我们不再使用字母 ϕ \phi ϕ表示任意标量,而表示通量,在未加下标的情况下, ϕ \phi ϕ默认表述速度的通量 ϕ = S f ⋅ U f ⃗ \phi={S_f}\cdot\vec {U_f} ϕ=Sf⋅Uf。仿照式1.28,对于NS方程中的对流项我们可以进行如下的离散:
∫ V P ∇ ⋅ ( U ⃗ U ⃗ ) d V = ∑ f [ S f ⋅ ( U ⃗ U ⃗ ) f ] = ∑ f ( S f ⋅ U f ⃗ ⋅ U f ⃗ ) = ∑ f ( ϕ U f ⃗ ) (2.25) \int_{V_P}\nabla\cdot(\vec U\vec U) dV=\sum_f\left[ {S_f}\cdot\left(\vec U\vec U\right)_f\right]=\sum_f\left( {S_f}\cdot\vec {U_f}\cdot\vec{U_f}\right)\\=\sum_f(\phi \vec{U_f}) \tag{2.25} ∫VP∇⋅(U