CHEMKIN入门指南.docx
《CHEMKIN入门指南.docx》由会员分享,可在线阅读,更多相关《CHEMKIN入门指南.docx(35页珍藏版)》请在冰豆网上搜索。
CHEMKIN入门指南
CHEMKIN4.0.1入门指南
——《燃烧学1》辅助教程
文中如有任何错误,敬请指出,以便不断改进;如有任何问题,欢迎提出,共同探讨
助教博士生:
卢智恒
联系方式:
热能系系馆办公室201
(O)62782108(H)62779574
luzhiheng@
2005.3
一、CHEMKIN的安装和简介
1-1安装CHEMKIN
Chemkin最早的版本始于1980,由美国Sandia实验室的KeeRJ等人编写,经过多年的不断发展日趋完善。
后来由ReactionDesign公司收购并继续开发,目前最新版为4.0.1。
由于学习和科研需要,我们花费12000$向ReactionDesign公司订购了一套最新版本的CHEMKIN4.0.1,其中包括可供20人同时在线计算的license,用于《燃烧学》课程的学习。
【安装】请登录ftp:
//combustion:
combustion@166.111.56.155下载相关文件,其中chemkin401_pc_setup.exe为CHEMKIN的安装程序,chemkin.lic为网络认证文件,详细的安装信息可以参看ftp上的“安装说明.txt”文件。
安装完后会自动在桌面及开始菜单建立快捷方式。
【注意】1、本套教学用的CHEMKIN软件采用网络认证的方式,请确保电脑已经联网(校内),否则无法计算。
2、建议采用1024×768的分辨率,否则某些界面将无法完全显示。
1-2CHEMKIN简介
CHEMKIN是一种非常强大的求解复杂化学反应问题的软件包,常用于对燃烧过程、催化过程、化学气相沉积、等离子体及其他化学反应的模拟。
CHEMKIN以气相动力学、表面动力学、传递过程这三个核心软件包为基础,提供了对21种常见化学反应模型及后处理程序。
三个核心程序模块为:
1)气相动力学(Gas-PhaseKinetics):
是所有程序计算的基础,包括气相成分组成、气相化学反应与相关的Arrhenius数据等信息。
2)表面动力学(SurfaceKinetics)。
很多反应过程包括多相反应,如催化反应、化学气相沉积、固体腐蚀等。
在这些反应里,SurfaceKinetics提供两相反应所需的各种信息,如表面结构、表面和体内的成分组成及热力学数据、表面化学反应等。
3)传递(Transport)。
提供气相多组分粘度、热传导系数、扩散系数和热扩散系数等。
其中SurfaceKinetics和Transport必须以Gas-PhaseKinetics为基础,因为它们中出现的成分都必须在Gas-PhaseKinetics中已定义。
Gas-PhaseKinetics、SurfaceKinetics和Transport提供了化学反应的基本信息,生成动态链接库供后续程序调用。
用户可以自己编写程序调用它们来实现指定的功能,但最方便的是使用CHEMKIN自带的反应模型,共分7类,包括21个反应模型和2个应用程序,将在下一节介绍。
二、CHEMKIN的简单使用入门
2-1CHEMKIN的用户界面
CHEMKIN的用户界面如图1所示。
除了传统的Windows菜单和按钮以外,CHEMKIN的工作界面分为任务栏、窗口栏、消息栏三部分。
图1CHEMKIN4.0.1的用户界面
其中任务栏包括OpenProjects和Models两个选项卡,Models选项卡中列出了CHEMKIN提供的21种反应模型和2种应用程序,分7类排列,如表1所示。
有关OpenProjects选项卡的使用将在下文的例子中介绍。
表1CHEMKIN提供的7类21种反应器与2种应用程序
Miscellaneous(杂项)
ExternalSourceofInletGas,添加入口气体源,一般在有多路气体输入时才使用
Non-ReactiveGasMixer,计算不反应气体组分的混合过程
ChemicalandPhaseEquilibriumCalculation,计算化学平衡和相平衡
MechanismAnalyser,分析气相和表面化学反应系统中的热化学、传递及动力学数据
Closed0-DReactors(封闭0维反应器)
ClosedInternalCombustionEngineSimulator,模拟封闭的内燃机内的燃烧情况
ClosedHomogenousBatchReactor,模拟封闭的全混同性反应器,包括定压、定容反应器
ClosedPartiallyStirredReactor(PaSR),模拟封闭的部分混合的反应器
ClosedPlasmaReactor,模拟封闭的等离子体反应器
Open0-DReactors(开口0维反应器)
PerfectlyStirredReactor(PSR),模拟稳态及瞬态的充分混合反应器
PlasmaPSR,模拟充分混合等离子体反应器。
PartiallyStirredReactor(PaSR),模拟部分混合反应器
FlowReactors(流动反应器)
PlugFlowReactor,一维柱塞流反应器
PlasmaPlugFlowReactor,等离子体一维柱塞流反应器
PlanarShearFlowReactor,平板层流反应器
CylindricalShearFlowReactor,圆柱层流反应器
HoneycombMonolithReactor,蜂窝结构反应器
FlameSimulators(火焰模拟)
PremixedLaminarBurner-stabilizedFlame,模拟层流预混的稳态火焰
PremixedLaminarFlame-speedCalculation,层流预混火焰传播速度的计算
DiffusionorPremixedOpposed-flowFlame,模拟扩散或预混的对冲火焰
CVDReactors(化学气相沉积反应器)
StagnationFlowCVDReactor,模拟用于化学气相沉积的滞流反应器
RotatingDiskCVDReactor,模拟用于化学气相沉积的转盘流反应器
ShockTubeReactors(激波管道反应器)
NormalIncidentShock,模拟入射激波的化学动力学
NormalReflectedShock,模拟反射激波的化学动力学
2-2CHEMKIN的求解过程
1、GasPhaseKinetics(气相动力学)的处理
GasPhaseKinetics的前处理器(Pre-processor)读取用户编写的气相动力学输入文件和自带的热力学数据库(therm.dat),生成包含元素、组分、热力学数据反应信息的Gas-PhaseKinetics连接文件。
Gas-PhaseKinetics提供子程序库处理该连接文件。
2、SurfaceKinetics(表面动力学)和Transport(传递过程)的处理
如果化学反应包含表面反应或传递过程,则需要相应地执行这两个核心程序块。
SurfaceKinetics的前处理器读取用户编写的表面动力学输入文件,生成包含表面反应信息的SurfaceKinetics连接文件,SurfaceKinetics提供子程序库处理该连接文件。
Transport的前处理器根据Gas-phaseKinetics连接文件中的信息,自动从CHEMKIN自带的传递数据库(tran.dat)读取相应的数据,然后生成包含传递信息的Transport连接文件,Transport提供子程序库处理该连接文件。
3、反应模型求解
根据问题需要,CHEMKIN读取模型输入文件确定求解方法。
在4.0及其以上版本的CHEMKIN中,新加入了通过相应的模型设置窗口中设置模型的参数的功能。
用户设置完成后点击CreateInputFile即可生成模型输入文件,然后用户可以通过ViewInputFile按钮查看输入文件的内容。
而对于4.0以前的版本,用户需要通过手动编辑模型输入文件。
但对于文件的内容,都是相同的,都是采用关键字的形式声明模型的功能调用和参数设置。
有关常用的平衡计算模型和全混反应器模型的关键字列于附录2、3。
完成所有设置后,即可RunModel进行计算,CHEMKIN会自动调用上述Gas-PhaseKinetics、SurfaceKinetics、Transport各自的子程序来读取反应信息,调用模型输入文件控制模型求解过程。
程序计算结束后,会生成一数据文件xxxxxx.out供用户查阅数据,以及一动态连接文件XMLdata.zip供后处理(绘图)使用。
4、后处理(Post-Process)
CHEMKIN提供了统一的后处理器,用于对应用程序的结果进行分析和绘图。
2-3CHEMKIN的用户操作步骤
下面结合实际例子介绍用户操作的步骤。
【例1】计算化学当量的H2与空气的定压绝热燃烧温度。
1.运行CHEMKIN,点击菜单Project->New,输入项目名称,这里我们定为H2-air。
2.决定问题的性质,选择适当的反应模型。
由于绝热燃烧温度的计算是一个相平衡过程,不涉及具体的反应过程,于是我们很容易地想到用ChemicalandPhaseEquilibriumCalculation模型。
点击任务栏中的model选项卡,点击ChemicalandPhaseEquilibriumCalculation图标,此时在窗口栏的DiagramView窗口中将看到新加入一个相平衡计算的模型,最后点击窗口右下角黄色的UpdateProject按钮,如下图所示。
通常情况下,一般的化学反应问题通过适当的假设和简化,都可以对应到某一种CHEMKIN包含的反应模型,有时一个问题还可以有多种选择。
选择恰当的应用程序是求解问题的第一步。
但是如果实在不幸没有一种模型可以很好的解决你的问题,或者你想要更完美地解决一些问题,就只有自己编写程序,调用CHEMKIN里的子程序库进行计算了。
3.此时左侧任务栏会自动切换至OpenProjects选项卡,双击Pre-Processing,窗口栏出现Pre-Processing的参数窗口。
在窗口中的WorkingDir一项中填入你希望的保存路径,或者通过右侧的Browse按钮点击选取。
然后按NewChemistrySet按钮,点击Gas-PhaseKineticsFiles项右端的编辑按钮,如下图所示。
在弹出的窗口中选择刚才的工作路径,输入文件名chem.inp,按Open/Create按钮后即可开始编辑气相动力学输入文件了。
↓--------------------------------------【CHEMKIN的文件规则】--------------------------------------↓
CHEMKIN的输入文件有它自己的规则,用户在编辑输入文件的时候应该遵守这些规则。
在介绍Gas-PhaseKinetics输入文件之前,先介绍输入文件的一些通用规则:
①注释符号“!
”。
符号“!
”无论出现任何位置,此行后面的文本将作为注释文本而被忽略。
②输入文件每行不应超过80个字符
③除了个别有极其严格规则的地方外(如热力学数据的定义等,均会特殊声明),空格作为分隔符,而且多个空格将被视为一个。
④数字格式:
可以为整数(如99)、浮点数如(99.99)、或E格式(如9.999E2,E大小写均可)。
下面介绍如何编写Gas-PhaseKinetics的输入文件。
该文件包括四部分的内容:
元素、组分、热力学数据、化学反应,如下例所示:
!
例:
Gas-PhaseKinetics输入文件
ELEMENTSHOEND!
元素定义
SPECIESH2HO2OOHH2OEND!
组分定义
THERMO!
热力学数据(本例中只重新定义了“OH”的热力学数据)
OH121286O1H1G0300.005000.001000.001
0.02882730E+020.10139743E-02-0.02276877E-050.02174683E-09-0.05126305E-142
0.03886888E+050.05595712E+020.03637266E+020.01850910E-02-0.16761646E-053
0.02387202E-07-0.08431442E-110.03606781E+050.13588605E+014
END
REACTIONS!
反应方程及Arrhenius系数
H2+O2=2OH0.170E+140.0047780
OH+H2=H20+H0.117E+101.303626
O+OH=O2+H0.400E+15-0.500
O+H2=OH+H0.506E+052.676290
2OH=O+H2O0.600E+091.300
H+H+M=H2+M0.100E+19-1.000
H2O/0.0/H2/0.0/!
辅助数据
H+H+H2=H2+H20.920E+17-0.600
H+H+H2O=H2+H2O0.600E+20-1.250
END
①元素(Elements)
[规则]此部分以ELEMENTS(或者ELEM,两者等价)关键字开头;其后以空格为间隔符列出将在反应中出现的所有元素;最后以END关键字结束。
例:
ELEMENTSHOEND!
元素定义
用户要按周期表的元素名(两个字母均须大写)来定义元素,CHEMKIN可以辨认的元素如表2.1。
如果用户定义同位素或新元素的话,可以以1~2个字母命名(不与元素表重名),并将其原子量以“/”括住跟随其后。
如定义氢(H)的同位素氚(命名为HH)如下:
ELEMHH/3.0/END
表2CHEMKIN的元素表
H,HE,LI,BE,B,C,N,O,F,NE,NA,MG,AL,SI,P,S,CL,AR,K,CA,SC,TI,V,CR,MN,FE,CO,NI,CU,ZN,GA,GE,AS,SE,BR,KR,RB,SR,Y,ZR,NB,MO,TC,RU,RH,PD,AG,CD,IN,SN,SB,TE,I,XE,CS,BA,LA,CE,PR,ND,PM,SM,EU,GD,TB,DY,HO,ER,TM,YB,LU,HF,TA,W,RE,OS,IR,PT,AU,HG,TL,PB,BI,PO,AT,RN,FR,RA,AC,TH,PA,U,NP,PU,AM,CM,BK,CF,ES,FM,D,E
其中,D为氢(H)的同位素氘(D),E为电子,如果化学反应中有离子参加,电子必须作为一个元素进行定义。
②组分(Species)
[规则]此部分以SPECIES(或SPEC)开头;其后以空格为分隔符列出将在反应中出现的所有组份;最后以关键字END结束。
例:
SPECIESH2HO2OOHH2OEND!
组分定义
对于我们所要用到的组分,都可以从CHEMKIN的热力学数据库them.dat找到。
CHEMKIN数据库自带的组分名称(778种)列入附录1中。
我们要使用这些组分的数据,组分的命名就必须按照CHEMKIN的规则来,这样CHEMKIN才可以从数据库中自动获取该组分的元素组成及其热力学性质。
当然,我们也可以用不超过16个字符而且以字母开头的任意字符串来定义自己的组分,但组分的热力学数据同样需要自行定义。
③热力学数据(ThermodynamicData)
[规则]此部分以THERMO开头;其后以空格为分隔符列出定义组份的名称和热力学数据;最后以关键字END结束。
例:
THERMO!
热力学数据(本例中只重新定义了“OH”的热力学数据)
OH121286O1H1G0300.005000.001000.001
0.02882730E+020.10139743E-02-0.02276877E-050.02174683E-09-0.05126305E-142
0.03886888E+050.05595712E+020.03637266E+020.01850910E-02-0.16761646E-053
0.02387202E-07-0.08431442E-110.03606781E+050.13588605E+014
END
CHEMKIN的热力学数据是基于
的多项式模拟。
这里不作介绍了,有兴趣的同学可参看帮助文件。
④化学反应(Reaction)
[规则]起始行:
关键字REACTIONS(或REAC),其后为Arrhenius系数的单位(可选)。
中间行:
反应方程式,然后为该方程的Arrhenius系数(依次为Ai,βi,Ei);
有些反应需要辅助数据补充说明,出现在该反应方程式的下一行。
结束行:
关键字END。
例:
REACTIONS!
反应方程及Arrhenius系数
H2+O2=2OH0.170E+140.0047780
OH+H2=H20+H0.117E+101.303626
O+OH=O2+H0.400E+15-0.500
O+H2=OH+H0.506E+052.676290
2OH=O+H2O0.600E+091.300
H+H+M=H2+M0.100E+19-1.000
H2O/0.0/H2/0.0/!
辅助数据
H+H+H2=H2+H20.920E+17-0.600
H+H+H2O=H2+H2O0.600E+20-1.250
END
Arrhenius定律:
1)在起始行内可以定义Arrhenius系数Ai和Ei的单位:
Ei的单位可以定义为CAL/MOLE、KCAL/MOLE、JOULES/MOLE、KJOULES/MOLE、KELVINS、EVOLTS;
Ai的单位可以用关键字MOLES或MOLECULES来定义,分别对应cm•mole•sec•K和cm•molecules•sec•K。
如果没有定义,Ei和Ai的默认单位是:
cal/mole和cm•mole•sec•K。
2)反应方程中,“=”和“<=>”用于可逆反应(两者等价),“=>”用于不可逆反应,“+M”表示催化剂,“(+M)”用于压力控制反应,“HV”表示光子,“E”表示电子。
3)有些反应方程之后需要有补充的辅助数据说明。
CHEMKIN有很多的辅助数据说明,有兴趣的可参看帮助手册。
这里只介绍两个比较常用的——FORD和RORD,格式为
FORD/组分反应级数/
RORD/组分反应级数/
前者是重新定义正向反应时某组分反应级数,后者是重新定义逆向反应时某组分的反应级数的。
↑----------------------------------------------------------------------------------------------------------------↑
对于本例,由于绝热燃烧温度不考虑具体的反应过程,所以不涉及具体的反应方程,故Reaction部分可以省略(即使写了也用不上),此时CHEMKIN将根据反应物和生成物的焓(定压时)或内能(定容时)进行平衡计算。
同时由于涉及的反应物和生成物的热力学数据都已在CHEMKIN的热力学数据库中有定义,故气相动力学输入文件只需要输入元素和组分两部分,如下所示:
ELEMHONEND
SPECIESOO2H2HOHHO2H2OH2O2N2END
保存文件后关闭编辑器,此时Pre-Processing窗口中的Gas-PhaseKineticsFiles一项仍为空白,通过点击该项的浏览按钮选取刚才编辑的输入文件。
然后需要在ThermodynamicDataFile项中指定热力学数据库,点击该项的浏览按钮。
在弹出的窗口中先点击右边的SpecialDirectory中的SystemData,然后点击左边出现的therm.dat,按select按钮完成热力学数据库的选择,如下图所示。
回到Pre-Processing窗口后点击SaveAs…按钮,在弹出的窗口中直接点击Save按钮,以默认的文件名和路径保存。
由于本例不涉及表面反应,所以不需要表面动力学输入和气体传递数据文件,故再次返回Pre-Processing窗口后即可点击RunPre-Processor按钮运行预处理了。
预处理的结果可以在下拉式按钮ViewResults…中查看。
4.双击任务栏中的Cluster1,会弹出子菜单,双击其中的每项都会弹出相应的设置窗口,其中:
①ClusterProperties:
设置问题的计算方式,一般选择默认值NormalStart即可,即进行新的计算;此外还可以选择InitializationofReactorfromPreviousSolution或InitializationofReactorfromSolutionFile,对应从上次计算的结果开始继续进行计算和从已存在的解文件开始进行计算,在此不介绍,有兴趣的可参考帮助文件。
②C1_R1Equilibrium:
包括ReactorPhysicalProperty和Species-specificData两个选项卡,分别用来设置反应条件和反应物的组成,是重点的参数输入部分。
对于本例要解决的化学当量的H2和空气的定压绝热燃烧温度即为定压、定焓问题,所以在反应器物性的选项卡中:
a)ProblemType中选择ConstantPressureEhthalpy;
b)点击CalculateSpeciesComposition,即通过平衡计算确定组分的组成;
c)点击Temperature,输入298,单位K;
d)点击Pressure,输入1,单位atm;
在组分组成的选项卡中:
a)点击ReactantFraction选项卡;
b)UnitSelection选择molefraction;
c)Species下拉式按钮中依次选择和输入:
H2,2,Add按钮;O2,1,Add按钮;N2,3.76,Add按钮。
通过以上步骤完成反应条件和反应物的输入。
③Solver:
设置问题的求解方法。
在本例中没有可供设置的参数。
对于其它问题,稳态计算可能需要设置迭代的步长、迭代次数等,瞬态计算可能需要设置反应结束的时间、解的误差、灵敏度系数的误差等。
可以参看下文中对本问题用不同模型求解时的例子。
④OutputControl:
设置输出文件的大小限制、输出的灵敏度结果的个数等。
对本例