CFD: 可压 + 绝热

在不可压缩流动NS方程的基础上,考虑密度的变化,同时简化温度PDE过程为绝热过程,可以获得简化的可压绝热过程求解器。压缩机或膨胀机在瞬间工作中可以近似认为是绝热过程。小扰动声波的传输也可以认为是绝热过程。

控制方程

本文不考虑动量方程中的扩散项(因为其对于方程的离散不会带来任何问题)。在不可压缩NS方程的基础上, 附加密度有:

(1)\[ \frac{\p\rho}{\p t}+\nabla\cdot\rho\bfU=0 \]
(2)\[ \frac{\p\rho\bfU}{\p t}+\nabla \cdot (\rho\mathbf{U} \mathbf{U})=-\nabla p \]

进一步考虑绝热过程,有:

(3)\[ \frac{T}{T_0}=\left(\frac{p}{p_0}\right)^{\frac{\gamma-1}{\gamma}} \]

附加状态方程:

(4)\[ p=\rho R T \]

上述4个方程构成绝热过程可压缩流动的基本方程。可见其绝热假定大幅度的简化了温度方程。因此可压绝热方程可以理解为简化版本的可压NS方程,其可以用于模拟一些特殊的工况,如无声源的声波传输等。

离散

本文算法大体与CFD: 可压 + 瞬态相同,因此简述离散过程。首先,方程(1)可以用于更新密度:

(5)\[ \frac{\rho^{*}-\rho^t}{\Delta t}+\sum_f \rho^?_f\bfU_f^t\cdot\bfS_f=0, \]

方程(1)中对流项的密度\(\rho^?_f\)是显性离散还是隐性离散,留给读者自行思考。

随后组建速度离散矩阵,有:

(6)\[ \mathbf{U}_\mathrm{P}^{*} = \mathbf{HbyA}^{*}_\mathrm{P} - \frac{1}{{{A^n_\mathrm{P}}}} \frac{1}{V_\rP}\sum_f p_f^n\bfS_f \]

压力方程可以将面上的速度代入到连续性方程来获得:

(7)\[ \frac{\p\rho?}{\p t}+\sum \rho_f \left(\mathbf{HbyA}^{*}_f- \frac{1}{{{A^n_f}}} \frac{1}{V_\rP}\sum_f p_f^*\bfS_f \right)\cdot\bfS_f=0 \]

方程(7)中的\(\rho?\)需要怎样处理,留给读者自行思考。方程(7)可以获得压力\(p^*\)。与CFD: 可压 + 瞬态相同,随后可以更新相同时间步下的速度\(\bfU^{**}\),直至跳出PISO循环。至此,该时间步下的速度压力耦合处理完毕。

随后通过方程(3)来更新温度场。更新温度场后,继续更新密度场。至此,温度、密度、压力、速度全场满足可压绝热方程,可以跳至下一个时间步进行计算。

结果

下图为采用上述算法计算的流场压力结果云图。流体从左侧流入,马赫数约为0.4,为一个弱可压缩工况。云图显示了小扰动压力波的传输。

自2025年3月起,本算法将作为CFD算法编程课的编程算例进行教学。