首页/文章/ 详情

flameletFoam详解及SandiaD湍流射流火焰模拟

10月前浏览2029
层流稳态火焰面模型(Steady laminar flamelet model,简称火焰面模型,SLF)[1, 2]是湍流非预混火焰数值模拟中常用简化计算方法。该方法相对直接求解详细化学反应方法的计算量大大降低,且在其适用范围内可实现较高的模拟精度。鉴于OpenFOAM官方版本中未包含火焰面模型的相关模块,因此为了实现OpenFOAM平台下基于火焰面模型的湍流燃烧数值模拟,需要安装第三方开发的火焰面模型求解模块。

火焰面模型

目前现有的第三方火焰面模型包括Müller等开发的flameletFoam[3],以及Cuoci等开发的flameletSMOKE[4]。本文主要对flameletFoam的安装使用进行详细说明,并介绍基于flameletFoam的SandiaD湍流射流火焰的数值模拟。

1

flameletFoam简介及安装说明

flameletFoam是由慕尼黑联邦国防大学的Hagen Müller等[3]开发的OpenFOAM第三方软件包,适用于OpenFOAM-2.3.x,2.3.0和2.1.x环境,其安装文件可在github网站上下载:

https://github.com/flameletFoam/flameletFoam-2.3.x

flameletFoam求解模块由四个部分组成

1

Cantera-CounterflowFlame,层流火焰面建表程序

2

canteraToFoam,层流火焰面数据的湍流积分程序 

3

flameletFoam,火焰面模型求解器 

4

flameletFoamPost,后处理程序,可依据混合分数平均值、方差和标量耗散率,查表生成各组分质量分数的场文件

OpenFOAMWiki上的flameletFoam主页就以上模块的安装及使用进行了说明:

https://openfoamwiki.net/index.php/Extend-bazaar/solvers/combustion/flameletFoam

鉴于flameletFoam软件包的安装过程略为复杂,且不同版本的linux系统编译安装步骤存在差异,下面以基于OpenFOAM-2.3.x的flameletFoam安装为例,分别就不同组件安装需注意的事项进行了详细说明。

01

OpenFOAM-2.3.x的安装

         

首先通过git下载OpenFOAM2.3.x的安装包

git clone https://github.com/OpenFOAM/OpenFOAM-2.3.x.git

git clone https://github.com/OpenFOAM/ThirdParty-2.3.x.git

部分常用linux系统下的安装方法可参看以下链接中关于安装OpenFOAM-2.3.1的说明:

https://openfoamwiki.net/index.php/Installation

至于其他发行版本的GNU/linux系统,可参照说明中与其编译环境相似的linux系统的安装方法。编译安装过程中,需要注意以下几点:

  • 系统的默认gcc版本高于5.4(如最新的Manjaro Linux等)会导致OpenFOAM-2.3.x安装过程中wmake编译失败。针对该问题,可自行安装gcc-5,并修改$WM_PROJECT_DIR/wmake/rules/linux64Gcc文件夹下的c和c++文件,替换文件内的'gcc'、'g++'为'gcc-5'和’g++-5',即可成功编译。

  • 较新的GNU/Linux发行版本中,为保证OpenFOAM-2.3.x成功编译,通常需要在wmake编译前,于OpenFOAM-2.3.x目录下运行以下命令修改源文件中flex版本的检测方式:

find src applications -name "*.L" -type f | xargs sed -i -e's=\(YY\_FLEX\_SUBMINOR\_VERSION\)=YY_FLEX_MINOR_VERSION < 6 \&\&\1='

  • ThirdParty中的paraview编译耗时较长,且容易出错。可自行下载安装最新版本的paraview安装,并在.bashrc环境变量文件里添加以下行:

alias paraFoam="paraFoam -builtin"

即可利用paraFoam命令实现算例的后处理功能。

02

Cantera-2.0.0及

Cantera-CounterflowFlame的安装

         

Cantera是目前最常用的开源化学反应动力学计算程序[5],flameletFoam使用的层流火焰面建表程序Cantera-CounterflowFlame就是基于Cantera-2.0.0编写的。

安装Cantera-2.0.0及Cantera-CounterflowFlame之前,需要保证已安装以下依赖软件包:scons g++ sconslibboost-all-dev libsundials-serial-dev subversion libblas-dev liblapack-devlibf2c2-dev。以上软件包的名称对应ubuntu16.04软件源中的命名,其他linux版本中的命名可能不同。同时需要注意的是,如果Linux系统软件源中包含的sundials版本较新,会导致编译出错,需在sundials官网上下载老版本(如2.3)自行编译安装。

安装好软件包后,依照flameletFoam主页安装说明的步骤编译安装Cantera-2.0.0及Cantera-CounterflowFlame即可。编译Cantera-CounterflowFlame成功后得到可执行文件flamelet。

03

flameletFoam的安装

         

flameletFoam求解器安装编译过程中需要注意的问题与OpenFOAM-2.3.x编译过程基本相同,注意编译环境下GCC的版本以及修改源文件中flex版本的检测方式即可。

2    
flameletFoam原理及使用说明    

火焰面模型适用的前提为燃烧的化学反应速率远快于湍流时间尺度,但未达到无限快,湍流火焰可视为一系列层流小火焰的集 合。火焰面模型的应用可分为以下三部分:

01

层流火焰面建表

         

在开展湍流燃烧模拟前,通过求解基于混合分数Z的火焰面方程,计算一系列不同χst(化学当量比处的标量耗散率)下的层流对撞扩散火焰(图1),得到表征层流小火焰结构的层流火焰面解Y(Z, χst)(Z, χst)其中Y代表各组分的质量分数,为温度。


 

图1层流对撞扩散火焰示意图

该步骤可通过在文件夹Cantera-CounterflowFlame内运行可执行文件flamelet实现,

./flamelet

对撞火焰的边界条件,包括初始温度、压力、组分质量分数等,可在input.txt文件内设置。通过改变气体流量控制χst 值,得到一系列层流火焰面表(图2)。

 

图2 层流火焰面表

将生成的层流火焰面表移动到tables文件夹中,并拷贝至当前算例文件夹下。

02

层流火焰面的湍流积分

         

湍流场中某瞬时的物理量为随机的脉动值,其时间平均值可通过假定概率密度函数(PDF)并按以下公式进行湍流积分获得:

假定P(Z, χst) = P(Z)P(χst), 其中P(Z)服从β函数分布,P(χst)服从 Dirac-delta函数分布。积分后可得到湍流火焰面表:

实际操作时,需要将flameletFoam自带tutorials算例中constant文件夹下的tableProperties文件拷贝至本算例。修改tableProperties文件,chi_param对应层流火焰面表中的χst值,Z_param为归一化后的混合分数方差值,其取值在(0-1)范围内,Z_param为查表时使用的混合分数插值点。设置完成后,在算例文件夹内运行以下命令:

canteraToFoam

即可得到对应每个组分质量分数以及温度值的湍流火焰面表。

   

图3 湍流积分后的火焰面表

03

flameletFoam求解

         

拷贝tutorials算例constant文件夹下的combustionProperties文件至constant文件夹内,设置好算例后,运行求解器即可开始基于火焰面模型的湍流燃烧计算:

flameletFoam

为节约硬盘空间,计算结果中只保存了Z、Zeta和chi这些查表变量的值。在算例文件夹下运行以下命令即可生成需要查看的组分质量分数场。

flameletFoamPost -latestTime -fields '(CH4 O2 CO2 OH)'


 
3      
SandiaD湍流射流火焰模拟      
SandiaD火焰为美国Sandia国家实验室进行一系列火焰实验中的一组,其特征为稳态射流甲烷/空气扩散火焰,包含轻微局部熄火特征,常用作标定火焰验证扩散火焰模型的精度。  
 
   

图 4 Sydney Burner Geometry

 

图5 SandiaD火焰结构示意

SandiaD火焰由中心的燃料射流、外环的值班射流及边缘的空气伴流构成。中心射流为25%甲烷和75%空气的富燃预混气体,值班射流为包含乙炔、氢气、空气等组分的高温贫燃(当量比0.77)预混气体,可起到驻定火焰的作用。火焰的具体特征参数可查询Sandia官方网站:

https://www.sandia.gov/TNF/DataArch/FlameD.html

高版本的OpenFOAM5/6的tutorials中包含了SandiaD火焰的RANS模拟算例,可直接拷贝其算例文件,并依照低版本的OpenFOAM-2.3.x文件格式对部分文件进行修改。依照第二部分的说明对SandiaD扩散火焰进行火焰面建表,经积分生成湍流火焰面数据表,拷贝flameletFoam的tutorials算例constant文件夹下的combustionProperties文件至本算例constant文件夹内。设置完毕后即可运行flameletFoam命令开始火焰面求解。

计算解达到稳态后,采用ParaView生成得到的Favre平均温度分布云图,并基于Gnuplot绘制中轴线上的平均温度及组分质量分数分布对比曲线。温度分布云图如图6中的左图所示,右图展示了分别采用火焰面模型(SLF)和计算详细反应机理的涡旋耗散模型(EDC)得到的火焰在中轴线上的平均温度分布与实验测量值(EXP)之间的对比。可以看出,SLF可得到与求解详细反应机理的EDC模型相近的温度分布,并与实验测量值之间保持较小的误差。由图7可见,中轴线上CO2和H2O的Favre平均组分质量分数分布趋势与温度分布基本一致。由此可见,采用flameletFoam对SandiaD湍流火焰进行RANS模拟,在维持低计算量的同时,可以实现接近直接求解详细反应机理方法的模拟精度。

     
     
图 6 Favre平均温度场分布云图及中轴线温度分布对比: SLF, 火焰面解;EDC,求解详细化学反应的EDC模型解;EXP, 实验值。
     
     

图 7 中轴线上CO2和H2O的Favre平均组分质量分数分布对比

【参考文献】

[1] Peters N. Laminar diffusionflamelet models in non-premixed turbulent combustion[J]. Progress in energy andcombustion science, 1984, 10(3): 319-339.

[2] Peters N. Turbulentcombustion[M]. Cambridge university press, 2000.

[3] Müller H, Ferraro F, Pfitzner M. Implementation of a Steady LaminarFlamelet Model for non-premixed combustion in LES and RANS simulations[C]. 8thInternational OpenFOAM Workshop. 2013: 1-12.

[4] Cuoci A, Frassoldati A,Faravelli T, et al. OpenSMOKE++: An object-oriented framework for the numericalmodeling of reactive systems with detailed kinetic mechanisms[J]. ComputerPhysics Communications, 2015, 192: 237-264.

[5] David G. Goodwin, Raymond L.Speth, Harry K. Moffat, and Bryan W. Weber. Cantera: An object-orientedsoftware toolkit for chemical kinetics, thermodynamics, and transportprocesses. https://www.cantera.org, 2018. Version 2.4.0.

来源:多相流在线
OpenFOAM碰撞多相流燃烧化学湍流核能电力材料ParaView
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-06-22
最近编辑:10月前
积鼎科技
联系我们13162025768
获赞 97粉丝 81文章 244课程 0
点赞
收藏
未登录
还没有评论

课程
培训
服务
行家

VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈