Cantera:火炎中のイオンを計算する

※Canteraバージョン:3.0.0

Canteraで火炎の化学イオンを計算してみる。

ここでは、メタン-空気の燃焼を考える。Canteraの例題にGRI Mech3.0の反応メカニズムにイオン化の反応式を加えたYAMLファイル gri30_ion.yamlがあるのでそれを使う。gri30_ion.yamlを見ると、$\mathrm{HCO^+}$、 $\mathrm{ H3O^+}$、 $\mathrm{ e^-}$が考慮されており、以下の反応式が加えられている。

$$ \mathrm{CH} + \mathrm{O} \rightarrow \mathrm{HCO^+} + \mathrm{e^-}$$

$$ \mathrm{HCO^+} + \mathrm{H_2O} \rightarrow \mathrm{H_3O^+} + \mathrm{CO}$$

$$ \mathrm{H_3O^+} + \mathrm{e^-} \rightarrow \mathrm{H_2O} + \mathrm{H}$$

$$ \mathrm{H_3O^+} + \mathrm{e^-} \rightarrow \mathrm{OH} + \mathrm{H} + \mathrm{H} $$

$$ \mathrm{H_3O^+} + \mathrm{e^-} \rightarrow \mathrm{H_2} + \mathrm{OH}$$

$$ \mathrm{H_3O^+} + \mathrm{e^-} \rightarrow \mathrm{O} + \mathrm{H_2} + \mathrm{H} $$

計算

自由伝播火炎のモデルでイオンを含めた計算ができるモジュールIonFreeFlameを使う。

ソースコード(GitHub)

# Simulation parameters
p = ct.one_atm  # pressure [Pa]
Tin = 300.0  # unburned gas temperature [K]
phi = 1.0
width =  0.03 # [m]

圧力、温度、当量比、解析領域を設定する。

# IdealGasMix object used to compute mixture properties
gas = ct.Solution('gri30_ion.yaml')
gas.TP = Tin, p
gas.set_equivalence_ratio(phi, 'CH4', 'O2:1.0, N2:3.76')

気相のオブジェクトを設定する。gri30_ion.yamlの反応設定ファイルを使う。

# Flame object
f = ct.FreeFlame(gas, width=width)
f.set_refine_criteria(ratio=3, slope=0.07, curve=0.14)

f.solve(loglevel=1, auto=True)
f.solve(loglevel=1, stage=2)

f.save('ion_flame.csv', basis='mole', overwrite=True)

FreeFlameのオブジェクトを設定して計算を実行する。計算は2段階に分けて解く。最初のsolveは電界の計算がされず、2番めのsolveで電界計算が実行される。最後に結果をCSVファイルに出力している。

火炎帯付近の化学種と温度の結果。

イオンの分布。反応帯でイオン濃度がピークとなっている。

電界の結果。

スポンサーリンク
科学技術計算のご相談は「キャットテックラボ」へ

科学技術計算やCAEに関するご相談、計算用プログラムの開発などお困りのことは「株式会社キャットテックラボ」へお問い合わせください。

お問い合わせはこちら

フォローする

スポンサーリンク