OpenFOAM中参考压力p_rgh的由来

在OpenFOAM的动量方程UEqn.H中经常能看到以下代码:

solve
(
     UEqn
  ==
     fvc::reconstruct
     (
        (
           - ghf*fvc::snGrad(rho)
           - fvc::snGrad(p_rgh)
        )*mesh.magSf()
     )
);

其中p_rgh为参考压力,它是通过将压力p拆分得到的,如下式:

$$\begin{equation}\begin{split}-\nabla p+\rho \mathbf{g}&=-\nabla \left( p\_rgh+\rho \mathbf{g}\cdot \mathbf{h} \right)+\rho \mathbf{g} \\&=-\nabla p\_rgh-\nabla \left( \rho \mathbf{g}\cdot \mathbf{h} \right)+\rho \mathbf{g} \\ &=-\nabla p\_rgh-\left( \mathbf{g}\cdot \mathbf{h} \right)\nabla \rho -\rho \nabla \left( \mathbf{g}\cdot \mathbf{h} \right)+\rho \mathbf{g} \\&=-\nabla p\_rgh-\left( \mathbf{g}\cdot \mathbf{h} \right)\nabla \rho -\rho \mathbf{g}+\rho \mathbf{g} \\&=-\nabla p\_rgh-\left( \mathbf{g}\cdot \mathbf{h} \right)\nabla \rho  \end{split}\end{equation}\tag{1}$$

公式(1)就是代码中的部分,只不过OpenFOAM通过reconstruct函数通过界面上的值重构体心上的量,其本质就是上式。公式(1) 中的\nabla \left( \mathbf{g}\cdot \mathbf{h} \right)=\mathbf{g}的推导过程为:

$$\nabla \left( \mathbf{g}\cdot \mathbf{h} \right)\text{=}\mathbf{g}\times \left( \nabla \times \mathbf{h} \right)+\left( \mathbf{g}\cdot \nabla  \right)\mathbf{h}+\mathbf{h}\times \left( \nabla \times \mathbf{g} \right)+\left( \mathbf{h}\cdot \nabla  \right)\mathbf{g}\tag{2}$$

公式(2)中的后两项均为0,下面仅看前两项:

设$$\mathbf{h}=x\mathbf{i}+y\mathbf{j}+z\mathbf{k}\tag{3}$$

所以

$$\begin{align} \mathbf{g}\times \left( \nabla \times \mathbf{h} \right)&=\mathbf{g}\times \left| \begin{matrix} i & j & k  \\  \frac{\partial }{\partial x} & \frac{\partial }{\partial y} & \frac{\partial }{\partial z}  \\ x & y & z  \\\end{matrix} \right| \\ & =\mathbf{g}\times \left[ i\left( \frac{\partial z}{\partial y}-\frac{\partial y}{\partial z} \right)+j\left( \frac{\partial x}{\partial z}-\frac{\partial z}{\partial x} \right)+k\left( \frac{\partial y}{\partial x}-\frac{\partial x}{\partial y} \right) \right] \\ & =0 \\ \end{align}\tag{4}$$

$$\begin{align} \left( \mathbf{g}\cdot \nabla  \right)\mathbf{h}&=\left( {{g}_{x}}\frac{\partial }{\partial x}+{{g}_{y}}\frac{\partial }{\partial y}+{{g}_{z}}\frac{\partial }{\partial z} \right)\mathbf{h} \\& ={{g}_{x}}\frac{\partial \mathbf{h}}{\partial x}+{{g}_{y}}\frac{\partial \mathbf{h}}{\partial y}+{{g}_{z}}\frac{\partial \mathbf{h}}{\partial z} \\ & ={{g}_{x}}\mathbf{i}+{{g}_{y}}\mathbf{j}+{{g}_{z}}\mathbf{k} \\& =\mathbf{g} \\\end{align}\tag{5}$$

因此,\nabla \left( \mathbf{g}\cdot \mathbf{h} \right)=\mathbf{g}成立,公式(1)得证。

你可能感兴趣的:(OpenFOAM)