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
版权声明:本文标题:OpenFOAM根据自带求解器计算自己的算例-生成网格-边界条件总结 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1713227693a624885.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论