本算例来自《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. k8s--scope.yaml

  2. ES6 新增基本数据类型Symbol

    ES6 增加了一个新的基本数据类型 symbol. 不过,和其他基本数据类型相比,它有点与众不同,因为它没有字面量的表现形式,而且创建的方式也有点奇怪,只能通过调用全局函数Symbol()来完成. l ...

  3. Win 10 无法锁屏,快捷键win+L失效

    快捷键win+L 一直在使用,忽然之间不知道按错了什么 Win 10 无法锁屏,快捷键win+L失效,按win+L后出来的是输入法 应该是键盘的Windows键锁住了,按Fn+windows键解锁

  4. slf4j的正确使用

    头两天领导分配个任务是要把项目中所有try catch里的异常处理收集到elk中,由于之前的处理方式五花八门,就集中处理了下, 事后还被批评了. 不是所有的异常信息都需要被记录到log中 使用SLF4 ...

  5. Synchronized可重入锁分析

    可重入锁又称递归锁,是指在同一个线程在外层方法获取锁的时候,再进入该线程的内层方法会自动获取锁(前提是锁对象必须是同一对象或者class), 不会因为之前已经获取过还没实方而发生阻塞.即同一线程可执行 ...

  6. 【故障处理】分布式事务ORA-01591错误解决

    [故障处理]分布式事务ORA-01591错误解决 1  BLOG文档结构图       2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你 ...

  7. docker启动报错解决及分析(Cannot create container for service *******: cannot mount volume over existing file, file exists /var/lib/docker/overlay2/)

    现象: Cannot create container for service *******: cannot mount volume over existing file, file exists ...

  8. 0x01 Python logging模块

    目录 Python logging 模块 前言 logging模块提供的特性 logging模块的设计过程 logger的继承 logger在逻辑上的继承结构 logging.basicConfig( ...

  9. Centos7.3安装nexus-3.14.0-04

    nexus-3.14.0-04的安装       nexus-3.14.0-04-unix.tar.gz             1.下载nexus             2.上传到服务器/root ...

  10. 离线安装docker(RedHat7.4)

    离线安装docker(RedHat7.4) docker 1. 下载地址 2. 解压并注册为service 1. 下载地址 官网下载地址:下载 官网文档地址:文档 2. 解压并注册为service 下 ...