本算例来自《ANSYS Fluid Dynamics Verification Manual》中的VMFL010: Laminar Flow in a 90° Tee-Junction.

本算例的入口速度分布满足下面的形式:

首先进行建模操作,任何建模软件均可,本算例采用ICEM直接建模,生成网格,然后利用OpenFOAM下转化网格,划分完成的网格如下:

    其实我们也可以在导出网格的时候对网格进行缩放,到了OpenFOAM当中直接转换网格即可
接下来转入OpenFOAM的操作:

首先新建一个文件夹,名字任取,用来作为算例文件夹,本算例中我将该文件夹命名为:90Tee

文件夹下的epsilon,f,k,nut,nuTilda,omega,v2这些文件,因为本算例不会用到这些文件。

然后我们将刚才我们生成的.msh网格拷贝到90Tee文件夹下。在算例文件夹下打开终端,输入fluentMeshToFoam命令:

这次我们由于要设置入口处是充分发展的速度,我们就只需要修改新算例下0文件夹的p和U文件,constant目录下的transportproperties文件、turbulenceProperties文件和system目录下的controlDict文件,其他如网格转换,设置入口的速度的操作我们通过Python脚本来实现修改。

我们打开constant文件夹下的transportproperties文件,此处我们将运动黏度设置为0.003333㎡/s

接着修改turbulenceProperties文件,此处我们将模拟类型设置为层流(laminar)

然后对初始边界条件进行设置,下面转入0文件夹下进行操作:

在0文件夹下我们可以看到U和P两个文件:

然后对初始边界条件进行设置,下面转入0文件夹下进行操作:

修改P文件和U文件

P文件当中的内容如下:

U文件当中的内容如下:

说明一下:

INLET

{

}

入口的边界设置为这样的形式,在后面运行Python脚本以后会被修改为正确的边界形式。

我们编写如下的Python脚本:

说明一下:

使用脚本并不是唯一写选择,上面脚本的操作也可以使用诸如Excel等工具实现。我们主要是通过网格的位置信息,然后计算得到该位置的速度分布,然后再把计算得到的速度分布写入边界当中。

首先我们运行postProcess -time 0 -func writeCellCentres命令,就可以在0文件夹下得到4个文件,分别是C,Cx,Cy,Cz。其中C文件包含了单元的x,y,z所有坐标,而Cx只对应x坐标,Cy对应y坐标,Cz对应z坐标。这里我们只需要Cx,我们打开Cx文件,可以找到如下图的字典:

我们可以将字典里面的x坐标信息提取出来,然后在脚本(当然也可以用Excel等其他工具)根据速度分布的公式,计算出各个单元的速度,然后我们再将计算的结果用nonuniform List形式写回到U文件中对应的边界。修改以后的U文件如下:

接着我们设置controlDict文件

fvSchemes文件修改如下:

fvSolution文件修改如下:

回到算例文件夹下,打开终端,由于我安装了PyFoam来实时输出残差,所以在终端中输入pyFoamPlotRunner.py --clear simpleFoam开始计算:

等到计算结束

将计算结果导入paraview里面进行处理

流线图

tecplot的处理结果

    我们需要得到出口的体积流量和入口的体积流量之比,这里我们有两种方法进行操作

第一种方法是直接在OpenFOAM当中利用OpenFOAM自带的后处理命令输出入口和出口的体积流量,格式如下:

postProcess -func "flowRatePatch(name=边界名称)"

我们输出收敛后(加上参数-latestTime)入口处的体积流量:

postProcess -latestTime -func "flowRatePatch(name=INLET)"

我们输出收敛后(加上参数-latestTime)顶部出口处的体积流量:

postProcess -latestTime -func "flowRatePatch(name= OUTLET_TWO)"

     在算例文件夹下会多出一个postProcessing文件夹

点击进去以后,里面会有两个我们刚才命令生成的两个边界的流量的文件夹

任选其中一个文件夹(我们以“flowRatePatch(name=INLET)”文件夹为例),打开到底,则存在surfaceFieldValue.dat文件

打开surfaceFieldValue.dat文件

说明一下:这里的正负号只代表方向,不代表大小,负号表示流入计算域。

第二种方法是将计算结果导入ParaView里面,通过对指定面的积分,计算通过该面的体积流量

如果没有出现体积流量的显示,请参考以下步骤

    通过对比以上两种方法得到的体积流量,结果基本一致

流量比为:

而实验值为:0.887

计算值与实验值的比为:

OpenFOAM——90度T型管的更多相关文章

  1. 关于android中调用系统拍照,返回图片是旋转90度

    转载博客:http://blog.csdn.net/walker02/article/details/8211628 项目开发中遇到的一个问题,对于三星手机在做手机照片选择时出现图片显示不正常,研究后 ...

  2. android 选择图片或拍照时旋转了90度问题

    由于前面的博文中忽略了点内容,所以在这里补上,下面内容就是解决拍照或者选择图片显示的时候图片旋转了90度或者其他度数问题,以便照片可以正面显示:具体如下: 首先直接看上面博文下的拍完照或者选完图后处理 ...

  3. 移动端上传照片 预览+Draw on Canvas's Demo(解决 iOS 等设备照片旋转 90 度的 bug)

    背景: 本人的一个移动端H5项目,需求如下: 需求一:手机相册选取或拍摄照片后在页面上预览 需求二:然后绘制在canvas画布上 这里,我们先看一个demo(http://jsfiddle.net/q ...

  4. 用VBox虚拟机安装Android 屏幕90度翻转竖屏设置

    在虚拟机中安装好Android之后,有一些Android应用(比如UC浏览器.UC桌面)不能安装.但更有一些程序是可以安装,却自动顺时间旋转了90度,操作和看起来非常不爽! 这个情况下,在Androi ...

  5. 【Python】将4*4数组旋转90度新数组

    需求:将一个4*4的数组90度旋转生成新的4*4数组 原来的4*4数组:[0, 1, 2, 3][0, 1, 2, 3][0, 1, 2, 3][0, 1, 2, 3]90度旋转后的4*4数组:[0, ...

  6. LeetCode——Rotate Image(二维数组顺时针旋转90度)

      问题: You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees (clockw ...

  7. 将n*n矩阵顺时针旋转90度

    /** * 将n*n矩阵顺时针旋转90度 * @param mat * @param n 矩阵的阶数 * @date 2016-10-7 * @author shaobn */ public stat ...

  8. 利用exif.js解决ios手机上传竖拍照片旋转90度问题

    html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针旋转90度,横拍照片无此问题:Android手机没这个问题. 因此解决这个问题的思路是:获取到照片拍摄的方向角,对非 ...

  9. android Camera拍照 及 MediaRecorder录像 预览图像差90度

    Camera拍照: 今天做照相机程序,结果写好了发现出问题了,预览的图像差90度.相关源代码如下: Camera.Parameters params = camera.getParameters(); ...

随机推荐

  1. Vue项目开发相关问题总结

    Vue项目开发相关问题总结 一.创建一个项目(两种方式) 1.通过CLI命令行创建,具体步骤如下: (1)Node 版本要求 Vue CLI 需要 Node.js 8.9 或更高版本 (推荐 8.11 ...

  2. Django:实现读写分离

    库的配置 1.读写分离 settings配置 #settings.py 配置库信息,生成2个库 DATABASES = { 'default': { 'ENGINE': 'django.db.back ...

  3. java开发手册-总结与补充

    1.分层领域模型规约 1.DO( Data Object):与数据库表结构一一对应,通过 DAO 层向上传输数据源对象. 2.DTO( Data Transfer Object):数据传输对象, Se ...

  4. php exec执行视频图片转换

    首先安装ffmpeg <?php set_time_limit(0) ; $cmd = "ffmpeg -i 'input/3.mp4' -r 1 -q:v 2 -f image2 i ...

  5. python模块之json pickle

    1.json模块 功能:将其他形式的数据类型转化为json字符串类型,将json字符串转化为其他对应的数据类型 方法:json.dumps()  作用:将所有单引号变成双引号:将所有数据类型变成字符串 ...

  6. 嵌入式开发之移植OpenCv可执行程序到arm平台

    0. 序言 PC操作系统:Ubuntu 16.04 OpenCv版本:4.0 交叉工具链:arm-linux-gnueabihf,gcc version 5.4.0 目标平台:arm 编译时间:201 ...

  7. Linux操作系统的计划任务

    Linux操作系统的计划任务 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.任务计划概述 Linux任务计划.周期性任务执行 未来的某时间点执行一次任务: at: 指定时间点, ...

  8. python笔记40-环境迁移freeze生成requirements.txt

    前言 我们用python在本地电脑上开发完成一个python自动化项目用例,或者开发完成一个django项目. 需要部署到另外一台电脑或者服务器上的时候,需要导入python相关的依赖包,可以用fre ...

  9. python笔记39-unittest框架如何将上个接口的返回结果给下个接口适用(面试必问)

    前言 面试必问:如何将上个接口的返回结果,作为下个接口的请求入参?使用unittest框架写用例时,如何将用例a的结果,给用例b使用. unittest框架的每个用例都是独立的,测试数据共享的话,需设 ...

  10. easyui_验证扩展

    本文为转载,并非原创 easyui validatebox 验证类型 分类: jquery-easyUI -- : 11000人阅读 评论() 收藏 举报 easyuiValidateBox requ ...