OpenFOAM——孔板流量计
本算例来自《ANSYS FLUENT技术基础与工程应用:流动传热与环境污染控制领域》

一个入口,入口速度为0.0176839m/s,一个出口边界,其余为壁面边界
流体的物性参数:
密度:1000kg/m3
动力黏度:0.001kg/(m·s)
运动黏度:0.000001m2/s
本算例采用kOmegaSST湍流模型进行计算,请注意第一层网格的高度。
首先进行建模操作,任何建模软件均可,本算例采用ICEM直接建模,生成网格,缩放网格,然后利用OpenFOAM下转化网格,划分完成的网格如下:


接下来转入OpenFOAM的操作:
首先新建一个文件夹,名字任取,用来作为算例文件夹,本算例中我将该文件夹命名为:flowmeter_3D

然后进入OpenFOAM的安装目录,将安装目录下的motorBike算例(我的目录为/opt/openfoam5/tutorials/incompressible/simpleFoam/motorBike)下的0文件夹、constant文件夹和system文件夹拷贝到flowmeter_3D文件夹下,然后将0.org文件夹重命名为0,删除该文件夹下的include文件夹

删除constant文件夹下的triSurface文件夹

在system目录下删除下面截图中的文件

然后我们将刚才我们生成的.msh网格拷贝到flowmeter_3D文件夹下。在算例文件夹下打开终端,由于是三维模型,我们输入fluent3DMeshToFoam命令(本算例也可以使用fluentMeshToFoam来实现网格转换):


我们打开constant文件夹下的transportproperties文件,内容修改如下:

接下来,修改turbulenceProperties文件的内容如下:

转入0文件夹
p文件当中的内容如下:

注意一下,此处的压力是运动压力,压力除以了密度
U文件当中的内容如下:

说明一下:
surfaceNormalFixedValue
基本格式为
边界名称
{
type surfaceNormalFixedValue;
refValue uniform 数值;
}
说明:
该边界类型指定垂直于边界流入流出计算域物理量的值,数值为整数时表示流出计算域,为负数时表示流入计算域
k文件当中的内容如下:

说明一下:
turbulentIntensityKineticEnergyInlet
基本格式:
边界名称
{
type turbulentIntensityKineticEnergyInlet;
intensity 数值;
value uniform 数值/$internalField;
}
说明:
可通过湍流强度来k的值,value关键字下可填写任意数值或$internalField(仅是将字符串拷贝到本地,等于内部场的值),仅起到占位的作用,并不对计算造成影响。很显然在壁面处,k应该为0。
omega文件当中的内容如下:

说明一下:
omegaWallFunction
基本格式:
边界名称
{
type omegaWallFunction;
value uniform 数值
}
说明:
该边界条件仅对壁面设置壁面函数,应用在kOmega或kOmegaSST湍流模型中,从而对方程进行求解。value关键字下可填写任意数值或$internalField(仅是将字符串拷贝到本地,等于内部场的值),仅起到占位的作用,并不对计算造成影响。
turbulentMixingLengthFrequencyInlet
基本格式:
边界名称
{
type turbulentMixingLengthFrequencyInlet;
mixingLength 数值;
value uniform 数值;
}
说明:
可通过混合长度来计算omega(ω)的值,value关键字下可填写任意数值或$internalField(仅是将字符串拷贝到本地,等于内部场的值),仅起到占位的作用,并不对计算造成影响。mixingLength为湍流尺度,其计算公式为:I=0.007L(其中I为mixingLength的值,L为特征尺寸)。
nut文件当中的内容如下:

接着我们设置system文件夹下的controlDict文件:

fvSchemes文件修改如下:

fvSolution文件修改如下:

为了加快计算速度,我们采用分块并行的计算方法,我们在system目录下新建decomposeParDict来分块,decomposeParDict中的内容为:

输入decomposePar进行分块


由于我安装了PyFoam来实时输出残差,所以在终端中输入pyFoamPlotRunner.py --clear --proc=16 simpleFoam开始计算

等到计算结束

中心切面云图

管道中流体的实际体积流量qv的计算式如下:


式中:
β——孔板流量计的直径比,本算例为0.5
△p’——为取样界面之间的压差,本算例取孔板上游100mm处和孔板下游50mm处界面的压差
ρ——流体密度
我们在ParaView当中分别取两个面的平均压力,操作如下:
首先paraFoam启动ParaView

然后我们首先截取孔板上游100mm的截面









然后我们重复上面的步骤去下游50mm截面处的平均压力


截面之间运动压力之差=0.00407066-(-0.00156585)
=0.00563651m2/s2
带入上面的计算公式可得流出系数:


ISO公式计算流出系数为C=0.6526
两者之间的误差为

OpenFOAM——孔板流量计的更多相关文章
- 【一起学OpenFOAM】03 OpenFOAM基本使用流程
OpenFOAM初学者常常对于软件的使用流程感到很迷惑,与其他的具有GUI的CFD软件不同,OpenFOAM的所有操作均为基于文本操作,譬如说里面各种计算模型.计算参数.流程控制参数等,均为通过修改对 ...
- 【一起学OpenFOAM】系列由来
1 为什么要学习OpenFOAM 掐指算起来,接触CFD也差不多有十个年头了,其间一直使用的商用CFD软件,有Fluent.CFX.StarCCM+等,这些商用软件各有其优缺点,都能较好的解决常规的工 ...
- 【一起学OpenFoam】02 软件准备
"工欲善其事必先利其器",在利用OpenFoam解决我们的工程问题之前,首先要做的事情是搭建一个OpenFoam运行环境.很遗憾的是,OpenFoam的原生开发系统是Linux,因 ...
- OpenSUSE下编译安装OpenFoam
在不是Ubuntu系统下安装OpenFoam,需要采用编译安装的方式.以下以OpenSuSE为例进行编译安装. 1 软件包准备 需要下载两个程序包: OpenFOAM-4.x-version-4.1. ...
- 【一起学OpenFoam】01 OpenFoam的优势
CFD技术发展到今天,已经超过了大半个世纪了,已经涌现出非常多的CFD软件可供人们使用.通用商业CFD软件譬如Fluent.CFX.Star CCM+等在工业上得到了广泛的应用,另外一些专用的软件(如 ...
- OpenFOAM&Gmsh&CFD圆柱绕流(两个圆柱)
问题: 圆柱绕流问题,模拟仿真有两个圆柱.一个源的流体变化情况. 解决步骤: 1.使用Gmsh画出网格,并保存cylindertwo.msh 2.以Cavity为基础创建新的Case:Cylinder ...
- OpenFOAM 学习路线 【转载】
"Two weeks of playing with a CFD code will save you one afternoon of reading" 什么是OpenFOAM( ...
- openfoam 的安装【转载】
原文地址: http://blog.sina.com.cn/s/blog_14bf001d10102wifw.html OpenFOAM安装 OpenFOAM基于Linux系统下运行,由于对Linux ...
- 【一起学OpenFOAM】04 OpenFOAM的学习资源
OpenFOAM的学习资料并不多,个人猜测也许是与软件的类型有关系. 对于商用软件来讲,由于要占领市场,软件开发商自然是巴不得会用软件的人越多越好,因为他们卖的是软件,会用的人越多,软件卖得越好.他们 ...
随机推荐
- 在HTML网页中嵌入脚本的方式
在HTML标记的事件属性中直接添加脚本 <!doctype html> <html> <head> <meta charset="utf-8&quo ...
- 详细的Hadoop的入门教程-伪分布模式Pseudo-Distributed Operation
一. 伪分布模式Pseudo-Distributed Operation 这里关于VM虚拟机的安装就不再介绍了,详细请看<VMware虚拟机的三种网络管理模式>一章介绍.这章只介绍hado ...
- Java之路---Day19(set接口)
set接口 java.util.Set 接口和 java.util.List 接口一样,同样继承自 Collection 接口,它与 Collection 接口中的方 法基本一致,但是set接口中元素 ...
- 使用Python搭建http服务器
David Wheeler有一句名言:“计算机科学中的任何问题,都可以通过加上另一层间接的中间层解决.”为了提高Python网络服务的可移植性,Python社区在PEP 333中提出了Web服务器网关 ...
- hello world之vivado程序解决方法
体验米尔zynq系列Z-turn Board单板时,我开始用vivado.在安装vivad工程中出了一些问题,经过不懈的重新安装,终于成功了. 下面分享我用vivado设计hello world程序: ...
- AttributeError: module 'tensorflow' has no attribute 'Session'
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_33440324/article/ ...
- Odoo销售模块
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10825988.html 一:销售模块 销售模块的用途: 1)管理销售团队.销售人员:维护销售产品: 2)管理 ...
- Jmeter跨线程组传递cookie,以禅道系统为例;BeanShell的存取数据的使用
先看下脚本结构: 思路:将登陆请求放在setUp Thread Group中:把登陆后的cookie通过正则提取出来,然后存为全局变量,传递到下一个线程组中: 第一步:添加setUp Thread G ...
- GitHub使用方法与三步教程
git下载地址:https://git-scm.com/downloads 下一步下一步就好了 在cmd输入 git --version 在桌面空白右键 Git Bash Here命令行 输入 git ...
- 最近走过的坑 :slf4j 多个实现 hibernate 类型转换异常 bean依赖问题
最近走过的坑 slf4j 多个实现 主要是maven依赖中存在多个slf4j的实现类,在引入的依赖中排除对应的依赖就可以 <dependency> <groupId>xxxxx ...