首页/文章/ 详情

简单案例体会SIMPLE算法

精品
作者优秀平台推荐
详细信息
文章亮点
作者优秀
优秀教师/意见领袖/博士学历/特邀专家
平台推荐
内容稀缺
2年前浏览3060

一个简单的案例描述SIMPLE算法的使用流程。

SIMPLE算法采用分离方式求解压力速度耦合方程。其基本步骤包括:

  1. 假设压力场    与速度场    
  2. 利用假设的压力场,求解动量方程计算得到速度场    
  3. 利用满足动量方程的速度场    更新质量流量,得到    
  4. 利用新的质量流量求解压力修正方程,得到压力修正量    
  5. 更新速度场与压力场,得到新的速度场    ,压力场    
  6. 检查收敛性,若不收敛则转到第(2)步继续计算,直至计算收敛

举个简单的例子来说明此过程。如下图所示的水管系统,动量方程可写成:

其中,D为系数,  ,   ,   ,   ,   ,  。利用SIMPLE算法计算网络中未知的流量与压力。

图中,需要确定的压力值包括  ,流量值包括  。需要注意的是,流量与压力之间存在关联。

1、假设初始值

可以假设初始压力值。理论上讲,初始值可以随意假设。不过不良的初始值会导致计算收敛缓慢,甚至发散的问题。采用一个简单的原则进行压力初始值假定:压力值沿流动方向不断降低。

这里假设压力初始值为:  

由于流量与压力之间显式相关,因此无需初始流量值。

2、基于初始压力值计算流量值

代入初始压力值,可以得到流量值:

这里得到的流量值不一定满足流量守恒。

3、判断守恒

通过计算所有内部节点的流量值来检查质量流量是否满足连续性,即有:

节点3(流出为正,流入为负):

节点6:

节点8:

因此质量不守恒。内部节点的流量应当为零。

因此需要进行修正。

4、推导压力修正方程

假设节点3、6、8的修正压力分别为  ,其他节点的压力值已知,无需进行修正,即修正压力为零。因此可以得到各修正流量:

根据质量守恒,对于3、6、8节点,有:

即有:

将式(7)代入式(9)可得:

代入系数值后可得到:

将(3)式的流量值代入式(11)得到方程组:

求解得到压力修正值:

得到压力修正值后,计算新的流量值:

更新3、6、8节点的压力值:

5、检测流量平衡

检查3、6、8节点的流量平衡。

因此质量平衡。

根据式(11)可得新的压力修正方程为:

求解可得到:

修正量为零,表示前面计算得到的是最终解。

6、最终结果

可得到压力值:

流量值为:

注意,流量正负表示方向。

 

注:本案例采集自《The Finite Volume Method in Computational Fluid Dynamics:An Advanced Introduction with OpenFOAM® and Matlab®》,为方便理解,对书中的叙述方式进行了调整。

SIMPLE算法理解起来比较困难,需要仔细体会。本案例仅用于帮助理解SIMPLE算法中的假设-修正过程,工程中的管路模型要比案例复杂得多,而且压力损失系数(案例中的参数D)并非常数,通常为流量的函数,求解起来要麻烦不少,不过总体思路差不太多。


(完毕)


来源:CFD之道
OpenFOAM理论
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-08-26
最近编辑:2年前
CFD之道
博士 | 教师 探讨CFD职场生活,闲谈CFD里外
获赞 2539粉丝 10994文章 712课程 27
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈