OpenFOAM中参考压力p_rgh的由来

本文详细解析了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)得证。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_黄岛主_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值