本算例翻译整理自:http://the-foam-house5.webnode.es/products/chapter-1-plane-parallel-plates-case/

这个算例研究了一个距离h的两平行板之间的流动。并且使得它们的长度和深度与其高度相比是大的。简单的解析解允许用户检验从OpenFOAM获得的结果。因此这将是一个熟悉这款CFD软件的有趣例子。

假设

l  不可压缩流动

l  粘性流动

l  牛顿流体

l  二维流动(

l  流速与平板平行(如果无限假设成立,u≠0但是v,w = 0)

l  忽略重力效应

l  充分发展、稳定的流动(

l  具有相对运动的两平行平板之间的粘性不可压缩流动

连续性方程:

x轴方向的动量方程:

简化为:

这是库埃特流的通解。于是速度呈线性分布。

首先进行建模操作,任何建模软件均可,本算例采用ICEM直接建模,生成网格,然后利用OpenFOAM下转化网格,模型尺寸h给定为0.1m并且板长设定为2m,移动板有一个1m/s的水平速度:

建成的模型如下:

对建好的模型进行网格划分,划分完成的部分网格如下:

竖直方向50个节点,水平方向300个节点

将划分的网格导出为ASCII的.msh格式(注:二进制的.msh格式OpenFOAM是不支持网格转换的)

PS:想要在ansys Meshing当中导出ASCII的.msh文件,需要如下设置

网格划分完成以后,在模型长度方向的单元长度为:

在模型宽度方向的单元长度为:

那么最小的单元长度为0.002m

最大流动速度出现在顶部平板处,速度|U|=V=1m/s

因此最大的时间步长为

为了保证各处的库朗数都小于1,这里的时间步长我们取得略小于最大时间不长,我们取为0.0015s

接下来转入OpenFOAM的操作:

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

然后进入OpenFOAM的安装目录,将安装目录下的cavity算例(我的目录为/opt/openfoam5/tutorials/incompressible/icoFoam/cavity/cavity/)下的0文件夹、constant文件夹和system文件夹拷贝到plate文件夹下,然后删除system目录下的blockMeshDict文件,因为我们利用OpenFOAM的命令转化.msh文件为OpenFOAM能接受的网格文件。

然后将刚才导出的网格文件拷贝到plate文件夹下,在plate文件夹下打开终端,输入fluentMeshToFoam(三维网格推荐使用fluent3DMeshToFoam)命令:

转换完成后,constan文件夹下会多出一个polyMesh文件夹

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

说明:

文件的第一行表示必须指定的仅有属性(nu代表描述运动粘度的 ),紧接着出现的是属性的单位,最后必须指定属性的值。这个算例的雷诺数为10,雷诺数定义为:

特征长度为d=h=0.1m,特征速度为|U|=1m/s,为了设置雷诺数等于10, 必须指定为0.01。注意这是一个相对高的运动粘度。(5℃水的运动粘度为1.5×10-6m2/s)。为了避免初始不稳定,雷诺数设置得非常低,粘性力远大于惯性力。

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

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

接下来修改P文件和U文件

P文件当中的内容如下:

U文件当中的内容如下:

说明一下:

dimensions

它指定了场的量纲。在括号里的每个位置都描述了一个基本的国际单位(SI)或美国惯常的系统(USCS):质量(mass),长度(length),时间(time),温度(temperature),摩尔质量(quantity),电流(current),发光强度(luminous intensity)

每个位置都包含相应单位的正负指数。

比如速度有单位m/s=m1s-1,并且长度和时间分别占据第二和第三的位置,那么速度文件的第一行必须为:

dimensions [0 1 -1 0 0 0 0]

注意:在p文件当中,单位是[0 2 -2 0 0 0 0],描述㎡s-2。然而,众所周知,在国际单位制中压力是Pa=kg1m-1s-2。这是因为在OpenFOAM中是以运动压力 来运行的。因此,必须在预处理中引入的所有压力值或后处理中获得的所有压力值考虑到这一事实。

internalField

internalField包含了描述模拟初试时间流场内部的值。它开始可以设置为一个随机初始值,该值会随着未来时间步根据边界条件而变化发展。

比如:因为算例处理的是不可压流动,压力场的绝对值是不相关的,因此为了方便设置为uniform 0。

fixedValue

边界名称

{

type                    fixedValue;

value                   uniform 向量;

}

说明:

该边界无需多说,在边界上的值为固定值,不可变动,只需要写入类似(0,0,0)这样的向量即可。对于不可压缩求解器来说,该种边界是稳定边界。

zeroGradient

边界名称

{

type                    zeroGradient;

}

说明:

表示在边界上物理量的梯度为0。在标量的情况下,边界值等于其邻近的网格的值,此种情况下与Slip边界相同。在矢量的情况下,边界上的三个分量都等于其邻近的网格的值,此种情况下与Slip边界不同。详细见:http://www.cfd-china.com/topic/121/自由滑移slip和zerogradient的区别/3

注意:当引入诸如速度的矢量场的值时,矢量是相对于全局坐标系,而不是块的局部坐标系。

noSlip

边界名称

{

type                    noSlip;

}

说明:

该边界等同于

边界名称

{

type                    fixedValue;

value                   uniform (0 0 0);

}

empty

基本格式:

边界名称

{

type                     empty;

}

说明:

该边界主要二维模拟。

接下来我们修改system文件夹下的controldict文件

接着修改system文件夹下的fvSchemes文件

最后我们修改system文件夹下的fvSolution文件

回到plate文件夹下,打开终端,输入icoFoam开始计算

等到计算结束

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

沿竖直方向的速度分布

OpenFOAM的计算值与解析解完美匹配。这个显示了模拟的选择的假设合理,设置完全正确。

OpenFOAM——平行平板间具有相对运动(库埃特流)的更多相关文章

  1. OpenFOAM——具有压差且平行平板间具有相对运动流动

    本算例翻译整理自:http://the-foam-house5.webnode.es/products/chapter-1-plane-parallel-plates-case/ 这个算例中两平板间具 ...

  2. OpenFOAM——具有压差的平行平板间流动(泊肃叶流动)

    本算例翻译整理自:http://the-foam-house5.webnode.es/products/chapter-1-plane-parallel-plates-case/ 这个算例中两平板间没 ...

  3. 下板不动, 上板匀速平板间流动(Crank-Nicolson格式)【转载】

    摘自<FLUENT流体工程仿真计算实例与分析>,程序略有修改 两个间距为1cm水平平板,如下图所示: 上板匀速平板间流动(Crank-Nicolson格式)[转载]"> 充 ...

  4. 下板不动, 上板匀速平板间流动(c++)【转载】

    摘自<FLUENT流体工程仿真计算实例与分析>,程序略有修改 两个间距为1cm水平平板,如下图所示: 上板匀速平板间流动(c++)[转载]" title="下板不动,  ...

  5. angularJS平行控制器间共享数据

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  6. OpenFOAM——运动和静止的同心圆柱之间的流动(库埃特流)

    本算例来自<ANSYS Fluid Dynamics Verification Manual>中的VMFL001: Flow Between Rotating and Stationary ...

  7. Vue(2)- v-model、局部组件和全局组件、父子组件传值、平行组件传值

    一.表单输入绑定(v-model 指令) 可以用 v-model 指令在表单 <input>.<textarea> 及 <select> 元素上创建双向数据绑定. ...

  8. 洛谷【P2003】平板

    我对状态空间的理解:https://www.cnblogs.com/AKMer/p/9622590.html 题目传送门:https://www.luogu.org/problemnew/show/P ...

  9. Vue 2 --v-model、局部组件和全局组件、父子组件传值、平行组件传值

    一.表单输入绑定(v-model 指令) 可以用 v-model 指令在表单 <input>.<textarea> 及 <select> 元素上创建双向数据绑定. ...

随机推荐

  1. Linux 软链接和硬链接简介

    在Linux系统中,将文件分为两个部分:用户数据和元数据. 元数据(inode) 元数据即文件的索引节点(inode),用来记录文件的权限(r.w.x).文件的所有者和属组.文件的大小.文件的状态改变 ...

  2. vue页面跳转拦截器

    登录拦截逻辑 第一步:路由拦截 首先在定义路由的时候就需要多添加一个自定义字段requireAuth,用于判断该路由的访问是否需要登录.如果用户已经登录,则顺利进入路由, 否则就进入登录页面.在路由管 ...

  3. WebApi中将静态页面作为首页

    WebApi中将静态页面作为首页 使用场景 在我的项目中使用Asp.Net WebApi作为后端数据服务,使用Vue作为前端Web,在服务器IIS上部署时需要占用两个端口,一个是80端口,用户在浏览器 ...

  4. Ubuntu安装32位程序兼容包

    有的交叉编译工具链是32位的,经常会遇到安装完成之后提示好不到,这时候需要安装32位兼容程序,使用以下命令安装: sudo apt-get update sudo apt install gcc-mu ...

  5. k8s之pod与Pod控制器

    k8s中最为重要的基础资源,pod,pod controller,service pod controller类型有多种需要向控制器赋值之后使用: kubectl命令使用 kubectk get no ...

  6. CentOS环境安装python3,pip

    安装python3(编译安装) 1. 下载python安装包到指定目录 cd /usr/local/src 这里的目录如果不存在可以自己建,当然也可以自己放在自己想放的位置,只要等会儿安装的时候能找到 ...

  7. IT黑马-面向对象

    先说面向过程 面向过程主要考虑的是怎么做 把完成摸个需求的 所有步骤 从头到尾 逐步实现 根据开发需求,将某些功能独立的代码封装成一个又一个的函数 最后完成的代码就是顺序的调用不同的函数. 特点是: ...

  8. metasploit 一款开源的渗透测试框架

    渗透神器漏洞利用框架metasploit from: https://zhuanlan.zhihu.com/p/30743401 metasploit是一款开源的渗透测试框架软件也是一个逐步发展与成熟 ...

  9. poj3974 Palindrome(Manacher最长回文)

    之前用字符串hash+二分过了,今天刚看了manacher拿来试一试. 这manacher也快太多了%%% #include <iostream> #include <cstring ...

  10. Go - IDE的选择与GoLand的安装

    目录 常用编辑器的选择 IDE的选择 GoLand的下载与安装 下载 安装 常用编辑器的选择 编写go程序,可以选择的编辑软件有很多,其中包括: notepad++ sublime visual st ...