吾生有涯 学海无涯
析模有界 知识无界

OpenFOAM教程|02 流体混合

内容纲要

本案例演示利用icoFOAM计算elbow中流体混合问题。

0 目标

  • OpenFOAM案例基本设置

  • 设置p与U的初始值

  • 边界条件定义

1 前处理

1.1 设置系统环境

在执行下面操作之前,确保OpenFOAM及系统环境已经配置完毕。关于如何设置系统环境,可以参阅OpenFOAM官网(https://openfoam.org/)安装步骤。

注:作为一个打算耍开源的CFDer,如果连软件安装都搞不定的话,那还是老老实实耍商软吧。为了鼓励那些手残道友,我这里提供已经安装了OpenFOAM的linux mint19.3系统。下载地址链接:https://pan.baidu.com/s/1bvv9L1cerjPOa6q5oh_X5w 提取码:rprh ,下载完毕后利用virturalBox导入即可。

1.2 拷贝文件

在终端窗口中利用以下命令拷贝案例文件:

cd $FOAM_RUN
cp -r $FOAM_TUTORIALS/incompressible/icoFoam/elbow .

注:

1、$FOAM_RUN与$FOAM_TUTORIALS均为系统内置环境变量,代表了OpenFOAM安装路径下的某个目录;

2、cd命令为切换路径;

3、cp命令为拷贝文件,-r表示连文件夹一起拷贝。

4、注意最后一行命令中末尾的点,表示将文件夹中的内容拷贝到当前目录下

命令执行如下图所示。

可利用以下命令查看当前路径下文件。

cd elbow
ls

命令执行如下图所示。

建议:通过命令sudo apt-get install tree安装程序tree,然后输入命令tree查看路径组织结构

文件路径组织结构如下图所示。

文件夹中包含3个子文件夹:0、constant以及system。其中0文件夹存储物理量的初始值及边界值;constant文件夹存储物性参数以及网格参数等;system文件夹存储求解控制参数。

1.3 转换网格

本案例文件为GAMBIT生成的.msh文件,可以利用命令将其转换为OpenFOAM能够识别的文件。

注:用户也可以利用其它软件(如ICEM CFD、Fluent Meshing等)生成.msh格式网格文件,但在输出网格时确保网格文件格式为ascii。

在终端窗口中输入以下命令:

cd $FOAM_RUN/elbow
fluentMeshToFoam elbow.msh

注:该命令将elbow.msh转换为OpenFOAM格式。具有相同功能的命令为fluent3DMeshToFoam,此命令能保存内部边界。

命令fluentMeshToFoam能将fluent网格文件转化为OpenFOAM格式,该命令的使用方式如下图所示。

注:fluentMeshToFoam能够带参数-scale,从而在转换过程中缩放网格。如使用命令fluentMeshToFoam elbow.msh -scale 0.001为将网格沿各方向缩小1000倍。

转换完毕后,constant文件夹下多了个polyMesh文件夹,其中存储了网格信息。

打开boundary文件,如下图所示。网格中包含边界wall-4、velocity-inlet-5、velocity-inlet-6、pressure-outlet-7、wall-8、frontAndBackPlanes,这些边界名称在设置初始值与边界值时需要保持一致。

注:1、若使用的是OpenFOAM V1906版本,边界文件中inGroups关键字中没有List。2、本案例使用的msh文件为采用gambit生成,而gambit中并没有empty边界类型。这里在转换过程中,将2D网格转换成3D网格过程中,自动将法向方向转换为empty边界类型。

1.4 指定材料参数

材料介质属性在constant/transportProperties文件中指定。

终端输入命令打开transportProperties文件:

cd $FOAM_RUN/elbow/constant
gedit transportProperties

该文件内容:

此文件中,指定了流体介质粘度。

nu [0 2 -1 0 0 0 0] 0.01指定介质粘度为0.02 m2/s。

1.5 修改0文件夹

0文件夹中包含了P文件与U文件,其中分别存储了压力与速度的初始值与边界值。通常需要设置。

终端输入命令打开p文件:

cd $FOAM_RUN/elbow/0
gedit p

注:gedit是一款文本编辑器,这里可以用任一款文本编辑器替代,如使用nano、vim、emacs等。

  • p文件内容

关于p文件的内容:

  • FoamFile。为文件头,里面包含一些p文件相关信息,如版本、格式、类型、对象等。绝大多数情况下不用理会。

  • dimensions。为量纲信息,需要指定压力量纲。这里指定的压力量纲为m2/s2,是单位质量的压力(量纲为压力除以密度)。方括号中的量纲为[kg m s K mole A cd],分别对应质量、长度、时间、温度、物质的量、电流、光强。

  • internalField。为计算区域中的物理量指定初始场。其包含两种类型:uniform和non-uniform。采用uniform可以为计算域中所有网格单元指定一个值,而non-uniform则可以为每个网格单元指定值。

  • boundaryField。该字段中指定了各边界的初始压力值,要注意边界名称与前面网格文件boundary中的名称保持完全一致。

    • zeroGradient。指定该边界物理量梯度为零(Neumann边界类型)

    • fixedValue。显示指定边界上的物理量值。(Dirichlet边界类型)

    • empty。此类型出现在2D模拟中,指定为该类型的边界不参与计算。

  • 本案例指定边界pressure-outlet-7的压力值为0,其他边界采用的是zeroGradient

  • U文件内容

关于U文件:

1、dimension [0 1 -1 0 0 0 0]表示为速度量纲m/s

2、internalField uniform (0 0 0)表示内部初始速度场(0 0 0)

2、这里设置壁面边界(wall-4与wall-8)类型为noSlip,表示无滑移壁面

3、指定边界velocity-inlet-5的速度(1 0 0),表示其为x方向速度1 m/s

4、指定边界velocity-inlet-6速度为(0 3 0),表示为y方向速度3 m/s

1.6 修改system文件夹

system文件夹中包含4个文件:controlDict、fvSchemes、fvSolution及foamDataToFluentDict。其中foamDataToFluentDict是之前网格转换过程中自动生成的,可以不用理会。需要修改或设置的文件只有controlDict、fvSchemes、fvSolution。

关于文件:

  • controlDict。该文件指定求解计算中的控制参数,如计算时间、时间步长等数据。

  • fvSchemes。该文件指定各控制方程的离散格式。

  • fvSolution。该文件包含压力速度耦合算法、各偏微分方程的求解算法及残差。

  • 用文本查看器查看并修改controlDict文件

关于controlDict文件:

  • application:指定使用的求解器。本案例采用求解器icoFoam

  • startFrom:指定从哪个保存的时刻文件开始计算。本案例采用latestTime。若只有0文件夹,则从0时刻开始

  • startTime:指定初始计算时刻,本案例从0 s开始

  • stopAt:指定终止时刻,本案例指定为endTime

  • endTime:终止时间,本案例设置为75s

  • deltaT:指定时间步长,本案例为0.05s

  • writeInterval:指定文件写出间隔,这里间隔20步写入1次

其他控制文件内容再后续的教程中再讨论。

2 求解计算

终端中执行以下命令进入elbow目录下并启动icoFoam求解器。

cd $FOA_RUN/elbow
icoFoam

如下图所示。

此时计算机开始计算,默认情况下并无任何残差显示。若想要显示计算残差,可以利用foamMonitor输出计算残差,在这之前需要进行一些设置。

  • 拷贝系统中的Residuals文件夹到当前计算case的system文件夹下,可利用以下命令寻找residuals文件夹所在位置

find /opt/openfoam7 -name residuals

如下图所示会列出在cd 文件路径/opt/openfoam7下的包含residuals文件夹的所有列表,其中黄色框选路径即系统提供的用于生成残差曲线的residuals文件。

  • 将residuals文件拷贝到当前case路径下的system文件夹中

  • 编辑system/controlDict文件,在文件末尾添加如下信息

functions
{
  #includFunc residuals
}

修改后文件内容如图所示。

  • 重新运行案例

icoFoam &
foamMonitor -l postProcessing/residuals/0/residuals.dat
此时可显示计算残差,如下图所示。

3 计算结果

当计算完毕后,可以通过paraView查看计算结果。在终端输入命令:

cd $FOAM_RUN/elbow
paraFoam

软件自动启动ParaView并加载计算结果文件。

  • 速度分布

  • 压力分布


ANSYS 2020R1出来了。


本篇文章来源于微信公众号: CFD之道

赞(0) 打赏
版权声明:未经允许,请勿随意用于商业用途。
文章名称:《OpenFOAM教程|02 流体混合》
文章链接:https://www.topcfd.cn/12492/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

说两句 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册