前面计算对流扩散问题的算例中都直接假设了计算域的流场是已知的(假设是均匀流场,各地流速的方向和大小都相同),然而,实际情况下流场是未知的,是需要求解的量,而其他输运量(如ϕ\phiϕ)的对流通量是和当地速度的大小与方向密切相关的。因此,计算出流场是关键性的一步。本文主要介绍求解流场中面对的问题及解决方法。

二维稳态的动量方程和连续性方程如下:
∂∂x(ρuu)+∂∂y(ρvu)=∂∂x(μ∂u∂x)+∂∂y(μ∂u∂y)−∂p∂x+Su∂∂x(ρuv)+∂∂y(ρvv)=∂∂x(μ∂v∂x)+∂∂y(μ∂v∂y)−∂p∂y+Sv∂∂x(ρu)+∂∂y(ρv)=0(1)\begin{aligned} \frac{\partial}{\partial x} (\rho u u) + \frac{\partial}{\partial y} (\rho vu) &= \frac{\partial}{\partial x} \left( \mu \frac{\partial u}{\partial x} \right) + \frac{\partial}{\partial y} \left( \mu \frac{\partial u}{\partial y} \right) - \frac{\partial p}{\partial x} + S_u \\\\ \frac{\partial}{\partial x} (\rho u v) + \frac{\partial}{\partial y} (\rho vv) &= \frac{\partial}{\partial x} \left( \mu \frac{\partial v}{\partial x} \right) + \frac{\partial}{\partial y} \left( \mu \frac{\partial v}{\partial y} \right) - \frac{\partial p}{\partial y} + S_v \\\\ \frac{\partial}{\partial x}(\rho u) + \frac{\partial}{\partial y}(\rho v)&=0 \end{aligned} \tag{1}∂x∂​(ρuu)+∂y∂​(ρvu)∂x∂​(ρuv)+∂y∂​(ρvv)∂x∂​(ρu)+∂y∂​(ρv)​=∂x∂​(μ∂x∂u​)+∂y∂​(μ∂y∂u​)−∂x∂p​+Su​=∂x∂​(μ∂x∂v​)+∂y∂​(μ∂y∂v​)−∂y∂p​+Sv​=0​(1)
对比上式的动量方程和前面对流扩散问题的输运方程可见,此处动量方程中包含了压力梯度项,而输运方程中没有该项,可以认为是把压力项归入源项中处理了。然而,压力梯度是引起流体流动最直接的动力,在真实流场的计算分析中,压力梯度项是动量方程的主要源项,压力场也是需要求解的。

‘checker-board’压力场

公式(1)(1)(1)中xxx和yyy方向的动量方程中都含有压力梯度项,在计算网格节点处的压力梯度时,我们需要用到单元界面的压力值来进行差分(如使用中心差分格式),而界面处的压力值未知,如果再使用各界面两侧的节点值来插值界面处的压力值,那么如果出现‘checker-board’压力场(每隔一个节点,压力相等。如下图所示的二维压力场)的情形则压力梯度就消失了。

假设xxx动量方程在网格单元PPP处离散,那么我们就需要计算压力ppp在节点PPP处的导数,
∂p∂x=pe−pwδx=pE+pP2−pP+pW2δx=pE−pW2δx(2)\begin{aligned} \frac{\partial p}{\partial x} &= \frac{p_e - p_w}{\delta x} = \frac{\frac{p_E+p_P}{2} - \frac{p_P + p_W}{2}}{\delta x} \\\\ &=\frac{p_E-p_W}{2\delta x} \end{aligned} \tag{2}∂x∂p​​=δxpe​−pw​​=δx2pE​+pP​​−2pP​+pW​​​=2δxpE​−pW​​​(2)
yyy动量方程的压力导数也是类似计算,即使用节点两侧的节点值来差分近似该节点处的压力梯度。然而,从上图可见,任意节点处的压力梯度都为零。这就使得压力场无法再为速度场提供有效源项,这样计算出的压力场和速度场是不符合物理事实的。

交错网格

解决’checher-board’压力场问题的方法就是交错网格,即将速度场和压力场的离散网格错开,不再重合在一起,如下图。

图中向上的箭头(↑\uparrow↑)所示的交点代表的是vvv速度场的网格,向右的箭头(→\rightarrow→)所示的交点代表的是速度uuu的网格,黑色圆点代表的是压力场的网格。根据图中阴影可以看出,相对于压力场网格(I,J),速度uuu的网格(i,J)向左错开了半个网格单元的距离,速度vvv的网格(I,j)向下错开了半个网格单元的距离。
有了交错网格后,不同变量的值保存在其各自的网格节点中。然后流动方程的离散也是在各自网格上进行,例如uuu的动量方程要在uuu的网格上离散,vvv动量方程要在vvv的网格上离散。以uuu动量方程为例,动量方程在点(i,J)离散,因此压力梯度是计算节点(i,J)处的压力梯度。
∂p∂x=pP−pWδxu(3)\frac{\partial p}{\partial x} = \frac{p_P - p_W}{\delta x_u} \tag{3} ∂x∂p​=δxu​pP​−pW​​(3)
同理vvv方程的压力梯度
∂p∂y=pP−pSδxv(4)\begin{aligned} \frac{\partial p}{\partial y} = \frac{p_P - p_S}{\delta x_v} \end{aligned} \tag{4}∂y∂p​=δxv​pP​−pS​​​(4)
因为交错网格中压力网格和速度网格已经错开了,因此公式(3)(3)(3)和(4)(4)(4)中的pP、pWp_P、 p_WpP​、pW​和pSp_SpS​即使速度场网格单元的边界值,又是压力场网格单元的节点值,也就不需要像公式(2)(2)(2)那样通过插值获取边界值,这样即使遇到‘checker-board’压力场也不会出现压力梯度为零的情况。

注:
上文所谓的‘checker-board’压力场并不是指现实物理世界中的压力场,这是不存在的。在求解流动方程时,通常使用迭代方法求解,在迭代的过程中是可能出现这种‘checker-board’压力场的。如果在某一步迭代计算后压力场出现了‘checker-board’,那压力梯度作为速度场源项的作用就消失了,这回使得速度场不能向一个正确的方向迭代,最终导致迭代计算收敛到一个错误的结果。

参考资料

Versteeg H K , Malalasekera W . An introduction to computational fluid dynamics : the finite volume method = 计算流体动力学导论[M]. 世界图书出版公司, 2010.

有限体积法(11)——交错网格相关推荐

  1. 有限体积法(12)——SIMPLE算法

    承接上篇<交错网格>,本文介绍流动方程在交错网格上的离散以及SIMPLE算法. 方程离散 二维稳态的动量方程和连续性方程如下: ∂∂x(ρuu)+∂∂y(ρvu)=∂∂x(μ∂u∂x)+∂ ...

  2. 有限体积法(2)——二维、三维扩散方程的离散推导

    稳态扩散方程: ∇⋅(Γ∇ϕ)+Sϕ=0(1)\nabla \cdot ( \Gamma \nabla \phi) + S_\phi =0 \tag{1} ∇⋅(Γ∇ϕ)+Sϕ​=0(1) 在有限控制 ...

  3. 有限体积法(5)——对流-扩散方程的离散

    方程离散 关于变量ϕ\phiϕ的输运方程, ∂(ρϕ)∂t+∇⋅(ρϕu)=∇⋅(Γ∇ϕ)+Sϕ(1)\frac{\partial (\rho \phi)}{\partial t}+ \nabla \ ...

  4. 有限体积法(9)——高阶差分格式:QUICK格式

    迎风格式和混合格式只有一阶计算精度,虽然迎风格式使用起来非常稳定并且满足输运性要求,但一阶精度容易导致数值扩散的误差,可以通过使用高阶离散格式来降低这些误差.高阶格式一般需要使用更多的节点值,通过考虑 ...

  5. 有限差分法和有限体积法的区别

    有限差分法(Finite Difference Method, FDM)和有限体积法(Finite Volume Method, FVM)都是用数值解逼近微分方程的真实解的计算方法,其区别主要在于逼近 ...

  6. 有限体积法(7)——迎风格式

    方程离散 中心差分格式主要的一个不足之处就是它不能辨识流动的方向.在中心差分格式中,左边界的输运量ϕ\phiϕ的值总是由ϕP\phi_PϕP​和ϕW\phi_WϕW​共同决定.然而,强对流(从左向右流 ...

  7. 有限体积法求解二维方腔流(一)——动量方程和连续性方程的离散

    1. 有限体积法求解二维方腔流–理论手册 1.1. 不可压缩流体控制方程 连续性方程 ∇⋅U=0(1)\nabla \cdot U=0 \tag{1} ∇⋅U=0(1) 动量方程 ∂U∂t+∇⋅(UU ...

  8. 二维有限体积 matlab,二维有限体积法计算热传导及源码.pdf

    二维有限体积法计算热传导及源码 //#include "stdafx.h" #include #include #include #include #include using n ...

  9. 二阶常微分方程的数值解法(中心差分法和有限体积法)

    二阶常微分方程的数值解法(中心差分法和有限体积法) 这里我们介绍中心差分法和有限体积法求解方程. 题目: 用差分法的中心差分格式和有限体积法求解两点边值问题 u′′−α(2x−1)u′−2αu=0,0 ...

  10. 计算流体力学 有限体积法

    有限体积法是计算流体力学中的一种数值模拟方法,它通过对流体的体积进行有限的划分,在每一个体素中分别求解流体的物理量,并通过体素间的相互作用得到整个流体的特性.有限体积法能够模拟复杂的流动状态,并且可以 ...

最新文章

  1. sql序列(2) sql语句功能表
  2. java面试题2016_2016最新java面试题 详细版
  3. WPF指南之一(WPF的结构)
  4. Red and Black---DFS深度优先算法
  5. 【CyberSecurityLearning 71】DC系列之DC-2渗透测试(WordPress)
  6. 使用c#接入华为云-内容审核
  7. Java 9中的HTTP / 2支持简介
  8. 如何设置mysql表中文乱码_php mysql表中文乱码问题如何解决
  9. 【Java】基本语法训练题
  10. android实践练习_android 练习之路 (四)
  11. mysql 表结构反转_一道经典的MySQL面试题,答案出现三次反转
  12. 概率图模型笔记(三)条件随机场(CRF)基础
  13. Git撤销修改、回退版本相关命令
  14. 07. Declare destructors virtual in polymorphic base classes
  15. 计算机维修与维护怎么学,做电脑维修需要学习哪些知识呢?
  16. 软件架构设计原则--开闭原则
  17. ToolsOh第7批收录
  18. 自己用过最好用的pdf转word软件
  19. 三菱触摸屏通讯错误_三菱触摸屏(人机界面)常见问题解析
  20. 【电脑无法打开移动热点】——终极解决方法

热门文章

  1. 牛客小白月赛21 G.Game
  2. 雅虎2011热门词汇搜索排行榜
  3. python 操作excel
  4. 3 链表(LinkedList)
  5. 一个目标100亿的互联网金融创业项目完整思路(毫无保留,赤裸裸全部是干货分享)
  6. 2021-11-26 ubuntu触摸板和小键盘设置
  7. 软件工程---基础知识
  8. 影视作品烂到至高无上的境界不是槽点满满
  9. 墨言教育分享:海报字效怎么做,PS+AI十分钟就能搞定
  10. 武汉卫星地图商用级别19级 来自百度卫星地图