SIMPLE算法求解多孔介质的一维流动控制方程

  • 问题介绍
  • 求解思想
    • 压力修正方法的基本思想
    • 两个关键问题
  • 求解步骤及说明
  • 疑惑: a e a_e ae​表示动量方程离散系数?怎么求解?
  • 本案例求解分析过程
  • 本案例计算Python代码

问题介绍

设流经某多孔介质的一维流动控制方程为:
C ∣ u ∣ u + d p / d x = 0 C|u|u+dp/dx=0 C∣u∣u+dp/dx=0 d ( u F ) / d x = 0 d(uF)/dx=0 d(uF)/dx=0
其中,系数 C C C与空间位置有关, F F F为流道的有效截面积。
对于图1所示的均匀网格,假定:
C B = 0.25 C_B=0.25 CB​=0.25 C C = 0.2 C_C=0.2 CC​=0.2 F B = 5 F_B=5 FB​=5 F C = 4 F_C=4 FC​=4 p 1 = 200 p_1=200 p1​=200 p 3 = 38 p_3=38 p3​=38 Δ x = 2 \Delta{x}=2 Δx=2
以上各单位都是协调的(也就是说不用管单位,直接带入数值计算就得了),试采用 S I M P L E SIMPLE SIMPLE算法确定 p 2 、 u B 、 u C p_2、u_B、u_C p2​、uB​、uC​的值?

之前对于 ∣ u ∣ u |u|u ∣u∣u的写法很不理解,20210803突然想到,这样的写法不就体现出方向性了吗?如果写成 u 2 u^2 u2就不能体现方向性了。所以这样的写法本人猜测其核心是为了体现方向性

求解思想

首先,从图1我们可以看出,本算例采用的是交错网格(staggered grid):速度 u u u和压力 p p p分别存储于两套不同的网格系统;速度 u u u存储于压力 p p p控制容积的东、西界面上。
其次,我们主要是体会 S I M P L E SIMPLE SIMPLE算法的精髓:压力修正+预估校正。
最后,在程序中体现迭代校正。自拟初始估计值。

压力修正方法的基本思想

1、假设一个压力场,记为 p ∗ p^{*} p∗;
2、利用 p ∗ p^{*} p∗,求解动量离散方程,得到相应的速度 u ∗ u^{*} u∗;
3、利用质量守恒方程来改进压力场,要求与改进后的压力场相对应的速度场能满足连续方程;
4、用 p ′ p^{'} p′表示压力修正值, u ′ u^{'} u′表示速度修正值,以 p ∗ + p ′ p^{*}+p^{'} p∗+p′及 u ∗ + u ′ u^{*}+u^{'} u∗+u′作为本层次的解,并据此开始下一层次的迭代计算。

两个关键问题

1、如何获得压力修正值 p ′ p^{'} p′,使( p ∗ + p ′ p^{*}+p^{'} p∗+p′)满足连续性方程?
2、获得 p ′ p^{'} p′后,如何确定 u ′ u^{'} u′?

求解步骤及说明

求解步骤与压力修正方法的基本思想不同,一个是先假定速度,一个是先假定压力,哪个是对的?
答:没有矛盾。先假定速度是为了求动量离散方程的系数及源项




疑惑: a e a_e ae​表示动量方程离散系数?怎么求解?

本案例求解分析过程






本案例计算Python代码

# 已知参数
CB = 0.25
CC = 0.2
FB = 5
FC = 4
p1 = 200
p3 = 38
dx = 2# B、C处的速度试算值和初始压力假定
uB_0 = 8
uC_0 = 10
p2_star = 100# 设置统计迭代次数变量
count = 1# 迭代开始
while 1:# 求速度预估值uB_star = 0.5 * uB_0 - (p2_star - p1) / (2 * CB * uB_0 * dx)uC_star = 0.5 * uC_0 - (p3 - p2_star) / (2 * CC * uC_0 * dx)# 求压力修正值p2_correction = 2 * dx * (uB_star * FB - uC_star * FC) / ((FB / (CB * uB_0)) + (FC / (CC * uC_0)))# 求速度修正值uB_correction = - p2_correction / (2 * CB * uB_0 * dx)uC_correction = p2_correction / (2 * CC * uC_0 * dx)# 迭代结果p2 = p2_star + p2_correctionuB = uB_star + uB_correctionuC = uC_star + uC_correction# 打印第count次的迭代结果(第count次的真值,可能不是最终真正的真值)print('第',count,'次迭代结果:')print('p2 = ',p2) print('uB = ',uB)print('uC = ',uC)print('\n')# 退出循环判断# if abs(p2_correction) < 0.000001 and abs(uB_correction) < 0.000001 and abs(uC_correction) <0.000001:#退出循环条件if abs(p2 - p2_star) < 0.000001 and abs(uB - uB_0) < 0.000001 and abs(uC - uC_0) <0.000001:# 条件判断中的p2_star、uB_0、uC_0是上一迭代层的真值(从下面else中赋值语句可以看出)# 条件判断中的p2、uB、uC是最新迭代层(本迭代层)的真值# 以上一迭代层的真值与本迭代层的真值的差值小于10的负6次方作为收敛条件(收敛后每一迭代层的真值理应相等)breakelse:p2_star = p2uB_0 = uBuC_0 = uCcount += 1print('只需迭代',count,'次使得残差值都小于10的负6次方')
print('最终求得的结果为:')
print('p2 = ',p2)
print('uB = ',uB)
print('uC = ',uC)

计算结果如下:

SIMPLE算法求解多孔介质的一维流动控制方程相关推荐

  1. Fluent 全流程求解多孔介质算例(1)

    今天第一次尝试了CFD模拟的全流程操作:从几何创建-前处理-求解-后处理的整个过程.感觉过程没有想象中的那么复杂,但是对一些细小的设置问题还是比较困扰的,希望在今后的学习中加以强化. 首先本算例是基于 ...

  2. 有限体积法(13)——SIMPLE算法的一维算例

    算例模型 本文将使用SIMPLE算法来计算一个简单算例,以展示SIMPLE算法的具体事实过程.计算模型是一个平面喷嘴结构,尺寸数据如下图,假设流动是稳态无粘不可压的,计算速度和压力分布. 参数: 流体 ...

  3. 为多孔介质的当量直径_气体在微多孔介质中流动和对流换热研究

    中国工程热物理学会 传热传质学 学术会议论文 编号: 103498 气体在微多孔介质中流动和对流换热研究 黄寓理 姜培学 胥蕊娜 (热科学与动力工程教育部重点实验室,清华大学热能工程系,北京 1000 ...

  4. 二十、多孔介质模型案例

    1  概念介绍 多孔介质就是固体物质内部和表面有许多孔隙,如海绵等,由固体物质组成的骨架和由骨架分隔成大量密集成群的微小空隙所构成的物质.多孔介质内的流体以渗流方式运动. Fluent自带多孔介质模型 ...

  5. Fluent多孔介质模拟固体区域(观点)

    简介 Fluent多孔介质仿真的具体步骤可以参考[简单学微课堂]Fluent多孔介质应用 需要注意多孔介质区与流体介质区都属于"流体"材料.二者的交界面一定要设成interior ...

  6. FLUENT多孔介质数值模拟设置【转载】

    转载自:http://zhengjun0228.blog.163.com/blog/static/71377014200971895419613/ 多孔介质条件 多孔介质模型可以应用于很多问题,如通过 ...

  7. 为多孔介质的当量直径_多孔介质流建模简介

    拥有一款先进的多孔介质建模工具,是许多行业的刚性需求.COMSOL Multiphysics® 软件 5.5 版本新增的附加产品--多孔介质流模块,可以满足众多行业的需求.使用该模块可以定量研究多孔介 ...

  8. autobank渗流分析计算教程_仿真百科 | 多孔介质渗流现象

    文章来源:安世亚太官方订阅号(搜索:Peraglobal) 渗流是指流体在多孔介质内的流动.渗流现象广泛存在于人造材料和自然界中.如地下水的开发.石油的开发.天然气收集.煤炭的开采等都需要对渗流进行分 ...

  9. Star CCM+多孔介质仿真 (一)——仿真流程

    目录 多孔介质简介 催化剂流动仿真 正交异性多孔区域的设置 多孔介质简介 多孔介质是渗入了由气体.液体或多相混合物填充的大量孔隙的固体材料. 这些孔隙本质上可能相对精细(如同多孔岩石中一样)或粗糙(蜂 ...

最新文章

  1. flink 自定义 窗口_Flink入门实战 (下)
  2. 【 English 】与个人品质有关的英语词汇
  3. 【Xamarin笔记】Events, Protocols and Delegates
  4. 设计模式复习-代理模式
  5. AB1601 IO口反应延时的问题
  6. 计算机研究生怎样提高英语水平,英语对计算机专业的重要性及如何提高英语水平...
  7. java ftp上传文件 linux_Java实现把文件上传至ftp服务器
  8. qsettings mysql_qt连接mysql
  9. CodePage简介(转)
  10. c语言写程序轮询是什么意思,单片机轮询按键程序
  11. RTT大牛告诉你,混合微内核是什么?
  12. 使用IDEA连接linux服务器
  13. steam计算机共享授权,steam共享游戏账号怎么授权
  14. 如何防止CSRF攻击?
  15. python 随机分组
  16. 关于一级域名和二级域名跨域的解决方案
  17. 网络模块打线步骤及技巧解读
  18. 保研之路——复旦计算机学院预推免
  19. 华为笔记本关闭触摸板方法
  20. 下载安装anaconda

热门文章

  1. almon多项式_基于Almon变换的多项式阶数选择
  2. objective c 函数声明
  3. MATLAB安装时为英文如何切换中文
  4. 前端上传文件,multipart-formdata,boundary的使用
  5. 计算机电源大小,电源功率到底选多大?老司机告诉你电源功率怎么选?
  6. 用英文给嵌入式计算机下定义,嵌入式课程设计报告--嵌入式系统项目设计.doc
  7. python求对数_python中取对数
  8. 弹性ip是可以加入共享带宽?
  9. Python-Django毕业设计航空订票系统(程序+Lw)
  10. element-ui upload上传技巧