2006 化学反応ダイナミクス概論 (名古屋大学大学院講義)

CHEMKIN 入門

ここでは Windows バイナリ (minimal) のインストールとコマンドプロプトからの使用法の例を示します。

目次

インストール
プログラムの概要
入出力ファイルの概要
→ 入力ファイルの書式詳細

インストール

  1. CKmExDOS.exe を適当な場所 で実行すると、サブフォルダ CKmExDOS 内に、 以下のファイルが生成します。
    • chem.exe senk.exe sb2c.exe findth.exe rxnc.exe shock.exe equil.exe tran.exe premix.exe pb2c.exe (実行ファイル)
    • chem.inp therm.dat senk.inp sb2c.inp sb2c2.inp rxnc.inp shk_chem.inp shock.inp eq_chm.inp equil.inp pm_chem.inp pm_chem2.inp premix.inp premix2.inp pb2c.inp tran.dat (サンプル入力ファイル)
  2. サンプルの実行
    • コマンドプロンプトでパッケージを解凍したディレクトリに移動します。
    • 以下をこの順に入力して、正常に実行されることを 確認してください。
        chem < chem.inp > chem.out
        senk < senk.inp > senk.out
        sb2c < sb2c.inp > sb2c.out
        sb2c < sb2c2.inp > sb2c2.out
        rxnc < rxnc.inp > rxnc.out
        chem < shk_chem.inp > shk_chem.out
        shock < shock.inp > shock.out
        chem < eq_chm.inp > eq_chm.out
        equil < equil.inp > equil.out
        chem < pm_chem.inp > pm_chem.out
        tran < tran.dat > tran.out
        premix < premix.inp > premix.out
        pb2c < pb2c.inp > pb2c.out
        chem < pm_chem2.inp > pm_chem2.out
        tran < tran.dat > tran.out
        premix < premix2.inp > premix2.out
        pb2c < pb2c2.inp > pb2c2.out
    • 出力ファイル (.out) をメモ帳などで開いて、 エラー表示がなければ、正常に実行されています。

プログラムの概要

chem(.exe)

CHEMKIN Interpreter と呼ばれまるプログラムで、テキストファイル 記述された、化学種・反応機構・熱力学データの情報を読み込み、 次の senkin プログラム (senk) で使用する、バイナリ形式のファイルに 翻訳 (interpret) します。

senk(.exe)

これが SINKIN 本体のプログラムです。chem が生成した バイナリファイルから化学種・反応機構・熱力学データを読み込み、 反応の初期条件・計算時間などをテキストファイルから読んで、 反応計算を実行します。結果は、一部をテキストファイルに出力する他、 すべての情報をバイナリファイルに出力します。

sb2c(.exe)   - Senkin Binary to(2) Csv converter

SENKIN が生成したバイナリファイルの情報を、 Excel などの表計算アプリケーションで開くことのできる形式の ファイル (カンマ区切りテキストファイル, CSV ファイル) に出力します。 このプログラムは、オリジナルの Chemkin パッケージには含まれないものです。

findth(.exe)

Chemkin の熱力学データ形式のファイルを、化学式(元素組成) を指定することで、検索するプログラムです。Chemkin / Senkin の実行には、必要ありません。 (これもオリジナル Chemkin パッケージには含まれないものです)

rxnc(.exe)   - Reaction (Rxn) Contribution

SENKIN のバイナリ出力から、指定した時間における、 指定した化学種の増加・減少に対する、各反応の寄与率を出力します。 (これもオリジナル Chemkin パッケージには含まれないものです)

shock(.exe)

Chemkin に含まれる shock tube 計算プログラム。

equil(.exe)

Chemkin に含まれる 平衡計算プログラム。

premix.exe

PREMIX (予混合一次元火炎伝播) プログラム。

pb2c.exe

PREMIX が生成したバイナリファイルを CSV 形式に変換する プログラム。

tran.exe

PREMIX が用いるバイナリ形式の輸送係数ファイルを生成するプログラム。

入出力ファイルの概要


図 1. 入出力ファイルの関係
図 1 に入出力ファイルの関係を示します。 ユーザが計算実行前に 準備しなくてはならないのは、3つの入力ファイル (chem.inp, senk.inp, ab2c.inp) です。この他に、化学種の熱力学データベースファイル therm.dat を実行時にカレントディレクトリに置いておく必要があります。 このファイルは通常、ユーザが編集する必要はありません。   '標準入力', '標準出力' は、キーボードからの入力, 実行画面への 出力に対応します。 この入出力は、リダイレクトを使って任意ファイル名に 対応させることができます。
progname < inputfile > outputfile
他のファイル (therm.dat, chem.bin, tign.out, save.bin, skcn???.csv, sXXXX???.csv) はプログラム内でファイル名を指定していますので、 ソースコードを変更しない限り、変更できません。   以下に各ファイルの概要を示します。詳細は 入力ファイルの書式 を参照して下さい。

chem.inp

CHEMKIN Interpreter が読み込む、反応機構データの テキストファイルです。以下にサンプルファイルの一部を示します。
ELEMENTS  H   O   N  END
SPECIES H2  H  O2  O  OH  HO2  H2O2  H2O   N2 END
REACTIONS
H+O2+M=HO2+M                            3.61E17  -0.72       0.
  H2O/18.6/  H2/2.86/
H+H+M=H2+M                              1.0E18   -1.0        0.
...(中略)...
H2O2+OH=H2O+HO2                         1.0E13    0.0     1800.
END
最低3つの入力ブロック 'ELMENTS'〜'END', 'SPECIES'〜'END', 'REACTIONS'〜'END' が必要で、それぞれ、反応系に含まれる元素名のリスト, 考慮する化学種のリスト, 考慮する化学反応式のリストです。   上述のように、リダイレクトで任意のファイル名を指定できますので、 通常、H2-O2.sch, CH4-Air.sch などのように、わかりやすい名前に しておきます。

therm.dat

NASA 多項式と呼ばれる熱力学関数表現の14個の係数を並べた、 テキストファイルです。このデータベースにない、化学種を扱う場合は、 自分でこのデータを用意する必要があります。このような場合、通常 therm.dat を編集するのではなく、chem.inp ファイルから熱力学データを与えます。

chem.out

CHEMKIN Interpreter が chem.inp を解釈した結果が出力される、 テキストファイル。

chem.bin

chem.inp に与えられた、化学種・反応機構と、therm.dat から抽出した、熱力学データを、senkin が利用するために、バイナリ形式 で保存したもの。

senk.inp

senkin に与える初期条件などを記述したテキストファイル。 以下にサンプルファイルを示します。
SENS
CONP
PRES 1.0
TEMP 1000.
TIME 2.E-4
DELT 1.E-4
REAC H2  2
REAC O2  1
REAC N2  4
END
'SENS' は感度解析を行うことを指示するキーワードで、続く 'COMP' は圧力一定の計算条件を指示しています。 'PRES', 'TEMP' は初期圧力, 初期温度を、REAC は初期組成を与えます。'TIME', 'DELT' は計算終了時間, 結果の出力時間間隔を指定します。   chem.inp 同様に任意のファイル名を指定できますので、 わかりやすい名前を付けておきます。

senk.out

senk.inp の解釈結果と計算中の進行状況が出力されます。

tign.out

senk.inp の 'DELT' で指定した時間間隔で、圧力, 温度, 各化学種の濃度が出力されます。出力画面やプリンタに出力した場合に、 読みやすい形式ですが、表計算・グラフ出力アプリケーションで読む場合には、 不便な形式なので、あまり使いません。

A NAME="rest.bin">rest.bin

何らかの理由で、計算が中断された場合に、途中から 再開 (RESTart) するために必要な情報が格納されるバイナリーファイル。 計算が正常に終了した場合にも、大きさ 0 のファイルが残りますが、 削除して構いません。

save.bin

senkin 計算結果が出力されるバイナリーファイル。 senk.inp の 'DELT' 設定に関係なく、数値積分1ステップごとの、圧力, 温度, 全化学種の濃度が格納されており、SENS (感度計算) を指定した場合は、 同じく、数値積分1ステップごとの、全感度係数行列が格納されています。

sb2c.inp

save.bin から csv ファイルへの変換のオプションを指定する、 テキストファイルです。以下にサンプルを示します。
===== sb2c (sbin2csv.f) Control file =====
[ TIME OUTPUT CONTROL:  s ms us atol=# rtol=# mind=# ]
 us mind=5e-6 atol=1e-15 rtol=.05
[ CONC OUTPUT CONTROL:  all selonly none molecules/cc molefrac ]
 molecules/cc selonly
 H O OH HO2 H2 O2
[ SENS OUTPUT CONTROL:  all none (or species name list) ]
 H O TEMP
時間の出力の単位/頻度、濃度出力の単位/出力する化学種、 感度計算結果の出力の制御を指定します。

sb2c.out

sb2c.inp の入力解釈の結果と、save.bin, chem.bin ファイルの、 ヘッダ情報が出力されます。

skcn???.csv

save.bin 中の数値積分結果の圧力, 温度, 化学種の濃度を含む .csv 形式のファイル。Windows で Excel などがインストールされていれば、 ファイルをダブルクリックすることで開くことができます。 化学種の数が多くなると、Excel 等で開けなくなるため、"???" = "001", "002", "003", ... のように、変数50個ずつのファイルに、 分割出力します。

sXXXX.csv

感度係数の要約情報。 ファイル名の "XXXX" の部分は、 従属変数の通番で、番号と従属変数の対応関係は sb2c.out に出力されます。 数値積分が行われた時間範囲の感度係数の絶対値の最大値が大きい化学反応   を順に出力します。

sXXXX???.csv

save.bin 中の感度係数を含む .csv ファイル。多くの場合は、 ある特定の従属変数 (温度または化学種の濃度) に関する感度係数のみが必要なので、従属変数 ごとに、別のファイルに出力されます。ファイル名の "XXXX" の部分は、 従属変数の通番で、番号と従属変数の対応関係は sb2c.out に出力されます。   さらに、反応式の数が多い場合のために、"???" = "000", "001", ... に反応式50づつに分割したファイルの出力します。   各ファイル内のカラムタイトル 'Siiii' の 'iiii' は考慮された、 化学反応の通番を示します。番号と反応式の対応は、chem.out に出力されています。

rxnc.inp

rxnc(.exe) の動作を指定する、テキストファイルです。 以下にサンプルを示します。
===== rxnc (rxncntrb.f) Control Input File =====
[ (Time points to be investigated in s) time1, time2, ... ]
 2.5e-4 1.78e-4 5e-5 1.e-6
[ (species to be investigated) name1, name2, ... ]
 H O HO2
[ options (atol, min%, top#, sbin) ]
 atol=1e-20 min%=0.1 sbin=save.bin
反応の寄与を評価する時間・化学種、いくつかのオプションを指定します。

rxnc.out

rxnc(.exe) の出力ファイルです。以下に例を示します。
 ------ rxncntrb -------------------------------
 Calculate contributions of reactions for the
   :
   : ヘッダー部 - rxnc.inp の指定内容、SENKIN バイナリの情報
   :
 CHEM BIN file contains  9 species
                    and  20 reactions.
 -----------------------------------------------
 ----- species [H] ----------------------------- (H に関する結果)
 TIME = 9.8545E-07                               (1 マイクロ秒での結果)
      total = 8.2200E-09( 8.2200E-09)
    rxn  10  95.69 Fwd OH+H2<=>H2O+H
    rxn  17   2.76 Rev H+HO2<=>H2+O2
    rxn  12   1.56 Fwd O+H2<=>OH+H
   total = 9.6809E-10( 9.6809E-10)
    rxn  11  50.30 Rev O+OH<=>O2+H
    rxn   1  49.70 Fwd H+O2+M<=>HO2+M
 TIME = 4.9795E-05                               (50 マイクロ秒での結果)
   :
   :
 -----------------------------------------------

 ----- species [O] ----------------------------- (O に関する結果)
 TIME = 9.8545E-07
   :
   :

© 2006 by A. Miyoshi.  All rights reserved.