CFD:交错网格simple算法
Part1交错网格
交错网格现在基本主流CFD软件都不用了,但是理解它能更好的理解Rhie-chow插值。
网格一般分为:
-
同位网格:
所有的数据都存在网格的质心处(速度、压力等)。
-
交错网格
为了解决棋盘震荡下,存在压力梯度但不能驱动速度的问题提出交错网格的处理方法。
在原网格的基础上向右平移半个网格(一维):
此时速度变量存储在平移后的网格,而其它变量都存储在原始网格的质心。计算时有两套网格,移动后的网格质心为原始网格的边界面中心
二维下的交错网格,根据动量方程中速度U,V的分量方向将其偏移半个网格分别得出计算速度u的网格和计算速度v的网格(在simple算法中U,V单独列方程计算的所以需要分开建立网格):
<img src="https://raw.githubusercontent.com/UltramanNOAS/cfdnote/main/202306160215963.png" alt="image-20230615234024953" style="zoom:50%;" />
速度U网格:
速度V网格:
注:
交错网格的缺点
-
二维有三套网格:1、原始网格 2、计算速度U的网格 3、计算速度V的网格。
-
交错网格的特点,速度变量存在原始网格边界面上,其他变量存在原始网格的质心上。
-
对于计算速度U时,所列的U的动量方程在U网格上(移动后网格的质心在原网格的U方向的网格边界面上)
-
对于计算速度V时,所列的V的动量方程在V网格上(移动后网格的质心在原网格的V方向的网格边界面上)
-
对于压力p则存储在原始的网格质心
-
三维问题和上述同方法处理
注:
-
当网格存在歪斜时,对原始网格的平移后会与原始计算区域存在误差。 -
极坐标下的网格也可以使用交错网格 -
通常境况下的非结构网格是不能使用交错网格的
Part2交错网格下压力梯度的表示
由于交错网格下的动量方程是在偏移后的网格上进行离散,故在网格边界面上的压力值则可以直接取得无需进行插值(压力存在原始网格质心即偏移网格后的网格边界面):
注:
-
上图虚线为偏移后的网格,实线为原始网格。 -
这样的处理方法,使得压力的计算会受原始网格质点梯度差的影响(棋盘震荡下仅受到邻近网格影响) 。 -
这样处理可以解决棋盘震荡的影响
1交错网格下的simple算法
由于在NS方程中的P并不能直接求出,所以需要结合连续性方程对压力进行求解。
2simple算法的基本思想:
-
给一个初始的压力场 ,先根据动量方程计算处速度 , (在偏移后的网格上列动量方程,压力梯度使用上述方式表示)
-
此时 , 并不是精确解,因此需要进行修正:
-
-
-
和 都可以由动量方程推出(与压力的修正 有关)
-
求出后的速度场不一定满足连续性方程,故在原始网格上列出连续性方程(此时原始网格的边界上的速度已经计算出无需进行插值处理),由于 , 已知而 , 为 的函数(这里忽略了邻近网格的贡献量以为速度主要有压差产生),因此通过连续性方程可以求解出
-
计算出后 , 也可计算出来了,对计算变量进行修正:
-
-
-
-
返回到第一步进行循环
3simple算法
原始网格:
平移后的网格:
连续性方程离散(密度为常量)这个方程是在原始网格上列出来的:
动量方程离散(稳态)这个方程是在偏移后的网格上列出来的(质心为原始网格的边界面):
simple数学计算
-
给定一个初始的压力场
-
列出动量方程离散形式,求出速度 :
-
求出满足动量方程的速度场 ,但它不精确需要修正添加修正项 ,压力也同理:
-
-
-
修正值的计算: -
e面上的动量修正方程: -
e面上的动量修正方程: -
image-20230616013845794 -
image-20230616014006521 -
image-20230616013743323 -
image-20230616013506278 -
将其简写为: -
image-20230616013606291 -
image-20230616013618798 -
精确解的下动量方程: -
计算下的动量方程可以写为: -
修正项(用精确解的下动量方程减去计算下的动量方程):
-
将其带入连续性方程(在原始网格上列出):
将压力梯度修正项用上述压力梯度相同方式处理:
写出压力修正项的离散方程,求出 :
注:下划线部分在计算收敛时为0,对整体解没有影响,因此可以忽略故这部分等于0(另一个解释就是 为邻近网格对速度的贡献,它可以忽略,因为压力梯度才是驱动速度的根本原因)
是由于 速度场不完善造成的,当 为精确解时 ,因此它可以作为收敛的的判定条件
-
将求出的 带回动量方程修正方程求出速度修正项 ,然后对速度和压力进行修正:
-
-
-
用修正后的速度U,再求源项或其他速度耦合物理量 (它会影响流动如粘性阻力和惯性阻力),若不该物理量不影响流动则可以用最终收敛后的速度后再进行计算。
-
以修正后P为初始压力场,将修正后的的U与耦合项 及相关源项带入第一步的动量方程进行循环
文章来源:CFD小白入门分享