※Canteraバージョン:3.0.0
Canteraで触媒反応の計算をしてみる。
メタンの白金触媒での燃焼を計算する。Canteraの例題に同様のものがあるが、プログラムが少し冗長なのでコンパクトにしている。モデルは、1次元衝突噴流火炎のモデルを使って、白金触媒表面での表面反応計算を加えたものである。
# parameter
p = ct.one_atm # pressure [Pa]
tinlet = 300.0 # inlet temperature [K]
tsurf = 900.0 # surface temperature [K]
mdot = 0.06 # inlet flux [kg/m^2/s]
width = 0.1 # inlet/surface separation [m]
comp = 'CH4:0.095, O2:0.21, N2:0.78, AR:0.01' # inlet composition
条件を設定する。圧力p、流入温度tinlet、表面温度tsurf、流量mdot、触媒表面/流入面間距離width、流入の組成compを設定する。
# gas object
gas = ct.Solution('ptcombust.yaml', 'gas')
gas.TPX = tinlet, p, comp
# interface object
surf_phase = ct.Interface('ptcombust.yaml', 'Pt_surf', [gas])
surf_phase.TP = tsurf, p
ガスgasと表面surf_phaseのオブジェクトを定義する。表面反応メカニズムは、 Deutschman らのメカニズムである。気相反応は、GRI-Mech 3.0が使われている。
参考文献:
Deutschmann, O.; Schmidt, R.; Behrendt, F.; Warnatz, J. Numerical modelling of catalytic ignition. Twenty-Sixth Symposium (International) on Combustion, The Combustion Institute, 1996, p. 1747-1754.
# integrate the coverage equations in time for 1 s, for initial
surf_phase.advance_coverages(1.0)
表面反応の初期条件を仮定するため、予備計算を実行する。気相の組成は固定した状態で解かれる。
# impinging jet object
sim = ct.ImpingingJet(gas=gas, width=width, surface=surf_phase)
sim.inlet.mdot = mdot
sim.inlet.T = tinlet
sim.inlet.X = comp
sim.surface.T = tsurf
1次元衝突噴流火炎モデルを定義し、流入条件と表面温度を設定する。
# solve
sim.set_refine_criteria(3.0, 0.06, 0.12, 0.0)
sim.solve(loglevel=1, auto=True)
sim.show_solution()
グリッド制御パラメータ(set_refine_criteria)を設定して、solveで計算を実行する。最終結果を出力する。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> surface <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Temperature: 900 K
Coverages:
PT(S) 0.124
H(S) 2.618e-07
H2O(S) 3.059e-05
OH(S) 0.007497
CO(S) 3.904e-05
CO2(S) 4.233e-10
CH3(S) 3.188e-09
CH2(S)s 3.188e-09
CH(S) 3.188e-09
C(S) 1.388e-07
O(S) 0.8684
反応表面の化学種のモル分率が出力される。
# write csv file
sim.save('catalytic_combustion.csv', basis='mole', overwrite=True)
気相の結果をCSVファイルに出力している。流入面からの距離に対する軸方向速度、半径方向速度、温度、密度、化学種のモル分率が出力される。