版本对应:

在OpenFOAM-7之前,曾经存在bouyantBoussinesqPimpleFoam求解器,其求解流程即为浮力驱动流的Boussinesq算法。在OpenFOAM-7之后,该求解器被整合。

CFD: 弱可压缩流Boussinesq近似

参考可压稳态浮力驱动SIMPLE算法,浮力驱动流通常的办法是在可压缩求解器上考虑浮力来进行。然而其有另外一种近似求解方法,即可以调用Boussinesq近似来进行。本文讨论浮力驱动流的Boussinesq算法。

浮力驱动流的Boussinesq算法认为流场是不可压缩的,其中动量方程的浮力项\(\rho\bfg\)通过在动量方程中添加源项来处理。在传热领域内,Boussinesq算法认为在流动中温度的变化是非常小的,因此对应的密度变化也非常小。所以在控制方程中,除了浮力项,其他项的密度被认为是常数。Boussinesq算法使得方程的非线性特性降低。但由于Boussinesq算法的限定条件,也使得调用Boussinesq假定的求解器存在一定的限制。在工程中,Boussinesq假定主要用于室温下的液体对流、建筑物对流、气相分散等。在温度变化比较大的情况下,不建议使用Boussinesq算法。

Boussinesq算法认为流体的密度可以这样计算:

(1)\[ \rho=\rho_{ref}\rho_k, \;\;\rho_k=1-\beta\left(T-T_{ref}\right) \]

其中\(\rho\)表示流体的密度,\(\rho_k\)表示无量纲的参数,\(\rho_{ref}\)表示流体的参考密度,\(T\)表示流体的温度,\(T_{ref}\)表示流体的参考温度,\(\beta\)表示流体的体膨胀系数。

控制方程与算法

现考虑不可压缩流体,并附加重力源项的动量方程:

(2)\[ \frac{\partial \mathbf{U}}{\partial t}+\nabla \cdot (\mathbf{U} \mathbf{U})=-\nabla p+\nabla \cdot\boldsymbol{\tau}+\frac{\rho}{\rho_{ref}}\bfg \]

注意其中的压力项\(p\)的单位为压力除掉密度之后的单位。其中的浮力源项也可以写为\(\frac{\rho}{\rho_{ref}}\bfg=\rho_k\bfg\)。参考可压稳态浮力驱动SIMPLE算法,其中的\(-\nabla p + \rho_k\bfg\)会进一步被处理为:

(3)\[ -\nabla p + \rho_k\bfg=-\nabla p_\mathrm{rgh}-\bfg\cdot \bfh \nabla \rho_k \]

最终方程(2)会被整理为:

(4)\[ \frac{\partial \mathbf{U}}{\partial t}+\nabla \cdot (\mathbf{U} \mathbf{U})=-\nabla p_\mathrm{rgh}-\bfg\cdot \bfh \nabla \rho_k +\nabla \cdot\boldsymbol{\tau} \]

除此之外,温度也需要被传输,其控制方程为:

(5)\[ \frac{\p T}{\p t}+\nabla\cdot(\bfU T)-\nabla\cdot(\alpha_{eff}T)=0 \]

同理,连续性方程为:

(6)\[ \nabla\cdot\bfU=0 \]

方程(5)(5)(6)构成浮力驱动流的Boussinesq算法的控制方程。仔细观察方程(5)(5)(6),会发现其仅仅为不可压缩NS方程中附加1)温度传输方程,2)重力项。

随后,浮力驱动流的Boussinesq算法的温度方程可以按照常规方法离散,速度压力耦合可以参考不可压稳态SIMPLE算法进行离散。其中的重力项,可以参考可压稳态浮力驱动SIMPLE算法进行离散。本文不再进行赘述。