admin 管理员组

文章数量: 1087135


2024年4月16日发(作者:网站程序源代码)

采用OpenFOAM自带求解器计算算例

——网格生成&边界条件

自己的公众号:

一介UDFer

,不定期更新个人Fluent+UDF和

OpenFOAM学习经验,交流学习。

说明:此处的应用只限于使用OpenFOAM自带的求解器计算自己想计算的

case,对求解的离散格式,求解方法,湍流模型,燃烧模型等均未做修改。

1 OpenFOAM的case结构

OpenFOAM(OF)和fluent有很大的区别,OF完全是靠代码设置,fluent有

很好的用户界面,通过下拉菜单选择。OF自带了很多求解器,这些求解器适用

于固定的工况,比如说物理模型的几何结构及边界条件,方程的离散方式及求解

方式等。以XiFoam(OF中的预混燃烧求解器)为例,OpenFOAM计算的case

构架如下:

1.1 System文件夹:

controlDict文件:对时间步、输入输出时间、场数据读取和写入进行控制

fvSchemes文件:指定有限体积法的离散格式

fvSolution文件:指定方程组矩阵求解器、残差以及其他算法控制

1.2 constant文件夹:

存在网格文件(ployMesh文件夹下)

湍流模型选择字典文件、流动特性参数、流体热物理性参数,化学反应相关

参数,重力等

1.3 0文件夹:

存放初始条件字典文件(速度、压力、温度,其他与流动或者燃烧相关的参

数初始值)

2 生成网格

如果使用OF自带的求解器计算自己想要计算的case,第一步是生成相应的

网格文件。

采用代码画网格,费时间,并且对于几何结构比较复杂的几何结构也不适合,

所以可以采用专业的网格生成软件画网格,然后转化为OpenFOAM网格文件。

将自己画好的网格(此处指 *.mesh文件),采用命令fluentMeshToFoam转化成

OF网格。命令详细介绍参考//FluentMeshToFoam;

这里我常用的是fluentMeshToFoam +空格+网格文件名字+空格+-scale+空格

+0.001。如下:fluentMeshToFoam –scale 0.001;意思是将

这个网格文件转化成OF网格,并将网格尺寸改为mm(我画网格时

通常采用m为单位)。

3 设置边界条件

3.1检查边界类型

检查转化后的边界条件是否是自己所需要的边界条件(在case文件下下的

constant/ polymesh/ boundary文件)。

OpenFOAM中基本的边界类型如下:

这几类是定义在polymesh文件夹下boundary文件中的,比如我们定义的入

口和出口等,type类型为patch,这一部分通常是由fluentMeshToFoam自动生成

的,我们做计算之前需要做一下检查。声明:需要注意的是,这些种类只是声明

边界类型的,和边界条件还有很大的差异,边界条件是要定义具体的值(固定的

值、固定的梯度或者其他)。

常用的有:

Patch:出口和入口类型采用该类型。

Wall:各种壁面壁面。

Empty:用在2D计算,OpenFOAM没有2D和3D之分,计算2D是将第三

维度设成empty。

实际代码中如下:

代码中outlet,inlet,lowerWall是画网格是给边界起的名字,type 定义的是

边界的类型,type的下两行是该边界的区域。

3.2 修改0文件夹下的初始各个文件下的边界条件

说明:此处的边界条件和boundary文件下的边界不一样,boundary文件下

的边界类型只是定义了边界的类型,并没有对边界处的参数值进行定义,边界处

的参数值定义均在0文件夹下各个相应的文件中定义。

将0文件夹下的所有自带的初始条件文件中的边界类型调整成和boundary

中一样的类型,并且赋予其相应的边界值。

3 问题

这里边最大的问题是OpenFOAM的边界条件都是怎么定义的,相应的代码

是什么?需要赋予什么样的值?比如说,速度入口处的速度为5m/s,怎么按照

OF的准则用代码实现。

另外,定义边界处的温度,压力,速度标量比较容易实现。但是OF定义边

界条件时,需要将所有将0文件夹下的所有相应的参量在边界处的值都给出定义

方式。比如说在边界处还要定义层流火焰速度、进程变量、褶皱因子等这些参数,

还没找到相应的边界条件代码。

4 边界条件总结

再次声明:上边的boundary只是声明边界类型,在case文件下下的constant/

polymesh/ boundary文件中声明。此处是在0文件夹下相应参数字典文件中定

义边界条件(定义具体参数在边界处的值)。

这里我们总结一下OpenFOAM中的边界条件类型和每种类型所需要定义的

量。每一个边界类型对应的边界条件又分为两组:基本的和衍生的(basic and

derived),衍生的是由basic中的推导而来。

4.1 Basic组:

基本组的分类如下图

常用的fixedValue, fixedGradient, zaroGradient比较常用。比如说壁面处的温

度和速度入口的速度设成fixedValue,壁面处的速度设成zeroGradient。在

Variables那一列中,zeroGradient和caculated是空的,意思就是不需要给这种边

界设定值,其他的几种都需要给定相应的值,如下:

4.2 Derived组:

4.2.1 Derived boundary condition base on fixedvalue boundary condition

4.2.2 Derived boundary condition base on

fixedGradient/zeroGradient boundary condition

4.2.3 Derived boundary condition base on mixed boundary condition

4.2.4 Another derived boundary condition


本文标签: 文件 边界 网格 边界条件 类型