Cantera:CTIファイルの作成

※CTIファイルは、バージョン3.0以降ではサポートされなくなるとのことです。代わりにYAMLフォーマットを使用するようにしてください。

CanteraのCTIファイルについて説明する。

CTIファイルは反応メカニズムや化学種の特性を定義するためファイルである。Canteraのインストールディレクトリにいくつか保存されているので参考にしてみる。Windowsなら、

ユーザーのホーム\Anaconda*\pkgs\cantera-2.4.0-***\Lib\site-packages\cantera\data

に格納されている。ここでは、gri30.ctiの中身を見てみる。gri30.cti には、GRI-Mech 3.0の反応メカニズムが定義されている。このファイルには、53の化学種と325の素反応式が含まれる。

単位系の設定

まず単位系が設定されている。

units(length = "cm", time = "s", quantity = "mol", act_energy = "cal/mol")

length:長さ、time:時間、quantity:物質量、act_energy:反応エネルギー。

ガス相の定義

次にガス相の定義ブロックがある。

ideal_gas(name = "gri30_mix",
      elements = " O  H  C  N  Ar ",
      species = """ H2  H  O  O2  OH  H2O  HO2  H2O2  C  CH 
                   CH2  CH2(S)  CH3  CH4  CO  CO2  HCO  CH2O  CH2OH  CH3O 
                   CH3OH  C2H  C2H2  C2H3  C2H4  C2H5  C2H6  HCCO  CH2CO  HCCOH 
                   N  NH  NH2  NH3  NNH  NO  NO2  N2O  HNO  CN 
                   HCN  H2CN  HCNN  HCNO  HOCN  HNCO  NCO  N2  AR  C3H7 
                   C3H8  CH2CHO  CH3CHO """,
      reactions = "all",
      transport = "Mix",
      initial_state = state(temperature = 300.0,
                        pressure = OneAtm)    )

name:名称、elements:構成原子、species:化学種、reactions:反応式の宣言箇所、transport:輸送モデル、initial_state:デフォルトの温度、圧力。

ideal_gasで理想気体として定義されている。

reactionsのallは、このファイル内にすべての反応式が定義されていることを表している。

輸送モデルは、MixがMixture-Averagedモデル、MultiがMulticomponentモデルである。

化学種の定義

次に化学種の特性データが設定されている。

species(name = "H2",
    atoms = " H:2 ",
    thermo = (
       NASA( [  200.00,  1000.00], [  2.344331120E+00,   7.980520750E-03, 
               -1.947815100E-05,   2.015720940E-08,  -7.376117610E-12,
               -9.179351730E+02,   6.830102380E-01] ),
       NASA( [ 1000.00,  3500.00], [  3.337279200E+00,  -4.940247310E-05, 
                4.994567780E-07,  -1.795663940E-10,   2.002553760E-14,
               -9.501589220E+02,  -3.205023310E+00] )
             ),
    transport = gas_transport(
                     geom = "linear",
                     diam =     2.92,
                     well_depth =    38.00,
                     polar =     0.79,
                     rot_relax =   280.00),
    note = "TPIS78"
       )

name:化学種の名称、atoms:構成原子と数、thermo:熱力学特性データ、transport:輸送特性データ、note:コメント。

thermoのNASAは、NASAの熱力学特性データ形式であることを表している。
NASA([200, 1000], [a0, a1, a2, a3, a4, a5, a6])は、温度が200[K]~1000[K]の範囲で、比熱、エンタルピー、エントロピーが

$$ \frac{c_p^0(T)}{R} = a_0 + a_1 T + a_2 T^2 + a_3 T^3 + a_4 T^4$$

$$ \frac{h^0(T)}{RT} = a_0 + \frac{a_1}{2} T + \frac{a_2}{3} T^2 + \frac{a_3}{4} T^3 + \frac{a_4}{5}T^4 + \frac{a_5}{T}$$

$$ \frac{s^0(T)}{R} = a_0  \ln T+ a_1 T + \frac{a_2}{2} T^2 + \frac{a_3}{3} T^3 + \frac{a_4}{4}T^4 + a_6$$

であることを表している。

transportは、輸送特性を表すパラメータを設定する。geomのatomは単原子分子、linearは線形分子、nonlinearは非線形分子である。diamはLennard-Jones衝突直径[Å]、well_depthはLeannard-Jonesポテンシャル井戸深さ[K]、polarは分極率[Å3]、dipoleは双極子モーメント[Debye]、rot_relaxは298[K]での回転緩和衝突数である。

反応式の定義

最後に反応式が定義されている。

reaction( "CH2 + O2 => 2 H + CO2",   [5.80000E+12, 0, 1500])

この反応は、

$$\mathrm{CH_2} + \mathrm{O_2 } \rightarrow \mathrm{2H} + \mathrm{CO_2}$$

の反応式であり、反応速度定数は修正アレニウス式、

$$ k_f(T) = A T^b \exp(-E/ R T)$$

ここで、$A=5.8 \times 10^{12}、b=0、E=1500$

を表している。

第三体反応

three_body_reaction( "2 O + M <=> O2 + M",   [1.20000E+17, -1, 0],
         efficiencies = " AR:0.83  C2H6:3  CH4:2  CO:1.75  CO2:3.6  H2:2.4  H2O:15.4 ")

この反応定義は第三体反応

$$ \mathrm{2 O} + \mathrm{M} \leftrightarrow \mathrm{O_2} + \mathrm{M}$$

の反応式で、Collision efficienciesがAr=0.83、C2H6=3、CH4=2、CO=1.75、CO2=3.6、H2=2.4、H2O=15.4(他は1.0)である。

Falloff反応

falloff_reaction( "H + CH2 (+ M) <=> CH3 (+ M)", 
         kf = [6.00000E+14, 0, 0],
         kf0   = [1.04000E+26, -2.76, 1600],
         falloff = Troe(A = 0.562, T3 = 91, T1 = 5836, T2 = 8552),
         efficiencies = " AR:0.7  C2H6:3  CH4:2  CO:1.5  CO2:2  H2:2  H2O:6 ")

この反応定義は、Falloff反応である。kfはhigh-pressure limitの反応速度定数を、kf0はlow-pressure limitの反応速度定数を表す。

Troeは、Troeの関数で、

$$F_{cent}(T) = (1-A) \exp(-T/T_3) + A \exp (-T/T_1) + \exp(-T_2/T)$$

の係数を指定する。SRI関数は、

$$F(T, P_r) = d \bigl[a \exp(-b/T) + \exp(-T/c)\bigr]^{1/(1+\log_{10}^2 P_r )} T^e$$

の各係数を入力することができる。falloffを指定しない場合は、Lindemann式が使われる。


その他、詳細はCanteraのホームページを参照するとよい。
https://cantera.org/tutorials/input-files.html

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

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

お問い合わせはこちら

フォローする

スポンサーリンク