本算例来自《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——孔板流量计的更多相关文章

  1. 【一起学OpenFOAM】03 OpenFOAM基本使用流程

    OpenFOAM初学者常常对于软件的使用流程感到很迷惑,与其他的具有GUI的CFD软件不同,OpenFOAM的所有操作均为基于文本操作,譬如说里面各种计算模型.计算参数.流程控制参数等,均为通过修改对 ...

  2. 【一起学OpenFOAM】系列由来

    1 为什么要学习OpenFOAM 掐指算起来,接触CFD也差不多有十个年头了,其间一直使用的商用CFD软件,有Fluent.CFX.StarCCM+等,这些商用软件各有其优缺点,都能较好的解决常规的工 ...

  3. 【一起学OpenFoam】02 软件准备

    "工欲善其事必先利其器",在利用OpenFoam解决我们的工程问题之前,首先要做的事情是搭建一个OpenFoam运行环境.很遗憾的是,OpenFoam的原生开发系统是Linux,因 ...

  4. OpenSUSE下编译安装OpenFoam

    在不是Ubuntu系统下安装OpenFoam,需要采用编译安装的方式.以下以OpenSuSE为例进行编译安装. 1 软件包准备 需要下载两个程序包: OpenFOAM-4.x-version-4.1. ...

  5. 【一起学OpenFoam】01 OpenFoam的优势

    CFD技术发展到今天,已经超过了大半个世纪了,已经涌现出非常多的CFD软件可供人们使用.通用商业CFD软件譬如Fluent.CFX.Star CCM+等在工业上得到了广泛的应用,另外一些专用的软件(如 ...

  6. OpenFOAM&Gmsh&CFD圆柱绕流(两个圆柱)

    问题: 圆柱绕流问题,模拟仿真有两个圆柱.一个源的流体变化情况. 解决步骤: 1.使用Gmsh画出网格,并保存cylindertwo.msh 2.以Cavity为基础创建新的Case:Cylinder ...

  7. OpenFOAM 学习路线 【转载】

    "Two weeks of playing with a CFD code will save you one afternoon of reading" 什么是OpenFOAM( ...

  8. openfoam 的安装【转载】

    原文地址: http://blog.sina.com.cn/s/blog_14bf001d10102wifw.html OpenFOAM安装 OpenFOAM基于Linux系统下运行,由于对Linux ...

  9. 【一起学OpenFOAM】04 OpenFOAM的学习资源

    OpenFOAM的学习资料并不多,个人猜测也许是与软件的类型有关系. 对于商用软件来讲,由于要占领市场,软件开发商自然是巴不得会用软件的人越多越好,因为他们卖的是软件,会用的人越多,软件卖得越好.他们 ...

随机推荐

  1. AngularJS 菜鸟

    AngualrJS是 JavaScript框架. <script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/ang ...

  2. select用法 多并发处理

    select默认最大检查套接口数量是1024,有定义 #define __NFDBITS (8 * sizeof(unsigned long)) #define __FD_SETSIZE 1024 # ...

  3. Python如何去实际提高工作的效率?也许这个会有用!

    4月初,班主任的某次周会议上,华华关切的问了一下:最近班主任们有什么难题吗?就是花费了你们大部分时间的工作!我们Python天团可以帮你们解决问题. 班主任大主管星星说:有.目前有一个大难题.我们每天 ...

  4. 【转载】【凯子哥带你学Framework】Activity界面显示全解析(下)

    如何验证上一个问题 首先,说明一下运行条件 //主题 name="AppTheme" parent="@android:style/Theme.Holo.Light.No ...

  5. Git回滚代码

    回滚命令: 1.回退到上个版本 $ git reset --hard HEAD^ 2.回退到前2次提交之前,以此类推,回退到n次提交之前 $ git reset --hard HEAD~2 3.退到/ ...

  6. 第五次个人作业- Alpha项目测试

    这个作业属于哪个课程 课程链接 这个作业要求在哪里 作业要求链接 团队名称 西柚排课王 测试人姓名 刘洋 测试人学号 201731062314 一.测试项目 测试项目 团队名 第二次Alpha发布博客 ...

  7. 这是一份非常适合收藏的Android进阶/面试重难点整理

    写在前面 记得我大二时“不务正业”地自学Android并跟了老师做项目,到大三开始在目前的公司实习,至今毕业已有几年多,学习Android已经6.7年多了!但总感觉知识点很零散,并且不够深入,遇到瓶颈 ...

  8. 尾递归 递归函数中,递归调用是整个函数体中最后的语句,且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归,空间复杂度是O(1)

    什么是递归深度 递归深度就是递归函数在内存中,同时存在的最大次数. 例如下面这段求阶乘的代码: Java: int factorial(int n) { if (n == 1) { return 1; ...

  9. mmdetection安装教程

    如果官方教程不行再参考我的吧,我的环境如下: ubuntu cuda10 cudnn7.5 步骤: 1.使用conda创建一个虚拟环境 conda create -n mmdetection pyth ...

  10. adb命令篇

    前言    Android的adb提供了很多命令,功能很强大,可以为开发和调试带来很大的便利.当然本文并不是介绍各种命令的文章,而是用于记录在平时工作中需要经常使用的命令,方便平时工作时使用,所以以后 ...