02 關(guān)于SIMPLE算法的說明
# 關(guān)于simple算法的說明
simple算法是計算流體力學(xué)中一種被廣泛使用的求解流場的數(shù)值方法,于1972年由蘇哈斯·帕坦卡與布萊恩·斯波爾丁提出 。simple算法的全稱是壓力耦合方程組的半隱式方法(Semi-Implicit Method for Pressure Linked Equations),其核心思想是從動量方程和連續(xù)性方程中導(dǎo)出壓力泊松方程,并通過速度修正方程使速度場滿足連續(xù)性方程。本文將介紹simple算法的原理、流程和應(yīng)用范圍。
## simple算法的原理
為了簡化問題,我們只考慮不可壓縮、恒定密度、穩(wěn)態(tài)流動的情況,即控制方程中不包含時間項和密度項。這樣,我們需要求解四個未知量:三個速度分量Ux、Uy、Uz和壓力p。對應(yīng)的控制方程有四個:三個動量方程和一個連續(xù)性方程。
動量方程可以寫成如下矩陣形式:
$$
\mathcal{M}U=-\nabla p \tag{1}
$$
其中$\mathcal{M}$是系數(shù)矩陣,由有限體積法或有限元法從動量方程的微分項分解得到,這些系數(shù)是已知的。$U$是速度向量,$\nabla p$是壓力梯度向量。
連續(xù)性方程可以寫成如下形式:
$$
\nabla \cdot U=0 \tag{2}
$$
其中$\nabla \cdot U$表示速度散度。
由于沒有單獨求解壓力p的方程,而且連續(xù)性方程實際上是對動量方程的約束條件,因此直接求解上述四個控制方程非常困難。simple算法就是為了克服這些困難而設(shè)計的一種迭代方法。
simple算法主要包括以下幾個步驟:
### 1. 系數(shù)矩陣分解
首先將系數(shù)矩陣$\mathcal{M}$分解為對角線部分$\mathcal{A}$和非對角線部分$\mathcal{H}$:
$$
\mathcal{A}U-\mathcal{H}=-\nabla p \tag{3}
$$
這樣做的目的是為了便于后面求逆和修正速度。對角線部分$\mathcal{A}$可以表示為:
$$
\mathcal{A}=\begin{bmatrix}
a_{11} & 0 & \cdots & 0 \\
0 & a_{22} & \cdots & 0 \\
\vdots & \vdots & \ddots & \vdots \\
0 & 0 & \cdots & a_{nn}
\end{bmatrix} \tag{4}
$$
非對角線部分$\mathcal{H}$可以通過下式求得:
$$
\mathcal{H}=\mathcal{A}U-\mathcal{M}U \tag{5}
$$
### 2. 求解預(yù)測速度場
然后將公式(3)兩邊同時乘以$\mathcal {A}^{-1}$得到:
$$
U=\mathcal {A}^{-1}\mathcal {H}-\mathcal {A}^{-1}\nabla p \tag {