※Canteraバージョン:3.0.0
Canteraで反応経路の解析を行う。
反応経路は、化学反応において、ある化学物質がどのような経路で生成されるのかの道筋を示すものである。反応経路を可視化したグラフで表示される。ここでは、Canteraを用いた反応経路の解析を行ってみる。
Graphvizのインストール
反応経路を可視化するために、まずGraphvizをインストールする。Graphvizは、DOT言語で記述されたグラフ構造を画像に出力するための、オープンソースのソフトウェアである。以下のサイトからダウンロードして、インストールしておく。
インストールフォルダのbinにパスを通しておく。
反応経路の計算
メタンの燃焼における反応経路を解析してみる。
# Define a gas mixture
gas = ct.Solution('gri30.yaml')
gas.TPX = 1500.0, ct.one_atm, 'CH4:0.25, O2:1, N2:3.76'
GRI-Mech3.0の反応メカニズムでメタンの燃焼を定義する。温度1500K、圧力1atm、組成CH4:0.25、O2:1、N2:3.76(当量比0.5)で計算してみる。
# Define the element in the reaction path
element = 'N'
解析する元素を設定する。ここでは、Nについて見てみる。
# Create reaction path diagram
diagram = ct.ReactionPathDiagram(gas, element)
diagram.title = 'Reaction path diagram following {0}'.format(element)
diagram.label_threshold = 0.01
ReactionPathDiagramで、設定したガスと元素について反応経路を解析する。label_thresholdは寄与度の閾値で、寄与度の小さなものは除外する。
dot_file = 'reaction_path_simple.dot'
img_file = 'reaction_path_simple.png'
diagram.write_dot(dot_file)
print(diagram.get_data())
os.system('dot {0} -Tpng -o{1} -Gdpi=300'.format(dot_file, img_file))
dotファイルのファイル名dot_fileと画像ファイルのファイル名img_fileを設定して、write_dotで反応経路をdotファイルに出力する。次のprint文は、画面にデータを出力している。最後のos.systemでGraphviz を起動し、dotファイルを画像ファイルに出力している。
このような画像ファイルが出力される。N2からN2OとNNHが生成されることがわかる。
もう少し複雑な経路を計算してみる。
# Define a gas mixture
gas = ct.Solution('gri30.yaml')
gas.TPX = 1500.0, ct.one_atm, 'CH4:0.25, O2:1, N2:3.76'
r = ct.IdealGasReactor(gas)
net = ct.ReactorNet([r])
T = r.T
while T < 1900:
net.step()
T = r.T
ここでは温度が1500Kから1900Kまでの反応を計算している。N2からNOに至る経路がわかる。