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)得证。

  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
OpenFOAM编程指南文版_推荐.pdf》是一本关于OpenFOAM编程指南的文版PDF文档。OpenFOAM是一个用于求解复杂流体流动问题的开源计算流体力学软件包,它提供了广泛的功能和工具,可以用于模拟多种流动现象。 这本编程指南提供了使用OpenFOAM进行自定义编程和开发的详细介绍。它主要包括以下几个方面的内容: 1. OpenFOAM基础知识:介绍了OpenFOAM的基本概念和工作原理,让读者对OpenFOAM有一个整体的了解。 2. OpenFOAM编程环境:介绍了OpenFOAM的编程环境和常用的编程工具,包括编译器、调试器以及版本控制系统等。读者可以根据自己的需求选择适合的开发环境。 3. OpenFOAM编程实例:提供了一些具体的编程实例,涵盖了不同的应用领域和问题类型。通过这些实例,读者可以学习到如何使用OpenFOAM的API进行编程,以及如何开发自定义的求解器。 4. OpenFOAM编程技巧:介绍了一些在OpenFOAM编程常用的技巧和经验,包括优化求解器性能、调试代码和处理常见错误等。这些技巧可以帮助读者更好地应用OpenFOAM进行流体流动模拟。 这本编程指南的文版PDF文档可以帮助国的OpenFOAM用户更好地理解和应用该软件包。它提供了详细的文说明和实例,可以帮助读者快速入门并深入学习OpenFOAM的编程和开发技术。无论是对于初学者还是有经验的OpenFOAM用户来说,这本编程指南都是一个很好的参考资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

_黄岛主_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值