※Canteraバージョン:3.0.0
次にもう少し化学的な計算をしてみる。ここでは、Canteraのmixing.pyの例題を例にとる。
PythonのCanteraが使える環境で、以下のコマンドで計算できる。
python mixing.py
この例題では、空気とメタンを理論混合比で混合し、化学平衡を計算している。以下で、mixing.pyの中身を説明する。
import cantera as ct
gas = ct.Solution('gri30.yaml')
Canteraをインポートし、gri30.yamlをgasオブジェクトに定義する。gri30.yamlは、反応メカニズムが定義されたファイルだ。
# Stream A (air)
A = ct.Quantity(gas, constant='HP')
A.TPX = 300.0, ct.one_atm, 'O2:0.21, N2:0.78, AR:0.01'
次に、AにエンタルピーH、圧力P一定の状態を定義する。Aは空気で条件は、温度T=300[K]、圧力P=1[atm]、組成X=(O2=0.21, N2=0.78, Ar=0.01)[モル分率]である。ちなみに、#で始まる行はコメント行。
次に、BにメタンCH4を定義する。
# Stream B (methane)
B = ct.Quantity(gas, constant='HP')
B.TPX = 300.0, ct.one_atm, 'CH4:1'
空気AとメタンBを理論混合比で設定する。
# Set the molar flow rates corresponding to stoichiometric reaction,
# CH4 + 2 O2 -> CO2 + 2 H2O
A.moles = 1
nO2 = A.X[A.species_index('O2')]
B.moles = nO2 * 0.5
A.moles で、空気Aを1[kmol]と設定する。次のnO2 = A.X[A.species_index('O2')]は、空気AのO2(酸素)の物質量XをnO2という変数に代入している。B.molesでは、nO2の半分の量をメタンの量として設定している。これで、空気AとメタンBを理論混合比で投入することになる。
# Compute the mixed state
M = A + B
print(M.report())
混合は、空気AとメタンBを実際にプラスしてやればよい。混合気をMとしている。printで混合気Mを出力してやると、
gri30:
temperature 300 K
pressure 1.0133e+05 Pa
density 1.1269 kg/m^3
mean mol. weight 27.742 kg/kmol
phase of matter gas
1 kg 1 kmol
--------------- ---------------
enthalpy -2.5351e+05 -7.0327e+06 J
internal energy -3.4342e+05 -9.5271e+06 J
entropy 7221.9 2.0035e+05 J/K
Gibbs function -2.4201e+06 -6.7137e+07 J
heat capacity c_p 1070.4 29695 J/K
heat capacity c_v 770.71 21381 J/K
mass frac. Y mole frac. X chem. pot. / RT
--------------- --------------- ---------------
O2 0.2192 0.19005 -26.334
CH4 0.054952 0.095023 -54.676
N2 0.71281 0.70588 -23.381
AR 0.013032 0.0090498 -23.315
[ +49 minor] 0 0
となる。Xはモル分率、Yは質量分率を表す。
# Show that this state corresponds to stoichiometric combustion
M.equilibrate('TP')
print(M.report())
最後に、温度圧力一定で化学平衡を計算し、結果を出力する。
gri30:
temperature 300 K
pressure 1.0133e+05 Pa
density 1.1269 kg/m^3
mean mol. weight 27.742 kg/kmol
phase of matter gas
1 kg 1 kmol
--------------- ---------------
enthalpy -3.0024e+06 -8.3292e+07 J
internal energy -3.0923e+06 -8.5786e+07 J
entropy 7204.2 1.9986e+05 J/K
Gibbs function -5.1637e+06 -1.4325e+08 J
heat capacity c_p 1104.2 30633 J/K
heat capacity c_v 804.53 22319 J/K
mass frac. Y mole frac. X chem. pot. / RT
--------------- --------------- ---------------
H2O 0.12341 0.19005 -121.32
CO2 0.15074 0.095023 -185.83
N2 0.71281 0.70588 -23.381
AR 0.013032 0.0090498 -23.315
[ +49 minor] 2.0428e-19 1.7711e-19
完全燃焼して、H2O、CO2、N2、Arが残る。
組成や混合比、温度、圧力などの条件を変えて計算してみるとよい。