• 返回主页
  • compressibleInterFoam解析

    2016.05.05:依据mohui的讨论更正公式(20);
    求解器类型:可压缩两相界面捕获求解器。

    compressibleInterFoaminterFoam求解器的可压缩版。主要体现在连续性方程上,更详细的NS方程推导请参考interFoam解析。可压缩版VOF模型我们从interFoam解析中的公式(11)开始进行。

    下面我们来看可压缩VOF模型,我们有相连续性方程: \begin{equation}\tag{12} \frac{\partial \alpha_1 \rho_1}{\partial t}+\nabla \cdot (\rho_1 \alpha_1 \mathbf{U})=0 \end{equation} \begin{equation}\tag{13} \frac{\partial \alpha_2 \rho_2}{\partial t}+\nabla \cdot (\rho_2 \alpha_2 \mathbf{U})=0 \end{equation} 公式(12),(13)相加即连续性方程。我们对公式(12)展开有: \begin{equation}\tag{14} \alpha_1 \frac{\partial \rho_1}{\partial t}+\rho_1 \frac{\partial \alpha_1}{\partial t} +\rho_1 \nabla \cdot (\alpha_1 \mathbf{U}) + \alpha_1 \mathbf{U} \nabla \rho_1=0 \end{equation} 也即: \begin{equation}\tag{15} \frac{\partial \alpha_1}{\partial t}+\nabla \cdot (\alpha_1 \mathbf{U})=-\frac{\alpha_1}{\rho_1}\frac{\mathrm{D}\rho_1}{\mathrm{D}t} \end{equation} 同理有: \begin{equation}\tag{16} \frac{\partial \alpha_2}{\partial t}+\nabla \cdot (\alpha_2 \mathbf{U})=-\frac{\alpha_2}{\rho_2}\frac{\mathrm{D}\rho_2}{\mathrm{D}t} \end{equation} 对公式(15),(16)相加有: \begin{equation}\tag{17} \nabla \cdot \mathbf{U}=-\frac{\alpha_2}{\rho_2}\frac{\mathrm{D}\rho_2}{\mathrm{D}t}-\frac{\alpha_1}{\rho_1}\frac{\mathrm{D}\rho_1}{\mathrm{D}t} \end{equation} 对公式(15)进行进一步展开有: \begin{equation}\tag{18} \frac{\partial \alpha_1}{\partial t}+\mathbf{U} \cdot \nabla \alpha_1+\alpha_1\nabla \cdot \mathbf{U}=-\frac{\alpha_1}{\rho_1}\frac{\mathrm{D}\rho_1}{\mathrm{D}t} \end{equation} 将公式(17)代入到公式(18)有: \begin{equation}\tag{19} \frac{\partial \alpha_1}{\partial t}+\mathbf{U} \cdot \nabla \alpha_1=\alpha_1 \alpha_2 \left( \frac{\alpha_2}{\rho_2}\frac{\mathrm{D}\rho_2}{\mathrm{D}t} - \frac{\alpha_1}{\rho_1}\frac{\mathrm{D}\rho_1}{\mathrm{D}t} \right) \end{equation} 我们用$\mathrm{dgdt}$表示压缩项: \begin{equation}\tag{20} \mathrm{dgdt}= \left( \frac{1}{\rho_2}\frac{\mathrm{D}\rho_2}{\mathrm{D}t} - \frac{1}{\rho_1}\frac{\mathrm{D}\rho_1}{\mathrm{D}t} \right) \end{equation} 公式(19)可以化为: \begin{equation}\tag{21} \frac{\partial \alpha_1}{\partial t}+\mathbf{U} \cdot \nabla \alpha_1=\alpha_1 \alpha_2 \mathrm{dgdt} \end{equation} 公式(21)方程左右加上$\alpha_1 \nabla \cdot \mathbf{U}$有: \begin{equation}\tag{22} \frac{\partial \alpha_1}{\partial t}+ \nabla \cdot (\alpha_1 \mathbf{U})=\alpha_1 \alpha_2 \mathrm{dgdt}+\alpha_1 \nabla \cdot \mathbf{U} \end{equation} 公式(22)为compressibleInterFoam中需要求解的相方程。我们看alphaEqn.C(省略部分代码,基础的代码分析请参考其他求解器分析系列):

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
            volScalarField::DimensionedInternalField Sp
            (
                IOobject
                (
                    "Sp",
                    runTime.timeName(),
                    mesh
                ),
                mesh,
                dimensionedScalar("Sp", dgdt.dimensions(), 0.0)//初始化Sp为0
            );
    
            volScalarField::DimensionedInternalField Su
            (
                IOobject
                (
                    "Su",
                    runTime.timeName(),
                    mesh
                ),
                // Divergence term is handled explicitly to be
                // consistent with the explicit transport solution
                divU*min(alpha1, scalar(1))//$\alpha_1 \nabla \cdot \mathbf{U}$
            );
    

    我们看上述代码如何处理$\mathrm{dgdt}$源项。公式(22)的右边部分可以用$\mathrm{Sp}+\mathrm{Su}$来表示。

    · $\mathrm{dgdt}>0$, \begin{equation}\tag{23} \mathrm{Sp}=-\mathrm{dgdt}\alpha_1 \end{equation} \begin{equation}\tag{24} \mathrm{Su}=\alpha_1 \nabla \cdot \mathbf{U}+\mathrm{dgdt}\alpha_1 \end{equation} 需要注意的是,在下文的MULES::explicitSolve()公式中的第二个参数需要乘到第五个参数中,也即: \begin{equation}\tag{25} \mathrm{Sp}=-\mathrm{dgdt}\alpha_1 \alpha_1 \end{equation} 加和公式(23),(24)有: \begin{equation}\tag{26} \mathrm{Sp}+\mathrm{Su}=\alpha_1 \alpha_2 \mathrm{dgdt}+\alpha_1 \nabla \cdot \mathbf{U} \end{equation} · $\mathrm{dgdt}<0$, \begin{equation}\tag{27} \mathrm{Sp}=-\mathrm{dgdt}\alpha_1 \alpha_2 \end{equation} \begin{equation}\tag{28} \mathrm{Su}=\alpha_1 \nabla \cdot \mathbf{U} \end{equation} 加和公式(27),(28)有: \begin{equation}\tag{29} \mathrm{Sp}+\mathrm{Su}=\alpha_1 \alpha_2 \mathrm{dgdt}+\alpha_1 \nabla \cdot \mathbf{U} \end{equation} 我们发现不管$\mathrm{dgdt}$是否大于$0$,我们的源项$\mathrm{Sp}+\mathrm{Su}$和公式(22)中的相方程是相符的。

    压力方程待续
    如何引用:
    李东岳. compressibleInterFoam解析.[OL]. http://dyfluid.com/compressibleInterFoam.html, 2016.3.25

    东岳流体
    info@dyfluid.com